Re: [理工] [計組] 關於cache的inconsistent

看板Grad-ProbAsk作者 (yu)時間13年前 (2012/07/07 17:42), 編輯推噓2(201)
留言3則, 1人參與, 最新討論串3/3 (看更多)
※ 引述《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)

07/07 17:49, , 1F
恩 是的
07/07 17:49, 1F

07/07 17:52, , 2F
當write miss時 將目標block由記憶體搬到快取
07/07 17:52, 2F

07/07 17:53, , 3F
= = 上面那個是水球@_@
07/07 17:53, 3F
文章代碼(AID): #1F-0HzUY (Grad-ProbAsk)
文章代碼(AID): #1F-0HzUY (Grad-ProbAsk)