什麼是儲存緩衝區(Store buffer)

核心暫時累積寫入的小型緩衝區。不必等待寫入完成即可前進到下一個指令,但從其他核心看來寫入會延遲。

日文名稱: ストアバッファ

「儲存緩衝區(Store buffer)」出現在1領域的4道練習題中(多核心與同步等)。

這個名詞所屬的領域: 多核心與同步

練習儲存緩衝區(Store buffer)的題目

記憶體一致性模型(memory consistency model)所規定的是下列何者?

  1. A快取列的大小與組(set)的數量
  2. B主記憶體DRAM所使用的電晶體種類
  3. C某個核心所進行的對多個位址的讀寫,從其他核心看來可能以什麼順序出現
查看答案與解析

正確答案:C. 某個核心所進行的對多個位址的讀寫,從其他核心看來可能以什麼順序出現

CPU為了提升效能,會把寫入暫存在儲存緩衝區(store buffer),或先行執行讀取,因此有時會改變記憶體操作的順序。在單一核心內雖然設計成結果不會改變,但從其他核心看來,順序可能顯得被調換了。記憶體一致性模型規定了哪些調換有可能發生,是讓程式設計師能寫出正確同步的一種約定。

關於循序一致性(sequential consistency),下列說明何者正確?

  1. A各核心的操作每次都以隨機的順序執行
  2. B所有核心的操作被排成某一個順序,且各核心的操作看起來會依程式所寫的順序出現
  3. C所有操作都只在一個核心上執行
查看答案與解析

正確答案:B. 所有核心的操作被排成某一個順序,且各核心的操作看起來會依程式所寫的順序出現

在循序一致性中,多個核心的操作就像洗牌一樣被排成一列,而各核心的操作在其中看起來維持程式的順序。對程式設計師而言這是最容易理解的模型,但它會大幅限制硬體以儲存緩衝區等方式調換順序的最佳化,所以實際上許多CPU採用更寬鬆的模型。

解析中的「儲存緩衝區(Store buffer)」

出現「儲存緩衝區(Store buffer)」的題目(4題)

  1. 記憶體一致性模型(memory consistency model)所規定的是下列何者?
  2. 關於循序一致性(sequential consistency),下列說明何者正確?
  3. 將上方的兩個執行緒在不同的核心上同時執行(假設編譯器不進行重新排序)。下列哪一個結果在循序一致性下不會發生,但在x86等實際的CPU上可能發生?
  4. 關於x86的記憶體一致性模型(TSO,Total Store Order,全域儲存順序)的特徵,下列何者正確?

相關名詞

記憶體一致性模型(Memory consistency model) 循序一致性(Sequential consistency) 記憶體屏障(Memory barrier) TSO(全域儲存順序) 互斥鎖(Mutex) 比較並交換(Compare-and-swap) 目錄式一致性(Directory-based coherence) 交易式記憶體(Transactional memory) 死結(Deadlock) 自旋鎖(Spinlock)

前往名詞解釋列表