基本介紹
- 中文名:寫一次法
- Invalid:數據無效
- Valid:數據相一致,且不唯一
- Dirty:該行與主存對應塊的數據不一致
四種狀態,演變,
四種狀態
1.Invalid:數據無效
2.Valid:該行與主存對應塊的數據相一致,且不唯一(其它CPU的Cache中可能也有對應記憶體塊數據)
3.Reserved:該行與主存對應塊的數據相一致,且唯一(其它CPU的Cache中沒有對應記憶體塊數據)
4.Dirty:該行與主存對應塊的數據不一致
演變
1.讀命中:從Cache中取數據,行狀態不變。
2.讀缺失:從主存中讀數據塊到Cache。其它Cache嗅探到這個讀操作,若其中任何一個Cache有快取這塊數據,且處於Dirty狀態,則讀操作被中斷,那個Dirty數據被寫回主存,然後繼續讀操作。任何與該記憶體塊對應的、狀態為Dirty或Reserved的Cache行,其狀態改為Valid.
3.寫命中:若命中的Cache行狀態為Dirty或Reserved,則只更新該Cache行,且該行的狀態設為Dirty.若命中行狀態為Valid,則同時寫Cache和主存,並將命中行的狀態改寫Reserved.其它Cache嗅探到寫操作,將相應記憶體塊的Cache行狀態置為Invalid.
4.寫缺失:先按讀缺失處理,再按寫命中處理。最終的結果是包含對應塊的其它Cache的對應行狀態被置成Invalid,當前Cache的對應行狀態為Reserved.