Re: [理工] Cache
※ 引述《black32044 (大黑)》之銘言:
: 這題其實是模考題目
: 我就拿出來問了
: 題目是這樣的 , X1,X2 are different values in the same block,
: P1,P2 are processors using the write-invalidate the write-invalidate snooping
: protocol.
: time P1 P2 H/M
: 1 WriteX2
: 2 W X2
: 3 Read X1
: 4 R X1
: 5 W X2
: 6 R X1
: 答案是 M,M,M,H,H,M
: 我不知道他的流程耶,希望有高手能解答
雖然有人推文解了,還是回一下
write-invalidate 的意義在於你有多個處理器,共用一塊記憶體
但是各自有自己的快取,當P1處理器對資料做運算時,若P2此時
也有這筆資料區塊的複製,那P2這時持有的資料就不是最新的了
為了解決快取不一致的問題,所以我們發展出了snooping協定,
分1.寫入更新 : 你每寫入一次就通知所有有跟你有同樣區塊的人
把數值改為最新的內容,缺點則是太花時間
2.寫入無效 : 每寫入一次就通知所有有跟你有同樣區塊的人把
該區塊設為無效,若P2之後想要使用被設無效的區塊
則重新從記憶體載入,因為只需設無效不需更新內容,
相對比較節省時間,通常會採用
以這題來說X1,X2都在同一個block ,稱A
1.P1寫(M) : 第一次寫入因為資料還沒載入P1快取必失誤
2.P2寫(M) : 第一次寫入因為資料還沒載入P2快取必失誤,而且此時P1快取中有
block A,故要把P1的A設無效
3.P1讀(M) : 因為被設無效只能重新載入,讀不會更改值不用把P1設無效
4.P2讀(H) : Hit
5.P2寫(H) : Hit,把P1設無效
6.P1讀(M) : 因為被設無效只能重新載入
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.39.159.34
推
01/14 09:33, , 1F
01/14 09:33, 1F
推
01/15 15:55, , 2F
01/15 15:55, 2F
討論串 (同標題文章)