文章目录
2. 协议层
通用芯粒互连快速(UCIe)映射PCIe,CXL以及任何流协议。使用以下协议映射:
- PCIe 6.0 Flit 模式
- CXL 2.0,“CXL 68B-增强型Flit模式”,“CXL 256B Flit模式”:如果协商CXL,则CXL.io,CXL.cache和CXL.mem协议是独立协商的。
- 流协议:这为使用UCIe传输的用户定义的协议提供了通用模式。
注意:不支持CXL 1.1。以CXL.io 68B Flit模式的形式支持PCIe非Flit模式。
协议层的互操作性要求:
- 如果发布PCIe支持,协议层必须支持CXL 2.0规范中定义的68B Flit模式(CXL.io)。
- 如果协议层支持“CXL 256B Flit模式”,它必须支持PCIe 6.0 Flit模式和CXL 2.0规范中定义的CXL.io的68B Flit模式。
- 允许CXL的协议层被仅支持CXL 2.0或CXL 68B增强型Flit模式,而不支持“CXL 256B Flit模式”或PCIe 6.0 Flit模式
[Image]
Die-to-Die(D2D)Adapter与远程链路协商协议,并将其通信到协议层。对于每种协议,UCIe支持多种操作模式(必须根据所发布的功能、物理层状态以及使用模式与远程链路协商)。这些
模式有不同的Flit格式,并被定义为在效率、带宽和互操作性方面实现不同的权衡。支持的协议频谱、发布模式和Flit格式必须在SoC集成时或特定芯片复位启动流程期间确定。Die-to-Die Adapter使用该信息来协商操作模式,作为链路训练的一部分,并通过Flit-aware Die-to-Die Interface 接口(FDI)通知协议层。有关Adapter中的参数交换规则,请参考第3.1节。
随后的章节从协议层的角度给出了不同模式的概述,因此它们以每个协议的子章节的形式涵盖了支持的操作模式。协议层负责根据协商模式和Flit格式通过FDI传输数据。本章中的格式插图显示了协议层中64B数据路径映射到UCIe物理链路上高级包配置的64 Lane模块。某些Flit格式具有由Adapter填充的专用字节位置,与这些位置相关的详细信息将在第3.0章中单独说明。对于其他链路宽度,请参考第4.1.1节中定义的字节到通道映射。
2.1 PCIe 6.0
UCIe仅支持PCI Express 6.0定义的Flit模式,请参考PCI Express 6.0协议。PCIe支持两种UCIe操作模式,这些模式将在下面的小节中定义。在说明这些模式的不同格式的图中,灰色字节代表由Adapter插入的信息。在这些被显示为Flit的一部分(例如在下面的标准的256B Flit中),协议层必须在发送端上对它们驱动0,而在接收端上忽略它们。
2.1.1 PCIe 6.0的RAW Mode
此模式是可选的。预期用途是用于传输PCIe协议的UCIe Retimer。这种模式的一个使用场景是,CPU和I/O设备位于不同的机架/机箱中,并使用封装外互连通过UCIe Retimer连接,如图2所示。对于Raw Mode,重试、CRC和FEC由协议层负责。所有64字节都由协议层填充。强烈建议UCIe Retimer使用PCIe Express基本规范中为该模式定义的6B FEC或Flit模式8B CRC的奇偶校验位来检查和计数错误,以帮助表征D2D链路(以便表征或调试链路的主要错误源)。
图14 无备用lane的Raw mode 格式
[Image]
2.1.2 Flit模式:PCIe 6.0的标准256B Flit
当支持PCIe协议时,此模式是强制性的。这里的标准Flit模式是PCI Express基本规范中为Flit模式,支持这种Flit格式的主要目的是实现与仅支持标准PCIe Flit格式的供应商的互操作性。协议层必须遵循FDI上Flit传输的Flit格式,(针对Die-to-Die Adapter上的保留的字段缺省为0)。PM和Link Management 的DLLPs不在UCIe上使用。其他DLLP(适用于PCIe Flit模式)和Flit状态定义以及组包,遵循PCI Express 6.0中定义。强烈建议从协议层开始优化任何与8b/10b、128b/130b和非Flit模式相关的CRC/重试或组帧的逻辑,以获得UCIe应用的优化面积和功耗的设计。对于Flit_Marker的分配,部分DLP字节必须由协议层驱动;有关如何驱动DLP字节的详细信息,请参阅第3.2.3节。
图15 标准256B Flit格式
[Image]
2.2 CXL 3.0 256B Flit Mode
有关“CXL 256B Flit模式”的协议层消息和时隙格式的详细信息,请参考计算快速链路规范。本协议有四种可能的操作模式,这些模式将在下面的小节中定义。灰色字节由Adapter插入。如果它们被显示为主数据通路上的一部分(例如在标准的256B Flit中),协议层必须在发射机上对它们驱动0,而在接收机上忽略它们。
2.2.1 “CXL 256BFlit Mode”的 Raw Mode
此模式是可选的。预期用途是用于传输“CXL 256BFlit Mode”协议的UCIeRetimer。这种模式的一个使用场景是,CPU和I/O设备位于不同的机架/机箱中,并使用封装外互连通过UCIeRetimer进行连接。重试、CRC和FEC由协议层负责。所有64字节都由协议层填充。图14显示了这种模式下的传输示例。强烈建议UCIeRetimer使用6B FEC或Flit模式8B CRC或6B CRC的奇偶校验位来检查和计数错误;取决于启用了哪种Flit格式。这有助于描述和调试D2D链接,这是错误的主要来源。对于CXL.cachemem,viral或者poison的处理(如果适用)必须在此模式的协议层内进行。
2.2.2 Flit模式:针对“CXL 256B Flit模式”的延迟优化256B Flit
强烈建议UCIe上的“CXL 256B Flit模式”支持此模式。为此模式定义了两种Flit格式,它们源自Compute Express Link 3.0规范中定义的延迟优化Flit。第二种Flit格式的唯一区别是,它通过为协议层提供额外的字节来提供更高的Flit打包效率。对于CXL.io来说,这会产生额外的4B TLP信息,对于CXL.cachemem来说,这会产生一个额外的14B H-Slot,可以打包到Flit中。对第一种或第二种格式的支持是在链接启动时协商的。
延迟优化模式使得协议层能够消耗128B边界处的Flit,从而显著降低累积延迟。协商此模式时,协议层必须遵循FDI上Flit传输的Flit格式,在Die-to-Die Adapter的保留字段上驱动0。
针对CXL.io, Ack、Nak、PM和链路管理DLLPs不在UCIe上用于任何256B Flit模式。其他DLLP和Flit_Marker定义遵循Compute Express链接规范中定义的规则。DLP字节的一部分必须由Flit_Marker分配的协议层驱动;有关如何驱动DLP字节的详细信息,请参考第3.2.3节。
对于此模式的CXL.cachemem,FDI提供LP_CORCRUT_CRC信号,以帮助优化延迟,同时保证Viral处理。有关Viral处理接口规则的详细信息,请参考第8.0章。
图16 CXL.io延迟优化的256B Flit格式
[Image]
图17 CXL.cachemem延迟优化的256B Flit的第二种格式
[Image]
2.2.3 Flit模式:标准256B Flit用于“CXL 256B Flit模式”
当支持“CXL 256B Flit模式”协议时,此模式是强制性的。它是Compute Express Link规范中为256B Flit模式定义的标准Flit格式,支持此Flit格式的主要动机是实现与仅支持标准256B Flit格式的供应商的互操作性。协议层必须遵循FDI上Flit传输的Flit格式,在为Die-to-Die Adapter保留的字段上驱动0。Ack、Nak、PM和链路管理DLLP不在CXL.io的UCIe上使用。其他DLLP和Flit状态定义遵循Compute Express链接规范中定义的相同规则和打包。DLP字节的一部分必须由Flit_Marker分配的协议层驱动;有关如何驱动DLP字节的详细信息,请参考第3.2.3节。图18显示了这种模式的Flit格式。
对于此模式的CXL.cachemem,FDI提供LP_CORCRUT_CRC信号,以帮助优化延迟,同时保证病毒遏制。有关病毒遏制接口规则的详细信息,请参考第8.2节。
图18 用于CXL的标准256B Flit格式
[Image]
2.3 CXL 2.0或“CXL 68B-增强型Flit Mode”
有关CXL 2.0或“CXL 68B-增强型Flit模式”的协议层消息和slot格式的详细信息,请参考Compute Express Link Specification。这些协议中的每一个都有两种可能的操作模式,这些模式将在下面的小节中定义。灰色字节由Adapter插入。
2.3.1 CXL 2.0的Raw Mode或“CXL 68B-增强型Flit Mode”
此模式是可选的。预期用途是用于传输“CXL 64BFlit Mode”协议的UCIeRetimer。这种模式的一个使用示例是,CPU和I/O设备位于不同的机架/机箱中,并使用封装外互连通过UCIeRetimer进行连接。重试和CRC由协议层负责。所有64字节都由协议层填充。图14显示了这种模式下的传输示例。
2.3.2 Flit模式:CXL 2.0的68B Flit或“CXL 68B-增强型Flit模式”
当协商CXL 2.0或“CXL 68B增强型Flit模式”协议时,此模式是强制性的。这遵循Compute Express Link规范中定义的相应68B Flit格式,支持此Flit格式的主要动机是实现与仅支持基线CXL格式的供应商的互操作性。协议层在FDI上显示64B的Flit(不包括协议ID和CRC),Die-to-Die Adapter插入2B Flit报头和2B CRC,并执行按图19所示格式排列Flit所需的字节移位。
在这种模式下,PM或Ack或Nak DLLPs不用于CXL.io。CXL.io的信用更新和其他剩余DLLPs在Compute Express链接规范中定义的Flits中传输。对于CXL.io,发送器不得在协议层实现重试(因为重试是在Adapter中处理的)。为了保持成帧规则的一致性,CXL.io的协议层仍然必须以固定值0驱动LCRC字节,并且接收方必须忽略这些字节,并且从不发送任何Ack或Nak DLLPs。
对于CXL.cachemem,Flit中的“Ak”字段被保留,并且不使用重试Flit(因为重试是在Adapter中处理的)。链路初始化从发送INIT.Param Flit开始,而不等待任何接收到的Flit。对于68B Flit模式,Viral遏制(如果适用)必须在协议层内处理。
图19 UCIe链路上68B Flit的格式
[Image]
图20 FDI上的68B Flit格式
[Image]
2.4 数据流协议
如果没有PCIe或CXL协议要发布,并与远程链路伙伴协商,数据流协议是必须发布的默认协议。UCIe规范中为该协议定义了单一操作模式,但允许供应商定义扩展。
2.4.1 Raw Mode 数据流协议模式
这对于数据流协议支持是强制性的。所有64字节都由协议层填充。图14显示了此模式在x64模块的物理链路上的传输。
2.5 支持模式汇总
表10总结了每个协议的不同操作模式。其格式的详细信息在第3.0章中定义。
表10.支持的协议的工作模式
This content is only supported in a Feishu Docs
由于feishu不支持直接拷贝,请读者自行在原文协议中找到没有上传的图表。谢谢~

本文详细介绍了通用芯粒互连(UCIe)协议层中PCIe6.0和CXL3.0的Flit模式,包括RAW Mode、延迟优化256BFlit以及标准256BFlit格式。内容涵盖了各种模式的用途、互操作性要求和协议层的责任,旨在理解UCIe如何支持高带宽、低延迟的数据传输。
2249

被折叠的 条评论
为什么被折叠?



