UCIE Specification详解(二)
文章目录
- 1 Introduction(介绍)
- 1.1 UCIe Components(UCIe 组件)
- 1.1.1 Protocol Layer(协议层)
- 1.1.2 Die-to-Die (D2D) Adapter
- 1.1.3 Physical Layer(物理层)
- 1.1.4 Interfaces(接口)
- 1.2 UCIe Configurations(UCIe 配置)
- 1.2.1 Single Module Configuration(单模块配置)
- 1.2.2 Multi-module Configurations(多模块配置)
- 1.2.3 Sideband-only Configurations(仅边带配置)
- 1.3 UCIe Retimers(UCIe 重定时器)
- 1.4 UCIe Key Performance Targets
- 1.5 Interoperability(互操作性)
1 Introduction(介绍)
本章提供了通用芯粒互连快速(UCIe)架构的概述。UCIe 是一种开放的、支持多协议的片上互连标准,用于连接同一封装上的多个Die。其主要动机是支持一个充满活力的生态系统,支持使用UCIe 互连的分解式Die 架构。UCIe 在通用的物理层和链路层之上支持多种协议(PCIe、CXL、流协议以及只要两端支持就可用于映射任何所选协议的原始格式)。它涵盖了SoC 构建所需的元素,如应用层,以及与封装相关的外形规格(例如,凸点位置、电源传输、散热解决方案等)。
UCIe 可管理性架构是一种可选机制,通过提供通用的可管理性架构和硬件/软件基础设施,以便在不同实现中加以利用,来管理基于UCIe 的SiP。UCIe DFx 架构(UDA)利用UCIe可管理性架构为基于UCIe 的SiP 提供标准化的测试和调试基础设施。
该规范的定义是为了确保具有不同性能特征的广泛设备之间的互操作性。提供了明确的调试
和合规机制以确保互操作性。预计该规范将以向后兼容的方式发展。
虽然UCIe 支持广泛的使用模型,但这里提供了一些作为其在计算行业中能够释放的能力和创新类型的说明。映射到UCIe 的初始协议是PCIe、CXL 和流协议。所有协议的映射都使用Flit 格式完成,包括原始格式。PCIe 和CXL 都被广泛使用,这些协议映射将通过用UCIe适配器和PHY 取代PCIe SERDES PHY 以及PCIe/CXL LogPHY 和链路级重试,实现更多的片上集成,以改善功耗和性能特征。UCIe 规定流协议也利用UCIe 适配器的链路级重试,这可用于为PCIe 或CXL 以外的协议提供可靠传输。UCIe 还支持与协议无关的原始格式,以使其他协议能够映射;同时允许诸如在封装上集成独立的SERDES/收发器tile(例如,以太网)等使用。使用原始格式时,协议层负责跨UCIe 链路的可靠传输。
图1-1 展示了一个SoC 封装,由通过UCIe 连接的CPU Die、加速器Die 和I/O tile Die 组成。当连接到CPU 时,加速器或I/O tile 可以通过UCIe 使用CXL 事务——利用CXL 的I/O、一致性和内存协议。I/O tile 可以提供封装的外部CXL、PCIe 和DDR 引脚。当连接到CPU 时,加速器也可以通过UCIe 使用PCIe 事务。封装上的CPU 到CPU 连接也可以使用UCIe 互连,
运行一致性协议。
Figure 1-1. A Package Composed of CPU Dies, Accelerator Die(s), and I/O Tile Die Connected through UCIe
UCIe 重定时器可用于通过封装外互连将UCIe 连接扩展到封装之外。封装外互连的示例包括电缆或光缆或任何其他在机架/吊舱级别连接封装的技术,如图1-2 所示。UCIe 规范要求UCIe重定时器在其本地封装上向其连接的Die 实现UCIe 接口,并确保使用其选择的通道扩展技术按照UCIe 协议将Flit 传送到单独封装中的远程UCIe Die 接口。
图1-2 展示了使用CXL 协议的机架/吊舱级分解。图1-2a 显示了机架级别视图,其中来自不同计算机箱的多个计算节点(虚拟层级)连接到一个CXL 交换机,该交换机连接到多个CXL加速器/Type-3 存储设备,这些设备可以放置在一个或多个单独的抽屉中。这种连接的逻辑视图如图1-2b 所示,其中每个“主机”(H1、H2、…)是一个计算抽屉。每个计算抽屉通过UCIe 重定时器使用运行CXL 协议的封装外互连连接到交换机,如图1-2c 所示。交换机也有同封装重定时器,其中重定时器tile 使用UCIe 连接到主交换机Die,另一侧是用于连接到加速器/存储设备的PCIe/CXL 物理互连,如图1-2c 所示。
Figure 1-2. UCIe enabling long-reach connectivity at Rack/Pod Level
UCIe 允许三种不同的封装选项:标准封装(2D)、先进封装(2.5D)和UCIe-3D。这涵盖了从成本最低到性能最佳的互连范围。
- Standard Package(标准封装)— 这种封装技术用于低成本和长距离(从一个Die 上的凸点到远程Die 的连接凸点测量为10 mm 至25 mm)的互连,使用有机封装/基板上的走线,同时与封装外的SERDES相比仍能提供明显更好的误码率特性。图1-3 显示了使用标准封装选项的示例应用。表1-1 显示了带有UCIe 的标准封装选项的特性总结。
a. 有关误码率特性的详细信息,见第5.0 章。
- Advanced Package(先进封装)— 这种封装技术用于性能优化的应用。因此,通道距离较短(从一个Die 上的凸点到远程Die 的连接凸点测量小于2 mm),并且互连预计将针对高带宽和低延迟进行优化,具有最佳的性能和功率效率特性。图1-4、图1-5 和图1-6 展示了使用先进封装选项的示例应用。
表1-2 显示了先进封装选项主要特性的总结。
a. 有关误码率特性的详情,见第5.0 章。
- UCIe-3D:这种封装技术使用二维的互连凸点阵列在Die 之间进行数据传输,其中一个Die 堆叠在另一个Die 的顶部。为供应商提供了一系列设计选项菜单,以开发标准构建模块。表1-3 显示了UCIe-3D 的主要特性总结。图1-7 展示了UCIe-3D 的一个示例。有关UCIe-3D的详细描述见第6.0 章。
a. 电路架构针对< 10 um 的凸点间距进行了优化。10 至25 um 在功能上得到支持。
b. 有关误码率特性的详情,见第6.0 章。
1.1 UCIe Components(UCIe 组件)
UCIe 是一种分层协议,每一层执行一组不同的功能。图1-8 显示了UCIe 栈的三个主要组件以及各层之间的功能划分。UCIe 栈中的每个组件都必须能够支持所通告的功能和带宽。针对不同的握手和状态转换定义了多个超时和相关错误。除非另有明确说明,所有指定的超时值为负0% 和正50%。域复位后,所有超时值必须设置为指定值。域复位后,所有计数器值必须设置为指定值。
1.1.1 Protocol Layer(协议层)
虽然协议层可能因应用而异,但UCIe 规范提供了通过UCIe 链路传输CXL 或PCIe 协议的示例。UCIe 支持以下协议以实现不同的应用:
来自PCIe 基础规范的PCIe。
来自CXL 规范的CXL。注意,RCD/RCH/eRCD/eRCH 不受支持。
流协议:这为用户定义的协议提供了通用模式,以便使用UCIe 进行传输。
UCIeManagement Transport 协议a:这是用于在UCIe 可管理性架构内的UCIe 管理网络 上进行管理通信的端到端与介质无关的协议。
UCIeManagement Transport 协议可以封装以便在UCIe 边带或UCIe 主带上传输。第8.1 节涵盖此协议的细节。第8.2 节涵盖此协议在UCIe 边带和UCIe 主带上封装的细节。
对于每个协议,都有不同的优化和相关的Flit 传输可用于通过UCIe 进行传输。第2.0 章和第3.0 章涵盖了不同模式和Flit 格式的相关细节。
1.1.2 Die-to-Die (D2D) Adapter
D2D 适配器与协议层和物理层协同工作,以确保通过UCIe 链路成功进行数据传输。它尽可能减少主数据路径上的逻辑,从而为Protocol Flit 提供低延迟、优化的数据路径。在传输CXL协议时,多个同时协议所需的ARB/MUX功能由D2D适配器执行。对于原始误码率大于1e-27的选项,UCIe 规范为PCIe、CXL 或流协议提供了CRC 和重试方案,该方案在D2D 适配器中实现。有关重试规则,见第3.8 节。
D2D 适配器负责协调更高级别的链路状态机和启动、与远程链路伙伴进行协议选项相关的参数交换,并且在支持时,与远程链路伙伴进行电源管理协调。第3.0 章涵盖了D2D 适配器的相关细节。
1.1.3 Physical Layer(物理层)
物理层有三个子组件,如图1-9 所示。
物理凸点上的UCIe 主数据路径被组织为一组称为模块的通道。模块构成了UCIe AFE 结构设计实现的原子粒度。标准和先进封装中每个模块的通道数量在第4.0 章中指定。在需要带宽缩放的情况下,给定的协议层或D2D 适配器实例可以通过多个模块发送数据。
UCIe 的物理链路由两种类型的连接组成:
- Sideband(边带):
此连接用于参数交换、用于调试/合规的寄存器访问以及与远程伙伴协调进行链路训练和管理。它在每个方向上都由一个转发时钟引脚和一个数据引脚组成。无论主带数据速率如何,时钟固定在800 MHz。UCIe 物理层的边带逻辑必须在辅助电源和“always on”域上。每个模块都有自己的一组边带引脚。对于先进封装选项,在每个方向上提供一对冗余的时钟和数据引脚用于修复。
- Mainband(主带):
此连接构成UCIe 的主数据路径。它由一个转发时钟、一个数据有效引脚、一个Track引脚和每个模块的N 个数据通道组成。
对于先进封装选项,N = 64(也称为x64)或N = 32(也称为x32),并且在凸点图中提供了用于通道修复的总共四个额外引脚。
对于标准封装选项,N = 16(也称为x16)或N = 8(也称为x8),并且不提供用于修复的额外引脚。
逻辑物理层协调不同的功能及其相对顺序,以实现正确的链路启动和管理(例如,边带传输、主带训练和修复等)。
第4.0 章和第5.0 章涵盖了物理层操作的细节。
1.1.4 Interfaces(接口)
UCIe 在第10.0 章中定义了物理层和D2D 适配器之间的接口(Raw D2D 接口),以及D2D适配器和协议层之间的接口(Flit 感知D2D 接口)。还提供了信号的参考列表,以涵盖SoC和UCIe 栈之间Management Transport 协议的交互和规则。
其动机有两个方面:
允许供应商和SoC 构建者以低集成成本和更短的上市时间轻松混合和匹配来自不同IP 提供商的不同层(例如,使协议层与来自任何符合UCIe 规范中提供的接口握手的不同 供应商的D2D 适配器和物理层协同工作)。
鉴于硅后(post-silicon)阶段的互操作测试具有更高的开销和相关成本,对总线功能模 型(Bus Functional Models,BFM)的一致理解和开发可以使该栈的IP 开发更容易。
1.2 UCIe Configurations(UCIe 配置)
本节描述了UCIe 操作允许的不同配置和排列。
1.2.1 Single Module Configuration(单模块配置)
如图1-10 所示,单个模块配置在先进封装中为x64 或x32 数据接口。如图1-11 所示,在标准封装中,单个模块配置为x16 或x8 数据接口。x8 标准封装模块仅允许用于单个模块配置,
主要用于预绑定测试目的。在单个模块配置的多个实例中,每个模块都有自己专用的适配器,
它们独立运行(例如,它们可以以不同的数据速率和宽度传输数据)。
1.2.2 Multi-module Configurations(多模块配置)
本规范允许两和四模块配置。当使用通用适配器运行时,在两模块和四模块配置中的模块必须以相同的数据速率和宽度运行。两模块和四模块配置的示例见图1-12 至图1-14。
1.2.3 Sideband-only Configurations(仅边带配置)
允许标准封装UCIe 仅边带配置用于测试或可管理性目的。这可以是作为同一个仅UCIe 边带的一部分的一个、两个或四个仅边带端口链路。图1-15、图1-16 和图1-17 展示了这些配置的示例。更多细节见第5.7.4 节。
1.3 UCIe Retimers(UCIe 重定时器)
如前所述,UCIe 重定时器用于启用不同类型的封装外互连,以扩展不同封装上两个UCIe Die之间的通道覆盖范围。每个UCIe 重定时器都有一个本地UCIe 链路连接到封装上的UCIe Die,以及一个用于更长覆盖范围的外部连接。图1-18 展示了一个高级框图,展示了一个利用UCIe重定时器在UCIe Die 0 和UCIe Die 1 之间实现封装外互连的系统。UCIe 重定时器0 和UCIe Die 0 通过封装0 内的UCIe Link 0 连接。UCIe 重定时器1 和UCIe Die 1 通过封装1 内的UCIe Link 1 连接。remote Retimer partner(远程重定时器伙伴)这一术语用于指代连接到封装外互连远端的UCIe 重定时器die。
UCIe 重定时器的职责包括:
跨封装外互连的可靠Flit 传输。实现此目的有三个可用选项,如下所述:
— 只要外部互连符合其传输协议(例如,PCIe 或CXL)的底层规范的相应错误模型(例如,误码率和错误相关性),则允许重定时器使用由其承载的协议的底层规范原生定义的FEC 和CRC。UCIe 链路将设置为利用原始格式来传输其传输协议(例如,PCIe 或CXL Flit)的原生位。在这种情况下,必须在UCIe Die 上调整队列大小(协议层缓冲区)以满足底层往返延迟。
— 允许重定时器提供必要的FEC、CRC 和重试功能来处理封装外互连的误码率。在这种情况下,Flit 经过三个独立的链路;每个UCIe 重定时器与封装内的UCIe Die 进行独立的ACK/NAK 以进行重试,并与远程重定时器伙伴进行单独的独立ACK/NAK 以进行重试。对于这种情况,协议允许在UCIe 链路上使用任何适用的Flit 格式进行传输。— 重定时器通过用自己的FEC 替换原生的PCIe 或CXL 定义的FEC,或者在原生的PCIe 或CXL 定义的FEC 之外添加自己的FEC 来提供自己的FEC,但利用底层协议内置的CRC 和重放机制。在这种情况下,必须在UCIe Die 上调整队列大小(协议层缓冲区、重试缓冲区)以满足底层往返延迟。
与远程重定时器伙伴解决链路和协议参数,以确保UCIe Die 端到端(E2E)的互操作性。 例如,在图1-18 中,重定时器允许在封装0 和封装1 上强制相同的链路宽度、速度、 协议(包括任何相关的协议特定参数)和Flit 格式。包括通过封装外互连进行参数交换的消息传输在内的解决的具体机制对于重定时器是特定于实现的,并且它们必须考虑到自身能力以及封装0 和封装1 上的UCIe Die 能力,确保一致的操作模式。然而,为了提高UCIe 链路的稳健性,以避免在外部互连需要更长时间进行链路连接或与远程重定时器伙伴解决参数的情况下出现不必要的超时,UCIe 规范为可能延迟的相关边带消息定义了“Stall”(暂停)响应。重定时器必须在UCIe 规范的规则内以“Stall”响应,以在等待或与远程重定时器伙伴协商时避免此类不必要的超时。重定时器有责任确保UCIe链路不会无限期暂停。
与远程重定时器伙伴确定链路和协议参数的解决方案,以确保UCIe Die 端到端(E2E) 的互操作性。例如,在图1-18 中,允许重定时器在封装0 和封装1 上强制相同的链路 宽度、速度、协议(包括任何相关的特定协议参数)和Flit 格式。包括跨封装外互连的参数交换的消息传输在内的具体解决机制对于重定时器是特定于实现的,它们必须考虑到自身能力以及封装0 和封装1 上的UCIe Die 能力,确保一致的操作模式。然而,为了提高UCIe 链路的健壮性,以避免在外部互连需要更长时间进行链路连接或与远程重定时器伙伴确定参数的情况下出现不必要的超时,UCIe 规范为可能延迟的相关边带消息定义了“Stall”响应。重定时器必须在UCIe 规范的规则内以“Stall”响应进行响应,以避免在等待或与远程重定时器伙伴协商时出现此类不必要的超时。重定时器有责任确保UCIe 链路不会无限期暂停。
解决适配器链路状态机(Link State Machine,LSM)的链路状态或与远程重定时器伙伴 的RDI 状态,以确保正确的端到端操作。更多细节见第3.0 章。
流量控制和反压:
— 从UCIe Die 传输到UCIe 重定时器的数据使用信用进行流量控制。这些信用是在任何底层协议信用机制(如PCIe 中的PH、PD 信用)之上的。这些UCIe D2D 信用必须用于跨两个UCIe 重定时器的流量控制,并且传输到UCIe 重定时器的任何数据最终必须由远程UCIe Die 消耗,而没有任何其他依赖。每个UCIe 重定时器都必须为从其封装内的UCIe Die 接收的Flit 实现一个接收缓冲区。在D2D 适配器的初始参数交换期间,将接收缓冲区信用通告给UCIe Die,并且如果UCIe Die 没有信用,则不得向UCIe 重定时器发送任何数据。一个信用对应256B 的数据(包括任何FEC、CRC 等)。信用返回在有效帧定界上重载(见第4.1.2 节)。每当RDI 状态从Active 状态转变时,UCIe Die的信用计数器将重新分配到其初始通告值。UCIe 重定时器在重新进入Active 状态之前,必须排空或丢弃(视情况而定)其接收缓冲区中的数据。
— 从UCIe 重定时器传输到UCIe Die 的数据在D2D 适配器级别不受流量控制。如果需要,UCIe 重定时器可能与另一个UCIe 重定时器有其独立的流量控制,这超出了本规范
的范围。
1.4 UCIe Key Performance Targets
(UCIe 关键性能指标)表1-4 给出了UCIe 高级和标准封装配置的性能指标总结。表1-5 给出了UCIe-3D 的性能指标总结。
a. Die 边缘带宽密度定义为每毫米硅Die 边缘每秒的总I/O 带宽(单位为GB),凸点间距为45 um(先进封装)和110 um(标准封装)。对于x32 Advanced Package 模块,Die 边缘带宽密度是x64 对应值的50%。
b. 能源效率(从FDI 传输到位凸点再返回FDI 每一位所消耗的能量)包括所有与适配器和物理层相关的电路,包括但不限于Tx、Rx、PLL、时钟分配等。信道覆盖范围和端接在第5.0 章讨论。
c. 延迟包括发送和接收时适配器和物理层(从FDI 到位凸点的延迟)的延迟。物理层延迟的详细信息见第5.0 章。延迟目标基于16 GT/s。其他数据速率下的延迟可能因与数据速率相关的方面(如数据积累和传输时间)而有所不同。请注意,延迟目标不包括处理所需的位积累;无论是在Flit 内还是跨Flit。
a. 带宽密度是针对9 um 的凸点间距提供的。
b. 能源效率(每比特消耗的能量)包括所有的Tx、Rx、PLL、时钟分配等。
c. 延迟包括发送和接收的延迟。
1.5 Interoperability(互操作性)
封装设计者需要确保封装上连接的Die 能够相互操作。这包括兼容的封装互连(例如,高级与标准)、协议、电压水平等。强烈建议Die 采用小于0.85 V 的发送器电压,以便在可预见的未来能够与广泛的工艺节点相互操作。
本规范涵盖了先进封装选项的各种凸点间距的互操作性。预计随着时间的推移,较小的凸点间距将被主要使用。随着凸点间距变小,我们预计设计将降低最大通告频率(即使它们可以达到32G),以优化面积,并解决高带宽在面积减少情况下的供电和散热限制。表1-6 总结了四组的这些凸点间距。根据第5.0 章中指定的PHY 大小,在每个组内以及跨组都保证互操作性。表1-4 中提供的性能指标是基于45 um 的凸点间距,基于在UCIe 1.0 和UCIe 1.1规范(2022-2023 年)发布时广泛部署的技术。