Tổ chức bộ nhớ đệm
December 22, 2018Bộ nhớ đệm chứa những dữ liệu sao chép từ những địa chỉ bộ nhớ chính khác nhau.
Bởi vì bộ nhớ đệm không chứa các sao chép dữ liệu từ tất cả địa chỉ trong bộ nhớ chính cùng một lúc nên để biết địa chỉ nào đang được sao chép vào bộ nhớ đệm, hay cần dữ liệu từ những địa chỉ này, chúng ta có thể đọc ở bộ nhớ đệm không cần phải vào bộ nhớ chính. Tag RAM tạo nên chức năng này, là bộ nhớ thêm trong bộ nhớ đệm ghi nhận các chỉ mục địa chỉ được sao chép vào bộ nhớ đệm.
Cách đọc dữ liệu trên bộ nhớ đệm?
Mỗi dòng của bộ nhớ đệm có một thẻ địa chỉ tương ứng chứa địa chỉ dữ liệu sao chép hiện hành. Nếu cần lấy dữ liệu thì phần quản lý bộ nhớ đệm có thể nhanh chóng tìm thẻ địa chỉ để biết nó có đang hiện chứa trong bộ nhớ đệm (Hit) hoặc không có (Miss). Nếu dữ liệu có sẵn thì nó sẽ đọc từ bộ nhớ đệm nhanh chóng, nếu không thì nó phải đọc từ bộ nhớ chính lâu hơn.
Nhiều cách khác nhau tổ chức hay ánh xạ các thẻ ảnh hưởng cách bộ đệm hoạt động ra sao. Một bộ đệm có thể được ánh xạ như dạng kết hợp toàn bộ (full associative), hay được ánh xạ trực tiếp (direct -mapped), hay liên hợp vùng (set associative).
Ở bộ nhớ đệm được được ánh xạ theo dạng kết hơp toàn bộ khi một yêu cầu đọc dữ liệu từ địa chỉ bộ nhớ chính cụ thể thì địa chỉ này được so sánh với tất cả các thẻ địa chỉ trong tag RAM của bộ nhớ đệm. Nếu địa chỉ bộ nhớ chính được yêu cầu được tìm thấy trong thẻ (a hit), vị trí tương ứng trong bộ đệm được đáp lại. Nếu địa chỉ được yêu cầu này không được tìm thấy trong mục thẻ địa chỉ (a miss) thì dữ liệu buộc phải lấy từ địa chỉ bộ nhớ chính.
Bộ nhớ đệm dạng được ánh xạ trực tiếp
Những địa chỉ bộ nhớ chính cụ thể được gán trước cho những định vị dòng cụ thể trong bộ nhớ đệm nơi chúng sẽ được chứa. Do đó Tag RAM có thể sử dụng ít bit hơn bởi vì khi biết rõ địa chỉ bộ nhớ chính ở đâu thì chỉ có một thẻ nhớ địa chỉ cần phải kiếm tra và mỗi thẻ cần lưu trữ chỉ những địa chỉ có thể mà một dòng cho sẵn có thể chứa. Điều này cũng dẫn đến vận hành nhanh hơn do chỉ một địa chỉ thẻ cần được kiểm tra cho địa chỉ bộ nhớ có sẵn.
Bộ nhớ đệm dạng liên hợp vùng
Là một bộ nhớ đệm được ánh xạ trực tiếp được sửa đổi. Bộ đệm được ánh xạ trực tiếp chỉ có một bộ liên hợp bộ nhớ, nghĩa là một địa chỉ bộ nhớ cho sẵn có thể được ánh xạ vào (hay được kết hợp với) chỉ một định vị đường bộ đệm cho sẵn cụ thể. Bộ nhớ đệm liên hợp hai dòng (two-way) có hai bộ, nên một định vị bộ nhớ cho sẵn có thể là một trong hai định vị. Bộ nhớ đệm liên hợp bốn dòng (four-way) có thể chứa địa chỉ bộ nhớ cho sẵn vào bốn định vị dòng đệm khác nhau (hoặc các bộ). Bằng cách tăng liên hợp định vị, cơ hội tìm ra một giá trị gia tăng; tuy nhiên nó mất thời gian hơi nhiều hơn vì nhiều địa chỉ phải được kiểm tra khi tìm kiếm một định vị cụ thể trên bộ nhớ đệm.
Ngắn gọn mỗi bộ trong bộ nhớ đệm liên hợp n dòng là một bộ nhớ đệm con có mối liên hợp với mỗi địa chỉ bộ nhớ chính. Ngay khi số bộ nhớ đệm con hay số bộ gia tăng thì bộ nhớ đệm trở thành kết hợp toàn bộ (full associative) Tình huống mà bất kỳ địa chỉ bộ nhớ có thể chứa trong bất kỳ định vị dòng đệm nào. Trong trường hợp này bộ nhớ đệm liên hợp n dòng là một sự thỏa hiệp giữa dạng bộ nhớ đệm kết hợp toàn bộ và dạng bộ nhớ đệm được ánh xạ trực tiếp.