Hãy xem xét điều này với sự trợ giúp của một ví dụ. Giả sử chúng ta có một bộ đệm ẩn được ánh xạ trực tiếp và chính sách ghi lại được sử dụng. Vì vậy, chúng tôi có một bit hợp lệ, một bit bẩn, một thẻ và một trường dữ liệu trong một dòng bộ nhớ cache. Giả sử chúng ta có một phép toán: write A (trong đó A được ánh xạ tới dòng đầu tiên của cache).
Điều gì xảy ra là dữ liệu (A) từ bộ xử lý được ghi vào dòng đầu tiên của bộ đệm. Bit hợp lệ và các bit thẻ được đặt. Bit bẩn được đặt thành 1.
Dirty bit chỉ đơn giản là dòng bộ nhớ cache đã từng được ghi kể từ lần cuối cùng nó được đưa vào bộ nhớ cache!
Bây giờ, giả sử một hoạt động khác được thực hiện: đọc E (trong đó E cũng được ánh xạ tới dòng bộ nhớ cache đầu tiên)
Vì chúng ta có bộ nhớ cache được ánh xạ trực tiếp, dòng đầu tiên có thể đơn giản được thay thế bằng khối E sẽ được đưa từ bộ nhớ. Nhưng vì khối được ghi cuối cùng vào dòng (khối A) vẫn chưa được ghi vào bộ nhớ (được chỉ ra bởi bit bẩn), do đó, bộ điều khiển bộ nhớ đệm sẽ đưa ra lệnh ghi ngược vào bộ nhớ để chuyển khối A vào bộ nhớ, sau đó nó sẽ thay thế dòng bằng khối E bằng cách đưa ra hoạt động đọc vào bộ nhớ. bit dơ bẩn hiện được đặt thành 0.
Vì vậy, chính sách ghi lại không đảm bảo rằng khối sẽ giống nhau trong bộ nhớ và dòng bộ đệm liên quan của nó. Tuy nhiên, bất cứ khi nào dòng sắp được thay thế, việc ghi lại được thực hiện trước tiên.
Chính sách ghi thông qua thì ngược lại. Theo đó, bộ nhớ sẽ luôn có dữ liệu cập nhật. Có nghĩa là, nếu khối bộ đệm được ghi, bộ nhớ cũng sẽ được ghi theo. (không sử dụng các bit bẩn)
write back
có hiệu suất tốt hơn?