今年三月份出现的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
UCIe架构概览
UCIe主要包括协议层(Protocol Layer)、适配层(Adapter Layer)和物理层(Physical Layer)。
UCIe协议层支持已经广泛使用的协议PCIe6.0、CXL2.0、CXL3.0,还支持用户自定义的Streaming 协议来映射其他传输协议,协议层把数据转换成Flit包进行传输。用户通过用UCIe的适配层和PHY来替换PCIe/CXL的PHY和Link重传功能,就可以实现更低功耗和性能更优的Die-to-Die互连接口。
适配层在协议层和物理层中间,当协议层有多个协议同时工作时,ARB/MUX用来在多个协议之间进行选择和仲裁。协议层提供CRC和Retry机制来以获得更好的BER(Bit Error Rate)指标。同时负责Link状态的管理,与对端UCIe Link进行协议相关参数的交换。
物理层主要用来解析Flit包在UCIe Data Lane上进行传输,主要功能除了并串转换,还包括Link Training、Lane Repair、Lane Reversal、Scrambling/De‐scrambling、Sideband Training等。
图1 UCIe分层结构和功能
01
Package
UCIe支持两种封装,Standard Package (2D) 和Advanced Package (2.5D)。Standard Package主要用于低成本、长距离(10mm到25mm)互连,Bump间距要求为100um到130um,互连线在有机衬底上进行布局布线即可实现Die间数据传输。
图2 Standard Package封装示意图
图3 Standard Package特性指标
Advanced Package主要用于高性能、短距离(小于2mm)互连,以获得更大传输带宽和更低延迟。但其Bump间距要求为25um到55um,一般要通过Interposer或者Silicon Bridge进行互连,封装成本比较高,下图示例了三种不同的封装形式。
图4 使用Silicon Bridge的Advanced Package
图5 使用Interposer的Advanced Package
图6 使用Interposer和Silicon Bridge的Advanced Package
图7 Advanced Package特性指标
02
Interface
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由两组不同方向的单端数据线和时钟线组成。
图8 Standard Package module
一个Advanced Package module包含的信号线如下图所示,其中包括64个单端TX数据线和64个单端RX数据线,每32个数据管脚提供2个额外的管脚用于Lane repair,而Standard Package module没有额外管脚用于Lane repair。Side Band由两组不同方向的单端数据线和时钟线组成。
图9 Advanced Package module
单个module在Standard Package中是一个x16的数据接口,在Advanced Package中是一个x64的数据接口。可以通过使用single module来实现带宽扩展,每个module可以独立运行于不同频率。
图10 Single module configuration for Standard Package
UCIe允许2个或者4个module的配置,如图11和图12所示,这时每个配置中的module不能独立运行。
图11 Two module configuration for Standard Package
图12 Four module configuration for Standard Package
03
Speed and Clock
如图13中的Die Edge Bandwidth Density是Die-to-Die接口的一个关键指标,其假设条件为45um(Advanced Package)和110um(Standard Package)的bump pitch。
图13 UCIe带宽指标
对Advanced Package ,UCIe支持较宽范围的bump pitch(25 ~55um),随着工艺进步,更小的bump pitch将会成为主流,这样可以降低接口工作频率,减小面积,降低功耗。如下图14。
图14 UCIe Advanced Package接口频率
下图为时钟架构图,时钟频率一般是数据速率的1/2(双沿采样),当数据速率为24GT/s或32GT/s时,时钟频率可以是数据速率的1/4。当数据速率变高时,发送端必须支持Per Lane de-skew,因为接收端的眼图会变得更小,任何数据Lane之间的skew都会导致链路性能的下降。
图15 随路时钟架构
UCIe物理接口采用双沿采样,数据速率一般是时钟频率的两倍,可以认为是一种并行Die-to-Die接口标准;但是,协议层如果采用PCIe或者CXL,协议层的延迟估计要超过10ns或者更多,在对延迟敏感的场景中使用有局限性,离真正的“通用”还有一定距离。如果用户自定义协议层可以做到比PCIe或CXL更低延迟,相信UCIe应用的范围将会更加广阔。
芯和半导体,是中国首家加入UCIE联盟的EDA公司!