多核心與同步
兩個核心各自的快取中都有變數x的副本。核心0寫入x之後,核心1讀取x時,若沒有快取一致性(cache coherency)機制,可能發生下列何種問題?
- A核心1讀到自己快取中殘留的舊值
- B核心1的讀取一定比核心0的寫入更快
- C讀到的x值變成2倍
查看答案與解析
正確答案:A. 核心1讀到自己快取中殘留的舊值
在多核心CPU中,各核心的快取內會存有相同位址資料的副本。若核心0只在自己的快取內改寫x,核心1的快取就會殘留舊值,核心1便會讀到這個舊值。快取一致性機制會在寫入時使其他核心的副本失效等,讓無論從哪個核心讀取都能看到最新的值。
- A. 正確。副本的內容會產生不一致。
- B. 這不是速度的問題,而是值是否正確的問題。
- C. 值不會自行改變。