1. 程式人生 > >多處理機Cache一致性問題及解決辦法

多處理機Cache一致性問題及解決辦法

1. 造成Cache一致性問題的原因

  • 出現不一致的原因有三個:共享可寫的資料、程序遷移和I/O傳輸。

2. 解決辦法

解決多處理機Cache一致性問題提出了兩種解決辦法:偵聽一致性協議和基於目錄的一致性協議。由於多數SMP(對稱多處理機)結構是採用匯流排互連的,偵聽一致性協議是基於偵聽匯流排事務來保持Cache一致性的協議,所以多數產品採用偵聽協議。

  • 基於匯流排互連的SMP是通過高速共享匯流排將若干個商用的微處理器(包括快取記憶體)與共享儲存器連線起來,因此,可以利用匯流排來實現快取記憶體一致性。
  • 總線上的每個裝置都能偵聽到總線上出現的事務,當一個處理器向儲存系統發出一個讀/寫請求時,它的本地快取記憶體控制器將檢查自己的狀態,並採取相應的動作。
  • 所有的高速緩衝器都偵聽總線上出現的事務,一旦發現與自己有關的事務,就執行相應的動作來保證快取記憶體的一致性。

偵聽一致性協議是利用匯流排的一下兩個特點來實現一致性的

  • 一是總線上的所有事務對所有的快取記憶體控制器都是可見的。
  • 二是總線上所有事務以相同的次序內所有的快取記憶體控制器可見。