看板 Grad-ProbAsk 關於我們 聯絡資訊
※ 引述《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)
Numbstu:恩 是的 07/07 17:49
Numbstu:當write miss時 將目標block由記憶體搬到快取 07/07 17:52
Numbstu:= = 上面那個是水球@_@ 07/07 17:53