第四章 系统架构规划:功能分区策略、芯片拆分原则与Die-to-Die接口选择
各位好,我是老张。在异质集成这个圈子里摸爬滚打了十几年,今天咱们聊聊系统架构规划。说白了,就是怎么把一个大芯片拆成几个小芯片,再让它们高效地协同工作。
很多人觉得,拆芯片嘛,不就是拿把刀切一下?其实没那么简单。我见过太多项目,因为前期分区没做好,后期调试改到崩溃。嗯,今天我就把这些年踩过的坑、总结的经验,一次性讲清楚。
4.1 功能分区策略:先想清楚再动手
功能分区,是异质集成的第一步。我个人习惯,拿到一个系统需求后,先画一张功能框图,把每个模块的工艺需求、功耗、面积、数据流都标出来。
为什么要这么做?因为不同的功能模块,对工艺的要求天差地别。举个例子:
- 数字逻辑:追求先进工艺,比如7nm、5nm,因为要跑高频、要省功耗
- 模拟/RF:通常用成熟工艺,比如28nm、22nm,因为对电压、噪声更敏感
- 存储器:HBM、SRAM,有自己专门的工艺节点
- 光电器件:硅光工艺,跟CMOS完全不同
所以,功能分区的核心原则就一条:把相同工艺需求的模块放在一起,不同工艺的拆开。
核心原则:
- 同工艺、同电压域 → 尽量放一个die
- 不同工艺、不同电压域 → 拆成不同die
- 高频接口、敏感模拟 → 单独隔离
- 大带宽数据通路 → 靠近放,减少走线延迟
我在一个AI加速器项目里遇到过这种情况:客户非要把DDR控制器和AI计算核放在同一个die上。结果呢?DDR的噪声干扰了计算核,导致推理精度下降。后来我们硬是把它们拆成两个die,中间用UCIe连接,问题才解决。
4.2 芯片拆分原则:切得巧,才能合得好
功能分区定下来后,下一步就是具体怎么切。这里有几个原则,是我这些年总结出来的:
4.2.1 按数据流切
说白了,就是看数据怎么流动。如果两个模块之间数据交互频繁,带宽要求高,那就尽量放在同一个die上。如果只是偶尔通信,可以拆开。
举个例子:CPU和L3 cache之间,几乎每个时钟周期都在交换数据,这种绝对不能拆。但CPU和PCIe控制器之间,数据流是间歇性的,拆开完全没问题。
4.2.2 按功耗域切
不同功耗域,供电和散热要求不同。把高功耗模块和低功耗模块拆开,可以独立优化供电网络和散热方案。
我记得有个项目,把CPU core和I/O模块放在同一个die上。CPU跑起来时温度飙升,I/O模块也跟着受热,导致信号完整性出问题。后来拆成两个die,中间用硅桥连接,各自独立散热,问题迎刃而解。
4.2.3 按良率切
这个很现实。大芯片的良率低,小芯片的良率高。如果一个die的面积超过400mm²,良率就会急剧下降。所以,把大芯片拆成几个小die,每个小die单独制造,最后封装在一起,整体良率反而更高。
避坑指南:
我曾经把一个400mm²的SoC拆成4个100mm²的小die,良率从65%提升到了92%。但代价是Die-to-Die接口增加了额外的功耗和延迟。所以,拆与不拆,要算一笔经济账。
4.3 Die-to-Die接口选择:UCIe、BoW、HBM
拆完芯片,怎么把它们连起来?这就是Die-to-Die接口的活了。目前主流的接口有三种:UCIe、BoW、HBM。我一个个说。
4.3.1 UCIe(Universal Chiplet Interconnect Express)
UCIe是Intel牵头推的标准,现在已经是行业主流了。它基于PCIe/CXL协议栈,物理层支持标准封装和先进封装两种模式。
- 标准封装:走PCB走线,速率稍低,但成本低
- 先进封装:走硅中介层或桥接,速率高,功耗低
我个人比较喜欢UCIe,因为它生态好。很多IP厂商都提供UCIe的PHY和控制器,集成起来很方便。而且它支持多协议,可以跑PCIe、CXL、甚至自定义协议。
UCIe关键参数:
| 参数 | 标准封装 | 先进封装 |
|---|---|---|
| 每lane速率 | 16 GT/s | 32 GT/s |
| 每mm带宽 | ~0.5 Tbps | ~1.5 Tbps |
| 功耗效率 | ~1 pJ/bit | ~0.5 pJ/bit |
| die间距 | ~10mm | ~2mm |
4.3.2 BoW(Bridge of Wires)
BoW是Open Compute Project(OCP)推的标准,主打低成本、低复杂度。它不需要复杂的PHY,直接用简单的并行总线连接。
说白了,BoW就是一根根导线,把两个die的IO口直接连起来。优点是延迟极低,功耗也低。缺点是带宽有限,而且对封装精度要求高。
我在一个低功耗IoT项目里用过BoW。两个die之间的距离只有几十微米,用硅桥连接,延迟不到1ns。效果非常好,但调试起来很痛苦——因为信号完整性全靠封装保证,稍微有点偏差就出问题。
注意:
BoW不适合长距离传输。如果两个die之间的距离超过5mm,信号衰减会很严重。这时候还是老老实实用UCIe吧。
4.3.3 HBM(High Bandwidth Memory)
HBM是专门为内存设计的接口。它通过硅通孔(TSV)和微凸点,把多个DRAM die堆叠在一起,再通过中介层连接到逻辑die。
HBM的优势是带宽极高。目前HBM3的带宽可以达到819 GB/s,是DDR5的十几倍。但代价是成本高、工艺复杂。
我建议,只有在对内存带宽有极致要求的场景下才用HBM,比如AI训练、高性能计算。普通应用,用DDR或者LPDDR就够了。
4.4 接口选择决策树
说了这么多,到底怎么选?我画了一张决策树,大家可以参考:
4.5 实战经验:一个AI芯片的分区案例
最后,我分享一个真实的案例。去年我做了一颗AI推理芯片,目标是在30W功耗内实现100TOPS的算力。
我们是这样拆的:
- AI计算核:用7nm工艺,单独一个die,面积120mm²
- SRAM缓存:用16nm工艺,单独一个die,面积80mm²
- I/O控制器:用28nm工艺,单独一个die,面积40mm²
- HBM接口:用先进封装,通过硅中介层连接
Die-to-Die接口的选择:
- AI核 ↔ SRAM:用UCIe先进封装模式,带宽1.2 TB/s
- AI核 ↔ I/O:用UCIe标准封装模式,带宽200 GB/s
- AI核 ↔ HBM:用HBM3接口,带宽819 GB/s
结果呢?芯片一次流片成功,性能达标,功耗比预期还低了5%。
我的心得:
异质集成不是简单的「切」,而是「切」完之后还能「合」得好。功能分区、芯片拆分、接口选择,这三步环环相扣。前期多花点时间做规划,后期就能少流几次片。
好了,今天就聊到这里。下一章咱们聊聊封装工艺的选择,包括硅中介层、桥接、扇出等技术的对比。各位有什么问题,欢迎随时交流。