什麼是偽共享(False sharing)

不同執行緒各自改寫不同的變數,但因這些變數位於同一條快取行,使得該行在核心之間來回傳遞而變慢的現象。

日文名稱: 偽共有

「偽共享(False sharing)」出現在1領域的1道練習題中(CPU與架構等)。

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

練習偽共享(False sharing)的題目

目前許多 CPU 所使用之快取列(快取區塊)的大小,下列何者為一般情況?

  1. A1 位元組
  2. B64 位元組
  3. C64 MB
查看答案與解析

正確答案:B. 64 位元組

許多 CPU 在快取與主記憶體之間,是以 64 位元組的快取列為單位交換資料。相鄰位址的資料經常會被連續使用(空間局部性),所以一併取入較有效率,也與 DRAM 的突發傳輸(DDR4 為 8 次 × 8 位元組 = 64 位元組)相符。在多執行緒程式中,必須注意若不同的變數位於同一條快取列,會發生互相爭奪的「偽共享」(false sharing)。

解析中的「偽共享(False sharing)」

出現「偽共享(False sharing)」的題目(1題)

  1. 目前許多 CPU 所使用之快取列(快取區塊)的大小,下列何者為一般情況?

相關名詞

空間局部性 互斥鎖(Mutex) 比較並交換(Compare-and-swap) 目錄式一致性(Directory-based coherence) 交易式記憶體(Transactional memory) 死結(Deadlock) 自旋鎖(Spinlock) 屏障同步(Barrier synchronization) 原子指令(Atomic instruction) 記憶體一致性模型(Memory consistency model)

前往名詞解釋列表