欢迎光临散文网 会员登陆 & 注册

【转】深度解读Chiplet互连标准UCIe

2023-12-13 08:06 作者:失传技术  | 我要投稿


深度解读Chiplet互连标准UCIe


马青年


屁颠屁颠的小马驹

2 人赞同了该文章


BrodieWang:深度解读Chiplet互连标准UCIe24 赞同 · 2 评论文章

本文最初发表于微信公众号“车轮上的电脑”

深度解读Chiplet互连标准“UCIe” (qq.com)

今年三月份出现的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 随路时钟架构

图16 随路时钟频率和速率

04 Latency

除了带宽,Latency是另外一个重要指标。UCIe Specification 1.0中提出了小于等于2ns的指标,这主要包括适配层和物理层的延迟,即从发送端的FDI接口到PHY Main Band接口,然后再从接收端的PHY Main Band接口到FDI接口的延迟(TX+RX)。其中没有包括接口信号在有机衬底或者Interposer上的布线延迟,也没有包括协议层处理延迟,如果采用PCIe或CXL,延迟一般较大,UCIe要想用在对延时比较敏感的互连场景,比如CPU Die和CPU Die之间的连接,还是比较困难的。

图17 UCIe功耗延迟指标

2 协议层


UCIe支持PCIe 6.0 Standard 256B Flit Mode、CXL 2.0 "CXL 68B-Enhanced Flit Mode"和CXL3.0 "CXL 256B Flit Mode” ,其子协议CXL.io, CXL.cache, CXL.mem是单独协商的,不支持CXL 1.1。在这些模式下,Retry机制在适配层实现。

PCIe6.0、CXL2.0和CXL3.0都支持一种模式叫RAW Mode,用户自定义的Streaming协议只支持RAW Mode,在这种模式下,所有64B或者256B数据都由协议层填充,适配层做透明传输,CRC、FEC和Retry都由协议层处理。

协议层支持的协议模式和Flit格式在SOC集成时或者Die bring up时确定。在协商过程中适配层通过FDI接口把这些信息作为Link Training的一部分传给协议层。

图18 64B RAW Mode数据格式

图19 PCIe 6.0 Standard 256B Flit Mode数据格式

3 适配层

UCIe可以配置2个协议栈运行在同一个物理链路(physical Link)上,通过多路选择器来选择不同的协议栈,条件是两个协议栈的带宽总和不能超过一个物理链路的带宽。适配层可以在协议Flit后插入空Flit,来解决物理链路和RDI接口之间的速率不匹配问题。

图20适配层复用两个CXL协议栈

在Main Band上传送Flit数据之前,首先要进行Link的初始化。如下图总共分为4个Stage,比如Stage 0 每个Die独立进行,下图蓝色方框大小不一样表示不同的Die用不同的时间来完成初始化。Stage 3涉及到适配层之间的参数交换,用来Die之间进行协议和Flit格式的协商。


图21 Link初始化步骤

当协议层发送64 Byte Flit数据,适配层一般会在有效数据Flit的前面加上2 Byte Flit Header,后面加上2 Byte CRC值,对于256B Flit一般需要额外增加2 Byte CRC,每128B Flit对应2 Byte CRC。

适配层最主要的一项功能是CRC、FEC、Retry,CRC最多可以检测3bit随机错误。

当Link速度超过8GT/s时,适配层必须支持Retry机制(除了RAW Mode)。如果在最初Link bring up过程中使能Retry机制,即使Link速率在运行过程中下降,也不能在运行过程中关闭Retry机制,只能在下次Link bring up时关闭。UCIe中的Retry机制是PCIe 6.0 Flit Mode下Retry机制的简化版。

4 物理层

物理层主要包括逻辑物理层、电气物理层和AFE(analog front-end)。限于篇幅,这里主要介绍Byte to Lane Map、Lane reversal、Lane repair和Equalization。

图22物理层构成

数据包是通过Byte形式传输的,下图显示了一个Byte是在4个时钟周期内如何映射到一个Data Lane上传输的。


图23 Byte to Lane Mapping

下图演示了一个CXL 256B Flit如何在一个x64的接口上进行映射传输,每个Byte占用一个Lane。

图24 Byte map for x64 interface

Lane reversal主要用于一个module内的物理接口信号,比如近端Die的Data Lane 0连接到远端Die的Data Lane (N-1) ,Data Lane 1连接到远端Die的Data Lane (N-2) 。Standard Package 中N为16,Advanced Package中N为64。

Lane repair只有Advanced Package支持,每个module支持4个冗余Bump用于Data Lane,一个冗余Bump用于Clock和Track Lane,一个冗余Bump用于Valid Lane。

每32个Data Lane都有对应的2个冗余Data Bump用来进行修复使用,TRD_P [1:0] 对应TD_P[31:0],TRD_P[3:2]对应TD_P[63:32],RRD_P[1:0]对应RD_P[31:0],RRD_P[3:2]对应RD_P[63:32]。当有些Data Lane有问题后,通过如下图左移或者右移的方式进行Lane重映射,把有问题的Bump移除掉。

图25 Data Lane repair

当数据速率达到16GT/s时,推荐使能发送端的Equalization,到24GT/s或32GT/s时,必须使能发送端的Equalization以缓解通道间的码间干扰(ISI)效益。接收端的Equalization是可选的,在发送端没有Equalization的时候,使能接收端Equalization可以保证链路运行正常。

下图是在不同数据速率下的原始BER,对于BER为1E-15的情况,必须使能CRC和Retry机制来确保FIT(Failure In Time)远小于1(1 FIT = 1 device failure in 109 Hours)。对于BER为1E-27的情况,可以使能parity或者CRC来确保FIT远小于1。

图26原始BER

5 总结

UCIe物理接口采用双沿采样,数据速率一般是时钟频率的两倍,可以认为是一种并行Die-to-Die接口标准;但是,协议层如果采用PCIe或者CXL,协议层的延迟估计要超过10ns或者更多,在对延迟敏感的场景中使用有局限性,离真正的“通用”还有一定距离。如果用户自定义协议层可以做到比PCIe或CXL更低延迟,相信UCIe应用的范围将会更加广阔。

说明:

1.本文是对UCIe Specification Revision 1.0核心内容的提炼,若读者想对其中细节做进一步了解,可以参考其官方文档。

2.图片来源:UCIe Specification Revision 1.0

发布于 2023-07-27 11:14・IP 属地江苏


【转】深度解读Chiplet互连标准UCIe的评论 (共 条)

分享到微博请遵守国家法律