Trong những năm 1980, tốc độ vi xử lý tăng cấp số nhân so với thời gian truy cập bộ nhớ. Rõ ràng là cần có giải pháp để cải thiện tốc độ truy cập bộ nhớ và làm cho toàn bộ hệ thống hiệu quả hơn. Những sự chênh lệch giữa tốc độ xử lý và tốc độ bộ nhớ đã dẫn đến sự phát triển của bộ nhớ đệm (cache).
Bộ Nhớ Đệm (Cache) Là Gì?
Sự phát minh của cache là một trong những sự kiện quan trọng nhất trong lịch sử khoa học máy tính. Nhưng cache chính xác là gì? Nó hoạt động như thế nào?

Ở mức cơ bản, cache là một loại bộ nhớ tốc độ cao. Nó chứa một lượng nhỏ bộ nhớ lưu trữ các lệnh mà máy tính có khả năng cần tiếp theo khi thực hiện một tác vụ cụ thể. Máy tính tải thông tin đó vào cache bằng các thuật toán phức tạp và kiến thức về mã lập trình. Mục đích của hệ thống cache trong máy tính là đảm bảo CPU có quyền truy cập không bị cản trở vào dữ liệu nó cần theo thứ tự nó cần.
Để hiểu cách này hoạt động, bạn cần biết máy tính có ba loại bộ nhớ. Trước tiên là bộ nhớ chính tìm thấy trong ổ cứng hoặc SSD. Đây là kho chứa bộ nhớ lớn nhất trong máy. Tiếp theo là RAM (Random Access Memory), nhanh hơn nhưng nhỏ hơn thiết bị bộ nhớ chính. Cuối cùng là các đơn vị bộ nhớ bên trong chính CPU, gọi là cache. Cache là nhanh nhất trong tất cả các loại bộ nhớ.
Khi một chương trình khởi chạy, chương trình đó bắt đầu thực thi một chuỗi lệnh tìm thấy trong mã của chương trình. Thông tin đó trước tiên tải vào RAM rồi chuyển đến CPU. Để sử dụng dữ liệu tốt nhất để thực hiện các lệnh, CPU cần bộ nhớ tốc độ cao. Đó là lúc cache xuất hiện.
Các Cấp Độ Cache
Bên trong CPU, có ba cấp cache khác nhau: L1, L2 và L3. Một số công ty thậm chí đang nghiên cứu cache L4.
Cache L1 là nhanh nhất và nhỏ nhất trong ba cấp. Nó chứa dữ liệu CPU có khả năng cần nhất để thực hiện các phép toán. L1 thường chứa khoảng 256KB, mặc dù một số đã đẩy lên 1MB.

Cache nhỏ này có double purpose, vừa có cache lệnh (instruction cache) vừa có cache dữ liệu (data cache). Cache lệnh xử lý các phép toán CPU phải thực hiện, cache dữ liệu giữ thông tin mà quá trình phải thực hiện trên đó.
Tiếp theo là cache L2. L2 chậm hơn và chứa nhiều thông tin hơn L1. Nó chứa từ 256K đến 8MB dữ liệu mà máy tính có khả năng cần truy cập tiếp theo.
Cuối cùng là cache L3. Nó lớn nhất và chậm nhất, lưu trữ từ 4MB đến 50MB.
Cách Cache Hoạt Động
Khi một chương trình bắt đầu trên máy tính của bạn, dữ liệu chảy từ RAM đến cache L3, rồi L2 và cuối cùng L1. Khi chương trình chạy, CPU tìm thông tin nó cần để chạy, bắt đầu từ cache L1 và đi ngược lại. Nếu CPU tìm thấy thông tin cần thiết, đó gọi là cache hit (trúng cache). Nếu không tìm thấy, đó là cache miss (trượt cache), và máy tính phải đi tìm nơi khác để tìm thông tin nó cần.

Độ trễ (latency) là yếu tố quan trọng trong hiệu quả của máy tính. Độ trễ là thời gian cần để truy xuất một mảnh thông tin. Cache L1 nhanh nhất, do đó có độ trễ thấp nhất. Khi cache miss xảy ra, độ trễ tăng lên vì máy tính phải tiếp tục tìm kiếm trong các cache khác để tìm thông tin nó cần.
Máy tính mới hơn có kích thước transistor CPU nhỏ hơn nhiều, cho phép xây dựng bo mạch chủ với nhiều chỗ hơn để đặt cache trực tiếp lên đó. Việc đặt cache gần CPU hơn về mặt vật lý làm giảm độ trễ.
Mặc dù cache không phải là thứ người bán máy tính thường nhắc đến, nhưng nó đáng để tìm hiểu. Cache nhanh hơn sẽ có độ trễ ít hơn, làm cho chương trình của bạn chạy nhanh và hiệu quả hơn.