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