簡介
CCIX是一種能夠?qū)蓚€或兩個以上器件通過緩存一致性的方式來共享數(shù)據(jù)的芯片間互聯(lián)技術(shù)。CCIX旨在簡化異構(gòu)系統(tǒng)的架構(gòu)設計,同時基于不同指令集(ISA)的處理器或應用特定的加速器提升系統(tǒng)的帶寬、降低時延。為此,多家公司聯(lián)合成立了一家新的行業(yè)標準機構(gòu)—CCIX聯(lián)盟,以推動CCIX技術(shù)的應用。如今,CCIX聯(lián)盟逐漸發(fā)展壯大。
對于芯片互聯(lián)網(wǎng)絡,有兩個指標是至關重要的:帶寬和延時。CCIX 采用兩種機制來提高性能、降低延時。第一種機制是采用緩存一致性,自動保持處理器和加速器的緩存一致,提升易用性、降低延時。第二種機制是提高CCIX 鏈路的原始帶寬。最高的連接速率升至25GT/s (千兆傳輸/秒)。同時,CCIX 規(guī)范也規(guī)定了多個CCIX 端口可以通過端口聚合(Port Aggregation)技術(shù),提供超過單個接口的性能,匹配加速器和內(nèi)存擴展帶寬。
CCIX 架構(gòu)采用的是基于PCIe基本架構(gòu)擴展的分層架構(gòu)。CCIX 協(xié)議規(guī)范包含CCIX 協(xié)議層和CCIX鏈路層。這些層規(guī)定緩存一致性協(xié)議、報文發(fā)送、流量控制和CCIX 傳輸部分的協(xié)議。CCIX 傳輸規(guī)范包含CCIX 和PCIe事務層,PCIe 數(shù)據(jù)鏈路層,和CCIX 物理層。這些層負責器件間的物理連接,包括速率和帶寬協(xié)商,傳輸包錯誤檢測和重試,和初始包編碼協(xié)議。
CCIX 協(xié)議層(CCIX Protocol Layer),負責一致性協(xié)議,包括內(nèi)存的讀/寫。這一層提供了片上(On Chip)一致性協(xié)議(例如AMBA CHI)的簡單映射。這一層定義的緩存狀態(tài)使得硬件能夠確定內(nèi)存的狀態(tài)。比如硬件可以確定數(shù)據(jù)是否唯一且未被修改(和內(nèi)存一致),或是共享且被修改的(和內(nèi)存不一致)。
CCIX 鏈路層(CCIX Link Layer),負責CCIX 協(xié)議層定義的代理(Agent)之間消息的傳輸格式。目前CCIX 鏈路層是構(gòu)建在PCIe 之上,但是基于分層架構(gòu),CCIX 將來可以映射到不同的傳輸層。此外,這一層負責端口聚合(Port Aggregation),使得多個端口能夠聚合在一起提升帶寬。
CCIX 和PCIe 事務層(CCIX and PCIe Transaction Layer),負責處理它們各自的數(shù)據(jù)包。PCIe 協(xié)議支持部署虛擬通道,使得不同數(shù)據(jù)流可以通過一個PCIe 鏈路。將CCIX 和PCIe 傳輸流各分到一個虛擬通道,CCIX和PCIe 傳輸可以共享相同的鏈路。CCIX 能夠傳輸標準的PCIe 包,或經(jīng)過優(yōu)化的CCIX 包(刪減了PCIe 包里的幾個不必要的字段)。傳輸標準的PCIe 包時,可以采用現(xiàn)有的PCIe 交換器。傳輸經(jīng)過優(yōu)化的CCIX 包,能降低PCIe的額外開銷,使得一致性傳輸?shù)陌?、更高效?/p>
PCIe數(shù)據(jù)鏈路層,執(zhí)行數(shù)據(jù)鏈路層的所有正常功能。這些功能包括CRC錯誤校驗、包確認和超時檢查,和信用初始化及交換。
CCIX/PCIe物理層的基礎是PCIe 物理層。CCIX 擴展了物理層來支持25GT/S(千兆傳輸/秒)。這個較快的速率稱為擴展速率模式(Extended Speed Mode,ESM)。
簡單分析完CCIX分層結(jié)構(gòu),再來看CCIX的拓樸結(jié)構(gòu)。CCIX 能夠支持多種靈活的拓撲結(jié)構(gòu),如下圖。
所有的CCIX器件至少有一個CCIX端口。一個CCIX端口可以關聯(lián)一組物理管腳,用于和另一個CCIX 端口連接,在兩個或多個不同芯片間交互信息。
CCIX定義的代理類型包括:請求代理(RA)、主代理(HA)、從代理(SA)和錯誤代理(EA)。這些代理,和系統(tǒng)里的端口及鏈接統(tǒng)稱CCIX 組件。一個代理在協(xié)議中用一個代理ID 來標識。
請求代理(Request Agent):一個請求代理對系統(tǒng)內(nèi)的不同地址進行讀、寫操作。請求代理可以對它已經(jīng)訪問的地址的數(shù)據(jù)進行緩存。每個CCIX 請求代理可以有一個或多個處理單元(Processing Element)作為內(nèi)部請求的發(fā)起者,請求由一個CCIX 架構(gòu)的請求代理執(zhí)行。根本上說CCIX 請求代理提供了加速器或CCIX 使能的IO 主設備向一致性系統(tǒng)內(nèi)存的接口。
主代理(Home Agent):主代理負責管理指定的一段地址的數(shù)據(jù)一致性。當一個緩存行的狀態(tài)需要改變時,主代理通過向所需的請求代理發(fā)出監(jiān)聽操作來保持一致性。
從代理(Slave Agent):CCIX 支持擴展系統(tǒng)內(nèi)存,來包含外設所附的內(nèi)存。這種情形出現(xiàn)在主代理在一個芯片上,而這個主代理關聯(lián)的一些或全部物理內(nèi)存在另一個芯片上時。這種架構(gòu)組件(擴展內(nèi)存)稱為從代理。從代理不會被請求代理直接訪問。請求代理總是訪問一個主代理,然后主代理再訪問從代理。
錯誤代理(Error Agent):一個錯誤代理接收并處理協(xié)議錯誤信息。協(xié)議錯誤信息由CCIX 組件發(fā)出。
CCIX 的一個關鍵優(yōu)勢,是它能支持主設備和加速器間通過采用無驅(qū)動的數(shù)據(jù)移動方式共享數(shù)據(jù)。而傳統(tǒng)的PCIe 加速器需要驅(qū)動對加速器寫入和讀出數(shù)據(jù),這增加了延時和計算開銷。采用無驅(qū)動的數(shù)據(jù)移動方式,CCIX 還可以將系統(tǒng)內(nèi)存擴展至主設備的內(nèi)存之外?;贑CIX,每個支持CCIX 的設備的行為與現(xiàn)有NUMA操作系統(tǒng)中的節(jié)點類似。這種基于內(nèi)存的方法利用了現(xiàn)有的操作系統(tǒng)功能。在這種模式下,用來共享的所有數(shù)據(jù)結(jié)構(gòu)都放在處理器和加速器都可訪問的共享內(nèi)存里。這種數(shù)據(jù)共享模型可以消除加速器特定的控制與管理驅(qū)動,允許加速器資源由一個中心調(diào)度器安排的長時間運行的任務來調(diào)用。這個調(diào)度器可以是操作系統(tǒng)調(diào)度程序的一部分,或者是和操作系統(tǒng)調(diào)度程序協(xié)同。
以上是對CCIX規(guī)范的簡單介紹,后面我們開始逐步分析CCIX規(guī)范。
審核編輯 :李倩
-
加速器
+關注
關注
2文章
790瀏覽量
37683 -
架構(gòu)
+關注
關注
1文章
506瀏覽量
25430
原文標題:老秦帶你探索CCIX(一)
文章出處:【微信號:Rocker-IC,微信公眾號:路科驗證】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論