Các phương pháp ánh xạ địa chỉ

1. Tổng quan

Như chúng ta đã biết, bộ nhớ đệm kết nối tốc độ không phù hợp giữa bộ xử lý và bộ nhớ chính.

Khi lần truy cập bộ nhớ cache xảy ra:

  • Từ bắt buộc có trong bộ nhớ đệm.
  • Từ cần thiết được chuyển đến CPU từ bộ nhớ đệm.

Khi bộ nhớ cache bị bỏ lỡ xảy ra,

  • Từ bắt buộc không có trong bộ nhớ đệm.
  • Trang chứa từ bắt buộc phải được ánh xạ từ bộ nhớ chính.
  • Ánh xạ này được thực hiện bằng kỹ thuật ánh xạ bộ nhớ cache.

Vậy Ánh xạ bộ nhớ cache chúng ta có thể hiểu là :

  • Ánh xạ bộ đệm xác định cách một khối từ bộ nhớ chính được ánh xạ tới bộ nhớ đệm trong trường hợp bộ nhớ đệm bị bỏ sót. Hoặc
  • Ánh xạ bộ nhớ đệm là một kỹ thuật mà theo đó nội dung của bộ nhớ chính được đưa vào bộ nhớ đệm.

Sơ đồ ánh xạ bộ nhớ Cache

2. Ánh xạ trực tiếp

Kỹ thuật đơn giản nhất, được gọi là ánh xạ trực tiếp, ánh xạ từng khối bộ nhớ chính vào chỉ một dòng bộ nhớ cache khả thi.

Bây giờ, chúng ta hãy xét một trường hợp cụ thể sau Hình H.2

Bộ nhớ liên kết đắt hơn so với bộ nhớ truy cập ngẫu nhiên vì logic bổ sung liên quan đến mỗi ô. Khả năng sử dụng bộ nhớ truy cập ngẫu nhiên cho bộ đệm được khảo sát trong Hình 6.20. Địa chỉ CPU 15 bit được chia thành hai trường. Chín bit ít quan trọng nhất tạo thành trường chỉ mục và sáu bit còn lại tạo thành trường thẻ. Hình cho thấy rằng bộ nhớ chính cần một địa chỉ bao gồm cả thẻ và các bit chỉ mục. Số bit trong trường chỉ mục bằng số các bit địa chỉ cần thiết để truy cập bộ nhớ đệm. Trong trường hợp chung, có 2 từ ‘trong bộ nhớ đệm và 2’ từ trong bộ nhớ chính. Địa chỉ bộ nhớ n-bit được chia thành hai trường: k bit cho trường chỉ mục và n – k bit cho trường thẻ. tổ chức bộ nhớ cache ánh xạ trực tiếp sử dụng địa chỉ n-bit để truy cập bộ nhớ chính và chỉ mục k-bit để truy cập bộ nhớ đệm.

Trong trường hợp chung, có 2 từ ‘trong bộ nhớ đệm và 2’ từ trong bộ nhớ chính. Địa chỉ bộ nhớ n-bit được chia thành hai trường: k bit cho trường chỉ mục và n – k bit cho trường thẻ. tổ chức bộ nhớ cache ánh xạ trực tiếp sử dụng địa chỉ n-bit để truy cập bộ nhớ chính và chỉ mục k-bit để truy cập bộ nhớ đệm. Tổ chức bên trong của các từ trong bộ nhớ đệm được thể hiện trong Hình H.3. Mỗi từ trong bộ nhớ cache bao gồm từ dữ liệu và thẻ liên kết của nó. Khi một từ mới lần đầu tiên được đưa vào bộ nhớ cache, các bit thẻ được lưu trữ cùng với các bit dữ liệu. Khi CPU tạo ra một yêu cầu bộ nhớ, trường chỉ mục được sử dụng cho địa chỉ để truy cập vào bộ đệm.

Trong ánh xạ trực tiếp, gán mỗi khối bộ nhớ cho một dòng cụ thể trong bộ đệm. Nếu một dòng trước đó được khối bộ nhớ chiếm dụng khi khối mới cần được tải, khối cũ sẽ được chuyển vào thùng rác. Không gian địa chỉ được chia thành hai phần trường chỉ mục và trường thẻ. Bộ nhớ đệm được sử dụng để lưu trữ trường thẻ trong khi phần còn lại được lưu trữ trong bộ nhớ chính. Hiệu suất của ánh xạ trực tiếp tỷ lệ thuận với Tỷ lệ truy cập.

Trường thẻ của địa chỉ CPU được so sánh với thẻ trong từ được đọc từ bộ nhớ cache. Nếu hai thẻ khớp nhau, có một lần truy cập và từ dữ liệu mong muốn sẽ được lưu trong bộ nhớ cache. Nếu không có kết quả phù hợp, sẽ có lỗi và từ cần thiết được đọc từ bộ nhớ chính. Sau đó, nó được lưu trữ trong bộ nhớ cache cùng với thẻ mới, thay thế giá trị trước đó. Nhược điểm của ánh xạ trực tiếp là tỷ lệ truy cập có thể giảm đáng kể nếu hai hoặc nhiều từ có địa chỉ cùng một chỉ mục nhưng các thẻ khác nhau được truy cập nhiều lần. Tuy nhiên, khả năng này được giảm thiểu do thực tế là các từ như vậy tương đối xa nhau trong phạm vi địa chỉ (bội số của 512 vị trí trong ví dụ này).

Trường chỉ mục bây giờ được chia thành hai phần: trường khối và trường từ. Trong bộ đệm 512 từ có 64 khối, mỗi khối 8 từ, vì 64 x 8 = 512. Số khối được chỉ định bằng trường 6 bit và từ trong khối được chỉ định bằng trường 3 bit. Trường thẻ được lưu trữ trong bộ nhớ cache là chung cho tất cả tám từ của cùng một khối. Mỗi khi xảy ra lỗi, toàn bộ khối tám từ phải được chuyển từ bộ nhớ chính sang bộ nhớ đệm. Mặc dù điều này mất thêm thời gian, nhưng tỷ lệ truy cập rất có thể sẽ được cải thiện với kích thước khối lớn hơn do tính chất tuần tự của các chương trình máy tính.

Một cách tổng quát:

Tại hình H.5, trong ánh xạ trực tiếp, gán mỗi khối bộ nhớ cho một dòng cụ thể trong bộ đệm. Nếu một dòng trước đó được khối bộ nhớ chiếm dụng khi khối mới cần được tải, khối cũ sẽ được chuyển vào thùng rác. Không gian địa chỉ được chia thành hai phần trường chỉ mục và trường thẻ. Bộ nhớ đệm được sử dụng để lưu trữ trường thẻ trong khi phần còn lại được lưu trữ trong bộ nhớ chính. Hiệu suất của ánh xạ trực tiếp tỷ lệ thuận với Tỷ lệ truy cập.

Mỗi Block của bộ nhớ chính chỉ có thể được nạp vào một Line của cache:

B0 -> L0

B1 -> L1

…..

Bm-1 -> Lm-1

        Bm -> L0

Bm+1 -> L1

Tổng quát:

Bj chỉ có thể nạp vào Lj mod m  , m là số Line của cache.

 

Đặc điểm của ánh xạ trực tiếp:

+ Mỗi một địa chỉ N bit của bộ nhớ chính gồm ba trường:

– Trường Word gồm W bit xác định một từ nhớ trong Block hay Line:

2W = kích thước của Block hay Line

– Trường Line gồm L bit xác định một trong số các Line trong cache:

2L = số Line trong cache = m

– Trường Tag gồm T bit:

T = N – (W+L)

+ Bộ so sánh đơn giản

+ Xác suất cache hit thấp

3. Ánh xạ liên kết toàn phần

Trong kiểu ánh xạ này, bộ nhớ liên kết được sử dụng để lưu trữ nội dung và địa chỉ của từ bộ nhớ. Bất kỳ khối nào cũng có thể đi vào bất kỳ dòng nào của bộ nhớ cache. Điều này có nghĩa là các bit id của từ được sử dụng để xác định từ nào trong khối là cần thiết, nhưng thẻ sẽ trở thành tất cả các bit còn lại. Điều này cho phép đặt bất kỳ từ nào vào bất kỳ vị trí nào trong bộ nhớ đệm. Nó được coi là hình thức ánh xạ nhanh nhất và linh hoạt nhất.

+ Mỗi Block có thể nạp vào bất kỳ Line nào của cache.

+ Địa chỉ của bộ nhớ chính bao gồm hai trường:

– Trường Word giống như trường hợp ở trên.

– Trường Tag dùng để xác định Block của bộ nhớ chính.

+ Tag xác định Block đang nằm ở Line đó