一、CHI架構
CHI架構是一個可擴展的、支持一致性的集線器接口和由多個組件使用的片上互連。根據系統要求的PPA(performance, power, and area),CHI體系結構允許組件連接的靈活拓撲結構。
1.1組件
基于CHI的系統組件可以包括:
1.2關鍵特性
該體系結構的主要特性是:
- 可擴展的體系結構,支持從小型系統擴展到大型系統的模塊化設計。
- 獨立的分層方法,包括協議層、網絡層和鏈路層,具有不同的功能。
- 基于數據包的通信。
- 所有的事務都由一個基于互連的Home節點處理,它可以協調所需的窺探snoop、緩存cache和內存memory訪問。
- CHI一致性協議支持:
——cache line大小為64byte
——使用Snoop filter和基于directory的系統,用于減少不必要的snoop事務。
——MESI和MOESI緩存模型,并從任何緩存狀態轉發數據。
——增加了 partial 和empty的cache line狀態。
- CHI事務集包括:
——豐富的事務類型以支持PPA高效的系統緩存實現。
——支持互連中的原子操作和同步。
——支持高效執行獨占訪問的功能。
——將數據移動到更接近預期的使用點來實現高效的數據移動和替換。
——通過分布式虛擬內存(DVM)操作進行虛擬內存管理
- 支持Retry機制來管理協議層資源;
- 支持端到端的Qos(Quality of Service);
- 可配置的數據寬度來滿足系統需求;
- 支持ARM TrustZone;
- 低功耗信號,可以使能flit級別門控、組件之間的建斷鏈來支持時鐘門控和電源門控、協議層的活動信號來控制電源和時鐘;
1.3 CHI層次
CHI層次按功能可以劃分為:
- ?協議層(Protocol)
- ?網絡層(Network)
- ?鏈路層(Link)
Layer Communication granularity Primary function
Protocal transaction 協議層是CHI架構里的最頂層,其功能有:
1、在協議節點產生并處理請求與響應;
2、定義協議節點允許的cache狀態和狀態轉換;
3、定義每個請求類型的傳輸流程;
4、管理協議層的流控;
Network packet 網絡層功能有:
1、打包協議層信息;
2、確定并增加源節點和目的節點的ID到packet中,確保這些packets能正確在互聯線上路由;
Link flit 鏈路層功能:
1、提供網絡設備之間的流控;
2、管理鏈路通道以提供跨網絡的無死鎖切換
二、拓撲結構
CHI架構主要是與拓撲無關的。然而,本規范中包含了某些與拓撲相關的優化,以使實現更高效。圖1-1顯示了三個拓撲示例,以顯示可用的互連帶寬和可擴展性選項的范圍。
Crossbar:
這個拓撲構建起來很簡單,并且自然地提供了一個具有低延遲的有序網絡。它適用于連線相對較小的地方。該拓撲結構適用于與少量節點的互連。
Ring:
這種拓撲提供了在互連布線效率和延遲之間的權衡。延遲隨環上節點的數量呈線性增加。這種拓撲結構適用于中等大小的互連。
Mesh:
這種拓撲以犧牲更多的連線為代價提供了更大的帶寬。它是非常模塊化的,并且可以通過添加更多的行和列的交換機來很容易地擴展到更大的系統。這種拓撲結構適用于更大規模的互連。
三、術語
術語 描述
Transaction 一個transaction執行一個單獨的操作,如一個transaction可以是讀memory或寫memory
Message 協議層術語,用于定義兩個組件之間交換信息的粒度,如:
- ?Request
- ?Data response
- ?Snoop request
一個數據響應message可能由多個packets組成
Packet 端到端跨越interconnect的傳輸粒度,一個message可能由一個或多個packets組成,每個packet包含有源和目的節點的ID來保證在interconnect上獨立路由
Flit 最小流控單位,一個packet可以由一個或多個flits組成,對于同一個packet的所有flits在interconnect上傳輸必須遵循同樣的路徑,對于CHI,所有的packets都是由一個flit組成
Phit 物理層傳輸單位,一個flit可以由一個或多個phits組成,phit定義為兩相鄰網絡設備之間的一個傳輸,對于CHI,所有的flits都是由一個phit組成
PoS Point of Serialization,位于ICN內,用于Requests之間的保序(HNF同時具有PoS和PoC的功能)
PoC Point of Coherence,一致性節點,用于保證所有訪問同一個memory地址的請求都可以得到同一份數據
PoP Point of Persistence(PoP)是內存系統中的一個點,當系統電源斷開時,會保持對內存的寫入,當電源恢復時,會可靠的恢復對內存的寫入。
PoPA Point of Physical Aliasing (PoPA),在一個物理地址空間(PAS)中的位置更新對所有其他物理地址空間可見。
Downstream cache downstream cache是以RN的視角定義的,RN的downstream cache可以通過CHI請求訪問
Requester Requester可以指獨立產生原始transactions的組件(master),也可以指ICN
Completer Completer可以指ICN,也可以是SN
Master 通常是一個系統中最上游的agent
Slave 通常是一個系統中最下游的agent
Endpoint slave的另一個名字,指的是一個transaction的最終目的地
Protocol Credit 一個P-credit用于保證completer有能力接收一個transaction
Link layer Credit 一個L-credit用于保證另一邊的link可以接受不了一個flit
ICN interconnect的簡稱,用于協議節點之間的通訊的CHI傳輸機構,ICN可能也包含協議節點,如HN和MN
IPA intermediate Physical Address,中間物理地址,在兩級地址系統中,第一級產生IPA,第二級產生物理地址
RN 請求節點,產生協議transaction,包含讀和寫
HN Home節點,位于ICN,用于接收來自RN的協議transaction,完成相應的一致性操作并返回一個響應
SN 從屬節點,用于接收來自HN的請求,完成相應的操作并返回一個響應
MN 其他節點,位于ICN,用于接收來自RN的DVM操作,完成相應的操作并返回一個響應
IO Coherent node IO一致性節點產生的snoop請求不會導致數據被cache,因此IO一致性節點也不會接收到任何snoop請求
snoopee 正在接收snoop的RN。
Write-Invalidate protocol 該協議是指當RN往一個共享地址寫數據時,必須先把所有共享的數據備份都無效掉,然后再進行寫操作,CHI采用的就是該協議
In a timely manner 協議中沒有定義在某個絕對的時間后,某件事必須發生,但是及時發生可以使系統效率更高
Don’t Care 表示該域段可以設置為任何值,包括非法值和保留值,任何組件收到的包中如果包含設為Don’t care的域段,都必須忽略該域段
Inapplicable 表示該域段值不會用于信息處理
四、事務類型
本規范(CHI issueF)所支持的協議事務及其主要分類:
(后續會再開一篇專門描述各種事務及其使用場景)
下表顯示了事務的表現形式:
五、一致性概述
硬件一致性使系統組件能夠共享內存,而不需要軟件緩存維護來保持一致性。
如果兩個組件往相同地址的memory發起寫操作,這些操作可以被所有的組件以相同的順序觀察到,那么這個memory區域就是一致性的。
5.1 coherency model
圖1-2所示為包含三個master組件的一致性系統,每個master組件包含一份loacl cache和一致性協議節點。CHI協議允許memory數據存放在一處或多處master cache當中。
一致性協議強制要求,當需要存數據時,先把所有其它masters的數據備份失效掉,這樣一致性協議可以使得所有的masters獲取到任何地址的正確的數據值。在存儲完成后,其它masters可以獲取到新的數據到自己local cache;
CHI協議允許(不強求)主存的數據不是實時更新,只有在所有master的cache都不需要該數據備份時,才把數據刷新到主存中;
協議使得master可以確定一份cacheline是否是唯一的或者存在多份拷貝。如果是唯一的,master可以直接改變它的值不需要知會系統中其它masters,如果不是唯一的,master必須使用恰當的transaction知會其它masters;
所有的一致性是以cacheline粒度對齊,cacheline在64bytes對齊存儲系統中大小為64bytes;
5.2 Cache state model
為了使得一個組件在訪問cache line時,可以確定是否該執行某操作,CHI協議定義了cache state。每個cache state基于如下的cache line特性:
cache state cache line characteristics
Valid,Invalid Valid表示該cache line存在于cache中,Invalid表示該cache line沒有放在cache中
Unique,Shared Unique表示cache line單獨存放于該cache中,Shared表示其它cache中也可能存在該cache line,但不保證一定有
Clean,Dirty Clean表示該cache沒有責任更新主存數據,Dirty表示該cache line數據相對于主存已經發生了改變,該cache必須確保最終主存的數據被更新
Full,Partial,Empty Full表示cacheline全部byte有效,Partial表示可能只有部分byte有效,不是全部有效;Empty表示沒有byte有效;
如下圖1-3所示為7種cache state model,注意一個valid的cache state不是Partial或Empty,而是Full。UC、UD、SC和SD全都是Full cache line狀態。
具體的狀態含義和狀態轉換將在后文詳細介紹。
六、組件名稱
根據CHI協議節點類型,可以將組件分類命名如下:
類別 組件名 功能
RN 請求節點。生成到互連的協議事務,包括讀取和寫操作。請求節點被進一步分類為:
RN-F 完全一致性請求節點:
?包含硬件一致性cache
?允許產生所有協議定義的transactions;
?支持所有的snoop transactions
RN-D IO一致性請求節點,支持DVM操作:
?不包含硬件一致性cache;
?可以接收DVM操作;
?可以產生協議定義的一部分transactions
RN-I IO一致性請求節點:
?不包含硬件一致性cache;
?不能接受DVM操作;
?可以產生一部分協議定義的transactions;
?不要求具有snoop功能
HN Home Node,位于從請求節點接收協議事務的互連器內的節點。
主節點被進一步歸類為:
HN-F 用于接收所有的請求操作,除了DVM操作:
1、POC點,通過監聽RN-Fs,管理各Master一致性,完成所有的snoop響應后,發送一個響應給發出請求的RN;
2、PoS點,用于管理多個memory請求的順序;
3、可能包含目錄或監聽過濾,以此來減少大量的snoop request
HN-I 處理有限的一部分協議定義的Request請求:
1、PoS點,管理訪問IO subsystem的順序;
2、不包含PoC點,也不具備處理snoop請求
MN 用于接收來自RN發送的DVM操作,完成相應的操作,并返回一個響應
SN Slave Node,用于接收來自HN的請求,完成相應的操作并返回一個響應;
SN-F 指的是Normal memory,可以處理Non-snoop讀寫請求、atomic請求、以及這些命令的其它形式、CMO請求
SN-I 指的是Peripheral或Normal Memory,可以處理Non-snoop讀寫、atomic操作、以及這些命令的其它形式、CMO請求
下圖1-4顯示了通過互連連接的各種協議節點類型:
七、讀數據來源
在基于CHI的系統中,讀請求的數據可以來自不同的地方,如下圖1-5所示,這些源有:
?Cache within ICN
?Slave Node
?Peer RN-F
對于RN-F或SN返回的讀數據,可以發送給HN,HN再轉發數據給原始的Requester;也可以直接跳過HN,返回數據給原始Requester,這樣可以減少讀數據的latency。這些技術可分類為:
DMT Direct Memory Transfer SN直接返回數據給原始的Requester
DCT Direct Cache Transfer Peer RN-F字節返回數據給原始Requester;
在DCT中,數據提供者需要通知HN它已經將數據發給原始Request了,在某些情況下,數據提供者也必須發送一份拷貝數據給HN。
DWT Direct Write-data Transfer 定義允許請求的請求節點直接向下級節點發送寫入數據的特性。
-
處理器
+關注
關注
68文章
19170瀏覽量
229187 -
集線器
+關注
關注
0文章
383瀏覽量
39459 -
虛擬機
+關注
關注
1文章
908瀏覽量
28109 -
PCIe接口
+關注
關注
0文章
120瀏覽量
9680 -
PPA
+關注
關注
0文章
20瀏覽量
7484
發布評論請先 登錄
相關推薦
評論