a) Thao tác đọc bộ nhớ
46 Khi một từ (1byte) dữ liệu được đọc thì CPU cung cấp địa chỉ cho bộ điều khiển bộ nhớ. Bộ điều khiển bộ nhớ tách địa chỉ 24 bit làm hai phần như hình dưới:
- 2 bit địa chỉ thấp nhất được đặt vào thanh ghi địa chỉ MAR của cache. Các bit này xác định vị trí (thứ tự) khối cần tìm trong cache.
- 22 bit địa chỉ cao mô tả số hiệu thẻ. Số hiệu thẻ là con số xác định vị trí của khối nhớ trong bộ nhớ.
Thao tác đọc dữ liệu từ bộ nhớ được tiến hành như sau:
Bước 1: bộ điều khiển cache đọc khối dữ liệu trong cache tại vị trí có số thứ tự trùng với phân số thứ tự khối trong địa chỉ trên BUS.
Bước 2: bộ điều khiển cache xác định xem số hiệu thẻ của khối trong cache này có trùng với số hiệu thẻ trong địa chỉ BUS hay không.
Bước 3: nếu trùng thì việc quy chiếu là "trùng" và một từ dữ liệu được đọc từ cache vào CPU. Nếu không trùng (trường hợp "trượt") thì từ dữ liệu phải được lấy từ bộ nhớ chính. Trong trường hợp "trượt" cần phải sao lưu dữ liệu trong cache vào bộ nhớ chính theo địa chỉ của nó,
sau đó mới nạp dữ liệu mới cùng với thẻ của nó vào cache và đặt bit cờ F = 0 (ghi nhận nội
dung cache trùng với nội dung bộ nhớ chính) và dữ liệu được cung cấp cho CPU.
Số thẻ cache trong các khối cache có thể trùng nhau (khi khối cache chưa bị thay thế) và có thể khác nhau (khi nội dung khối cache bị thay).
b) Thao tác ghi bộ nhớ
Có một vài kỹ thuật được dùng để ghi dữ liệu vào bộ nhớ chính khi thực hiện các lệnh ghi bộ
nhớ: Kỹ thuật ghi xuyên (write through) và kỹ thuật sao lưu (copy back).
+ Ở loại cache ghi xuyên (write through) dữ liệu được ghi lên cả cache lẫn bộ nhớ chính cùng một lúc, không dùng đến bit cờ F. Kỹ thuật này làm cho thời gian ghi bộ nhớ tăng lên.
+ Ở loại cache sao lưu (copy back) thì dữ liệu chỉ được ghi vào cache và bit cờ F được lập (F = 1), ghi nhận nội dung cache khác với nội dung bộ nhớ chính. Sau đó nếu khối dữ liệu cần được thay thế bằng khối dữ liệu khác từ bộ nhớ chính (trường hợp "trượt") thì bit cờ F được kiểm tra để xác định xem có cần
47 thực hiện thao tác sao lưu này không, nếu F = 1 thì cần thực hiện sao lưu, nếu F = 0 thì không cần sao lưu. Kỹ thuật này làm tăng tốc độ thao tác với bộ nhớ và được gọi là kỹ thuật sao lưu có dựng cờ.