多核心與同步
在無效化型的一致性協定中,核心對處於Shared(S)狀態的快取列寫入時,會進行下列何種動作?
- A保留其他核心的副本,只改寫自己的快取列
- B先使其他核心持有的相同快取列副本失效,再將自己的快取列轉為M狀態並寫入
- C先清空所有核心的快取再寫入
查看答案與解析
正確答案:B. 先使其他核心持有的相同快取列副本失效,再將自己的快取列轉為M狀態並寫入
S狀態表示其他核心可能也持有相同的快取列,因此若直接寫入,其他副本就會變成舊資料。所以要先發送無效化請求,使其他核心的副本變為I狀態,再將自己的快取列轉為M狀態並寫入。其他核心下次讀取該資料時會發生未命中(miss),並重新取得最新的值。許多CPU都採用這種無效化型。
- A. 這樣其他核心會讀到舊值。
- B. 正確。避免殘留舊的副本。
- C. 不需要連無關的快取列都清除。