:Protocol Layer(协议层))
2 Protocol Layer协议层本文版权归作者所有任何形式的转载都请注明出处UCIe 映射了 PCIe、CXL 和 Streaming 协议。其中UCIe 将协议层和 Flit 传输格式解耦。例如PCIe Non-Flit Mode 报文可以打包成 CXL.io 68B Flit 格式传输。协议层特性包括① 事务层及其更上层的定义② 流控协商等链路层特性不包括 Flit 格式和 Retry。协议定义了 4 个协议层特性的术语PCIe Flit ModePCIe 6.0 新增报文格式报文固定长度 256B Flit 236B TLP 6B DLP 8B CRC 6B FEC。PCIe non-Flit Mode传统 PCIe Gen1~5 报文格式变长 Flit。这些报文通过 CXL 68B Flit 格式打包将报文分片每片为大小 64B 的 data chunkAdapter 加上 2B Header 2B CRC 组成 68B Flit 传输。CXL 68B Flit ModeCXL 2.0 为了与 DDR 协议兼容引入的报文格式68B Flit 2B Header 64B Data 2B CRC。CXL 256B Flit ModeCXL 3.0 引入的报文格式更高的带宽利用率和传输效率。支持两种格式Standard 256B Flit Formats基本格式。Latency-Optimized (LOpt) 256B Flit Formats可选格式优化延迟不需要整包收齐-校验-转发收到 128B Flit 即可转发。UCIe Mainband 上支持的协议映射PCIe Flit ModeCXL 68B/256B Flit ModeCXL 的 3 个子协议 CXL.io/CXL.cache/CXL.mem 独立协商Streaming protocolManagement Transport protocolNote:不支持 RCD/RCH/eRCD/eRCHCXL 内存扩展专用设备类型。PCIe non-Flit Mode 被映射成 CXL.io 68B Flit 格式传输。如 Table 2-1 所示为保证互用性协议层需要满足若速率 32GT/s则不支持 CXL 68B Flit Mode 和 PCIe non-Flit Mode。—— 68B 位宽太小不适用于高速互联场景。若协议支持 68B Flit Mode则必须支持 PCIe non-FLit Mode。—— 兼容性保证所有 68B 的实现都支持传统 PCIe。若协议支持 CXL 256B Flit Mode则必须支持 PCIe Flit Mode。—— 兼容性CXL 256B Flit Mode 完全兼容 PCIe Flit Mode。若协议支持 CXL 256B Flit Mode且速率 ≤ 32GT/s则必须也支持 68B Flit Mode。—— 向下兼容支持老版本 68B 的 CXL 2.0。若协议仅支持 CXL 68B Flit Mode则需要限速 32GT/s。—— 低成本实现要限速。协议由 D2D Adapter 与远端的 “Link partner” 协商需要基于双方宣称的功能、物理层状态和模式等并通知协议层协商结果。对每种协议UCIe 支持多种模式这些模式具有不同的 Flit 格式需要考虑效率、带宽和互用性三者之间的 trade-off。对于一个 Die支持哪些协议支持哪些模式支持哪些 Flit 格式需要在芯片设计流片阶段或者最晚在 Die 复位上电流程时确定下来。D2D Adapter 将协商好的参数信息在 Link Training 阶段通过 FDIFlit-aware Die-to-Die Interface告知协议层。协议层不参与参数协商但需要遵循协商结果。本章主要介绍协议层视角下的各种模式以及 Flit 格式。本章的举例主要是协议层的 64B 数据通路如何映射到 64-Lane 的物理链路上的其他链路宽度下的字节映射可见第 4.1.1 小节。某些由 D2D Adapter 填充的字段在第 3 章说明。如 Figure 2-1 所示展示了本协议中 Flit 格式示意图的字段是由哪层负责填充。2.1 PCIe对于 PCIeUCIe 支持以下 5 种 Format格式适配层是否必须支持用途行为Raw FormatFormat 1可选off-package 互联协议层填充所有字段保证可靠性Adapter 仅透传。Standard 256B End Header Flit FormatFormat 3基本格式必须支持适配支持标准 PCIe 格式的 IP协议层填充部分字段Adapter 保证可靠性。68B Flit FormatFormat 2协商速率 ≤ 32GT/s 时必须支持支持低速率传输借用 CXL.io 68B Flit 格式传输协议层剥离出 64B payload由 Adapter 添加 Header CRC。Standard 256B Start Header Flit FormatFormat 4可选协议头在前便于解析协议层填充部分字段Adapter 保证可靠性。Latency-Optimized 256B Flit Formatwith Optional BytesFormat 6可选低延迟需求收到 128B Flit 即可校验不必等待 256B 收齐协议层填充部分字段Adapter 保证可靠性。Note:UCIe Adapter 已提供可靠的 Flit 传输CRC Retry 在适配层完成若协议层仍检查到 framing error则极有可能是 Uncorrectable Internal Error即芯片故障而非通道噪声。部分字段由 Adapter 负责填充协议层应将其置 0。后续相关内容均适用此规则。除 Raw Format 外DLP 中的 Flit_Marker 必须由协议层填充用于标识当前 Flit 中最后一个 TLP 数据是否为 Poison 或为 Null。后续相关内容均适用此规则。UCIe 中的电源管理和链路管理由 Adapter 通过 Sideband 完成不使用 PM 和链路管理 DLLPs。后续相关内容均适用此规则。建议对 Raw Format由于 off-package 互联出错概率高强烈建议 Retimer 对 CRC/FEC 做校验和统计上报。Flit 模式不采用 8b/10b 或 128b/130b 编码不需要使用特殊字段实现帧定界。对于 256B Flit Format 的协议层相关逻辑可以优化掉而 68B Flit Format 直接复用 CXL 格式UCIe 保留原生 CXL 格式的 framing token / framing error 等相关字段如 SeqNum、DLLP CRC、STP 中的 Frame CRC 和 Frame Parity。UCIe 会在发送端置 0接收端忽略这些字段比如发送端会将 LCRC 置 0接收端会忽略 LCRC不会返回 Ack/Nak DLLPs。适配层保证可靠性传输建议协议层优化掉 CRC、FEC 以及 Retry 相关的逻辑。2.2 CXL 256B Flit Mode对于 CXL 256B Flit ModeUCIe 支持以下 4 种 Format格式适配层是否必须支持用途行为Raw FormatFormat 1可选off-package 互联协议层填充所有字段保证可靠性Adapter 仅透传。Standard 256B Start Header Flit FormatFormat 4CXL 256B Flit Mode 下必须支持兼容标准 CXL 3.0 设备协议层填充部分字段Adapter 保证可靠性。Latency-Optimized 256B Flit Formatwithout Optional BytesFormat 5可选低延迟需求协议层填充部分字段Adapter 保证可靠性。Latency-Optimized 256B Flit Formatwith Optional BytesFormat 6可选低延迟需求更高的传输效率协议层填充部分字段Adapter 保证可靠性。Note:对 Raw FormatCXL.cache/CXL.mem 支持 Poison 机制需要协议层做相应的处理。FDI 接口信号 lp_corrupt_crc 指示数据流中存在 CRC 校验错误该信号仅对 CXL.cache/CXL.mem 有效。Latency-Optimized 256B Flit Formatwith Optional Bytes增加了额外的 Byte 传输数据。对 CXL.io可以额外传递 4B 的 TLP info对 CXL.cache/CXL.mem可以额外传递 14B 的 H-slot。建议CXL 256B Flit Mode 下强烈建议支持 Latency-Optimized 256B Flit Format。2.3 CXL 68B Flit Mode对于 CXL 68B Flit ModeUCIe 支持以下 2 种 Format格式适配层是否必须支持用途行为Raw FormatFormat 1可选off-package 互联协议层填充所有字段保证可靠性Adapter 仅透传。68B Flit FormatFormat 2CXL 68B Flit Mode 下必须支持低速场景协议层提供剥离了 Protocol ID 和 CRC 的 64B chunk由 Adapter 填 2B Header 2B CRC。Note:对 68B Flit Format因为物理 Lane 宽度不是 68B 的整数倍 (x64/x32/x16)Adapter 需要做字节移位 (Byte shifting)对协议层不可见。对 68B Flit FormatCXL.cache/CXL.mem 支持 Poison 机制需要协议层做相应的处理。68B Flit Format 不提供 lp_corrupt_crc 信号2.4 Streaming ProtocolStreaming Protocol 是不用 PCIe/CXL 时的默认协议。若不支持 Streaming Protocol则只可用 Raw Format 或其他自定义格式。对于 Streaming ProtocolUCIe 支持以下 6 种 Format格式适配层是否必须支持用途行为Raw FormatFormat 1可选off-package 互联协议层填充所有字段保证可靠性Adapter 仅透传。68B Flit FormatFormat 2协商速率 ≤ 32GT/s 时可选支持低速率传输协议层剥离出 64B payload由 Adapter 添加 Header CRC。Standard 256B End Header Flit FormatFormat 3可选支持标准 256B 格式协议层填充部分字段Adapter 保证可靠性。Standard 256B Start Header Flit FormatFormat 4可选支持标准 256B 格式协议层填充部分字段Adapter 保证可靠性。Latency-Optimized 256B Flit Formatswithout Optional BytesFormat 5选低延迟需求协议层填充部分字段Adapter 保证可靠性。Latency-Optimized 256B Flit Formatswith Optional BytesFormat 6选低延迟需求更高的传输效率协议层填充部分字段Adapter 保证可靠性。Note:对 Streaming Protocol【协议层 - Adapter】方向由 Adapter 填的字段包括 Header 和 CRC 字段协议层需置 0。对于 68B Flit Format协议层需要剥离出 64B payload由 Adapter 添加 Header CRC。【Adapter - 协议层】方向协议层忽略为 Adapter 保留的字段。对于 68B Flit Format需要由 Adapter 剥离 Header 和 CRC 后送到协议层。2.5 Management Transport Protocol管理传输协议Management Transport Protocol用于在 Mainband 上传递管理报文anagement Transport PacketMTP。除了不支持 68B Flit Format 外支持 Raw Format 和其他任意 256B Flit Format。协议层的行为同 2.4 Streaming Protocol。