directory協定

基本介紹

  • 中文名:directory協定
  • 簡介:解決多處理器cache一致性的策略
  • 基本點:網路在處理器之間傳送點到點請求
  • 基本內容:一個動作一般要3個處理器參加
介紹,基本點,基本內容,協定示例,

介紹

directory協定是用硬體方式解決多處理器中cache一致性的一種策略,適用於在分散式共享存儲多處理器系統中實現。

基本點

1)在一個集中的地方跟蹤哪些數據是處於shared狀態;
2)分散式的存儲器產生分散式的目錄,有良好的可擴展性;
3)通過網路在處理器之間傳送點到點的請求;

基本內容

每一個Cache中有一個目錄以跟蹤每個Cache中每個塊的狀態。
1)三個狀態。
Shared:1個以上的處理器擁有數據,主存中的數據是最新的;
Uncached:沒有處理器中包含該數據塊,任何Cache中都沒有有效的該數據;
Exclusive:僅有一個處理器包含最新數據,主存中的數據是過時的;
2)作為Cache狀態的增加,當數據塊處於shared狀態時,目錄中必須包含哪些處理器有這個塊;
3)為簡化起見,約定:寫一個非Exclusive的數據為寫失效;處理器在數據訪問結束之前阻塞;數據的接收和動作的發生時按傳送的次序進行的;
4)不需要匯流排也不需要進行廣播,所有的信息都是顯式的反應的;
5)一個動作一般要3個處理器參加:
local node是要求產生的地方;
home node是存儲器地址所指的地方;
remote node是擁有Cache塊的一個備份的節點,數據塊可能是shared或者Exclusive。

協定示例

狀態變換圖見幻燈片第8講第68、70張。狀態圖的解釋見71、72。
1)當訊息送到目錄時會引起兩個動作:更新目錄;傳送訊息以滿足要求;
2)當塊處於Uncached狀態時,即塊在主存中是最新的值,那么對該塊可能的操作只有:
a)讀失效。發出要求的處理器從主存中獲得數據,發出要求的處理器成為唯一的shared狀態節點,塊的狀態也變為shared;
b)寫失效。發出要求的處理器送出數據,並成為shared狀態,塊狀態變為exclusive,目錄中指明該數據的擁有者
3)塊處於shared狀態,即主存中數據是最新的。那么對該塊可能的操作只有兩種:
a)讀失效,發出要求的處理器從主存中獲得數據,發出要求的處理器加入shared狀態節點的集合;
b)寫失效,發出要求的處理器送出數據,並向該塊的shared集合中的處理器發出無效信息,塊狀態變為exclusive,shared集合中為該處理器;
4)塊處於Exclusive狀態,即只有shared集合中所指明的處理器的Cache中有唯一有效的數據,這是對該塊有三種可能的要求:
a)讀失效。要求發出者送出數據獲取信息,數據塊的所有者將狀態變為shared,並將數據送到目錄中,在那裡數據將寫回主存並送到發出數據要求的處理器那裡,發出要求的處理器加入shared集合,狀態為shared.
b)數據回寫。數據塊的所有者要替換該塊,將該塊回寫至主存,塊處於uncached狀態,shared集合為空;
c)寫失效。塊有一個新的所有者,新的所有者傳送訊息給原來的所有者,原來的所有者將塊的值送到新的所有者的目錄中,shared集合中包含的是新的所有者,塊狀態為Exclusive.

相關詞條

熱門詞條

聯絡我們