PCIE 6.0 (四)
事務層報文格式
⊙transaction layer
作為協議的最高層,事務層的主要功能是:
? 流水線式完整拆分交易協議
? 區分事務層數據包 (TLP) 的排序和處理要求的機制
? 基于credit的流量控制
? 可選支持數據中毒和端到端數據完整性檢測。
0****1
**###
Transaction Descriptor
**
事務描述符是一種在請求方和完成方之間攜帶事務信息的機制。通過事務描述符TL層才知道要如何處理這些報文。在整個事務描述符由三個字段組成:
? Transaction ID—識別未完成的交易
? Attributes field — 指定事務的特征
? Traffic Class (TC) field — 將交易與所需服務類型相關聯
Transaction ID
下圖顯示事務描述符的字段。 這些字段在數據包標頭中不連續。
在架構上,Tag[13:0] 是由每個請求者生成的 14 位字段,表示一次pcie的通信TLP 的序號。對于所有需要完成該請求者 ID 的未完成請求,它必須是唯一的。TAG的大小決定了事務層傳輸事務的數量的大小,相比于PCIE 5.0支持10bit tag,PCIE 6.0可以支持14bit tag,事務的數量擴大了16倍, PCIE 6.0 的協議中有具體的規定,哪些情況下可以支持14bit TAG,小編在此就不詳細列出了。
Requester ID 字段包含“生成這個 TLP 報文”的 PCIe 設備的總線號(Bus Number)、設備號(Device Number)和功能號(Function Number),對于存儲器寫請求 TLP,Requester ID 字段并不是必須的。但是 PCIe 總線規范并沒有明確說明存儲器寫請求 TLP 究竟需不需要 Requester ID 字段,為此 IC 設計者依然需要將存儲器寫 TLP 的 Requester ID 字段置為有效。
對于 Non-Posted 數據請求,目標設備需要使用完成報文做為回應。在這個完成報文中,需要使用源設備的 Requester ID 字段。因此在 Non-Posted 數據請求 TLP 中,如存儲器讀請求、I/O 和配置讀寫請求 TLP,必須使用 Requester ID 字段。
Attributes field
Attributes 字段用于提供附加信息,允許修改 Transactions 的默認處理。 例如:
? 排序 (ordering)
(PCIE中報文是有優先級的,不同的報文有不同的優先級,order功能就是用來計算如何讓優先級高的報文先進行傳輸,并且不打亂在鏈路中其他報文的順序,后面會和大家介紹order的功能)
? 硬件一致性管理 (snoop)
Attributes是允許但不需要優化流量處理的提示。 優化支持的級別取決于特定 PCI Express 外設和平臺構建塊的目標應用。 在Flit Mode中,Attributes在 TLP 報頭中是連續的。 在 Non-Flit Mode 中,Attributes bit 2 有時標記為 A2,并且與bit 1 和 0 不相鄰。
Traffic Class (TC) field
流量類別 (TC) 是一個 3 位字段,允許將事務區分為八個流量類別。
與 PCI Express 虛擬通道支持一起,TC 機制是實現差異化流量服務的基本要素。 每個 PCI Express 事務層數據包都使用 TC 信息作為在 PCI Express 結構中端到端攜帶的不變標簽。 當數據包穿過結構時,此信息將在每個鏈路和每個交換機元素內使用,以做出有關正確提供流量服務的決策。 服務的一個關鍵方面是根據 TC 標簽通過相應的虛擬通道路由數據包。
0****2
**## Completion Rules
**
在TL層傳輸中報文可以根據類型分為P(post), np(non-post), cpl報文。P報文指的是報文發出去需要等待接收方發回已經接收到的響應,才能進行下一步處理的報文(eg:所有的Read報文, Non-Posted Write, DMWR, and AtomicOp )。CPL報文就是響應報文。NP則是不需要等待響應回來就可繼續向下發送。
Completion Rules for Non-Flit Mode
CPL按照ID進行路由,并使用 3 DW 標頭。
? 請注意,路由 ID 字段直接對應于隨相應請求提供的請求者 ID。 因此,對于完成,這些字段將統稱為請求者 ID,而不是通常用于 ID 路由的不同字段。
? 除了包含在所有 TLP 中的報頭字段和 ID 路由字段外,Completions 還包含以下附加字段(參見§ 圖 2-73):
? Completer ID[15:0] - 標識完成者
? Completion Status[2:0] - 指示完成狀態
? BCM - 已修改的字節數 - 該位不得由 PCI Express 完成者設置,只能由 PCI-X 完成者設置
? Byte Count[11:0] - 請求的剩余字節數
?Tag[9:0] - 結合 Requester ID 字段,對應于 Transaction ID。 在 Non-Flit Mode 中,Tag 字段為 10 位。
? Lower Address[6:0] - 完成起始字節的低字節地址
Completion Rules for Flit Mode
在 Flit 模式中,CPL 的規則與 Non-Flit 模式中的相同,但域斷定義有一些不一樣。 在 Flit Mode 中,Completions 必須使用 Completion Header Base。在 Flit Mode 中,Tag 字段為 14 位。
-
存儲器
+關注
關注
38文章
7528瀏覽量
164347 -
PCIe
+關注
關注
15文章
1262瀏覽量
83195 -
TL
+關注
關注
0文章
39瀏覽量
26510
發布評論請先 登錄
相關推薦
評論