JOVANA
Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

向上发展:3D 与封装

六十年来,造一颗更强的芯片,办法一直是印一颗更大、更密的芯片。可这套招数快要见底了——导线变慢了,大晶粒良率太差,存储器也再喂不饱处理器了。于是行业拐进了一直就在那里、却很少有人走的那个弯:与其做一片平铺的晶粒,不如把晶粒堆起来。这篇指南讲的就是向上发展——芯粒并排坐在硅中介层上,晶粒靠硅通孔和铜对铜混合键合面对面接合起来——以及为什么封装悄悄成了我们手里所剩不多、却最有力的扩展杠杆之一。

从一片晶粒到一摞晶粒

到目前为止,这个进阶系列里的每一篇指南讲的都是怎么把*晶体管*做得更好——更小、更快、堆得更密、从背面供电。但还有第二个、更老的问题,光靠缩小晶体管根本治不了:芯片上两样东西离得越远,它们之间那根导线就越长、越慢。你在下面几级台阶里见过它,叫互连缩放——晶体管缩小了,连接它们的导线却*没有*按比例变快,而在一片大晶粒上,一个信号花在金属线上慢慢爬的时间,可能比它真正干正事的时间还多。一颗又大又平的芯片,说实在的,大部分时间都在*通勤*。

第二个问题是钱。你把单颗晶粒印得越大,那些躲不掉的制造缺陷之一落在它上面某处的概率就越高——而只要有一个致命缺陷,*整颗*晶粒就报废了。面积一大,良率就直坠悬崖。所以一颗巨大的单片芯片要挨双重惩罚:它那些四散的导线很慢,而它的尺寸又让它造起来很贵,每片晶圆都得忍痛报废相当一部分。

出路在于:别再把芯片当成一整块硅。把庞大的设计切成更小的几块——芯粒——你一下子就拿到两份礼物。每一小块的良率都远好过一整片大晶粒,而且你可以在组装*之前*就测好每一块,从而只把好的那些堆上去(这就是已知良品晶粒的思路)。接着问题就变成:你怎么把这些小块重新接回去、接得够紧密,让它们表现得像一颗芯片?答案不再画在晶粒上了,而是建在封装里——这正是封装从一个事后才想起来的环节,变成自成一格的前沿的原因。

2.5D:硅中介层

把芯粒重新拼到一起,最温和的办法是让它们并排摆放——不是叠起来,而是当邻居——摆在一块共用的、负责承载它们之间导线的平板上。那块平板就是中介层,而当它本身用硅做成时,它能容纳几乎和芯片内部一样精细的布线。芯粒坐在上面;底下的中介层在它们之间走通成千上万条连接,再把所有线一并向下汇集到下方的封装里。因为这些晶粒在*二*维平面上铺开,却是通过它们下方的第三层接合起来的,行业就把这叫作 2.5D——比纯平多一点,又还算不上真正的堆叠。

既然芯粒还是并排摆着,何必费这个劲?因为中介层上的导线,比你在普通电路板上能走的任何线都要短得多、密得多。硅中介层上相隔几毫米的两颗芯粒,可以用一种又宽、又快、又省电的连接彼此交谈——这种连接以前非得它们待在*同一颗*晶粒上才办得到。正是这个招数,让高带宽存储器能紧挨着 GPU 坐下,通过成千上万条并行导线喂给它——这是对存储墙的一记正面回应:处理器挨饿,不是因为缺算力,而是因为缺通往存储器的带宽。

3D:硅通孔

如果说并排不错,那叠在上面就更好——前提是你能让信号从晶粒的一面穿到另一面。芯片造在一片几百微米厚的实心硅晶圆上,它的布线全都待在一个面上。要想把第二颗晶粒直接叠到上方并把两者连起来,你就需要一根垂直的导线,笔直地往下钻,*穿过*硅的本体。那根导线就是硅通孔,即 TSV:一根细小的金属柱,蚀刻并填充得干干净净,一路贯穿一片已减薄的晶粒,把原本死气沉沉的一块衬底,变成一条垂直的高速公路。

这才是真正的 3D 集成。如今两颗堆叠晶粒之间的距离,不再是横跨中介层的几毫米——而是笔直向上的几微米。距离的这种塌缩正是整件事的要点:导线更短,意味着延迟更小,推动信号到处跑所耗的能量也少得多,这是对互连难题最直接的一记攻击。高带宽存储器本身就是一摞 3D 堆叠——好几颗 DRAM 晶粒摞起来、用 TSV 串接到一起——然后再把这摞东西放到中介层上、处理器旁边。两个思路就这么组合到了一起:一个 3D 堆叠的存储立方,以 2.5D 的布局坐在逻辑芯片旁边。

  2.5D — chiplets side by side on an interposer
  ┌──────┐        ┌──────┐        ┌──────┐
  │ logic│        │ HBM  │        │  I/O │   <- chiplets
  └──┬┬──┘        └──┬┬──┘        └──┬┬──┘
  ===||==============||==============||====  <- micro-bumps
  ┌──────────────────────────────────────┐
  │   silicon interposer (fine wiring)     │
  └────────────────────┬┬──────────────────┘
  ====================  ||  ================  <- C4 bumps
  ┌──────────────────────────────────────┐
  │             package substrate          │
  └────────────────────────────────────────┘

  3D — dies stacked, joined through their bodies
  ┌────────────────────────┐  die 2
  │  ▓ ▓ ▓  metal layers    │
  │  │ │ │  TSVs through Si  │
  ══╪═╪═╪═══════════════════   <- bond interface
  ┌────────────────────────┐  die 1
  │  ▓ ▓ ▓  metal layers    │
  └──────────┬┬─────────────┘
  ┌────────────────────────┐
  │      package substrate   │
  └──────────────────────────┘
2.5D 把芯粒铺在中介层上,用又短又密的布线连起来;3D 则把晶粒直接叠起来,用 TSV 让信号穿过硅向上贯通。两者经常配合使用——一摞 3D 存储堆叠,以 2.5D 的布局摆在逻辑芯片旁边。

混合键合:铜对铜

你到底要怎么把两颗堆叠的晶粒接到一起?传统答案是*凸块*:在晶粒表面点上一颗颗小小的焊球,让它们熔化后跟上方晶粒上对应的焊盘熔接到一起。凸块管用,但太粗。每一颗都得占地方,所以每平方毫米塞不了几颗——而它们在晶粒之间撑开的那道缝隙,又恰恰在你拼命想消除距离和电阻的地方,反而添了距离和电阻。当一摞晶粒只需要成千上万个连接时,凸块还凑合。可一旦需要上百万个,它就彻底没戏了。

混合键合把焊料彻底丢掉。取而代之的是,把两颗晶粒的表面抛光成镜面般平整,裸露的铜焊盘嵌在绝缘介质里,然后直接压到一起。一面上的铜焊盘与另一面上的铜焊盘原子对原子地熔合——铜对铜,中间不夹凸块。既然不必再为焊球留出地方,这些连接就能挤得密上好几个数量级:焊盘间距从几十微米一路缩到接近单个微米。两颗晶粒不再表现得像两颗用导线接起来的独立芯片,而开始表现得像一整块连续的硅,只是碰巧有一道接缝罢了。

热:堆叠要付的代价

堆叠不是白来的,账单会以的形式找上门。一颗平的芯片有一整个大面贴着散热器,每一个晶体管通往那个凉爽表面的路径都大致是直的。在上面再叠一颗晶粒,底下那颗就被埋住了——它的热量得先往上爬过它头顶那颗晶粒,或者往下穿过一片由 TSV 和键合点组成的森林,才逃得出去。而最热、最忙的逻辑,恰恰是你最想紧紧堆在一起的那部分,也恰恰是当它的热量无处可去时受苦最深的那部分。

这种紧张关系你以前见过,只是换了身行头。在下面几级台阶上,登纳德缩放的终结意味着:晶体管缩小,功率密度却不再随之下降,这正是为什么现代芯片在任一时刻都得让一大片保持熄灯——也就是暗硅问题。堆叠则是往这把火上浇油:你如今是把耗电的硅塞进一个*体积*里,而不再是摊在一个*面积*上,于是哪怕每个晶体管的瓦数在下降,每立方毫米的瓦数却在攀升。你之所以通常看到的是存储器叠存储器、而逻辑只保持单独一层发热,原因恰恰就在这里:存储器跑得凉,逻辑跑得烫,而一摞晶粒能散掉的热量是有限的。

封装的复兴

退一步,看看到底发生了什么。在摩尔定律历史的绝大部分时间里,封装只是个不起眼的盒子——它的活儿就是保护晶粒、把它连到电路板上,没什么花头。性能全靠晶粒本身。那个时代正在落幕。当单片晶粒一下子同时撞上互连延迟、良率和存储墙这几道极限时,封装被提拔了:如今一个系统的大部分性能,实际上是在封装这里*打赢*的。

芯粒这个思路要想枝繁叶茂,这些小块就得能彼此交谈,不论它们出自谁手——这意味着晶粒到晶粒的连接需要一套共用标准,就像 USB 给「往电脑上插东西」立了规矩一样。UCIe 正是这么个东西:一套开放标准,规定一颗芯粒如何跨越中介层或键合点跟另一颗交谈,这样一家公司就能把自己的逻辑跟别家的存储或 I/O 芯粒混搭起来,并且相信那些接缝靠得住。把晶粒*之间的接口*标准化,正是把一家公司的小聪明,变成整个行业积木的关键。

于是,扩展的前沿悄无声息地变得既三维、又模块化了。这个系列早期的几级台阶,是*往下*钻进晶体管里——FinFET环绕栅极、未来的 CFET,全都在从单独一个硅平面里榨出更多东西——而封装则是*往上*、*往外*推,把许多块各自优化过的小块组合成一个系统。两者谁也取代不了谁。往后的芯片会两样都是:用我们能印出来的最好的晶体管,切成已知良品的芯粒,再接合成一摞摞由封装、而非晶粒来撑住的堆叠。为这个系列收尾的压轴指南,会把这几条线索——器件、设计、封装——拧成一幅图,描绘计算接下来要往哪里去。