Chiplet形成标准的UCIe协议,这为多个“芯片”互联成更大的“宏芯片”扫清了最后的障碍。当前,很多芯片的设计规模和板级多芯片协同的功能划分,都是基于现有工艺下的面积和晶体管规模约束而形成的。当Chiplet成为主流,很多芯片的功能范畴将发生质的变化。
CPU、GPU和DPU是数据中心的三大主流芯片,相互协同也相互影响,随着UCIe协议的确定,三者之间的界限变得模糊,未来的服务器芯片将走向何方?是走向更多核集成的平行扩展,还是把CPU、GPU和DPU的功能垂直集成到超异构计算单芯片?
接下来,我们详细见解。
参考文献:
1.UCIe白皮书,Universal Chiplet Interconnect Express (UCIe)®: Building an open chiplet ecosystem,https://www.uciexpress.org/_files/ugd/0c1418_c5970a68ab214ffc97fab16d11581449.pdf
2.https://www.eet-china.com/news/202203031041.html,英特尔、台积电、Arm、AMD等9大厂成立“UCIe产业联盟”,为Chiplet互联定制新标准
3.https://mp.weixin.qq.com/s/vdaujWZY0beoprxfGKUgpA,UCIe白皮书:打造Chiplet开放生态,半导体行业观察
1 Chiplet协议UCIe标准确定
英特尔、AMD、ARM、高通、三星、台积电、日月光等大厂,以及Google Cloud、Meta、微软于3月2日宣布了一项新技术标准UCIe(Universal Chiplet Interconnect Express)。UCIe是一个开放的行业互连标准,可以实现小芯片之间的封装级互连,具有高带宽、低延迟、经济节能的优点。
UCIe能够满足几乎所有计算领域,包括云端、边缘端、企业、5G、汽车、高性能计算和移动设备等,对算力、内存、存储和互连不断增长的需求。UCIe 具有封装集成不同Die的能力,这些Die可以来自不同的晶圆厂、采用不同的设计和封装方式。
图1 UCIe开启开放式封装级生态系统交付平台
图2 不同工艺节点的设计成本
Chiplets封装集成的价值有很多:
首先是面积的影响。为了满足不断增长的性能需求,芯片面积增加,有些设计甚至会超出掩模版面积的限制。即使不超过面积限制,改用多个小芯片也更有利于提升良率。另外,多个相同Die的集成封装能够适用于更大规模的场景。
另一个价值体现在降低成本。例如,图1所示的处理器核心可以采用先进的工艺,用更高的成本换取极致的性能,而内存和I/O控制器则可以复用非先进工艺。如图 2 所示,随着工艺节点的进步,成本增长非常迅速。若采用多Die集成模式,有些Die的功能不变,我们不必对其采用先进工艺,可在节省成本的同时快速抢占市场。Chiplet封装集成模式还可以使用户能够自主选择Die的数量和类型。例如,用户可以根据需求挑选任意数量的计算、内存和I/O Die,并无需进行Die的定制设计,可降低产品的SKU成本。
允许厂商能够以快速且经济的方式提供定制解决方案。如图1所示,不同的应用场景可能需要不同的计算加速能力,但可以使用同一种核心、内存和I/O。Chiplet方式允许厂商根据功能需求对不同的功能单元应用不同的工艺节点,并实现共同封装。相比板级互连,封装级互连具有线长更短、布线更紧密的优点。
图 UCIe分层
UCIe 是一种分层协议,分为物理层、Die-to-Die适配器和协议层,如上图所示:
物理层负责处理电信号、时钟信号、链路训练和边带信号等。
Die-to-Die适配器则为chiplet提供链路状态管理和参数调整。通过CRC和链路级重传机制保证数据的可靠传输。Die-to-Die适配器配备了底层仲裁机制用于支持多种协议,以及通过数据宽度为256字节的微片(FLIT)进行数据传输的底层传输机制。
UCIe通过在协议层本地端提供PCIe和CXL协议映射,可以将已部署成功的SoC构建、链路管理和安全解决方案直接迁移到UCIe。通过PCIe/CXL.io(CXL子协议,下文中的Cache.Mem和Cache.cache同属此列)解决直接内存访问的数据传输、软件发现、错误处理等问题;主机内存则通过CXL.Mem访问;对缓存有特殊要求的加速器等应用程序可以使用 CXL.cache对主机内存进行高效的缓存。UCIe 还定义了一种“流协议”,可用于映射任何其他协议。此外,随着使用模型的发展,UCIe联盟可以通过不断创新来对Chiplet互连技术进行优化。
图 封装选项:2D或2.5D
UCIe 1.0定义了两种类型的封装,如上图所示。其中标准封装(2D)成本效益更高,而更先进的封装(2.5D)则是为了追求同功率下更高的性能。实际设计中,有多种商用的封装方式可供选择,图表中仅展示其中一部分。UCIe规范支持所有这些类型的封装选择。
UCIe支持不同的数据传输速率、位宽、凸点间隔、还有通道,来保证最广泛的可行的互用性,详细描述如上表所示。
UCIe互联的单簇的组成单元是包含了N条单端、单向、全双工的数据线(标准封装选项中N=16,高级封装选项中N=64),一条单端的数据线用作有效信号,一条线用于追踪,每个方向都有一个差分的发送时钟,还有每个方向的两条线用于边带信号(单端,一条是800MHz的时钟,一条是数据线)。多簇的UCIe 互联可以组合起来,在每条连接链路上提供更优的性能,如上图所示。
2 CPU、GPU和DPU三国杀
我们的世界中有三颗太阳,它们在相互引力的作用下,做着无法预测的三体运动:
当我们的行星围绕着其中的一颗太阳做稳定运行时,就是恒纪元;
当另外一颗或两颗太阳运行到一定距离内,其引力会将行星从它围绕的太阳边夺走,使其在三颗太阳的引力范围内游移不定时,就是乱纪元;
一段不确定的时间后,我们的行星再次被某一颗太阳捕获,暂时建立稳定的轨道,恒纪元就又开始了。
刘慈欣,《三体》第一部15章
如三体一样,CPU、GPU和DPU,既相互协作,又相互竞争。随着Chiplet UCIe协议的确定,单芯片可以做到的设计规模突然增加了很多倍,这样,势必会引起CPU、GPU和DPU的功能的相互渗透甚至相互集成,直到最终形成新的稳定状态。
也有点像三国时代:魏蜀吴三国正在混战,突然神奇的一幕发生,三个国家各自的人口、资源、财富都统统增加十倍,然后依靠山川、大河的天险所形成的边界,突然都变成了平地。这个时候,两两之间的混战就变得不可避免。
一些基本的定位分析:
独立的DPU定位在基础设施处理器,主要是硬件加速;
独立的GPU主要做应用层的弹性计算加速;
而CPU主要负责低计算密度高价值密度的应用层的工作。
我们做一些假设:
一个面积单位刚刚是一个计算核;
如上图所示:CPU有60个面积单位,共计60个CPU核;GPU有60个面积单位,共计60个GPU Core(差不多对应流式多核处理器SM);而DPU则由10个CPU核、10个GPU核以及40个其他加速引擎核组成。
我们可以做如下分析,可以是平行扩展和垂直整合:
方向一:如上图(a),平行扩展。CPU、GPU和DPU均平行扩展N倍。这样,CPU则具有60*N个CPU核,GPU则具有60*N个GPU核,DPU则具有10*N个CPU核、10*N个GPU核以及40*N个其他加速引擎核。
方向二:如上图(b),完成垂直整合。CPU+GPU+DPU合并成一个超异构的单芯片。那么这个单芯片是70个CPU核、70个GPU核以及40个其他加速处理引擎组成。
介于两者之间的则是两两合并:
方向三,如上图(c),CPU和GPU整合,独立DPU。
方向四,如上图(d),CPU和DPU整合,独立GPU。
方向五,如上图(e),GPU和DPU整合成独立加速平台,独立CPU。
3 未来的趋势:超异构计算
芯片工艺以及Chiplet极致带来的资源规模越来越大,所能支撑的设计规模也越来越大,这给架构创新提供了非常坚实的基础。我们可以采用多种处理引擎共存,“专业的人做专业的事情”,来共同协作的完成复杂系统的计算任务。并且,CPU、GPU、FPGA、一些特定的算法引擎,都可以作为IP,被集成到更大的系统中。这样,构建一个更大规模的芯片设计成为了可能。这里,我们称之为“超异构计算”。如上图所示,超异构指的是由CPU、GPU、FPGA、DSA、ASIC以及其他各种形态的处理器引擎共同组成的超大规模的复杂芯片系统。
数据中心的超异构计算大致有三种类型:
DPU小系统。DPU已经明确是要整合嵌入式的CPU、GPU、FPGA、DSA以及ASIC等各种不同类型处理器引擎在一起的超异构混合计算架构的宏SOC。
CPU+DPU中系统。如果我们把芯片的界限去掉,这样独立CPU+DPU可以理解成:独立CPU+嵌入式CPU+嵌入式GPU+其他嵌入式处理器引擎,依然是超异构计算架构。
CPU+GPU+CPU大系统。同样的,无视芯片的物理界限,整个系统是由:独立CPU+独立GPU+嵌入式CPU + 嵌入式GPU + 嵌入式其他处理器引擎,架构依然没有本质变化,依然是超异构计算架构。
上图是Intel对未来几年数据中心架构的基本看法。可以看到,不管是小系统、中系统还是大系统,本质上都是超异构计算架构。
4 超异构面临的挑战
4.1 性能和灵活性的矛盾
指令是软件和硬件的媒介,指令的复杂度(单位计算密度)决定了系统的软硬件解耦程度。按照指令的复杂度,典型的处理器平台大致分为CPU、协处理器、GPU、FPGA、DSA、ASIC。任务在CPU运行,则定义为软件运行;任务在协处理器、GPU、FPGA、DSA或ASIC运行,则定义为硬件加速运行。
鱼和熊掌不可兼得,指令复杂度和编程灵活性是两个互反的特征:指令越简单,编程灵活性越高,因此我们才说软件有更高的灵活性;指令越复杂,性能越高,因此而受到的限制越多,只能用于特定场景的应用,其软件灵活性越差。
4.2 如何驾驭大系统
超异构计算本质上是系统芯片SOC(System on Chip),但准确的定义应该是宏系统芯片MSOC(Macro-System on Chip)。站在系统的角度,传统SOC是单系统,而超异构宏系统,即多个系统整合到一起的大系统。
传统的SOC,有一个基于CPU的核心控制程序,来驱动CPU、GPU、外围其他模块以及接口数据IO等的工作,整个系统的运行是集中式管理和控制的。量变到质变,当CPU所要控制的设备越来越多,各自之间的数据和控制交互也越来越多的时候。再加上CPU的性能已经瓶颈,这样,作为负责控制和计算核心的CPU,就成为整个系统里最脆弱的那一个。传统的以CPU控制为中心的架构,变得越来越无法适应以数据计算为中心的算力需求。
超异构计算,由于其规模和复杂度,每个子系统其实就是一个传统SOC级别的系统。需要多个子系统解耦,然后再集成,整个宏系统呈现出分布式系统的特点。这样,不同系统并行不悖的运行,以及系统间如何高效的自适应交互,就成为了挑战。
4.3 如何构建超异构生态
CPU通过标准化的指令集,使得CPU平台的硬件实现和软件编程完全解耦。软件工程师,不需要关注硬件细节,聚焦于软件开发。软件没有了硬件的“约束”,逐渐发展成了一个超级生态。从各种数百万使用者的高级编程语言/编译器,到广泛使用在云计算数据中心、PC机、手机等终端的操作系统以及各种系统框架/开发库,再到各种专业的数据库、中间件,以及云计算基础的虚拟化、容器等。上述这些软件都是基础的支撑软件,是软件的“冰山一角”,而更多的则是各种应用级的软件。系统级和应用级的软件,共同组成了基于CPU的软件超级生态。基于CPU已经构建非常庞大的生态。
基于GPGPU的并行计算编程一直是一件非常复杂的事情。但在NVIDIA的努力以及行业的变化下,GPGPU的生态逐渐发展了起来:
一方面,NVIDIA坚持多年,CUDA逐渐变得强大、稳定而易用,集成了众多开发库和强大的工具链,降低了编程的门槛;
另一方面,随着AI等算力需求强劲的场景变得越来越多,GPU并行计算的价值凸显,也使得GPU越来越成为AI、数据分析、HPC等场景的首先计算平台。
以AI场景为例,AI-DSA严格来说,目前还没有形成具有“统治力”的平台和生态。开发特定“架构”的AI芯片,再配合特定的驱动,再需要有配套的AI工具链,把算法模型和应用“半自动,半手动”的映射到自己特定架构的AI芯片。如果算法模型发生变化。则需要重新映射,整个过程耗时甚至会超过模型更新的时间。
超异构面临的问题,则更是难上加难。因为超异构本来就是这些处理引擎的集合。超异构可以当做是CPU+GPU+N*(DSA/ASIC)的集合,则所有单处理器引擎遇到的问题,这里都会遇到,工作量和复杂度等挑战都成数量级的提升。
5 软件人员轻松驾驭的算力:基于软硬件融合的超异构计算
经过上述各种分析之后,我们给出面向未来十年的新一代计算架构的一些设计目标——基于软硬件融合架构(CASH,Converged Architecture of Software and Hardware)的超异构计算:
性能。让摩尔定律继续,性能持续不断地提升。相比GPGPU,性能再提升100+倍;相比DSA,性能再提升10+倍。
资源效率。实现单位晶体管资源消耗下的最极致的性能,极限接近于DSA/ASIC架构的资源效率。
灵活性。给开发者呈现出的,是极限接近于CPU的灵活性、通用性及软件可编程性。
设计规模。通过软硬件融合的设计理念和系统架构,驾驭10+倍并且仍持续扩大的更大规模设计。
架构。基于软硬件融合的超异构计算:CPU + GPU + DSA + 其他各类可能的处理引擎。
生态。开放的平台及生态,开放、标准的编程模型和访问接口,融合主流开源软件。
与CPU芯片、GPU芯片、DSA芯片的比较如下表: