多核心與同步

兩個核心各自的快取中都有變數x的副本。核心0寫入x之後,核心1讀取x時,若沒有快取一致性(cache coherency)機制,可能發生下列何種問題?

  1. A核心1讀到自己快取中殘留的舊值
  2. B核心1的讀取一定比核心0的寫入更快
  3. C讀到的x值變成2倍
查看答案與解析

正確答案:A. 核心1讀到自己快取中殘留的舊值

在多核心CPU中,各核心的快取內會存有相同位址資料的副本。若核心0只在自己的快取內改寫x,核心1的快取就會殘留舊值,核心1便會讀到這個舊值。快取一致性機制會在寫入時使其他核心的副本失效等,讓無論從哪個核心讀取都能看到最新的值。

  • A. 正確。副本的內容會產生不一致。
  • B. 這不是速度的問題,而是值是否正確的問題。
  • C. 值不會自行改變。
練習這個領域 前往領域頁面

多核心與同步的其他題目

  1. 快取一致性協定MESI的四種狀態,下列哪一組是正確的?
  2. 在MESI協定中,快取列處於Modified(M)狀態時,其意義下列何者正確?
  3. 在MESI協定中,核心對處於Exclusive(E)狀態的快取列寫入時,其動作下列何者正確?
  4. 在無效化型的一致性協定中,核心對處於Shared(S)狀態的快取列寫入時,會進行下列何種動作?
  5. 在MESI協定中,核心0以Modified(M)狀態持有某快取列,核心1要讀取它時,一般的動作為下列何者?

這個領域的比較