為什麼這篇3th意思鄉民發文收入到精華區:因為在3th意思這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者bill09218 (yu)看板Grad-ProbAsk標題Re: [理工] [計組] 關於ca...
※ 引述《Numbstu (noob)》之銘言:
: ※ 引述《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
我觀念好像搞錯了
我一直以為記憶體階層之間都互相在讀取資料而已
所以說 假如初始,讓cache跟memory的3th區塊都同為一個值叫做"hi",
當寫入快取動作發生時,讓cache的3th區塊被寫新的值叫做"bye"
而且我什麼write (through 、 back) ...這些機制都沒有,
將來要是被LRU當作犧牲區塊時,
娃~
memory 3th區塊因為沒有任何更新機制,使得區塊的值仍為"hi",
所以"bye"這個值就這樣因為被犧牲替換掉 而消失了,
因此先前的寫入動作就白做了!
是不是這個意思呢?
謝謝!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.135.237.24
※ 編輯: bill09218 來自: 220.135.237.24 (07/07 17:44)