Có sự tương ứng giữa kích thước bộ đệm và độ trễ truy cập không? Tất cả những thứ khác đều bằng nhau, bộ đệm lớn hơn có hoạt động chậm hơn không? Nếu vậy, tại sao? Chậm hơn bao nhiêu?
Có sự tương ứng giữa kích thước bộ đệm và độ trễ truy cập không? Tất cả những thứ khác đều bằng nhau, bộ đệm lớn hơn có hoạt động chậm hơn không? Nếu vậy, tại sao? Chậm hơn bao nhiêu?
Câu trả lời:
Các vật phẩm trong tay bạn có thể truy cập nhanh hơn các vật phẩm trong túi của bạn, truy cập nhanh hơn các vật phẩm trong tủ của bạn, truy cập nhanh hơn các vật phẩm tại Digikey. Mỗi loại lưu trữ liên tiếp tôi đã liệt kê là lớn hơn nhưng chậm hơn so với trước đây.
Vì vậy, hãy có những điều tốt nhất của cả hai thế giới, hãy làm cho bàn tay của bạn lớn như một nhà kho Digikey! Không, nó không hoạt động, bởi vì bây giờ họ không thực sự ra tay nữa. Chúng là một khẩu súng thần công đè nặng bạn.
Lý do lưu trữ lớn hơn là chậm hơn để truy cập là khoảng cách . Trung bình lưu trữ lớn hơn là xa bạn. Điều này đúng với các mục vật lý và RAM.
Bộ nhớ máy tính chiếm không gian vật lý. Vì lý do đó, các ký ức lớn hơn lớn hơn về mặt vật lý và một số vị trí trong bộ nhớ đó sẽ ở xa hơn về mặt vật lý. Những thứ ở xa mất nhiều thời gian hơn để truy cập, do bất kỳ giới hạn tốc độ nào. Trong trường hợp túi của bạn và Digikey, giới hạn tốc độ là tốc độ của cánh tay của bạn và giới hạn tốc độ trên đường cao tốc.
Trong trường hợp RAM, giới hạn tốc độ là tốc độ lan truyền của tín hiệu điện, độ trễ lan truyền của cổng và trình điều khiển và việc sử dụng phổ biến của đồng hồ đồng bộ. Ngay cả khi tiền không phải là đối tượng và bạn có thể mua bao nhiêu tùy thích công nghệ RAM nhanh nhất hiện nay, bạn sẽ không thể hưởng lợi từ tất cả. Đặt một tấm bộ đệm L1 có kích thước A4 nếu bạn thích và đặt CPU của bạn ngay chính giữa. Khi CPU muốn truy cập một số bộ nhớ ngay trong góc của bộ nhớ, sẽ thực sự mất một nano giây để yêu cầu đến đó và một nano giây để nó quay trở lại. Và đó không bao gồm tất cả các sự chậm trễ lan truyền thông qua và cổng và trình điều khiển. Điều đó sẽ làm chậm nghiêm trọng CPU 3GHz của bạn.
Vì logic đồng bộ dễ thiết kế hơn nhiều so với logic không đồng bộ, một 'khối' RAM sẽ được đồng hồ cùng một đồng hồ. Nếu muốn biến toàn bộ bộ nhớ thành bộ đệm L1, thì bạn phải đồng hồ toàn bộ với đồng hồ chậm để đối phó với thời điểm xấu nhất của vị trí xa nhất trong bộ nhớ. Điều này có nghĩa là các vị trí bộ nhớ ở xa hiện đang giữ lại các vị trí cục bộ, có thể đã được bấm giờ nhanh hơn. Vì vậy, điều tốt nhất để làm là phân vùng bộ nhớ. Phần gần nhất và nhỏ nhất của bộ đệm sẽ sử dụng đồng hồ nhanh nhất. Phần gần nhất và nhỏ nhất tiếp theo sẽ sử dụng đồng hồ chậm hơn một chút, v.v.
Và bây giờ bạn có bộ nhớ cache và RAM L1 & L2.
Điều này đưa chúng ta đến lý do tiếp theo, tiêu thụ điện năng.
Bộ nhớ cache thực sự tiêu thụ một lượng điện năng đáng kể. Không chỉ bộ nhớ, mà tất cả logic xung quanh nó xử lý ánh xạ giữa các dòng bộ đệm và bộ nhớ chính. Tăng hiệu suất của logic bổ sung này có thể dẫn đến tăng mức tiêu thụ năng lượng. Giờ đây, đối với một số ứng dụng nhất định (di động, được nhúng), bạn thậm chí còn có nhiều động lực hơn để giữ bộ nhớ cache nhỏ.
Xem sự đánh đổi trong thiết kế bộ nhớ cache để tối ưu hóa năng lượng và hiệu suất: Một nghiên cứu điển hình (Ching-Long Su và Alvin M. Despain, 1995).
Bỏ qua tất cả các yếu tố kinh tế / hiệu suất / tiêu thụ năng lượng, câu trả lời cho câu hỏi của bạn là: nó phụ thuộc vào nhiều yếu tố kiến trúc vi mô.
Như một ví dụ xem tham chiếu này - độ trễ truy cập L1 đo được cho tất cả các bộ xử lý được thử nghiệm là 4 chu kỳ xung nhịp. Tần số của các bộ xử lý gần như giống nhau, nhưng kích thước của bộ đệm L1 khác nhau đến 3 lần.
Lý do cho độ trễ không đổi đến L1 trên một số bộ xử lý khác nhau trong thử nghiệm trên có nguồn gốc từ kiến trúc vi mô của bộ đệm: chính việc truy cập bộ đệm (lấy dữ liệu từ bộ nhớ) chỉ mất một chu kỳ xung nhịp. Ba chu kỳ bổ sung được dành để giải mã truy cập, kiểm tra sự hiện diện của dữ liệu và hơn thế nữa ... Số lượng các giai đoạn bổ sung là giống nhau trên các bộ xử lý trong thử nghiệm, do đó độ trễ truy cập là như nhau.
Mặc dù ví dụ trên, người ta không nên kết luận rằng độ trễ của bộ đệm là độc lập với kích thước của bộ đệm. Nếu ai đó sẽ cố gắng thực hiện bộ đệm L1 lớn một cách lố bịch, logic thực hiện tất cả các hoạt động cần thiết cho việc đọc bộ đệm cũng sẽ trở nên lớn. Tại một số điểm, độ trễ lan truyền qua tất cả logic này sẽ quá dài và các hoạt động chỉ mất một chu kỳ đồng hồ trước đó sẽ phải được chia thành nhiều chu kỳ đồng hồ. Điều này sẽ tăng độ trễ.
Giả sử rằng bộ đệm trong câu hỏi được triển khai trong SRAM, các mô-đun bị ảnh hưởng bởi kích thước bộ đệm nhiều nhất là: bộ giải mã hàng và mux. Tuy nhiên, ngay cả các ampe cảm giác cũng sẽ bị ảnh hưởng đối với các bộ đệm rất lớn: điện áp xoay nhỏ hơn trên một đường do điện dung cao hơn sẽ đòi hỏi một amp cảm giác "mạnh hơn". Nói rằng, ảnh hưởng nghiêm trọng nhất đến tốc độ logic sẽ được thêm vào bằng điện dung kết nối dây - điện dung này có nhiều hơn sự phụ thuộc tuyến tính vào kích thước SRAM. Các chi tiết chính xác được thực hiện cụ thể.
Bây giờ, bộ nhớ cache L1 khá ổn định trong thời gian trễ vì hiệu suất của chúng là quan trọng nhất. Nếu bạn cố gắng phân tích bộ đệm L2 và L3, hình ảnh sẽ phức tạp hơn rất nhiều.
Bức tranh phức tạp hơn nhiều khi bạn xem xét bộ xử lý đa lõi - chúng có logic bổ sung để đảm bảo tính liên kết bộ đệm . Điều này dẫn đến một yếu tố bổ sung ảnh hưởng đến độ trễ của việc truy cập bộ đệm: lịch sử truy cập vào bộ nhớ của tất cả các lõi.
Tóm lược
Như bạn có thể thấy câu hỏi của bạn không phải là tầm thường và không thể được trả lời hoàn toàn. Tuy nhiên, nếu bạn xem xét các bộ đệm ưu tiên về mặt kinh tế và hiệu suất, thì tôi sẽ nói rằng kích thước của chúng sẽ không ảnh hưởng đến độ trễ theo bất kỳ cách đáng giá nào.
Dành cho độc giả quan tâm:
Tài liệu tham khảo này là một phân tích rất sâu về các yếu tố hiệu suất của CPU hiện đại. Có rất nhiều tài liệu liên quan đến bộ nhớ cache trong đó. Yêu cầu hiểu biết sâu sắc về kiến trúc máy tính và các nguyên tắc kiến trúc vi mô (cách khác - một bản tóm tắt tốt về các chủ đề người ta cần biết để trở thành một chuyên gia trong lĩnh vực này).
Kỹ sư kiểm tra bộ nhớ cache CPU ở đây - Dave Tweed trong các bình luận có lời giải thích chính xác. Bộ đệm có kích thước để tối đa hóa hiệu suất ở mức giá dự kiến của CPU. Bộ đệm nói chung là người tiêu dùng lớn nhất của không gian chết và do đó kích thước của nó tạo ra sự khác biệt lớn về kinh tế (và hiệu suất).
Hãy xem trang gia đình CPU Ivy Bridge của Intel: http://ark.intel.com/products/codename/29902/Ivy-Bridge
Xeon đầu cuối đi kèm với 30 MB bộ nhớ cache, có 12 lõi và có giá khoảng 2700 USD. I3 cấp thấp hơn với 3 MB bộ nhớ cache (i3-3217) có giá chỉ 500 đô la cho toàn bộ máy tính xách tay (tôi không thể tìm thấy riêng lẻ).
Xeon cho hiệu suất cao nhất nhưng cũng tốn nhiều chi phí hơn khi sản xuất và thử nghiệm. I3 rẻ hơn nhiều nhưng sự đánh đổi là kích thước khuôn nhỏ hơn trong đó bộ đệm là phần lớn nhất.