——————————————————————————————
版权声明:
本文作者:烓围玮未。主要从事ISP/MIPI/SOC/车规芯片设计/SOC架构设计
知乎专栏:芯片设计进阶之路
微信公众号:芯片设计进阶之路(x_chip)
转发必须授权,同时保留这段声明,盗版必究!
——————————————————————————————
在量子计算芯片出来之前,个人认为芯片技术未来两个重点的发展方向是:存算一体和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./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的标准。
后纪
技术很重要,技术背后的思想更重要!
技术背后的某些思想就是你解决以后问题的钥匙。我的文章可能一篇中知识点不太多,但是力求让你能深入理解,为你进阶打下基础。如果有一点点收获,也算是我对中国芯片行业的一点点贡献吧。
赠人玫瑰,手有余香。如果你有所收获,麻烦花一秒时间帮我点个赞和在看吧,谢谢!
知乎专栏:芯片设计进阶之路