芯片工程系列(6)Chiplet封装

0 英语缩写

  • chiplet是一个合成词,由chip和let两个单词组合而成。它的意思是“小芯片”,通常指的是一种集成电路中的小型芯片
  • 系统级封装(System in a Package,SiP)
  • 系统级芯片(System on a Chip,SoC)
  • 图形处理器(Graphics Processing Unit,GPU)
  • 高性能计算(High performance computing,HPC)
  • 裸片尺寸(Die Size)
  • MCM(Multi-chip module)
  • 高带宽存储器(High Bandwidth Memory,HBM)
  • 中介层(Interposer)

Chiplet封装

1 系统级封装与系统级芯片

目前电路集成化的实现主要有系统级封装(System in a Package,SiP)和系统级芯片(System on a Chip,SoC)两条技术路径。

  • SoC是将具有不同功能的元器件整合在单个芯片中的技术,一颗芯片即为一个高度集成系统,其信息传递效率更高、 体积更小,缺点在于其设计开发的周期更长,技术性要求更高,开发成本更高,因此多应用于对运算功能要求高的高单价 GPU、HPC 等。
  • SiP是将单颗功能复杂的 SoC集成芯片剥离成多个具有特定功能的小芯片或芯粒(Chiplet),再采用 TSV、interposer 等工艺形成多功能异质异构的封装,其开发周期更短、良率更高、成本更低,是目前平衡功能与经济效益的最优选择。

image-20240404133550906

image-20240404133628809

算力芯片的 die size(裸片尺寸) 通常要远大于过去的消费级产品。随着先进制程推进,研发生产成本持续走高

  • 大面积单颗 SOC 良率日益下降
  • 芯片做得越大,就越容易浪费造成侧边的浪费

image-20240203171453605

image-20240203171504113

2 Chiplet含义

Chiplet 即小芯粒,它将一类满足特定功能的 die(裸片),通过 die-to-die 内部互联技术将多个模块芯片与底层基础芯片封装在一起,形成一个系统芯片。

  • 该工艺将不同工艺节点的小芯粒通过先进封装技术互联形成大芯片,将大面积芯片成本从晶圆制造环节转嫁到封装环节,提升大面积芯片良率
  • 大幅度降低设计复杂程度,降低芯片的设计和制造成本,加速了芯片迭代速度。
  • 解决的不是如何进一步提高连接密度的问题,而是如何在保证连接密度的情况下,减少芯片制造的难度

image-20240203171529705

image-20240203171541189

3 Chiplet如何实现

实现形式上,die-to-die 的高速互连是 Chiplet 实现的基础。

Chiplet 的小芯粒可以通过载板或 Interposer 互联,而 Interposer 的材质又分为硅基、有机两种。

它把一块SOC芯片拆解成多个小芯片,这些小芯片通过TSV技术和硅中介层连接,它们之间的信息传输速率和一块完整的SOC芯片几乎接近。

image-20240203171558048

下图对使用硅通孔堆叠的系统级芯片和系统级封装的信号传输路径进行了比较。当信号从系统级芯片的一端传输到对角的另一端时,将系统级芯片分为9个部分并使用硅通孔技术进行堆叠时,传输路径会短得多。

在对系统级封装和系统级芯片的性能进行比较时,人们原本以为系统级芯片在单个芯片上实现,因而其电气特性会更优异。然而,随着芯片堆叠技术(如硅通孔技术)的发展,系统级封装的电气特性与系统级芯片旗鼓相当。

image-20240203171612241

4 Chiplet的优势

4.1 成本大幅下降

大面积单颗 SOC 良率很低,而小芯片的制造工艺成熟,良率会高很多。这样就把晶圆的制造成本降下来了,技术门槛也降下来了;

image-20240203171632033

4.2 技术难度大幅下降

SOC芯片的开发周期长,设计难度高,而chiplet只需要分开设计各个功能模块的小芯片,难度大大降低,可以加速芯片迭代升级的速度;

image-20240203171647737

4.3 灵活度更高

同一块SOC芯片,各个功能模块的纳米制程都是一样的,比如统一为5nm。而chiplet可以兼容多种工艺制程,CPU芯片是5nm的,而存储芯片可以是22nm。SOC芯片只要有一个功能区域坏了,整个芯片就废了。而chiplet封装的芯片,如果一个功能区坏了,只需要把相应的模块换掉,甚至你还可以自定义升级,比如说把内存芯片换成一块儿容量更大的。

image-20240203171709443

2017年,AMD公司推出第一代EPYC(霄龙)处理器Naples,把四个同类型的CPU,通过chiplet方案封装在一起,虽然它传统比单一的一块处理器芯片多出10%的面积,但是节约了41%的成本,在性能上对标当时英特尔的白金至强xeon。

AMD 于 2023 年 6 月发布了 MI300 产品,该芯片拥有 13 个小芯片,共包括 9 个 5nm 的计算核心(6 个 GCD+3 个 CCD),4 个 6nm 的 I/O die 兼 Infinity Cache(同时起到中介层的作用,位于计算核心和 interposer 之间),同时还搭载了累计 8 颗共计 128GB 的 HBM3 芯片。

image-20240203171732289

5 Chiplet的局限

5.1 连接问题

多年来,业内一直在寻找一种“真正的互连”,以便在芯片组中实现从裸片到裸片(Die-to-Die)的通信,更好的完成数据存储、信号处理、数据处理等丰富的功能。如何让芯粒之间高速互联,是Chiplet技术落地的关键,也是全产业链目前面临的一大全新挑战。

芯片设计公司在设计芯粒之间的互联接口时,首要保证的是高数据吞吐量。另外,数据延迟和误码率也是关键要求,还要考虑能效和连接距离。

到目前为止,已经成功商用的Die-to-Die互连接口协议多达十几种,主要分为

  • 串行接口协议:LR、MR、VSR、XSR、USR等SerDes串行互连技术,PCIe、NVLink,用于Cache一致性的CXL、CCIX、TileLink、OpenCAPI,以及中国Chiplet产业联盟(CCLL)推出的ACC接口标准等
  • 并行接口协议:AIB/MDIO(Intel)、LIPINCON(TSMC)、Infinity Fabric(AMD)、OpenHBI(Xilinx)、BoW(OCP ODSA)、INNOLINK(Innosilicon),以及用于存储芯片堆叠互联的HBM接口等…

比较而言,串行接口一般延迟比较大,而并行接口可以做到更低延迟,但也会消耗更多的Die-to-Die互连管脚,而且因为要尽量保证多组管脚之间延迟的一致,所以每个管脚不易做到高速率。

可以看到,这些芯片巨头们在积极探索Chiplet技术,但同时大家又各自为战,推动自己的高速互联协议标准。

目前市面上部分现有互联标准对比如下:

image-20240203171804892

有观点指出,不同工艺、功能和封装的芯片之间没有统一的通信接口,会造成严重的资源浪费。

5.2 封装问题

在芯片尺寸不断增大、架构变得复杂的情况下,封装结构由原先的二维发展至三维。按封装介质材料和封装工艺划分,Chiplet的实现方式主要包括以下几种:MCM(Multi-chip module)、2.5D封装、3D封装。目前台积电拥有CoWoS/InFO、英特尔拥有EMIB、Fovores 3D等,Chiplet使用的先进封装多种多样,且新的封装形式和结构还在不断演进。随着Chiplet技术的发展终究会使小芯片间的互联达到更高的密度,一定程度上这将难度和成本转嫁到了封装工程上:

  • 要应对先进封装功能和密度的不断提升,散热、应力和信号传输等都是重大的考验。目前头部的IDM厂商、晶圆代工厂以及封测企业都在积极推动不同类型的先进封装技术,以抢占这块市场。
  • 但是在高性能、短距离互连领域,一般要通过Interposer(中介层)或者Silicon Bridge(硅桥)进行互连,封装成本比较高。

例如,在片间互连中的高线密度可能要求使用支持线密度很高的基板或桥接技术。高带宽存储器(HBM)的启用可能是这一趋势的最好证明——因为HBM只能与ASIC集成在同一个封装中,而且此时只能在2.5D的硅中间层配置中集成。

虽然硅基封装技术已经发展为批量制造解决方案,但成本和复杂性可能会阻止它们成为大多数低端应用的解决方案。

相关推荐

  1. 系统架构18 - 软件工程6

    2024-04-04 16:40:05       51 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-04 16:40:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-04 16:40:05       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-04 16:40:05       82 阅读
  4. Python语言-面向对象

    2024-04-04 16:40:05       91 阅读

热门阅读

  1. C++---string与字符数组之间的相互转换

    2024-04-04 16:40:05       34 阅读
  2. Ribbon 和 Feign的区别

    2024-04-04 16:40:05       34 阅读
  3. 每日一题:C语言经典例题之反转数

    2024-04-04 16:40:05       37 阅读
  4. 【Rust】——生命周期

    2024-04-04 16:40:05       30 阅读
  5. TypeScript

    2024-04-04 16:40:05       37 阅读
  6. day62 单调栈part01

    2024-04-04 16:40:05       38 阅读
  7. CSC博士联培申请时间线

    2024-04-04 16:40:05       35 阅读