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