UCIe Spec v3.0 (1):Introduction
1.0 Introduction
(本文版权归作者所有,任何形式的转载都请注明出处)
UCIe 协议适用范围: 用于芯片封装内部的 Die 间互联(D2D),而非跨 Chip 互联。
Note:
- Die 间互联的需求,来源于大芯片在良率和成本上的挑战,而衍生出的多 Die 封装。
- 传统 UCIe 场景是 Chip 封装内部 Die 间互联,可以通过集成 IO Die 提供的 PCIe/CXL/DDR 引脚或通过 Retimer 将 Chip 内互联场景扩展为跨 Chip 互联场景,延伸到 Rack/Pod 级别的互联。
Feature:
- 支持多种协议: 除了支持 PCIe、CXL 之外,还支持自定义协议(Streaming、Raw Format),Raw Format 模式下,payload 由协议层填充,D2D 仅透传,不添加 Header 和 CRC 校验;Streaming 模式下,可以选择由 D2D 添加 Header、CRC 校验以及 Retry 等,其余 payload 可由协议层填充。
Note:
- 自定义协议的典型应用场景,比如厂商私有的缓存一致性协议、AI 加速器数据流、DSP 音视频数据流、FPGA 加速器与 SoC 之间的自定义互联接口等。
- 支持 UDA(UCIe DFx Architecture): 对基于 UCIe 架构的芯片提供 DFT、Debug、Pre-bond Test等调测手段。
- 支持多种封装技术: 支持2D、2.5D、3D 封装,2D >> 2.5D >> 3D 覆盖了从最低成本到最佳性能的互联。
- 可选择 UCIe 替代传统 SERDES: UCIe Adapter + PHY 替代 PCIe SERDES PHY、PCIe/CXL LogPHY 以及 Link level Retry,提升功耗和性能表现。
Note:
- 也支持集成独⽴的 SERDES、收发器 Tile(如以太⽹控制器),这种 Tile 本⾝已有完整的协议栈和可靠性机制,不需要 UCIe Adapter 提供额外的 CRC、Retry 保护。
- 支持通过 UCIe Retimer 扩展到 Off-Package 互联: 通过 UCIe Retimer,local UCIe Die 和 remote UCIe Die 可以实现端到端互联,传输媒介可以是电线、光纤等,传输的仍是 UCIe 格式 Flit。
Note:
- 如 Fig 1-1 所示,展示了由 UCIe 连接的 CPU Die、加速器 Die 和 I/O Die。包括:(1)CPU Die 和 CPU Die 通过 UCIe 直连;(2)加速器或 I/O Die 通过基于 UCIe 的 CXL 事务连接到 CPU Die,其中 CXL.io、CXL.cache、CXL.mem 共用一条 UCIe 链路;(3)I/O Die 可以起到桥接作用,充当内部 UCIe 与外部标准 PCIe/CXL SERDES 接口协议的桥。
- 如 Fig 1-2 所示,展示了使用 CXL 协议的 Rack/Pod 级别的互联拓扑结构。这些加速器、存储、CPU 或 GPU 等或主或从的设备,可以放在一个或多个 drawer 中,这些 drawer 通过 CXL Switch 互联。其中,CXL Switch Die 和 UCIe Retimer 也通过 UCIe 互联。


1.1 UCIe Components( UCIe 组件)
如 Fig 1-8 所示,UCIe 是分层协议:协议层 ---- D2D Adapter ---- 物理层。

Note:
- 除非特殊说明,timeout 值允许在规定值的 -0%/+50% 容错范围。复位后,所有 timeout 计数必须设为规定值。
1.1.1 Protocol Layer(协议层)
UCIe 支持以下协议以实现不同的应用:
- PCIe 协议。
- CXL 协议(不支持 RCD/RCH/eRCD/eRCH)。
- Streaming 协议:“空白”协议模式,通过 UCIe 传输用户自定义协议。
- UCIe 管理传输协议(UCIe Management Transport protocol):端到端的传输 Management Flit,属于 UCIe 原生协议,不需要经过 D2D Adapter 做协议转换,且可在任意媒介上(sideband 或 mainband)承载。
1.1.2 Die-to-Die (D2D) Adapter
D2D Adapter 组件的职责有:
- 保证 UCIe 链路上的数据传输,需要保证 low-latency 、满足 timing。
- 传输 CXL 协议时,需要实现 ARB/MUX,负责 CXL.io/CXL.cache/CXL.mem 复用一条 UCIe 链路。
- 数据可靠性,即 CRC 校验 + Retry。
- 维护 Link-level state machine。
- 电源管理。
Note:
- 当 BER > 1E-27 时,意味着 bit error 不是小概率事件,所以需要实现 CRC + Retry 来兜底。BER = 1E-27 表示每传输 10^27 bit 才出现一次 bit error,实现 CRC + Retry 的代价远高于收益。显然,当速率提高或传输环境恶化,误码率会随之提升。
配置 带宽(无损) BER 错误出现时间 CRC + Retry 必要性? 8 GT/s × 16 Lane 0.128 × 10¹² bps 1E-27 约每 2.5 亿年 No 64 GT/s × 64 Lane 4.096 × 10¹² bps 1E-12 约每 0.24 秒 Yes
1.1.3 Physical Layer(物理层)
如 Fig 1-9 所示,物理层包括 3 个子组件:PHY Logic、Sideband 以及 AFE。其中,AFE 设计的基本粒度称为 Module,Module 为多条 Lane 聚为一组。为满足带宽扩展需求,数据可以在多个 Module 上传输。
Note:
- 每种封装下,每个 Module 的 Lane 条数在第 4 章中做出规定。

UCIe 的物理链路由两种链接组成:
| 链接类型 | Sideband | Mainband |
|---|---|---|
| 引脚 | 每个方向:1 * Clock + 1 * Data | 每个 Module:1 * Clock + 1 * Valid + 1 * Track + N * Data Lane |
| 冗余(先进封装) | 每个方向:提供 1 对冗余 pin 用于修复 | 每个 Module:提供 4 个冗余 pin 用于修复 |
| 速率 | 固定 800 MHz | 速率 4 ~ 64 GT/s 可变 |
| 电源 | Always-on,辅助电源域 | 可休眠 |
| 用途 | “Control Plane”:负责链路的建立、配置、管理和唤醒。 | “Data Plane”:负责承载所有业务协议的数据 Flit。 |
| 特点 | 速率低,常在线,唤醒 Mainband | 高带宽,按需休眠 |
Note:
- 对于先进封装,Mainband 数据 Lane 条数 N = 64 或 32;对于标准封装,N = 16 或 8。
- 标准封装不提供冗余 pin 用于修复,如果某条 Lane 发生故障,通过带宽降级处理。例如,原始带宽为 x16, 若 Lane 0~7 之一发生故障,就禁用上半区的所有 Lane,则带宽降级为 x8。
1.1.4 Interfaces(接⼝)
UCIe 协议定义了两种接口:
- RDI(Raw D2D Interface):物理层与 D2D Adapter 的接口,数据以 Byte Stream 形式传输。
- FDI(Flit-aware D2D Interface):协议层与 D2D Adapter 的接口,数据被打包成 Flit 形式传输。
Note:
- 中间层 D2D Adapter 的作用之一,即负责 Flit 格式的打包/解包。数据在 RDI 以每条 Lane 每个 Frame 期间至少传递 1 Byte 的形式传输。
UCIe 明确定义了各层之间两种接口规范,其目的有二:
- 便于各层使用不同厂商的 IP 做集成,缩短产品开发周期。
- 各厂商都基于相同的接口规范开发 IP,便于统一理解,按统一接口规则做验证。
1.2 UCIe Configurations(UCIe 配置)
1.2.1 Single Module Configuration(单 Module 配置)
如Fig 1-10 所示,为先进封装的单 Module 配置,数据接口为 x64 或 x32。若为标准封装,数据接口为 x16 或 x8。其中,x8 的标准封装只允许用单 Module 配置,由于 x8 模式的引脚数少,主要用于键合前测试(Pre-bond Test)。

Note:
- 每个单 Module 配置单独例化时,每个 Module 配一个 D2D Adapter,意味着这些 Module 完全独立,可以享有不同速率、带宽和协议。
1.2.2 Multi-module Configurations(多 Module 配置)
如Fig 1-14 所示,为先进封装的多 Module 配置,本协议仅支持 2 或 4 Module 配置。多个 Module 共用一个 D2D Adapter,所有 Module 必须具有相同的速率、带宽和协议,则其聚合带宽为单个 Module 带宽的 2 或 4 倍。
多 Module 配置还引入了 Multi-Module PHY Logic,负责将数据分发给多个 Module,同时对上层 D2D Adapter 呈现为统一的 RDI 接口。

1.2.3 Sideband-only Configurations(仅 Sideband 配置)
如Fig 1-17 所示,为 4 路 Sideband 场景。没有 Mainband,即没有高带宽的需求,意味着仅用于测试、管理以及访问寄存器等场景。只支持标准封装,只支持 1、2 或 4 路聚合。

1.3 UCIe Retimers
如Fig 1-18 所示,给出了一个 Off-Package 互联结构,UCIe Die 0 通过 UCIe Link 0 与 UCIe Retimer 0 互联,两边 UCIe Retimer 通过电线或光纤实现远程互联。

UCIe Retimer 的责任包括:
- 可靠性保证(可选以下三种之一)
- 可靠性由协议层保证,UCIe 链路使用 Raw Format,Retimer 最简单,只需要透传。
- 可靠性由 Retimer 保证,UCIe 链路允许使用任意格式,Retimer 负责 FEC + CRC + Retry。其中,UCIe Link 0、UCIe Link 1 和 Off-Package Interconnect 三段链路需要独立的 Retry,即分别拥有独立的 ACK/NAK。
- 可靠性由协议层和 Retimer 共同保证,复用协议层原生的 CRC + Retry,Retimer 提供 FEC。
- 链路/协议参数协商
- 通过 Retimer 协商,使两边 Package 参数一致。
- 远程访问 timeout 概率高,Retimer 通过 “Stall” 响应避免不必要的 timeout,并有责任保证链路不会无限期 Stall。这里 “Stall” 的语义可以理解为“等一下,先不要超时”,无意义的超时比阻塞的代价更大。
- 链路状态维护
- 与远端 Retimer 协调链路状态机(Link State Machine,LSM)或 协调 RDI 链路状态,保证端到端操作的正确性。
- 流控
- 数据从 UCIe Die 发给 Retimer 的方向必须用 Credit 流控,Retimer Buffer 资源有限,不做流控会被撑爆。
- 数据从 Retimer 发给 UCIe DIE 的方向不用流控。(???)
- 每 256B 数据(1 个标准 Flit)消耗 1 个 Credit。
- 若 RDI 离开 Active 状态,Credit 数量会被重置,所以需要丢弃或排空 Buffer,才能再次进入 Active。
1.4 UCIe Key Performance Targets(UCIe 关键性能指标)


1.5 Interoperability
两个 Die 能连接的前提是封装、协议、电压等互相兼容。
Note:
- 协议建议采用 0.85V 电压。
更先进的工艺会使 Bump 间距缩小,对于较小的 Bump 间距,其功耗密度增加,供电和散热困难,协议建议主动降低传输速率。Table 1-6 将先进封装下不同的 Bump 间距分成 4 组,只要符合物理规范(第 5 章),速率匹配,则 Group 内或跨 Group 的互操作性可以保证。

对于标准封装,尤其是速率一高一低的两个 Die 拼接(如 64GT/s 和 32GT/s),需要留好足够的 Die 间距。为保障信号完整性,留给高速的 Lane 足够的走线间距。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)