基於硬體的快取一致性協議的設計空間是什麼?
基於硬體的協議支援快取一致性問題的通用解決方案,而對資料的可快取性沒有任何條件限制。基於硬體的協議可以分類如下:
記憶體更新策略 - 多處理器中使用兩種型別的記憶體更新策略。直寫策略保持主記憶體和快取之間的一致性;也就是說,當一個塊在一個快取中更新時,它也會立即在記憶體中更新。寫回策略允許記憶體與最近更新的快取塊暫時不一致。
對於私有資料和不經常使用的共享資料,採用直寫策略會導致互連網路上的流量不必要地增加。另一方面,由於錯誤檢測和恢復功能僅在主記憶體中可用,因此它比寫回方案更可靠。
寫回策略避免了無用的互連流量;但是,它需要更復雜的快取控制器,因為對尚未更新的記憶體位置的讀取引用應該重定向到相應的快取。
直寫策略是一種貪婪策略,因為它會立即更新記憶體副本,而寫回策略是一種延遲策略,會推遲記憶體更新。類似地,已經引入了貪婪和延遲快取一致性策略來更新資料結構的快取副本:
寫更新策略(一種貪婪策略) - 寫更新策略的關鍵思想是,每當處理器更新快取的資料結構時,它也會立即更新所有其他快取副本。
寫失效策略(一種延遲策略) - 在寫失效策略中,更新的快取塊不會直接傳輸到另一個快取;相反,一個簡單的失效命令會傳輸到所有其他快取副本和共享記憶體中的原始版本,以便它們失效。
基於硬體的協議可以根據共享記憶體系統中使用的互連網路的功能分為三個基本類別。如果網路有效地支援廣播,則稱為窺探快取協議。
大型互連網路無法有效地提供廣播,因此需要一種結構能夠精確地將一致性命令轉發到包含重新整理資料結構副本的那些快取。為此,應為共享記憶體的每個塊保留一個目錄,以監控可能存在的快取中塊的實際位置。這種方法稱為目錄方案。
第三種方法試圖避免使用代價高昂的目錄方案,但支援高可擴充套件性。它建議使用多匯流排網路以及分層快取一致性協議的應用,這些協議是基於單匯流排窺探快取協議的派生或改進版本。