ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

学习:OHC

学习:OHC 一、为什么 PCIe 6.0 要引入 OHCNon-Flit Mode 里TLP Header 长度靠Fmt/Type决定PASID、TPH、IDE、E2E Prefix 等要么塞进 Prefix要么占死 Header 位Flit ModePCIe 6.0所有 TLP 都有Header Base1 / 3 / 4 / 5 / 6 / 7 DW可选扩展头叫OHC Orthogonal Header Content作用把“不是所有 TLP 都需要”的字段从 Base Header 里拆出来按需拼接关键词Base Header 固定结构 OHC 插件式扩展二、Header Base 里和 OHC 最相关的字段Flit Mode Header Base 第 1 DW 通常包含字段位宽作用Type[7:0]8 bit完全解码的 TLP 类型TC[2:0]3 bitTraffic ClassOHC[4:0]​5 bit指示后面挂了哪些 OHCTS[2:0]3 bitTrailer SizeAttr—属性Length—payload 长度DWOHC[4:0] 编码重点bit0 : OHC-A present bit1 : OHC-B present bit2 : OHC-C present bit3:4 : OHC-E selectionOHC[4:0]含义00000No OHCxxx1OHC-Axx1xOHC-Bx1xxOHC-C000xx / 001xxNo OHC-E01xxxOHC-E11 DW10xxxOHC-E22 DW11xxxOHC-E44 DW排列顺序固定Header Base → OHC-A → OHC-B → OHC-C → OHC-E → Data → Trailer一个 TLP 最多 7 个 OHC DWA/B/C 各 1DWE 最多 4DW。三、四类 OHC 到底装什么1. OHC-ARequest/Completion 的“传统扩展字段”不是一种格式而是 A1–A5 子类由 Type 决定用哪个子类用在哪主要内容A1Memory R/W、ATS、PASID MsgFirst/Last DW Byte Enable、PASID、PV、PMR、ERA2I/O RequestI/O 地址/属性类似传统 3DW IO header 扩展A3Config RequestConfig 地址/扩展字段A4ID-Routed MessageDestination Segment、PASIDA5CompletionCompletion Status、Lower Address[1:0]、Completer/Destination Segment 功能模型里OHC-A 不是“开关”而是“当前 TLP 类型决定的必需块”2. OHC-BTPH / Segment HintsTPHTLP Processing HintsPH、STRequester/Destination/Completer Segment主要用于地址路由请求、跨 Segment 路由如果没开 TPHPH/ST 可全 0但 Segment 非零时仍可能必须挂 OHC-B3. OHC-CIDE / SecurityIDE Stream IDIDE 使能标志Secure TLP 所需元数据规则IDE TLP必须有 OHC-C某些非 IDE TLP 也需要 OHC-C 来带 Requester Segment4. OHC-E原来的 End-to-End PrefixNon-Flit Mode 里是 E-E PrefixFlit Mode 里变成 OHC-E类型大小内容E11 DW简单 E2E prefix如 Precision Time Measurement 等E22 DW更复杂 prefixE44 DW大 prefix / 厂商扩展 / 未来特性四、FLIT 打包时的 OHC 处理如果你做 packetizer256B FLIT236B TLP region 6B DLP 8B CRC 6B ECCTLP region 里多个 TLPTLP 之间可用 NOP每个 VC 最多 4 个 non-NOP TLPOHC 只是 TLP 内部字段不影响 FLIT 层调度⚠️ 常见坑OHC 不影响路由但影响Header creditCompletion 解析IDE / PASID / TPH 功能行为合规性检查十二、一句话总结OHC 就是 PCIe 6.0 Flit Mode 的“可选 TLP 扩展头插件”A 请求/完成扩展B TPH / SegmentC IDE / 安全E 老 E2E Prefix
返回列表