Bộ nhớ đệm là một phần quan trọng trong hoạt động của cả hệ thống máy tính. Nó giúp lưu trữ những thông tin cần thiết, thường xuyên được truy cập bởi các thiết bị khác giúp cải thiện đáng kể hiệu năng làm việc. Trong bài viết này chúng ta sẽ cùng nhau tìm hiểu Cache là gì, có tác dụng như thế nào và phân loại bộ nhớ đệm CPU/GPU, bộ nhớ đệm chuyển đổi, Web Cache, Disk Cache…
Nội dung chính
Cache là gì?
Cache trong máy tính là bộ nhớ đệm chứa dữ liệu, các dữ liệu được nằm chờ yêu cầu từ ứng dụng hoặc phần cứng. Đây có thể là kết quả của tính toán trước đó, hoặc là sự trùng lặp dữ liệu được lưu trữ ở một nơi khác. Phần cứng cài đặt cache như một nơi chứa dữ liệu tạm thời để có thể sử dụng lại. Vi xử lý (CPUs) và ổ đĩa cứng (HDD), trình duyệt web và máy chủ (server) cũng thường xuyên sử dụng Cache.
Cache gồm nhiều thanh ghi. Mỗi thanh ghi chứa 1 bit để đánh dấu là đang lưu dữ liệu từ bộ nhớ hoặc chưa được sử dụng, 1 nhãn (tag) để kiểm tra xem nó có phải là dữ liệu ứng với bộ nhớ hay không và 1 vùng để lưu trữ dữ liệu giống với bộ nhớ.
Khi cache client (vi xử lý, trình duyệt web…) cần truy cập dữ liệu ở bộ nhớ, nó sẽ kiểm tra cache. Nếu 1 thanh ghi có nhãn tương ứng với dữ liệu mong muốn thì cache client sẽ sử dụng dữ liệu trên thanh ghi đó. Trường hợp này được gọi là cache hit. Lúc này CPU sẽ truy cập vào bộ nhớ, lấy dữ liệu cần thiết, đồng thời lưu dữ liệu đó vào 1 thanh ghi nào đó.
Ngược lại, nếu không tìm được thanh ghi phù hợp thì cache miss xảy ra. CPU sẽ loại bỏ một số thanh ghi để dọn chỗ cho dữ liêu không nằm trong cache. Việc loại bỏ thanh ghi phải tuân thủ các quy định về thay thế, thông dụng nhất là “least recently used” (LRU), tức là loại bỏ những cache ít được sử dụng nhất.
Bộ nhớ đệm CPU, GPU
Bộ nhớ đệm được sử dụng bởi đơn vị xử lý trung tâm (CPU) của máy tính để giảm thiểu thời gian trung bình trong việc truy cập dữ liệu trong bộ nhớ chính. Bộ nhớ đệm nhỏ hơn, nhanh hơn trong việc lưu trữ dữ liệu sao chép từ vùng bộ nhớ chính được sử dụng thường xuyên nhất. Hầu hết CPU sở hữu những bộ nhớ đệm độc lập khác biệt nhau, bao gồm lệnh và bộ nhớ đệm dữ liệu.
Bộ nhớ đệm của vi xử lý đồ họa
Các phiên bản trước của vi xử lý đồ họa (GPUs) không có các bộ nhớ đệm cứng. Tuy nhiên, khi GPUs chuyển sang vi xử lý không mang tính đồ họa, chúng lại sử dụng các bộ nhớ đệm lớn. Chẳng hạn như GT200 không có bộ đệm L2, trong khi bộ đệm của Fermi lại có 768KB, của Kepler là 1536KB và Maxwell có 2048KB.
Bộ đệm chuyển đổi
Đơn vị quản lý dữ liệu (MMU): tìm nạp những lối vào của trang bảng từ bộ nhớ chính sở hữu bộ nhớ đệm đặc biệt, được sử dụng để ghi lại kết quả của địa chỉ ảo đến địa chỉ vật lý. Bộ nhớ đệm đặc biệt này được gọi là Bộ Đệm Chuyển Đổi.
Bộ nhớ đệm Web – Web Cache
Trình duyệt web và Máy chủ Web sử dụng Bộ nhớ đệm Web để chứa các phản hồi từ hệ thống máy chủ, chẳng hạn như hình ảnh và các trang web. Cache Web giảm thiểu thông tin cần được truyền qua mạng, bởi vì chúng có thể được tái sử dụng. Điều này giúp giảm băng thông và nhận được yêu cầu dữ liệu từ máy chủ nhanh hơn, đồng thời cải thiện tốc độ phản hồi của người dùng.
Các trình duyệt web sử dụng bộ nhớ đệm liền, một số nhà cung cấp mạng hay tổ chức lại thích dùng máy chủ đệm để được chia sẻ cho tất cả người dùng trong hệ thống đó. Một dạng khác của bộ nhớ đệm là P2P (peer to peer). Nó giúp các tập tin được các ứng dụng P2P tìm kiếm nhiều nhất và còn giúp tăng tốc chuyển dữ liệu P2P. Tương tự, các vùng tương đương sẽ xuất hiện, điều này giúp cộng đồng thực hiện các nhiệm vụ vận chuyển P2P chẳng hạn như Corelli.
Bộ nhớ đệm đĩa – Disk Cache
Bộ nhớ đệm đĩa là một bộ phận để cải thiện thời gian đọc từ đĩa cứng hoặc ghi lên đĩa cứng. Hiện nay, chúng thường được xem như một phần của đĩa cứng. Disk Cache cũng có thể là một phần riêng biệt của RAM. Nó chứa dữ liệu đã được đọc gần đây và những vùng dữ liệu gần kề có thể được kết nối trong thời gian tới. Việc viết bộ nhớ đệm cũng được hộ trỡ bởi một số bộ nhớ đệm đĩa.
Xem thêm: ROM là gì?.