CPU cache là một dạng bộ nhớ nhỏ được tích hợp trực tiếp trên CPU, có vai trò quan trọng trong hiệu suất của CPU.
Khi ta xem thông số kỹ thuật của một CPU, thường sẽ thấy một thông số về bộ nhớ cache được tích hợp trong CPU với dung lượng khoảng vài MB. Thông số này quan trọng đối với hiệu suất của CPU. Nhưng tại sao CPU cần cache, và hoạt động như thế nào, chúng ta hãy tìm hiểu ngay sau đây.
Khi máy tính thực hiện một chương trình, mã nguồn được biên dịch thành mã máy mà CPU có thể hiểu và lưu vào RAM. Khi CPU tính toán, nó truy vấn dữ liệu từ RAM.

Do đó, một lớp bộ nhớ được thêm vào giữa CPU và RAM. Loại bộ nhớ này sử dụng chip SRAM, có tốc độ nhanh hơn rất nhiều so với RAM thông thường, nhưng cũng đắt đỏ hơn. Đối với CPU, đây chính là cache, trong khi RAM thông thường được gọi là backing-store.
Minh họa cho việc sử dụng cache. Không chỉ có một lớp cache sử dụng SRAM, nhiều CPU còn có 2 hoặc thậm chí 3 lớp cache:

Khám phá về bộ nhớ cache, một kỹ thuật phổ biến để tăng tốc máy tính.
Đầu tiên cần nhấn mạnh rằng, có những hạn chế về mặt vật lý trên con chip. Số lượng bóng bán dẫn có thể được đặt gần các đơn vị tính toán bị giới hạn. Do đó, dung lượng của bộ nhớ cache L1 thường rất nhỏ. Ví dụ, bộ nhớ cache L1 trên CPU Intel Pentium 3 vào những năm 2000 là 32 KB, và cho đến năm 2017 trên Intel Core i7, con số này chỉ tăng lên 64 KB.
Tốc độ tăng dung lượng của bộ nhớ cache L1 thường rất chậm do giới hạn của con chip.
Cách hoạt động cơ bản của CPU bao gồm việc đọc dữ liệu và thực hiện các chỉ dẫn hành động. Dữ liệu về chỉ dẫn được truy xuất tuần tự, trong khi dữ liệu thì thường được truy xuất nhiều lần. Để tăng tỷ lệ trúng cache, bộ nhớ cache L1 được chia thành 2 phần: cache dữ liệu và cache chỉ dẫn. L2 cache không được chia như vậy.
Bộ nhớ cache CPU lưu trữ dữ liệu theo từng dòng (cache-line), với kích thước phụ thuộc vào từng loại CPU. Ví dụ, kích thước cache-line của L1 trên CPU Pentium 4 là 43 byte, và của L2 là 128 byte. Hiện nay, xu hướng là sử dụng cùng kích thước cho tất cả các lớp, thường là 64 byte.
Hãy xem xét một CPU 64-bit, với mỗi cache-line có kích thước 64 byte và mỗi thanh ghi (processor register) có thể chứa 8 byte. Điều này có nghĩa là khi một địa chỉ nhớ được truy cập, CPU cache không chỉ chứa dữ liệu được truy cập, mà cả những dữ liệu xung quanh, tổng cộng là 64 byte. Điều này là do tính truy xuất cục bộ, khi một địa chỉ nhớ được truy cập, khả năng cao là những địa chỉ gần sẽ được truy cập tiếp theo.

Vì CPU cache lưu trữ 64 byte trên mỗi dòng, hầu hết các truy cập vào DRAM cũng là 64 byte. Thay vì yêu cầu 8 lần mỗi lần 8 byte, L2 yêu cầu toàn bộ 64 byte một lần. Điều này được gọi là chế độ burst / burst transfer. Điều này giúp giảm tổng số yêu cầu đến DRAM và cải thiện hiệu suất.
Khi yêu cầu dữ liệu, CPU cache muốn nhận cả 64 byte, nhưng cũng muốn dữ liệu cần thiết được truyền trước để tính toán có thể bắt đầu ngay khi dữ liệu sẵn sàng. Thay vì chuyển dữ liệu từ đầu của mỗi đoạn 64 byte, DRAM bắt đầu truyền dữ liệu từ địa chỉ được yêu cầu trước. Dữ liệu được yêu cầu thường được gọi là từ quan trọng.

CPU cache cũng như bộ nhớ tổng thể, là một phần quan trọng của bất kỳ hệ thống máy tính nào. Qua nhiều thập kỷ, ngành công nghiệp máy tính đã tiến hành nhiều nỗ lực để tối ưu hóa và tích hợp các công nghệ bộ nhớ phức tạp nhất. Kiến thức vững về cache và bộ nhớ sẽ giúp các lập trình viên thiết kế hệ thống hoạt động hiệu quả với hiệu suất cao.