當通用型不再縮放
在電腦歷史的大部分時間裡,你都享受著一頓免費午餐。每隔幾年,電晶體就縮小一次,摩爾定律讓你能塞進一顆晶粒的數量翻一倍,而且——這一點人們常常忘記——丹納德縮放意味著這些更小的電晶體每個還會消耗*更少*的功率。更快*又*更涼快,全部免費,只要等著就行。一顆通用 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 推向前沿的光刻。前沿並不是另一個領域——它就是*同一個*領域,只是拒絕停在任何單獨一級台階的極限處,轉而伸手去夠下一級。
你從一個單獨的開關出發,最終抵達了矽之所能的邊緣。未來十年的晶片,將遠更多地是被組裝、被協同設計、被專用化,而不只是被單純地縮小——而你如今已握有那張地圖,可以一個極限接一個極限地追隨它們,一路回到你出發時的那個電晶體。