PCIE 6.0 (三)
事務層
⊙transaction layer
作為協議的最高層,事務層的主要功能是:
? 流水線式完整拆分交易協議
? 區分事務層數據包 (TLP) 的排序和處理要求的機制
? 基于credit的流量控制
? 可選支持數據中毒和端到端數據完整性檢測。
0****1
**###
Transaction Layer Overview
**
PCIe 6.0 增加了一種新的傳輸模式 flit mode,而傳統的傳輸模式就變成了non-flit mode。在傳統模式中,TLP是不定長的,物理層中需要start end標志來標記數據包的頭和尾。而且TLP和DLLP是工作在不同的層中,相互之間是獨立的。
PCIe 6.0的flit mode借用了NoC中flit的概念(也可能不是借用,因為筆者是做NoC的,所以可能會有先入為主的影響),將多個TLP和一個DLLP的信息打包成一個大的數據幀,稱為flit,數據的傳輸以flit為單位,每個flit固定為256Byte。需要注意的是,flit既不在事務層也不在數據鏈路層,而是在物理層,就好比NoC的flit是直接定義在物理總線上的,PCIe的flit是直接定義在物理層的lane中的.
事務層是請求者和完成者之間信息傳輸的基礎。 在這層協議中定義了四個地址空間,并定義了不同的事務類型,每個都有自己獨特的預期用途,如下所示
Memory Transactions
內存事務包括以下類型:
? 讀取請求/完成
? 寫請求
? 可延遲內存寫入請求/完成
? 原子操作的請求/完成
I/O Transactions
PCI Express 支持 I/O 空間,以便與需要使用它們的舊設備兼容。 I/O 事務包括以下類型:
? 讀取請求/完成
? 寫請求/完成
Message Transactions
message事務,或簡稱為消息,用于支持設備之間事件的帶內通信。除了協議中定義的特定消息外,PCI Express 還支持供應商定義的消息使用指定的消息代碼。
事務層數據包格式
事務由請求和完成組成,它們使用數據包進行通信。數據包的域斷可見下圖,(一個數據包的大小如果為512Bit,則每個預斷的值就是將512Bit的值按順序填在下圖的格式表中)。
0****2
事務層協議 - 數據包定義
前面給大家介紹了TL的數據包格式由TLP Prefix、header,data組成。下面為大家介紹在每個小部分里不同域斷的含義。
Header Fields For Non-Flit Mode
Fmt 字段指示一個或多個 TLP 前綴的存在,Type 字段指示相關的 TLP前綴類型。
- TLP Header 的 Fmt 和 Type 字段提供了確定剩余部分大小所需的信息。同時TLP 報頭的 Fmt、Type、TD 和 Length 字段包含確定 TLP 非前綴部分的總體大小所需的所有信息。 Type 字段除了定義 TLP 的類型外,還決定了交換機如何路由 TLP。 以下各節將不同類型的 TLP。
- TC[2:0]:流量類別 (TC) 是一個 3 位字段,允許將事務區分為八個流量類別。 與 PCI Express 虛擬通道支持一起,TC 機制是實現差異化流量服務的基本要素。(TC0是表示此次傳輸的數據包優先級最高要優先通過) 每個 PCI Express 事務層數據包都使用 TC 信息作為在 PCI Express 結構中端到端攜帶的不變標簽。 當數據包穿過結構時,此信息將在每個鏈路和每個交換機元素內使用,以做出有關正確處理流量的決策。 服務的一個關鍵方面是根據 TC 標簽通過相應的虛擬通道路由數據包。
- R:保留;
- TLP Hints (TH):TLP Hints,用以指示 TLP Header 中是否含有 TPH 及 TPH TLP Prefix。(具體參考PCIE協議介紹)
- Attr:Attributes,通過該字段提供附加信息給接收端,告知接收端采用非默認方式來處理當前 TLP,常用于 TLP 排序、Snoop 硬件一致性管理等方面。
- TD:TLP Digest,用以指示 TLP 末尾的 Digest 字段是否含有 ECRC。僅用于 NFM。FM 的 ECRC 相關指示放在了 TS。
- Error Poisoned:Error Poisoned,PCIe E2E 數據完整性相關,用以指示當前 TLP 的 Data Payload 被污染。
- Length[9:0]:Length,用以指示當前 TLP 的 Data Payload 長度,僅對帶有 Data Payload 的 TLP 有效, 單位為 DW。
Data Payloads For Non-Flit Mode
ARI : Alternative Routing-ID,用于Requester IDs,Completer IDs以及Routing ID。
ARI Device : 與Upstream Port關聯的設備,其Functions均包含 ARI Extended
ARI Downstream Port : 支持 ARI 轉發的Switch Downstream Port或Root Port。
( ARI(Alternative Routing-ID),備選路由ID。在PCIE中,往往數據包傳輸通過TLP的形式。這些TLP大致分為Memory Read/Write TLP , Configuration Read/Write TLP ,Completion TLP, Message TLP以及IO TLP。這些TLP從Request端到Completion端的過程叫做路由,而路由又大致分為兩類地址路由和ID路由。
所有的ID路由中的ID包括Request端的bus number,device number以及function number。其中ID有16 bits,bus number 8 bits,device number 5 bits,function number 3 bits意味著支持8個function。
對于有些device功能比較復雜或者支持FBP技術的root port或者device,往往8個function不足以滿足要求,這個時候就出現了ARI技術。將device number的5 bits也用作function,這樣便可以由原來的8個function擴展到256個function。 )
- Length表示DW的數目,為整數
- 除了那些明確引用數據長度的消息,Length[9:0] 為所有Message保留
(請參閱協議第 2.2.8 節中的Message Code表。) - 有 data payload的 TLP 發送器不允許TLP Length字段給出的data payload長度超過發送器Device Control寄存器 Max_Payload_Size 字段中的值指定的DW長度。
- 對于ARI 設備,Max_Payload_Size 僅由Function 0 中的設置決定,忽略其他Function中的 Max_Payload_Size 設置。
- 如果一個非ARI Multi-Function Device(MFD)中的所有Functions 的Max_Payload_Size完全相同,如果有個Upstream Port與這個MFD相關聯,它傳輸的 TLP data payload不得超過通用 Max_Payload_Size 設置。
- 如果一個非ARI Multi-Function Device(MFD)中的所有Functions 的Max_Payload_Size不完全相同,如果有個Upstream Port與這個MFD相關聯,它傳輸的 TLP data payload不得超過我們自定義的 Max_Payload_Size 設置。
- 由 TLP 的 Length 字段給出的已接收 TLP 的data payload大小不得超過接收器設備Controller 寄存器的 Max_Payload_Size 字段中的值指定的長度。接收者必須檢查是否違反此規則。 如果接收器確定 TLP 違反此規則,則該 TLP 是格式錯誤的 TLP,這是一個與接收端口相關的報告錯誤。
- 對于 ARI 設備,Max_Payload_Size 僅由Function 0 中的設置確定。其他Function中的 Max_Payload_Size 設置將被忽略。
- 如果一個非ARI Multi-Function Device(MFD)中的所有Functions 的Max_Payload_Size完全相同,如果有個Upstream Port與這個MFD相關聯,接收器需要根據通用 Max_Payload_Size 的設置檢查 TLP data payload大小。
- 如果一個非ARI Multi-Function Device(MFD)中的所有Functions 的Max_Payload_Size不完全相同,如果有個Upstream Port與這個MFD相關聯,接收器需要根據自定義的Max_Payload_Size 設置檢查 TLP 的data payload。
對于包含數據的 TLP,Length字段中的值與 TLP 中包含的實際數據量必須匹配。同時,接收者必須檢查是否違反此規則。 如果接收器確定 TLP 違反此規則,則該 TLP 是Malformed TLP,這是一個跟Receiving Port相關的Reported Error。(RTL實現中要實現的ERROR異常)
-
PCIe
+關注
關注
15文章
1234瀏覽量
82586 -
數據包
+關注
關注
0文章
260瀏覽量
24385 -
TLP
+關注
關注
0文章
32瀏覽量
15625
發布評論請先 登錄
相關推薦
評論