※ 引述《bill09218 (yu)》之銘言:
: 大家好
: 我對於將資料寫入cache,而沒有改變主記憶體,
: 造成cache與memory中不一致的疑問是
: 我cache的東西不是都來自於memory嗎?
: 假如cache沒有我要的東西,就從memory搬上來寫進cache,
: (假如連memory都沒有的話就page fault再從disk往上搬...)
: 如果這時候cache滿了,用LRU方式,從cache選擇犧牲的block替換掉後,
: 不就相當於cache跟memory在交換一個block而已嗎?
: 因為cache不就是memory的子集合嗎,cache有的東西,保證memory通通都有
: 那所謂的cache與memory之間inconsistent到底是什麼東西意思呢?
: 我有點想不太通
: 謝謝大家
inconsistent的問題其實就是字面上看來的意思;
即memory中的資料和cache中的資料不一致時;
即出自同個page(假設為paging的管理方式),但cache中的3th.block和
memory中的3th.block 資料不同時,即稱之
這種情況都是CPU對Cache寫入但卻沒和Memory同步所造成的
而原波的文章裡面只有提到讀取。
確保一個觀念,寫入跟讀取都是先跟Cache;再來才是Memory
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 115.165.193.110