当通用型不再缩放
在计算机历史的大部分时间里,你都享受着一顿免费午餐。每隔几年,晶体管就缩小一次,摩尔定律让你能塞进一颗晶粒的数量翻一番,而且——这一点人们常常忘记——登纳德缩放意味着这些更小的晶体管每个还会消耗*更少*的功率。更快*又*更凉快,全部免费,只要等着就行。一颗通用 CPU 就能乘着这股浪潮:保持同样的设计,把它缩小,把时钟拉高,去年的芯片就显得慢了。你不必有多聪明,物理替你聪明。
大约在 2006 年,这顿免费午餐没了一半。登纳德缩放失效了:小到一定程度后,漏电及其他效应意味着更小的晶体管单位面积上不再更省电。晶体管还在继续缩小——摩尔定律勉强撑着——但每平方毫米的功率不再下降。这就是功耗墙,它带来一个残酷的后果。你仍能往一颗晶粒里塞进数十亿个晶体管,却再也负担不起同时让它们全部翻转:那会把芯片烧熔。任一时刻你不得不让其保持熄灭的那部分,就是暗硅,而且它随着每一代工艺节点不断增大。
于是旧策略——一台通用引擎,缩小它、把时钟拉得更快——撞上了天花板。时钟频率大约在 2000 年代中期趋于平缓,自那以后几乎没怎么动过。行业最初的回应是"多加几个核",但暗硅同样限制了你能点亮多少个核。更深层的答案正是这篇收官之作的主题:如果你只负担得起给*一部分*晶体管供电,那就让你供电的那些恰好最适合手头的工作。别再做通用的了,开始做专用的吧。
领域专用架构
这就是这个时代的关键洞见。通用 CPU 的设计目标是运行*任何东西*——网页浏览器、电子表格、游戏——所以它把大部分晶体管和能量都花在了灵活性上:取指、译码、预测分支、来回搬运数据,以备不时之需。对于*任何一项*特定工作而言,这些开销几乎是纯粹的浪费。领域专用架构(DSA)押的是相反的赌注:放弃运行一切的能力,换来把每一个晶体管、每一皮焦耳都花在把*一类*工作做到惊人地出色上。
最清楚的例子是现代 AI 核心处的矩阵乘法。CPU 一条指令一条指令地做,每一步都要付出译码和调度的开销。GPU 则甩出成千上万个简单的算术单元来并行处理它。TPU 或 NPU 走得更远:它把矩阵乘法的精确数据流直接硬连进硅里,于是数据几乎不带任何指令开销地穿行过一整片乘法器阵列。这里要紧的指标不是原始速度,而是每瓦性能——单位能量所完成的有用工作——因为在一个受暗硅限制的世界里,能量*就是*那份预算。
你在数字和物理设计两级台阶上学到的一切,在 DSA 内部依然成立——它仍然是在某个工艺节点上的标准单元和布局布线。变的是*架构*:不再是一台庞大灵活的引擎,而是你设计出许多精简的、为特定目的打造的引擎。这就引出了显而易见的下一个问题——一旦你有了十几个专用模块,该如何设计并连接它们,才不至于让每个模块都在争抢功率、面积以及彼此之间的连线?
系统-工艺协同优化
在下面那几级台阶上,各个层次是依次、且大体彼此隔离地设计出来的:系统架构师决定要造什么,交给逻辑设计师,逻辑设计师再交给物理设计师,物理设计师再交给晶圆厂。每一层都把下面那一层当成一份定死的菜单。在缩小还挑着大梁的时候,这一套行得通。可一旦收益必须来自各层之间*如何契合*,它就行不通了。
系统-工艺协同优化(STCO)是一门把系统、芯片,*以及*制造工艺和封装放在一起、当作同一场协商来设计的学问,从而让某一层的决策反过来重塑其他各层。一个著名的例子是背面供电:把供电线挪到晶圆的*背面*,你就腾出了正面那些宝贵的金属层来走信号——可这只有在架构师和物理设计师*知道*它要来、并据此布线加以利用时才划得来。工艺选择和设计选择,只有放在一起做才说得通。
OLD: design as a relay race (each layer optimized alone)
System ──▶ Logic ──▶ Physical ──▶ Package ──▶ Fab
("here") ("ok") ("fine") ("sure") (build)
one-way hand-offs; each layer takes the one below as fixed
STCO: design as one round table (co-optimize all at once)
┌─────────── System ───────────┐
│ │
Package ◀── co-design ──▶ Logic / arch
│ │
└──────── Process tech ────────┘
every arrow is two-way: a package or process choice
reshapes the architecture, and vice-versaSTCO 是设计-工艺协同优化(DTCO)的自然继任者,后者只是把单元库和工艺一起调优。STCO 把这张桌子扩大到了整个系统和封装。而一旦*封装*在那张桌子边也有了一席之地,一个新问题便浮现出来:要是封装本身——而不只是晶体管——变成了价值被创造出来的地方,会怎样?
"超越摩尔"
几十年来,"进步"只意味着一件事:把晶体管缩小,也就是"更多摩尔"(More Moore)这条路。"超越摩尔"(More than Moore)则是与之互补的另一个思路——你可以*不靠*更小的晶体管也交付出更多价值,办法是巧妙地把东西集成起来。如果砖头没法做得更小,那就盖一座更好的楼。重心从晶体管转移到了封装上,而这正是下面各级台阶上的每一个封装构想得以兑现的地方。
关键的一步,是不再建造一颗巨大的单片晶粒,而是改为造出若干小晶粒——芯粒——再把它们接合进同一个封装里。收益是实打实的。良率:一个缺陷只毁掉一小颗晶粒,而不是一整颗巨大的,于是你用已知良品晶粒来组装产品,扔掉的硅要少得多。混用节点:稠密的逻辑可以用最前沿的工艺节点,而 I/O 或模拟部分则留在更便宜、更成熟的节点上——每个模块都待在最适合它的节点上。它们之间通过 UCIe——开放的裸片间互连标准——相互通信,于是来自不同厂商的芯粒可以被设计成能够互操作。这就是异构集成,也是现代先进封装的核心。
MONOLITHIC: one giant die CHIPLETS: many small dies, one package ┌───────────────────────┐ ┌──────┐ ┌──────┐ ┌──────┐ │ CPU GPU I/O SRAM│ │ CPU │ │ GPU │ │ I/O │ │ all on ONE node; │ │3nm │ │3nm │ │mature│ │ one defect = whole │ └──┬───┘ └──┬───┘ └──┬───┘ │ die scrapped │ ═══╪════UCIe═╪════════╪═══ <- die-to-die └───────────────────────┘ ───┴─── interposer ──┴─── links big = lower yield known-good die; mix nodes; better yield
瞥一眼 CMOS 之外
到目前为止的一切,仍然立足于以 CMOS 方式开关的硅 MOSFET。FinFET(约从 22nm 节点起)和全环绕栅极纳米片(约在 3nm 及以下)是为同一个开关设计的巧妙新*形状*,把栅极越来越紧地裹住沟道,以便在它缩小时仍能保持控制;CFET——把两种类型的晶体管上下叠放——则是研究地平线上的下一个形状。但它们全都还是硅 CMOS。一个诚实的长远问题是:当硅晶体管本身把形状都用尽之后,*接下来*又是什么?
那片研究前沿就是超越 CMOS——不依赖传统硅沟道来运算的器件。有三大类值得记住名字。碳纳米管和二维材料(像二硫化钼那样只有原子级薄的薄片)能提供仅一两个原子厚的沟道,而在那样的尺度上硅的静电特性已经崩溃。自旋电子学把信息编码的不是穿过沟道流动的电荷,而是电子的*自旋*——有望以低得多的能量完成开关,是对功耗墙的一次正面进攻。它们今天没有一个出现在你的手机里;它们活在实验室和试产线上。
未来的形状
退后一步,这条弧线就清晰起来了。芯片的未来不是一台不断变小、变快的通用引擎,而是许多专用模块——每一个都是一个为每瓦性能调校过的领域专用架构——通过协同优化与它们的封装和工艺一起设计,并作为芯粒靠封装集成,而不是熔铸进一颗不断缩小的晶粒里。晶体管的形状仍在演进,也许有朝一日物理原理也会演进,但它们已不再是*唯一*的杠杆。这根杠杆越来越是*你如何把这些零件拼到一起*。
而这其中的每一块,都能径直顺着你爬过的那架梯子追溯回去。最底层那级台阶上同样的晶体管和 CMOS 逻辑。数字与物理两级台阶上同样的 RTL、标准单元和布局布线。模拟那级台阶上的带宽与信号完整性极限,如今由 HBM 和短促的中介层连线来回应。被 EUV 推向前沿的光刻。前沿并不是另一个领域——它就是*同一个*领域,只是拒绝停在任何单独一级台阶的极限处,转而伸手去够下一级。
你从一个单独的开关出发,最终抵达了硅之所能的边缘。未来十年的芯片,将远更多地是被组装、被协同设计、被专用化,而不只是被简单地缩小——而你如今已握有那张地图,可以一个极限接一个极限地追随它们,一路回到你出发时的那个晶体管。