多核心與同步

一致性協定有無效化型與更新型。許多CPU採用無效化型,其最適當的原因為下列何者?

  1. A同一個核心對同一條快取列重複寫入時,只需第一次的無效化即可,通訊較少
  2. B因為在更新型中,其他核心會讀到舊值
  3. C因為採用無效化型後快取容量會變成2倍
查看答案與解析

正確答案:A. 同一個核心對同一條快取列重複寫入時,只需第一次的無效化即可,通訊較少

更新型每次寫入都會將新值送到其他核心的副本,所以若其他核心馬上要讀取則有利;但單一核心連續寫入時,每次都會產生通訊。無效化型則在第一次寫入時使其他副本失效,之後對M狀態的快取列寫入就不需要通訊。實際的程式多半會連續寫入,所以無效化型較為普遍。

  • A. 正確。更新型每次寫入都要傳送值。
  • B. 更新型同樣能維持正確的值,問題在於通訊量。
  • C. 容量不會改變。
練習這個領域 前往領域頁面

多核心與同步的其他題目

  1. 關於多執行緒程式中發生的偽共享(false sharing),下列說明何者正確?
  2. 像「long cnt[8];」這樣排列每個執行緒的計數器陣列,發生了偽共享。下列何者是最適當的對策?
  3. 關於資料競爭(data race),下列說明何者正確?
  4. 以兩個執行緒同時執行上方的程式碼時,counter的最終值有時會小於200000。其原因下列何者正確?
  5. 關於原子指令(不可分割指令),下列說明何者正確?

這個領域的比較