1.1 Cache一緻性綜述Coherence overview
硬體cache一緻性允許系統元件間共享memory,而不需要軟體維護緩存以保持一緻性。
如果兩個元件對同一存儲器位置的寫入可以被所有元件以相同的順序觀察到,則存儲器區域是一緻的。
1.1.1 一緻性模型
圖1-2顯示了一個一緻性系統,它包括三個請求器元件,每個元件都有一個本地緩存和一緻性協定節點。該協定允許相同記憶體位置的緩存副本駐留在一個或多個請求程式元件的本地緩存中。
Figure 1‑2 Example coherency model
一緻性協定強制每當store發生在位址位置時,資料值的副本不超過一個。一緻性協定確定所有請求者在任何給定位址位置觀察到正确的資料值。在每個存儲到一個位置後,其他請求者可以為自己的本地緩存擷取資料的新副本,以允許存在多個緩存副本。
一個cache line定義為64byte對齊的memory區域,大小為64byte。所有一緻性被維護的粒度都以cache line為機關。
主存隻有在緩存不需要保持副本的時候才會被更新。協定不需要主存一直保持最新。
注:
盡管不需要更新主存,當緩存副本存在時是可以更新主存的。
協定允許請求者覺得目前緩存cache line是否是唯一的副本或者在相同的位置還有其他副本,這可以保證:
如果一個緩存行是唯一的副本,請求者元件可以改變緩存行資料而不用通知系統中的其他請求者。
如果緩存行資料可能在其他cache中有效,請求者必須通過合适的事務來通知其他緩存。
1.1.2 緩存狀态模型
為了确定一個動作是否需要執行當一個元件擷取緩存行,協定定義了緩存的狀态。每一個狀态基于以下緩存行特性:
Valid,invalid 當valid,緩存行存在于cache,當invalid,緩存行在cache中不存在。
Unique,shared 當為unique時,緩存行資料隻存在于本cache中。當為shared時,緩存行資料不止存在一個cache中,但這是不能保證的。
Clean,Dirty 當clean,擁有緩存的元件不需要更新主存,當dirty時,緩存行資料已經被修改,并且和主存不一緻,這個緩存行資料必須在最終更新一緻。
Full, Partial, Empty 完整緩存行的所有位元組都有效。部分緩存行可能有一些位元組有效,其中一些位元組不包含或包含所有位元組。空緩存行沒有有效的位元組。一個有效的緩存行若不是部分有效或者empty,被認為是Full。
Figure 1‑3 Cache state model
1.2 元件名字Component naming
CHI協定節點類型分類如下:
RN 請求節點,産生協定事務,包括向互聯發起讀寫
一個請求節點可以再劃分為:
RN-F:全一緻性請求節點
包括硬體一緻性緩存
允許産生協定定義的所有事務
支援所有的偵聽事務
RN-D:支援DVM特性的IO一緻性請求節點
不包含硬體一緻性緩存
可以接收DVM事務
産生協定規定事務的子集
RN-I:IO一緻性請求節點
不包含硬體一緻性緩存
不可以接收DVM事務
産生協定規定事務的子集
不需要偵聽功能
HN:主節點位于網際網路絡中,接收請求節點發起的協定事務。
主節點可以進一步劃分為:
HN-F 全一緻性Home節點
除了DVMop類型,可以接收所有的請求類型事務
包括一個Point of coherence(POC)通過需要偵聽的RN-F來管理一緻性,合并事務的偵聽響應,向發起請求的請求節點發送一個單獨的響應
預期是通過Point of Serialization(POS)管理memory請求通路順序。
為了減少偵聽操作,可能包含一個目錄或者偵聽過濾器
HN-I 非一緻性home 節點
處理協定規定的有限的請求類型
不包括PoC,并且沒有能力處理偵聽請求。若是收到了偵聽情況,必須回複協定相容的資訊
預期是通過Point of Serialization(POS)管理memory請求通路順序。
MN 雜項事務節點。從請求節點接收DVM事務,完成需要的操作并且傳回一個響應。
SN 從屬節點。從屬節點從主節點接收請求,完成所需的操作,并傳回響應。
從屬節點進一步分類為:
SN-F用于普通記憶體的從屬節點類型。它可以處理非偵聽讀取,寫請求和原子請求,包括它們的獨占通路,以及緩存維護操作(CMO)請求。
SN-I 用于外圍裝置或普通記憶體的從屬節點類型。它可以處理不可偵聽的讀、寫和原子請求,包括它們的獨占通路,以及CMO請求。
Figure 1‑4 Protocol node examples
1.3 讀取資料來源Read data source
在基于CHI的系統中,讀請求從不同的源頭擷取資料:
網際網路絡的cache
從節點
被偵聽的RN-F
Figure 1‑5 Possible Data providers for a Read request
Home的一個選項是請求RN-F或從屬節點僅向Home傳回資料。Home繼而将接收到的資料的副本轉發給請求者。如果資料提供程式能夠将資料響應直接轉發給請求者,而不是通過Home,則可以删除在該讀取事務流中擷取資料的跳轉。
本協定使用幾種技術來減少完成事務過程中的跳轉。減少的跳轉hop可以節省讀和寫過程中的延遲,同時對互聯帶寬使用進行了優化。這些技術可以分為:
Direct Memory Transfer(DMT)
定義了從節點直接發送資料給請求節點
Direct cache transfer(DCT)
定義了一個偵聽的RNF直接發送資料給請求節點。
Direct Write-data Transfer(DWT)
定義了請求節點直接發送寫資料到從節點。