多核心與同步
在MESI協定中,核心0以Modified(M)狀態持有某快取列,核心1要讀取它時,一般的動作為下列何者?
- A核心0將最新的值寫回,或直接傳給核心1,雙方的快取列都轉為Shared(S)狀態
- B核心1讀取主記憶體中的舊值,核心0維持M狀態
- C核心1的讀取會一直等待,直到核心0逐出該快取列
查看答案與解析
正確答案:A. 核心0將最新的值寫回,或直接傳給核心1,雙方的快取列都轉為Shared(S)狀態
核心0得知核心1的讀取請求後,由於清楚自己持有最新的值,便會將該值寫回主記憶體,或直接傳給核心1。之後兩個核心持有相同的內容,所以雙方都轉為S狀態。重點在於不能讓對方讀到主記憶體中的舊值。直接傳遞的方式,比經由主記憶體更能快速送達數值。
- A. 正確。最新的值會被共享。
- B. 這樣無法維持一致性。
- C. 不必等待逐出,會立即處理。