Các i486 Intel có 8 KB cache L1. Các Intel Nehalem có 32 instruction cache KB L1 và 32 bộ nhớ cache dữ liệu KB L1 cho mỗi lõi.
Lượng bộ nhớ cache L1 không tăng với tốc độ gần như tốc độ clockrate đã tăng.
Tại sao không?
Các i486 Intel có 8 KB cache L1. Các Intel Nehalem có 32 instruction cache KB L1 và 32 bộ nhớ cache dữ liệu KB L1 cho mỗi lõi.
Lượng bộ nhớ cache L1 không tăng với tốc độ gần như tốc độ clockrate đã tăng.
Tại sao không?
Câu trả lời:
30K văn bản Wikipedia không hữu ích như một lời giải thích về lý do tại sao bộ nhớ cache quá lớn lại kém tối ưu. Khi bộ đệm quá lớn, độ trễ để tìm một mục trong bộ đệm (bao thanh toán trong bộ nhớ cache) bắt đầu tiếp cận độ trễ của việc tìm kiếm mục trong bộ nhớ chính. Tôi không biết các nhà thiết kế CPU nhắm đến tỷ lệ nào, nhưng tôi nghĩ nó tương tự như hướng dẫn 80-20: Bạn muốn tìm dữ liệu phổ biến nhất của mình trong bộ đệm 80% và 20 lần khác % thời gian bạn sẽ phải vào bộ nhớ chính để tìm nó. (hoặc bất cứ điều gì các nhà thiết kế CPU dự định tỷ lệ có thể.)
EDIT: Tôi chắc chắn rằng nó không ở đâu gần 80% / 20%, vì vậy thay thế X và 1-X. :)
Một yếu tố là việc tìm nạp L1 bắt đầu trước khi bản dịch TLB hoàn tất để giảm độ trễ. Với một bộ đệm đủ nhỏ và đủ cao, các bit chỉ mục cho bộ đệm sẽ giống nhau giữa các địa chỉ ảo và vật lý. Điều này có thể làm giảm chi phí duy trì sự kết hợp bộ nhớ với bộ đệm được gắn thẻ vật lý hầu như được lập chỉ mục.
Kích thước bộ đệm bị ảnh hưởng bởi nhiều yếu tố:
Tốc độ của tín hiệu điện (nên là nếu không phải là tốc độ ánh sáng, thứ gì đó có cùng độ lớn):
Chi phí kinh tế (các mạch ở các mức bộ đệm khác nhau có thể khác nhau và kích thước bộ đệm nhất định có thể không xứng đáng)
Nếu kích thước bộ đệm L1 không thay đổi sau 64kb thì đó là vì nó không còn giá trị. Cũng lưu ý rằng bây giờ có "văn hóa" lớn hơn về bộ đệm và nhiều lập trình viên viết mã "thân thiện với bộ đệm" và / hoặc sử dụng các hướng dẫn prefetech để giảm độ trễ.
Tôi đã thử một lần tạo một chương trình đơn giản truy cập các vị trí ngẫu nhiên trong một mảng (của một số MegaBytes): chương trình đó gần như đóng băng máy tính vì mỗi lần đọc ngẫu nhiên, toàn bộ một trang được chuyển từ RAM sang bộ đệm và vì điều đó rất đơn giản. chương trình đã rút hết tất cả các băng thông với việc để lại rất ít tài nguyên cho HĐH.
Tôi tin rằng nó có thể được tóm tắt đơn giản bằng cách nói rằng bộ đệm càng lớn, truy cập sẽ càng chậm. Vì vậy, bộ đệm lớn hơn đơn giản là không giúp ích gì vì bộ đệm được thiết kế để giảm tốc độ truyền thông bus chậm đến RAM.
Vì tốc độ của bộ xử lý đã tăng lên nhanh chóng, bộ đệm có cùng kích thước phải hoạt động nhanh hơn và nhanh hơn để theo kịp nó. Vì vậy, bộ nhớ cache có thể tốt hơn đáng kể (về tốc độ) nhưng không phải về lưu trữ.
(Tôi là một người làm phần mềm nên hy vọng điều này không sai lầm)
Từ bộ đệm L1 :
Bộ đệm cấp 1, hoặc bộ đệm chính, nằm trên CPU và được sử dụng để lưu trữ tạm thời các hướng dẫn và dữ liệu được sắp xếp theo khối 32 byte. Bộ nhớ cache chính là hình thức lưu trữ nhanh nhất. Bởi vì nó được tích hợp vào chip với giao diện trạng thái chờ (độ trễ) bằng 0 cho đơn vị thực thi của bộ xử lý, nên nó bị giới hạn về kích thước .
SRAM sử dụng hai bóng bán dẫn mỗi bit và có thể giữ dữ liệu mà không cần sự trợ giúp bên ngoài, miễn là nguồn điện được cung cấp cho mạch. Điều này trái ngược với RAM động (DRAM), phải được làm mới nhiều lần mỗi giây để giữ nội dung dữ liệu của nó.
Bộ xử lý P55 MMX của Intel, được ra mắt vào đầu năm 1997, đáng chú ý là việc tăng kích thước bộ đệm cấp 1 của nó lên 32KB. Các chip AMD K6 và Cyrix M2 được ra mắt vào cuối năm đó đã tăng mức tiền cược hơn nữa bằng cách cung cấp bộ nhớ cache cấp 1 64KB. 64Kb vẫn là kích thước bộ đệm L1 tiêu chuẩn, mặc dù các bộ xử lý đa lõi khác nhau có thể sử dụng nó khác nhau.
EDIT: Xin lưu ý rằng câu trả lời này là từ năm 2009 và CPU đã phát triển vượt bậc trong 10 năm qua. Nếu bạn đã đến bài viết này, đừng quá coi trọng tất cả các câu trả lời của chúng tôi ở đây.
Trên thực tế kích thước bộ đệm L1 là nút cổ chai lớn nhất về tốc độ trong các máy tính hiện đại. Các kích thước bộ đệm L1 nhỏ bé thảm hại có thể là sweetspot cho giá, nhưng không phải là hiệu suất. Bộ nhớ cache L1 có thể được truy cập ở tần số GHz, giống như hoạt động của bộ xử lý, không giống như truy cập RAM chậm hơn 400 lần. Nó rất tốn kém và khó thực hiện trong thiết kế 2 chiều hiện tại, tuy nhiên, về mặt kỹ thuật là có thể thực hiện được, và công ty đầu tiên thực hiện thành công, sẽ có máy tính nhanh hơn 100 lần và vẫn hoạt động tốt, điều này sẽ tạo ra nhiều cải tiến lớn trong nhiều các trường và hiện chỉ là accessbile thông qua các cấu hình ASIC / FPGA đắt tiền và khó lập trình. Một số trong những vấn đề này liên quan đến các vấn đề độc quyền / IP và lòng tham của công ty kéo dài hàng thập kỷ, trong đó một cán bộ kỹ sư trừng phạt và không hiệu quả là những người duy nhất có quyền truy cập vào các hoạt động bên trong, và hầu hết được đưa ra các lệnh tuần hành để vắt kiệt những người bảo vệ vô nghĩa có hiệu quả về chi phí. Nghiên cứu tư nhân hóa quá mức luôn dẫn đến sự đình trệ công nghệ hoặc điều tiết như vậy (như chúng ta đã thấy trong ngành hàng không vũ trụ và ô tô của các nhà sản xuất lớn và sắp trở thành dược phẩm). Nguồn mở và quy định bí mật thương mại và bằng sáng chế hợp lý hơn có lợi cho các nhà phát minh và công chúng (chứ không phải là ông chủ công ty và cổ đông) sẽ giúp ích rất nhiều ở đây. Nó sẽ là không có trí tuệ để phát triển để tạo ra bộ đệm L1 lớn hơn nhiều và điều này nên và có thể đã được phát triển từ nhiều thập kỷ trước. Chúng ta sẽ tiến xa hơn trong máy tính và nhiều lĩnh vực khoa học sử dụng chúng nếu có. và những người chủ yếu được đưa ra các lệnh tuần hành để vắt kiệt sự bảo vệ vô nghĩa có hiệu quả về chi phí. Nghiên cứu tư nhân hóa quá mức luôn dẫn đến sự đình trệ công nghệ hoặc điều tiết như vậy (như chúng ta đã thấy trong ngành hàng không vũ trụ và ô tô của các nhà sản xuất lớn và sắp trở thành dược phẩm). Nguồn mở và quy định bí mật thương mại và bằng sáng chế hợp lý hơn có lợi cho các nhà phát minh và công chúng (chứ không phải là ông chủ công ty và cổ đông) sẽ giúp ích rất nhiều ở đây. Nó sẽ là không có trí tuệ để phát triển để tạo ra bộ đệm L1 lớn hơn nhiều và điều này nên và có thể đã được phát triển từ nhiều thập kỷ trước. Chúng ta sẽ tiến xa hơn trong máy tính và nhiều lĩnh vực khoa học sử dụng chúng nếu có. và những người chủ yếu được đưa ra các lệnh tuần hành để vắt kiệt sự bảo vệ vô nghĩa có hiệu quả về chi phí. Nghiên cứu tư nhân hóa quá mức luôn dẫn đến sự đình trệ công nghệ hoặc điều tiết như vậy (như chúng ta đã thấy trong ngành hàng không vũ trụ và ô tô của các nhà sản xuất lớn và sắp trở thành dược phẩm). Nguồn mở và quy định bí mật thương mại và bằng sáng chế hợp lý hơn có lợi cho các nhà phát minh và công chúng (chứ không phải là ông chủ công ty và cổ đông) sẽ giúp ích rất nhiều ở đây. Nó sẽ là không có trí tuệ để phát triển để tạo ra bộ đệm L1 lớn hơn nhiều và điều này nên và có thể đã được phát triển từ nhiều thập kỷ trước. Chúng ta sẽ tiến xa hơn trong máy tính và nhiều lĩnh vực khoa học sử dụng chúng nếu có. Nghiên cứu tư nhân hóa quá mức luôn dẫn đến sự đình trệ công nghệ hoặc điều tiết như vậy (như chúng ta đã thấy trong ngành hàng không vũ trụ và ô tô của các nhà sản xuất lớn và sắp trở thành dược phẩm). Nguồn mở và quy định bí mật thương mại và bằng sáng chế hợp lý hơn có lợi cho các nhà phát minh và công chúng (chứ không phải là ông chủ công ty và cổ đông) sẽ giúp ích rất nhiều ở đây. Nó sẽ là không có trí tuệ để phát triển để tạo ra bộ đệm L1 lớn hơn nhiều và điều này nên và có thể đã được phát triển từ nhiều thập kỷ trước. Chúng ta sẽ tiến xa hơn trong máy tính và nhiều lĩnh vực khoa học sử dụng chúng nếu có. Nghiên cứu tư nhân hóa quá mức luôn dẫn đến sự đình trệ công nghệ hoặc điều tiết như vậy (như chúng ta đã thấy trong ngành hàng không vũ trụ và ô tô của các nhà sản xuất lớn và sắp trở thành dược phẩm). Nguồn mở và quy định bí mật thương mại và bằng sáng chế hợp lý hơn có lợi cho các nhà phát minh và công chúng (chứ không phải là ông chủ công ty và cổ đông) sẽ giúp ích rất nhiều ở đây. Nó sẽ là không có trí tuệ để phát triển để tạo ra bộ đệm L1 lớn hơn nhiều và điều này nên và có thể đã được phát triển từ nhiều thập kỷ trước. Chúng ta sẽ tiến xa hơn trong máy tính và nhiều lĩnh vực khoa học sử dụng chúng nếu có. Nó sẽ là không có trí tuệ để phát triển để tạo ra bộ đệm L1 lớn hơn nhiều và điều này nên và có thể đã được phát triển từ nhiều thập kỷ trước. Chúng ta sẽ tiến xa hơn trong máy tính và nhiều lĩnh vực khoa học sử dụng chúng nếu có. Nó sẽ là không có trí tuệ để phát triển để tạo ra bộ đệm L1 lớn hơn nhiều và điều này nên và có thể đã được phát triển từ nhiều thập kỷ trước. Chúng ta sẽ tiến xa hơn trong máy tính và nhiều lĩnh vực khoa học sử dụng chúng nếu có.