在量子计算芯片出来之前,个人认为芯片技术未来两个重点的发展方向是:存算一体和Chiplet。这也是几年前我都判断,如今这两个领域也非常火热。一直没有时间深入的了解Chiplet,最近刚好有时间学习这方面的知识,同时总结一下。
Chiplet设计到封装的知识,可以先看一下我之前的文章:深入了解芯片封装技术。
芯片的互联层级
多个芯片之间的互联有多种形式,最常见的一块板块上很多芯片之间的互联。也有服务器的各个GPU直接互联,还有最近火热的Chiplet,也就是片内Die-to-Die的
芯片互联层级按照距离和互联方式可以分为以下几个主要层级:
片内封装级互联(Die-to-Die):
距离小于2mm。通常指的是芯片内部的封装技术,如多芯片模块(MCM)或3D堆叠技术,这些技术允许在非常小的距离内实现高速的芯片间通信。带宽TB/s级别,延时ns级别。
芯片互联(Chip-to-Chip):
距离小于20mm。这通常指的是同一封装内或相邻封装的芯片之间的连接,例如通过硅通孔(TSV)技术实现的芯片间直接连接。带宽100GB/s级别,延时10ns级别。
板卡/模块级互联:
距离小于1m。指的是在电路板或模块级别上的芯片互联,这可能包括使用PCB(印刷电路板)上的走线或高速串行接口(如PCIe)来连接芯片。带宽10GB/s级别,延时100ns级别。
机架间/机架内互联:
距离大于1m。这涉及到服务器机架内或不同机架之间的芯片互联,通常使用更长的电缆和高速网络接口,如Infiniband或以太网,来实现跨机架的通信。带宽100GB/s以内,延时ms级别。
这些互联方式,由内到外,由近到远,互相带宽逐渐减少,延迟逐渐增大。
在学习一个互相方式的时候,要先搞清楚她是哪个层级的协议。UCIe就是一个Die-to-Die的互相协议。主要是为了Chiplet技术制定的标准协议。下文中Die-to-Die就等同于Chiplet互联。
UCIe产生的背景
Die-to-Die接口的两种形态:
串行接口(如XSR):具有高数据速率、高延迟、较高功耗和低密度布线的特点,通常使用有机衬底。这种就是类SerDes结构。
并行接口(如AIB、BoW、Open HBI):具有低数据速率、低延迟、较低功耗和高密度布线的特点。这种就是类DDR结构。
在Die-to-Die互联的发展的早期,各个公司和组织,分别根据自己公司的积累和需要开发了各自的,不同层级的协议,比如:
Optical Interface Forum (OIF) – 针对晶粒间连接而优化的 XSR 和 USR 物理层规范
Chips Alliance – 最初由英特尔推出的 AIB 规范
Open Compute Platform (OCP) – 针对不同用例而优化的 OpenHBI 和 Bunch-of-Wires (BOW) 规范
现有的一些协议对比如下:
各自协议之间的互不兼容,只能解决Chiplet的部分问题。业界急需一个统一的,全栈的Chiplet互联标准。在这种情况下,UCIe应运而生。
UCIe(Universal Chiplet Interconnect Express)是一个由Intel牵头,联合AMD、ARM、Meta、Microsoft、Qualcomm、Samsung、ASE、TSMC、Google Cloud等十大产业巨头共同参与制定的开放性行业标准。该标准旨在为Chiplet技术提供一个通用的、可互操作的高速互联解决方案,以促进不同厂商生产的Chiplet之间的互连互通。
2022年3月2日,这些产业巨头联合宣布成立行业联盟,共同推动UCIe标准的制定和开放生态的建设,并正式发布了UCIe标准1.0版本。这一标准的推出,旨在解决Chiplet技术在封装内连接的标准化问题,推动了异构集成技术的发展,并有助于降低成本、提升性能。
UCIe协议简介
UCIe™(Universal Chiplet Interconnect Express)是一个开放规范,它定义了封装内芯片之间的互连,从而实现开放的芯片生态系统以及在封装级别的无处不在的互连。
初始重点:
物理层:具有行业领先的性能指标的芯片间输入/输出
协议:短期内用于大量连接的CXL/PCIe
明确定义的规范:确保互操作性和演进
未来目标:
其他协议
先进的芯片形态
芯片管理
(这段描述来自UCIe官方网站,应该是最权威的资料了:https://www.uciexpress.org/why-choose-us)
UCIe是一个分层协议,每一层执行一组不同的功能。下图展示了UCIe协议栈的三个主要部分以及各层之间的功能划分。UCIe协议栈中的每个组件都需要能够支持其所宣称的功能和带宽。
UCIe 规范分为三个堆栈层:物理层、晶粒间适配器层和协议层。协议层和适配层之间的接口是FDI,适配层和物理层之间的接口是RDI。
3.1 协议层
虽然协议层可能因应用程序而异,但UCIe规范提供了在UCIe链路上传输CXL或PCIe协议的示例。UCIe支持以下协议以实现不同的应用场景:
根据PCI Express基础规范定义的PCIe 6.0 Flit模式。
根据Compute Express Link规范定义的CXL 2.0及更高版本的协议。
流协议:此协议提供了通用模式,用于通过UCIe传输用户定义的协议。
对于每种协议,都提供了不同的优化和相关的Flit传输方式,以便在UCIe上进行传输。它们是基于 Flit 的协议,可提供最高效率和更低的延迟。由于要支持Flit模式,比较老的版本,比如PCIe5.0就不支持。
3.2 D2D适配层
晶粒间适配器层是将任何协议连接到 UCIe PHY 层的中间层。晶粒间适配器层管理链路本身。在链路初始化时,它会等待 PHY 完成链路初始化,包括校准、测试和修复,此时会启动两个晶粒的发现功能。它会商定将使用哪个协议(如果实施了多个协议)来移交给任务模式活动的协议层。
Die-to-Die Adapter(D2D Adapter)负责以下任务:
可靠的数据传输(在适用时执行CRC计算和重试,或奇偶校验计算)
仲裁和复用(在存在多个协议层的情况下)
链路状态管理
与远程链路伙伴进行协议和参数协商。
晶粒间适配器层和协议层之间的接口称为 FLIT 感知晶粒间接口 (FDI),是一种基于 FLIT 的接口。为了适应不同的协议,它支持各种 FLIT 模式:
CXL3 256B 标准 FLIT 模式
CXL3 256B 延迟优化 FLIT 模式
PCIe6 256B FLIT 模式
CXL2 68B 增强型 FLIT 模式
流式传输 64B 原始模式
UCIe 还定义了 CXL 协议和 PCI Express 协议的原始模式。这些模式适用于 UCIe 流量在光纤链路上运行时的重定时器应用。在重定时器模式下,延迟和错误率不由 UCIe 链路本身定义,并且假设协议层将处理所有纠错机制,包括 CRC、重试和可能的 FEC。晶粒间适配器层不会将 CRC 代码添加到协议 FLIT 中,也不会检查是否出错或在接收器上应用重试机制。
UCIe 支持多个协议层架在统一 Adapter 上,每一个协议层都通过一组标准的 FDI 接口与Adapter 相连,通过 Adapter 中的 Arb/Mux 实现多个协议层的分时复用:
3.3 物理层
物理层是封装介质的电气接口。它包括电气 AFE(发射器、接收器)以及边带信道,可实现两个晶粒之间的参数交换和协商。它还包括可实现链路初始化、训练和校准算法以及测试和修复功能的逻辑 PHY。物理层有三个子组件,如下图所示:
UCIe的物理层数据主要路径在物理凸点上被组织成称为“模块”(Module)的一组通道(Lanes)。一个模块构成了UCIe模拟前端(AFE)结构设计实现的原子粒度。UCIe 将模块定义为最小的接口单元。每个模块包括一个主带“总线”,最多 64 个用于先进封装(或 16 个用于标准封装)的发送和接收 IO、时钟转发 IO、一个有效(成帧)和跟踪 IO。边带“总线”也如下图所示:
UCIe 接口使用时钟转发和单端、低电压 DDR 信号来提高能耗效率。通过在 PHY 级别扰乱数据,可以减少电源干扰。与其他技术(如 DBI)相反,数据扰乱不会影响带宽效率。由于时钟与数据并行转发,接收器数据恢复大大简化,从而实现了更多的功耗节省和延迟缩短。
为减少先进封装组件中由于 ubump 质量导致的良率损失,UCIe 提供依赖于 6 个冗余引脚(用于 TX 和 RX 数据、时钟、有效和跟踪)和 2 个冗余引脚(用于边带 TX 和 RX)的测试和修复机制。这是UCIe区别其他物理层协议的一个功能。
由于 C4(或铜柱凸块)凸点良率和完整封装过程良率非常高,因此 UCIe 不为标准封装实施引脚冗余。对于这些封装,UCIe 支持“降级”操作模式,在另一半检测到故障后,只有一半模块处于活跃状态。
测试和修复流程在链路初始化时实施。PHY 测试每个晶粒连接以确定是否存在任何故障。如果发生故障,相应的信号将重新路由到冗余引脚,如下图所示:
UCIe支持标准封装和先进封装,他们的区别只在电气层面上可见,并且不影响上层协议。这些差异源于标准封装 (110u) 与先进封装 (45u) 所需的明显更大的最小凸块间距,以及源于需要在标准封装中支持更长的信道距离以增加灵活性。
先进封装和标准封装的 UCIe 规范之间的主要差异如下表所示:
UCIe PHY 变体 | 先进封装 | 标准封装 |
数据速率 | 16Gbps | 16Gbps |
每个模块的 TX/RX 引脚 | 64 | 16 |
冗余 (T&R) | 是 | 否 |
总带宽(双向) | 4Tbps | 1Tbps |
带宽效率(总) | 5.2Tbps/mm | 0.9Tbps/mm |
能效 | 0.3pJ/bit | 0.5pJ/bit |
延迟 TX+RX | 12 UI | 12 UI |
BER | < 1e-15 | < 1e-27 |
凸块间距 | 45um | 110um |
信道距离 | > 2mm | > 10mm |
低功耗模式 | 空闲模式 | 空闲模式 |
终端 RX | 否 | 50 欧姆 |
信号摆幅 | 0.4V | 0.4V |
这些要求,特别是能效这些指标,其实要求是非常高的,只有这样才能满足高带宽低功耗的需求。
总结
随着芯片间互联技术的进步,相信未来的芯片主流技术将慢慢从单个大而全的SoC芯片转到Chiplet芯片,在封装级通过小芯片组成大SoC的功能,同时性能接近。这是一个非常美好和具有商业价值的前景。
如下面的SoC,就通过封装技术结合UCIe来实现一个封装级的SoC:
UCIe规范为多芯片粒(Chiplet)SoC设计者提供了强大的性能优势,包括卓越的能效(pJ/b)、边缘使用效率(Tbps/mm)和低延迟(ns)。它不仅支持目前最流行的IO协议,还支持用户自定义的任何协议,并且与多种封装技术——从有机基板到先进的硅中介层——都兼容。此外,UCIe规范还全面覆盖了接口的关键方面,包括初始化、边带、协议、测试与修复、纠错等。所以UCIe在最开始就考虑到比较全面,而且是一个全栈协议。随着加入的公司越来越多,相信UCIe规范以后会成为Chiplet的标准。
——————————————————————————————
版权声明:
本文作者:烓围玮未。主要从事ISP/MIPI/SOC/车规芯片设计/SOC架构设计
知乎专栏:芯片设计进阶之路
微信公众号:芯片设计进阶之路(x_chip)
转发必须授权,同时保留这段声明,盗版必究!
——————————————————————————————
*免责声明:本文由作者原创。文章内容参考UCIe协议1.0版本,路科验证转载仅为了传达一种不同的观点,不代表路科验证对该观点赞同或支持,如果有任何异议,欢迎联系路科验证。