4.CCIX傳輸層
開篇中提過,CCIX可以看作兩個主要規范,分別是CCIX協議規范和CCIX傳輸規范。
CCIX 協議規范包含CCIX 協議層和CCIX鏈接層。這些層規定緩存一致性協議、報文發送、流控和CCIX 傳輸部分的協議。這正是第三章中的內容。
CCIX 傳輸規范包含CCIX 和PCIe事務層,PCIe 數據鏈路層,和CCIX 物理層。這些層負責器件間的物理連接,包括速率和帶寬協商,傳輸包錯誤檢測和重試,和初始包編碼協議。這是第四章的主要內容。
開始學習這章之前,再來復習一下CCIX的分層架構。
從圖中可以看出,在CCIX傳輸規范中,除了添加了CCIX事務層,作為對PCIe事務層的擴展或者替換,而其它各層均遵循復用PCIe標準。按慣例,我們重點看看CCIX事務層,其它部分略過。
4.1 介紹
CCIX規范中使用數據包在CCIX鏈路層(CCIX Link Layer)和CCIX事務層(CCIX Transaction Layer)之間傳遞信息。
CCIX傳輸層(Transport Layer)分為兩個部分:一個處理出站(Outbound)信息,另一個處理入站(Inbound)信息。
CCIX使用數據包在CCIX鏈路層和CCIX事務層之間傳遞信息。在發送端,當傳輸的數據包在事務層(Transaction Layer)、數據鏈路層(Link Layer)和物理層(Physical Layer)中向下游流動時,它們被擴展,需要加上在這些層處理數據包所需的附加信息。在接收端,發生相反的過程,包從其物理層傳輸到數據鏈路層,最后轉換為可由接收設備的事務層處理的形式。
這也是分層架構的基本理念,每一層各司其職,只負責處理本層的任務。在傳輸端,各層把上一層的數據做為本層的負載,加上本層所需的信息,傳輸給下一層;在接收端,各層把本層所需要的信息剝離出來,并進行處理,然后把其余的數據傳輸給上一層。通過分層架構,可以很好的對規范進行劃分,從而簡化設計。
4.1.1 CCIX事務層
CCIX規范定義了自己的事務層,替換了PCIe的事務層,或者說CCIX事務層是一個簡化的PCIe事務層,其中僅支持以下的事務層數據包(Transaction Layer Packets,后面簡稱TLPs):
優化的TLP
PCIe兼容的TLP
CCIX事務層的主要職責是組裝和拆分TLP。
在接收路徑上,CCIX事務層在將TLP轉發到CCIX鏈路層之前,檢查TLP的完整性。
對于PCIe兼容的TLP,PCIe基本規范中規定的PCIe事務層檢查適用。
對于優化的TLP,指定了一組新的CCIX事務層檢查。
CCIX事務層還負責用基于信用的流量控制方式去管理CCIX TLP。在接收路徑上,為通過數據完整性檢查,并轉發到協議層的CCIX TLP返回已發布的流控制信用。在發送路徑上,實現了一個信用門(credit gate),以基于可用的發布信用控制CCIX TLP的流量。
4.1.2 PCIe事務層
CCIX規范不修改PCIe事務層。
4.1.3 PCIe數據鏈路層
CCIX規范不修改PCIe數據鏈路層,而是按原樣使用它。PCIe數據鏈路層充當PCIe和CCIX事務以及CCIX物理層之間的中間層。數據鏈路層的主要職責包括鏈路管理和數據完整性,包括錯誤檢測和錯誤糾正。
4.1.4 CCIX物理層
CCIX物理層以特定于實現的格式與PCIe數據鏈路層交換數據包信息。該層負責將從PCIe數據鏈路層接收的數據包信息轉換為適當的序列化格式,并以與連接到鏈路另一側的設備兼容的數據速率和PCIe寬度在CCIX鏈路上傳輸。
CCIX物理層定義了兩種物理層類型。CCIX組件只需要支持其中一種:
PCIe PHY:這種PHY類型符合PCIe基本規范
擴展數據速率(Extended Data Rate,EDR):這種PHY類型支持PCIe基本規范的所有要求,具有16.0 GT/s的能力,并將支持的數據速率擴展到20.0 GT/s和25.0 GT/s。
4.2 事務層
4.2.1 CCIX事務層架構
CCIX事務層中至少要有一個PCIe虛擬通道(Virtual Channel,VC),也就是VC0,用來交換PCIe TLP。
CCIX事務層還應該有一個CCIX虛擬通道(CCIX VC),用來交換CCIX TLP,但不能是VC0。
4.2.2 事務層協議 – 數據包定義
CCIX事務層必須支持PCIe兼容的TLP,可以選擇支持優化的TLP。
PCIe兼容TLP的格式如下:
消息路由字段必須設置為010b–按ID路由。
所有CCIX TLP的供應商ID字段等于CCID。
PCIe兼容TLP的總長度大于4 DW。因此,TLP Fmt字段為011b。Length[9:0]是供應商定義消息的負載中DW總數
上圖TLP頭中DW3和數據負載格式在第三章中定義
優化的TLP格式,且須遵循的規則:
優化的TLP要求是4-byte對齊,且4-byte增量
優化的TLP由1 DW TLP頭部分和最多可包含127 DW的TLP有效載荷部分組成。
字節0的第7位始終為0b
Type[0]字段指示CCIX硬件規范版本,目前只有1.0版本
TC [2:0]字段,Traffic Class,流量分類
Length[6:0]是負載包含的DW數目
CCIX允許在一個TLP中打包兩個或多個協議消息,從而使協議消息傳輸的開銷最小化。只有當所有協議消息都具有公共CCIX鏈路時,才支持打包協議消息。對于CCIX事務層來說,打包的消息看起來仍然像一個帶負載的TLP。多協議消息的信息在CCIX鏈路層內編碼/解碼,對事務層透明。
所有CCIX設備都需要支持CCIXVC的PCIe兼容TLP格式。只有當鏈路兩端都支持優化TLP格式功能時,才可以在CCIX VC上交換優化的TLP。
在PCIe設備發現(discovery)過程中,可以通過讀取DVSEC寄存器來判斷是否支持CCIX。
4.2.3 CCIX虛擬通道
在正常工作條件下,CCIX VC將僅發送和接收CCIX TLP。CCIX VC為CCIXTLP實現了一個先進先出(FIFO)隊列。CCIX VC應當規定一個posted流量控制信用值。這樣,設計時FIFO隊列的大小就可以確定了。
CCIX VC還應當規定一個non-posted流量控制信用值。CCIX VC上一般預計不會有non-posted TLPs,但是一旦接收到這些TLP,就需要一些資源處理他們。
插播一段,Non-posted(非轉發)事務和Posted(轉發)事務都是PCIe TLP(事務層包)類型。Non-posted事務分為兩個部分,首先是發送端向接收端發送TLP請求,接收端接收到請求完成后向發送端發送完成TLP。Non-posted事務必須等待接收到完成TLP,PCIe總線才能結束當前的TLP。PostedTLP不需要完成TLP返回,此種方式中,TLP還沒達到最終目的地之前,PCIe總線就可以結束當前的事務。
4.2.4 接收到的TLP的處理
CCIX事務層接收到的TLP處理流程如下圖:
從數據鏈路層接收到TLP后,先通過TC[2:0]判斷是分發給PCIe虛擬通道還是CCIX虛擬通道。
補充一點,TC 是數據包的頭內的一個3-bit的字段。用來將流量分成8種(TC0-TC7)不同的類別,本地應用軟件和系統軟件根據性能要求確定某個TLP使用什么樣的TC標志。虛擬通道是物理緩沖區,它通過使用發送和接收虛擬信道緩沖區,提供一種在鏈路上實現多個獨立數據流的方法。PCIe設備可以實現最多8個VC緩沖區(VC0-VC7)。并且必須要實現 VC0,即最通用的服務類別。設備或交換器需要實現TC/VC映射邏輯,通過該邏輯形成對應關系,把給定的TC號的TLP使用特定的VC號的緩沖區通過鏈路發送出去。多個TC可以對應一個VC,因而可以使用有限數目的VC緩沖區來降低設備成本。系統軟件通過配置寄存器設置 TC/VC 的映射。應用軟件確定TLP的TC標志以及設置滿足性能要求的TC/VC的映射關系。最簡單的情況可以將 TC/VC 映射寄存器設置為TC到VC的一對一關系。
CCIX事務層的行為由寄存器TransactionLayerControl(這個寄存器在第六章DVSEC中描述)的比特位OptimizedTLPGenerationReceptionRoutingEnable來控制。如果這個比特位被設定(set),發送方以優化的TLP格式生成CCIXTLP,傳輸路徑中的交換機和接收方接受優化的TLP,所有接收方都將拒絕PCIe兼容的TLP。如果這個比特位被清除(clear),發送方以PCIe兼容TLP格式生成CCIX TLP,傳輸路徑中的交換機和接收方接受PCIe兼容TLP,所有接收方都將拒絕優化的TLP。
4.2.5 事務排序規則
CCIX事務層應遵循PCIe基本規范中對事務排序的所有要求。在正常工作條件下,CCIX VC將僅發送和接收PCIe兼容的TLP或優化的TLP。
4.2.6 虛擬通道機制
CCIX事務層應遵循PCIe基本規范中對虛擬通道機制的所有要求。VC機制不區分PCIe VC和CCIXVC。后面有時間再分析PCIe的VC機制。
4.2.7 事務層流量控制
CCIX事務層應遵循PCIe基本規范中對流量控制的所有要求,除去那些僅適用于CCIX VC行為的異常。
4.2.8 數據完整性
CCIX事務層應遵循PCIe基本規范中對數據中毒(Data Poisoning)機制的所有要求。優化的TLP格式不支持PCIe數據中毒機制。
CCIX事務層應遵循PCIe基本規范中關于基于端到端CRC(End-to-End CRC)的數據完整性機制的所有要求。優化的TLP格式不支持ECRC機制。
4.2.9 完成超時機制
CCIX事務層應遵循PCIe基本規范中對完成超時(Completion Timeout)機制的所有要求。
4.2.10 鏈接狀態依賴
CCIX事務層應遵循PCIe基本規范中對鏈接狀態依賴(Link Status Dependencies)機制的所有要求。
4.3 CCIX數據鏈路層
是不是叫PCIe數據鏈路層更為合適?
4.4 CCIX物理層邏輯塊
4.4.1 介紹
物理層分為邏輯子塊和電氣子塊。CCIX傳輸規范擴展了PCIe基本規范中規定的邏輯和電氣子塊。
4.4.2 CCIX邏輯子模塊
CCIX物理層支持16.0 GT/s,20.0 GT/s和25.0 GT/s的傳輸速率。
支持擴展數據速率的CCIX設備可以通過控制ESMControl.ESMEnable比特位(從0變成1),來進入擴展速率模式(Extended Speed Mode,ESM)。
4.4.3 重定時器
關于PCIe Retimer,隨著PCIe協議的不斷升級,頻率越來越高,對數據在線路中的傳輸長度提出了強烈挑戰。為了解決這一問題,PCIe協議在4.0版本種提出了Retimer。Retimer實際上是一種協議感知設備,能更好地將信號傳輸到更遠。
總結:CCIX 傳輸規范包含CCIX事務層和PCIe 事務層,PCIe 數據鏈路層,和CCIX 物理層。這些層負責器件間的物理連接,包括速率和帶寬協商,傳輸包錯誤檢測和重試,和初始包編碼協議。除去CCIX事務層,其它層均遵循PCIe標準。
-
PCIe
+關注
關注
15文章
1247瀏覽量
82887 -
傳輸層
+關注
關注
0文章
30瀏覽量
10919
原文標題:老秦帶你探索CCIX(七)
文章出處:【微信號:Rocker-IC,微信公眾號:路科驗證】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論