大数跨境

技术洞见 | UCIe技术概述

技术洞见 | UCIe技术概述 牛芯半导体
2025-07-31
0
导读:本文转载自硬件大课堂,转载文章仅供学习和研究使用。

本文转载自硬件大课堂,转载文章仅供学习和研究使用。

UCIe即Universal Chiplet Interconnect Express,是Intel、AMD、ARM、高通、三星、台积电、日月光、Google Cloud、Meta和微软等公司联合推出的Die-to-Die互连标准,其主要目的是统一Chiplet(芯粒)之间的互连接口标准,打造一个开放性的Chiplet生态系统。UCIe在解决Chiplet标准化方面具有划时代意义。
到目前为止,已经成功商用的Die-to-Die互连接口协议多达十几种,主要分为串行接口协议和并行接口协议。串行接口及协议有LR、MR、VSR、XSR、USR、PCIe、NVLink(NVIDIA),用于Cache一致性的CXL、CCIX、TileLink、OpenCAPI等;并行接口及协议有AIB/MDIO(Intel)、LIPINCON(TSMC)、Infinity Fabric(AMD)、OpenHBI(Xilinx)、BoW(OCP ODSA)、INNOLINK(Innosilicon)等。比较而言,串行接口一般延迟比较大,而并行接口可以做到更低延迟,但也会消耗更多的Die-to-Die互连管脚。而且,因为要尽量保证多组管脚之间延迟的一致,所以每个管脚不易做到高速率。


概述


UCIe技术特征
并行接口,单端传输,直流耦合。
线带宽密度:1.317 TB/s/mm
面带宽密度:1.35 TB/s/mm^2
传输速率:2/4/8/12/16/24/32 GT/s
传输延迟:<2 ns (发送端到接收端经过各自的adapter+physical layer的mainband接口的时间差,但不包括信号在有机衬底或者Interposer上的走线延迟)
封装要求
UCIe协议允许3种不同的封装形式:标准封装(2D)、高级封装(2.5D)和UCIe-3D。这涵盖了从最低成本到最佳性能的互连。
(1)标准封装
Die直接在有机衬底上进行布局布线,适用于低成本、长线距(10mm ~ 25mm)互联的应用场景,相比封装外SerDes互联方式,该方式能提供更好的误码率。
(2)先进封装
Die一般通过interposer或者silicon bridge互连。该封装方式成本较高,应用于更高带宽和更低延迟,能效比更好的场景。先进封装可参考连接:
(3)UCIe-3D
这种封装使用二维互连bump阵列在芯片之间进行数据传输,其中一个芯片堆叠在另一个芯片上。下表总结了UCIe-3D的特性。
(4)UCIe关键性能目标
下表给出了UCIe的性能目标。
(5)Interoperability
封装设计者需要确保连接在封装上的Die能够互相操作。这包括采用兼容性的封装互联、协议、电压等级等。强烈建议Die的发送电压小于0.85V;这样他们就可以在可预见的未来与更多的工艺节点继续互联操作。
此协议规范涵盖了针对高级封装的各种bump pitch范围的互操作性。预计随着时间的推移,使用的bump pitch将会越来越小。通过更小的bump pitch,设计能够降低传输频率以优化面积,并且在减少面积的情况解决高带宽传输的功率传输与热限制。下表总结了4组对应的bump pitch。
依据PHY定义,保证了每个组内以及跨组的互操作性。下表中提供的性能指标采用45um的bump pitch,这是基于此协议发布时广泛采用的技术。
UCIe的module配置
UCIe定义了协议层和适配层之间的传输接口FDI(Flit-aware D2D Interface),适配层和物理层之间的传输接口RDI(Raw D2D Interface)。UCIe定义了一组Die-to-Die之间的物理接口,称为module。每个module包含Main Band用于数据传输,Side Band用于寄存器配置、初始化和Link Training,其频率固定跑在800MHz,Side Band相关逻辑电路需要处于“always on”电压域。
一个Standard Package module包含的信号线如下图所示,其中包括16个单端TX数据线(16 TX Lane)和16个单端RX数据线(16 RX Lane)。Side Band由两组不同方向的单端数据线和时钟线组成。
Standard Package module
一个Advanced Package module包含的信号线如下图所示,其中包括64个单端TX数据线和64个单端RX数据线,每32个数据管脚提供2个额外的管脚用于Lane repair,而Standard Package module没有额外管脚用于Lane repair。Side Band由两组不同方向的单端数据线和时钟线组成。
Advanced Package module
1. single module
标准封装下数据通道最多为x16,先进封装下数据通道最多为x64。
在设计中可以例化多个single module,每个被例化的single module都可以被独立操作,传输不同的协议。
2. multi module
该模式下有两种配置方式,分别是双模块和四模块配置。多个模块信号必须传输同一协议,且传输必须同步。multi module的出现可以理解为扩展data channel的数量。
3. Sideband-only Configuration
为了测试或管理,允许标准封装使用sideband-only配置。这可以是一个、两个或四个边带端口,作为同一个UCIe边带链路的一部分。
bump pitch
凸块间距。
Raw mode
针对UCIe protocol layer的一种数据透传模式,即flit报文中所有字段均由协议层填充,适配层不再填充CRC/FEC/retry等字段。通常用于UCIe retimer的设计,retimer只需完整的传递Flit报文即可,无需添加校验信息等。
用户自定义的协议层也可能会用到该模式。
UCIe retimer
打通封装内互联和片间互联的通路,本质上是将单端的并行信号转换为差分的串行SerDes信号。如前所述,UCIe Retimer用于支持不同类型的封装互联,以拓展处于不同封装中的两个UCIe Die之间互联。每一个UCIe Retimer拥有一个本地UCIe链路以连接本地UCIe Die,同时拥有一个外部的UCIe链路以连接其他片外的封装片。下图是一个利用UCIe Retimer进行不同封装片外的UCIe Die 0与UCIe Die1之间互联的例子。UCIe Retimer 0和UCIe Die 0通过UCIe 链路0在封装0上相连接。UCIe Retimer 1和UCIe Die 1通过UCIe 链路1在封装1上相连接。术语remote Retimer partner用于指代连接到封装外的互联远端的UCIe Retimer Die。
从die发送给retimer的数据是受流控的,从retimer发给die的数据是不受流控的,retimer在spec外自身定义的流控机制除外。
UCIe Retimer的职责如下:
1. 提供可靠的跨封装Flit传输,以下三项用于实现此职责:
  • Retimer能够使用当前传输的协议(如PCIe或CXL)底层定义的FEC与CRC进行传输保障,前提是使用的封装外连接能够正确识别当前协议栈下传输中可能出现的错误模型。此时UCIe链路将会被设置为使用原始模式来传输其所使用的协议的bit流。这种情况下,需要在UCIe Die上调整队列大小以满足底层数据往返延迟。
  • 累Retimer允许提供必要的FEC,CRC和重传功能以满足片外互联的误码率要求。在这样的情况下,Flit将会通过三个独立的链路传输。每一个UCIe Retimer对其同一封装下的UCIe Die执行独立的Ack/Nak握手并且与远程Retimer伙伴也执行独立的Ack/Nak握手。
  • Retimer通过使用自定义的FEC替代原有PCIe或CXL定义的FEC,或者在已有PCIe或CXL定义的FEC的基础上增加自定义的FEC,但使用当前底层协议实现的CRC和重传机制。在这种情况下,需要在UCIe Die上调整队列大小以满足底层数据往返延迟。
2. 与远程Retimer伙伴解决链路和协议的参数以保证UCIe Die端到端之间的互操作性。例如,允许Retimer在封装0与封装1上强制使用相同的链路宽度、速度、协议和Flit格式。具体的解析机制包括不同封装之间的参数交换引发的信息传输的实现方式需要依据具体Retimer情况而言,并且需要保证所使用的信息交互方式能够被两边的封装都能支持。然而,为了确保UCIe链路的鲁棒性,以避免由于通过片外互联与远程Retimer伙伴进行参数交互通信时引致的长时间等待而触发不必要的超时,UCIe协议定义了“Stall”的响应方式以等待可能出现延迟的边带信息。Retimer需要依照UCIe规范中定义的规则响应"Stall"以避免在与远程Retimer伙伴进行协商或等待其响应时出现不必要的超时。Retimer有责任确保UCIe链路不会无限期停止。
3. 与远程Retimer伙伴协同对Adapter链路状态与RDI状态进行解析以确保端到端操作符合规范。
4. 对于流控与反压:从UCIe Die发送到UCIe Retimer的数据流控通过Credit实现。这些Credit是基于已有的底层协议的Credit机制(比如PCIe中的PRH与PRD credit)。这些UCIe D2D credit需要被用于跨越两个UCIe Retimer的流控并且传输到UCIe Retimer的任何数据最终必须要由远程UCIe Die所使用,而不是被其他设备使用。每一个UCIe Retimer需要为从其同一封装内的UCIe Die接收到的Flit实现一个接收缓冲区(Receive Buffer)。接收缓冲器的credit需要在初始参数交换时宣布到UCIe Die上,并且UCIe Die在收到接收缓冲器的credit前不能够往Retimer发送任何的数据。一个credit对应着256字节的数据(包括所有的FEC、CRC)。在每次传输完成之后将会根据valid信号重载credit数量。当RDI状态从Active跳出时,credit计数器将会回退到初始值。UCIe Retimer需要在RDI重新进入Active状态前清空或转移其接收缓冲器中的数据。
在D2D Adapter层中从UCIe Retimer传输到UCIe Die将不会受到流控的限制。如果需要实现流控,UCIe Retimer可以与另一个UCIe Retimer建立独立的流控机制,此内容超过了本协议的范围。


UCIe组件


UCIe是一个分层协议,每一层都有特定的功能。下图为UCIe协议的三个主要部分以及各层的功能。UCIe协议栈中的每一部分都需要支持其所宣告的功能与带宽。为不同的握手和状态转换定义了几个超时和相关错误。所有超时值都是-0%到+50%,除非另有明确说明。所有的超时值必须在Domain Reset后设置为指定的值。所有计数器值必须在Domain Reset后设置为指定的值。
FDI:Flit aware D2D interface;RDI:RAW D2D interface
协议层(protocol layer)
该层主要做业务协议的例化,将数据转换成Flit包传递到下一层。
UCIe兼容业务协议包括:
1)PCIe 6.0 Flit模式(256B固定包长)
2)CXL2.0或更新版本,CXL 68B-enhanced定长和256B定长。CXL.io/memory/cache视为独立的协议栈。CXL.io 68B flit mode 可支持PCIe non-flit mode。
3)streaming协议,用于用户使用UCIe的自定义的接口。
协议间的协商
PCIe6.0 RAW mode
该模式可选,目标用于UCIe retimer的off-package的连接。
PCIe6.0 :standard 256B Flit mode
若支持PCIe,则该模式必须支持。标准定长格式报文是PCIe6.0协议Flit mode的一部分。
CXL3.0 RAW mode:256B Flit mode
该模式可选,目标用于UCIe retimer的off-package的连接,例如用于CPU和外置显卡的连接。
CXL3.0:latency-optimized 256B Flit mode
相较于标准CXL3.0协议,该模式下对延迟实现了优化。
CXL.io协议中的Ack、Nak、PM和链路管理的DLLP在UCIe 256B Flit mode中不再使用,DLLP和Flit_Marker的定义仍然一样。
CXL3.0:standard 256B Flit mode
当支持CXL256B Flit mode时,该模式必须支持。
CXL.io协议中的Ack、Nak、PM和链路管理的DLLP在UCIe 256B Flit mode中不再使用,DLLP和Flit_Marker的定义仍然一样。
CXL2.0 or 68B-Enhanced Flit Mode:RAW mode
该模式可选,用于目标用于UCIe retimer的off-package的连接,例如用于CPU和外置显卡的连接。
CXL2.0:68B-Enhanced Flit Mode
当支持CXL2.0 or 68B-Enhanced Flit Mode时,该模式必须支持。
该模式下发送64B的定长报文到FDI,adapter将插入2B的Flit header和2B的CRC。
CXL.io协议中的Ack、Nak、PM的DLLP在该模式下不再使用,credit和其他的DLLP的定义仍然一样(数据重传在Adapter中进行)。
CXL.mem/cache协议中定长报文的“AK”域保留了,retry保留但不使用。
如图是该模式下的报文格式,圆圈部分是第一个报文,方框部分是第二个报文。
Streaming Protocol:RAW mode
若PCIe和CXL均不支持,则必须支持该模式,厂商可自由定义。
适配层(adapter layer)
该层主要功能包括:
对protocol layer来的各种协议的报文做仲裁,分时复用。
实现CRC校验码检测与重传功能,以获得更好误码率。
实现更高阶的链路状态管理,与对端链路设备进行bring up、协议相关的数据交换。
该层与PCIe的链路层类似,但是相较于PCIe,UCIe把链路的参数协商(包括链路训练的TS序列、链路管理报文等)从mainband中摘出来,交由sideband去做,对于接收端,adapter不会把nop flit传递到协议层。
多协议仲裁
UCIe允许多个协议栈共同复用同一物理层。
为了解决物理层和RDI接口带宽的速率不匹配,adapter层需要在协议层后面插入一些空报文。
链路初始化
在业务数据于mainband通路上传输时,链路初始化包含四个阶段:
1)sideband通道监测和训练
2)mainband训练和修复:RDI状态机一旦进入active状态即该阶段完成。
3)双方adapter的参数交换:定义本地主机的属性,adapter决定物理层训练的结果,更加给定链路速度和配置决定是否数据回传, 对于retimer,adapter还需要决定credits。
4)协议和报文格式协商:协商的参数包括15种,对于PCIe/CXL协议来说,DP设备先从sideband发送报文给UP。
参数协商一旦完成,adapter将会把协商结果传递给FDI,FDI层将会bring up;一旦FDI进入active状态,链路初始化的阶段三将结束,协议层可以进行业务报文传输。
物理逻辑层(logical physical layer)
PHY layer的架构图如下图所示,主要功能包括:
mainband数据通路: 负责业务数据的传输;
sideband数据通路: 负责管理类型事务的数据传输,包括链路训练,链路管理等。
sideband组信号
sideband组信号每个方向都有一个前向时钟引脚和数据引脚,该部分逻辑必须有备用电源驱动,并始终处于always on”电压域中。前向时钟频率固定为800Mhz。
优点:
1)减小了mainband协议设计的复杂性
2)增加了mainband的带宽利用率
3)加速链路训练的过程
mainband组信号
每个module的mainband信号包含一个前向时钟信号、一个数据有效信号、N个数据信号。
对于先进封装,N最大可达64,并且有4个额外的引脚用于lane的故障修复。
对于标准封装,N最大可达16,无故障修复功能。


架构设计


单package上的通过UCIe互联的计算架构如图所示,下图展示了一个SoC的封装,其中包含了通过UCIe连接的CPU Die、加速器Die和I/O Die。加速器Die或I/O Die能够通过运行在UCIe上的CXL与CPU Die相连接,能够实现CXL的I/O、一致性与内存协议。I/O die能够提供外部的CXL引脚、PCIe引脚与DDR引脚。加速器Die也可以使用运行在UCIe上的PCIe事务连接到CPU。CPU Die与CPU Die也可以通过UCIe进行互联,实现一致性协议。
UCIe Retimer能够用于把UCIe的连接拓展到封装之外的其他封装互联。封装之外的互联方式包括电缆/光缆或其他任何的用于机架级别的连接方式,如下图所示。UCIe协议要求UCIe Retimer实现在UCIe的本地封装接口上,并且保证两个封装之间的Die与Die交互的Flit按照UCIe协议并使用相应的通道拓展技术。
下图给出了使用CXL协议的机架级别互联的示意图。下图是一个机架级别的示意图,其中来自不同计算机服务器的多个计算节点连接到交换机,同时该交换机连接到多个CXL加速器/type-3内存设备,同时上述的所有设备都能够放置在一个或多个抽屉式的机箱中。这种连接的逻辑关系如下图,其中每一个host(H1、H2、...)都是上述的抽屉式机箱。每一个抽屉式机箱都通过UCIe Retimer使用封装外的CXL协议互联与交换机进行连接,如图所示。交换机同时具有封装在一起的Retimer,Retimer通过UCIe与同一封装下的交换机进行连接,Retimer的另一侧是通过PCIe/CXL的物理接口连接到其他封装的加速器/内存设备,如下图所示。
协议层设计
PCIe兼容模式
若兼容PCIe6.0,为了获取更好的面积和功耗效能,PCIe中的non-flit模式相关逻辑、DLLP将不再使用,串行编码的逻辑也不再需要,该部分逻辑均可删除,CXL同理,即使这样如果协议层兼容PCIe或者CXL,协议层的延迟估计要超过10ns或者更多。因此如果需要更低的延迟,则需要用户自定义协议层。(PCIe3.0事务传输的端到端延迟达200ns左右)
协议层支持的协议模式和Flit格式在SOC集成时固化在硬件中,或者Die bring up时通过寄存器写入配置。
在端到端协商过程中适配层通过FDI接口把这些信息作为Link Training的一部分传给对端协议层。
协议层的不同协议通过各自的FDI接口连接到adapter层,不同协议各自独立协商链路,当对端发来Flit报文时,通过判断Flit_Hdr中的相关Bit分发到对应的协议栈逻辑中。
CXL兼容模式
CXL.io协议中的Ack、Nak、PM和链路管理的DLLP在UCIe 256B Flit mode中不再使用,DLLP和Flit_Marker的定义仍然一样。
应用场景
CPU+CPU
两块CPU不在一块die上,因此不能访问同级缓存,加上UCIe本身的延迟,势必会增大维护一致性的延迟开销,如果进程和内存页不在一个节点上,那么die之间的延迟将导致进程长时间等待,进而CPU空转。
CPU+Accelerator
CPU+IO/Memory
片外互联扩展
CPU -CXL- Accelerator
CPU -CXL- Memory


软件架构


OS驱动
OS层的驱动可以理解为业务驱动和管理驱动。
UCIe的业务驱动基于其协议层寄存器的属性,例如兼容PCIe协议的host downstream的UCIe端口将被软件示为PCIe Rootport设备,连接该端口的upstream port所在的设备可以是PCIe EP设备或者Switch。
管理驱动主要对UCIe自身逻辑的adapter和physical层寄存器进行配置,同时功能包括:
OS通过枚举UCIe查找表(CIDT)注册每个UCIe link的CiRB基地址,CiRB指主机端寄存器组,包含了UCIe link DVSEC(Designated Vendor-Specific Extended Capability)属性寄存器。
firmware
UCIe的链路训练由固件完成。


封装


UCIe的封装分为两种,UCIe-S(standard package)和UCIe-A(Advanced package)。
bump map:标准封装的bump摆放方式
先进封装的bump摆放方式:考虑到先进封装bump间距,UCIe官方提供了如下几种灵活的摆放方式,16列、10列和8列方式。

往期推荐

01

牛芯半导体亮相ICDIA 2025展会,斩获“2025中国创新IC-强芯评选”生态贡献奖

▲ 点击阅读

02

牛芯半导体成功入围2024年度深圳高成长企业TOP100

▲ 点击阅读

03

牛芯DDR5 IP取得突破性进展

▲ 点击阅读


牛芯半导体(深圳)有限公司(简称“牛芯半导体”)成立于2020年,聚焦接口IP的开发和授权,并提供相关整体解决方案,致力成为全球领先的IP供应商。


牛芯半导体在主流先进工艺布局SerDes、DDR等中高端接口IP,产品广泛应用于消费电子、网络通信、数据存储、人工智能、汽车电子、医疗电子等领域。


未来,牛芯半导体持续响应IP市场需求,适应不断演进的接口技术和日益拓展的接口互联场景,赋能数智时代下的千行百业。

【声明】内容源于网络
0
0
牛芯半导体
牛芯半导体,专注于高速互联技术的研发和持续创新,拥有完全自主可控的知识产权,提供全栈式接口IP授权和高速互联芯片的定制方案,赋能芯片国产化;已服务客户超百家,涵盖智能驾驶、人工智能、特种计算等领域,致力成为全球领先的高速互联半导体公司。
内容 0
粉丝 0
牛芯半导体 牛芯半导体,专注于高速互联技术的研发和持续创新,拥有完全自主可控的知识产权,提供全栈式接口IP授权和高速互联芯片的定制方案,赋能芯片国产化;已服务客户超百家,涵盖智能驾驶、人工智能、特种计算等领域,致力成为全球领先的高速互联半导体公司。
总阅读0
粉丝0
内容0