並排到頭時撞上的牆
在第 3 階你學會把晶粒「並排」放在中介層上——這是 2.5D 的世界,一疊 HBM 緊鄰著 GPU,透過下方矽中介層裡的數千條細線溝通。這招換來了龐大的頻寬。但請注意它的幾何結構:即使兩片晶粒只相距幾毫米,訊號仍得從一片晶粒「走出來」、橫越中介層、再「走進」另一片。在 GHz 等級的速度下,幾毫米形同永恆。每多一毫米的導線就多一分電容,意味著每位元要花更多能量、也帶來更多延遲。
於是工程師問了一個看似簡單的問題:與其把晶粒並排,不如讓它們「面對面」、或像煎餅一樣疊起來?那麼兩片不同晶粒上的電晶體之間,路徑就能縮短到幾「微米」,而非幾毫米——足足短了一千倍。這就是從 2.5D 躍進到真正垂直整合的一步,也就是 3D IC。
往上長:TSV、微凸塊與混合鍵合
要把晶粒 B 疊在晶粒 A 之上、又能讓訊號在兩者間流通,你需要一種方法把導體「貫穿」矽的本體。這個導體就是矽穿孔(TSV)——一個填滿銅的孔洞,往往只有幾微米寬,垂直鑽穿一片已被磨薄的晶粒。把它想成大樓裡的電梯井:樓層之間得以接線相通,而不必跑到外牆爬梯子。
但 TSV 只負責把訊號「穿過」一片晶粒。要把兩片堆疊的晶粒接起來,還需要在它們相接的表面上設置接點。第一代用的是「微凸塊」:細小的錫球,間距約 20–40 µm,回流焊接後把上層晶粒的焊墊銲到下層晶粒的焊墊上。微凸塊與第 2 階的覆晶凸塊是同一個概念,只是大幅縮小。它們行得通,但錫有極限——球做到一定程度就會與鄰球橋接短路,而且錫也帶來額外電阻與一道微小間隙。
前沿技術乾脆把錫整個拿掉。在銅對銅混合鍵合中,兩片晶粒被拋光到鏡面般平整,氧化層表面直接相黏(像兩片乾淨的玻璃片貼合),各自表面內嵌的銅墊對準後,再經一道加熱步驟熔接,直到融為一整片連續的銅。沒有錫球、沒有間隙——只有金屬與金屬相接。這把連接間距從微凸塊的約 40 µm 推進到「1 µm 甚至更小」,使晶粒對晶粒的連接密度提升「數百倍」,同時大幅降低每條連線的電阻與電容。
2.5D (side-by-side on interposer) 3D stack (hybrid bonded)
----------------------------------- --------------------------
[ GPU ] ~mm of wire [ HBM ] +========+ die B (top)
|________________________| | copper | <-- ~1 um pitch
interposer (passive) +========+ hybrid bond
==================================== | copper |
~mm path, more C, more energy +========+ die A (bottom)
| TSV | | signals exit below
+------+-+
3D vertical path: a few microns => ~1000x shorter, ~lower energy/bit為何要把一塊大晶片打碎成小塊?
現在把鏡頭整個拉遠。堆疊解決的是「距離」。但還有第二股更殘酷的力量正在重塑晶片設計:「經濟」,而它的驅動力是良率。良率指的是一片晶圓上做出來能正常運作的晶粒比例。缺陷大致是隨機落在晶圓上的——比方說每平方公分幾顆灰塵。小晶粒或許能全部閃過;巨大的晶粒幾乎必定會吃到至少一顆,而一個致命缺陷就會讓「整片」晶粒報廢。
這個數學毫不留情。缺陷隨「面積」累積,因此晶粒一變大,良率大致呈指數下滑。面積加倍,你損失的不只是多一點——你可能會折損掉大部分的良品。更糟的是,最大的設計會撞上「光罩極限」,也就是微影掃描機一次能曝印的最大面積(約 858 mm²)。你在物理上根本無法做出比這更大的單體晶粒。
Toy yield model (Poisson): Y = exp(-A * D)
A = die area (cm^2), D = defect density (defects/cm^2), D = 0.1
One monolithic die, A = 6.0 cm^2: Y = exp(-0.60) = 0.55 (45% scrapped!)
Split into 4 chiplets, A = 1.5 cm^2 each:
each chiplet Y = exp(-0.15) = 0.86
=> far more good dies per wafer; toss a 1.5 cm^2 reject, not a 6 cm^2 one這正是小晶片革命背後的經濟引擎。與其做一塊巨大的單體 SoC,不如把它「分拆」:將設計切成數個較小的晶粒,分別製造、各自測試,只留下良品——也就是已知良品晶粒(KGD)。接著把這些倖存者重新整合進同一個封裝。你等於把一張昂貴的彩券,換成一把便宜的彩券,而且只為中獎的付錢。
混搭:異質整合
為了良率而分拆,只是獎賞的一半。一旦晶片成了一堆拼塊,這些拼塊就不必再用同一種方式製造。這就是異質整合:每片小晶片都能採用最適合「它自己」的製程節點,再把這些拼塊組裝成一個系統。
這為何重要?不同的電路微縮的方式不一樣。邏輯——做算術的電晶體——在每一個新節點都能漂亮地縮小,而且「鍾愛」最新(也最貴)的 EUV 製程。但類比電路、高壓 I/O 驅動器與 SRAM 大致已停止縮小;花錢用尖端矽去做它們純屬浪費。於是你把密集的運算邏輯做在最新節點上,I/O 與類比做在較便宜的成熟節點上,記憶體或許做在記憶體專用製程上——再把它們組裝在一起。你能集各製程之長,而不必逼著一個製程包辦一切。
實例:CPU 運算晶粒 + 一片 IO 晶粒
用一個讓小晶片聲名大噪的架構把它講具體——一顆由兩種晶粒組成的伺服器 CPU。「運算晶粒(CCD)」上只有 CPU 核心與快取,採用最先進的節點製造,讓核心又快又密。另一片獨立的「I/O 晶粒(IOD)」則放所有不太縮得動的東西:記憶體控制器、PCIe 與 USB 的實體介面、插槽間連結。它做在較便宜的舊節點上,因為這麼做沒有壞處。
- 分別製造。 在先進節點上做出大量小型運算晶粒,在成熟節點上做出 IO 晶粒。每片晶粒都很小,所以每片晶圓都能產出許多良品。
- 組裝前先測試。 對每片晶粒進行探針測試,挑出已知良品晶粒。你只想把組裝成本花在已確認可運作的拼塊上。
- 分級與混搭。 速度快的運算晶粒進高階產品,稍慢的進較便宜的型號。「同一片」IO 晶粒兩者通用。整條產品線就從同一個零件箱裡分裝出來。
- 重新整合。 把一片或多片運算晶粒連同 IO 晶粒放上封裝基板(或中介層),做晶粒對晶粒連接,再封裝密合。
package substrate / interposer
+---------+ +---------+ +-------------------+
| CCD 0 | | CCD 1 | ... | IO die (IOD) |
| cores + | | cores + | <==> | mem ctrl, PCIe, |
| cache | | cache | d2d | USB, socket links |
| (newest | | (newest | link | (mature node) |
| node) | | node) | +-------------------+
+----+----+ +----+----+ ^ ^ ^
| d2d links (UCIe) DDR PCIe USB to the outside world
+-------------------------------+
Build a 4-core, 8-core, ... or 64-core part by changing how many CCDs you drop in.看看這替你換來什麼。你能從 4 核晶片擴展到 64 核怪物,「靠的只是多放幾片運算晶粒」——不必重新設計、不必新光罩組、也不會撞上光罩極限的牆。昂貴的先進節點矽只花在核心上。而由於每片晶粒都小,你的晶圓上滿是已知良品晶粒,而非折損過半的巨片。同樣的概念遠不止用於 CPU:GPU 與 AI 加速器如今也以一模一樣的方式,把許多運算小晶片並排(並疊放)在記憶體與 I/O 旁邊。
讓拼塊能扣合:UCIe 與協同最佳化
在這份優雅之中藏著一個陷阱。如果你向甲廠買的運算晶粒,和向乙廠買的 IO 晶粒,談不攏「該如何」跨越間隙溝通——電壓、間距、協定、錯誤處理——那麼小晶片就只是客製的一次性配對,而非一個市場。數十年來,各家公司的晶粒對晶粒連線都是自家的方言。業界的答案是 UCIe(通用小晶片互連 Express),一套開放標準,定義了實體凸塊/間距、電氣訊號與協定,讓某供應商的小晶片能插進另一家的封裝——這是封裝「內部」的「PCIe 時刻」。
還有最後一個心態轉變要吸收。當一個系統被拆散到許多晶粒與堆疊之中,你就不能再先設計晶片、後設計封裝。這個拆分本身——哪些功能放在哪片晶粒、熱點落在何處、電力如何往上送進 3D 堆疊、晶粒對晶粒連線如何分配預算——都得在一開始就一起決定。這套整體性的做法就是系統-技術協同最佳化(STCO):把矽、封裝與分割當成「一個」問題來最佳化,而非三個。