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,全都在從單獨一個矽平面裡榨出更多東西——而封裝則是*往上*、*往外*推,把許多塊各自最佳化過的小塊組合成一個系統。兩者誰也取代不了誰。往後的晶片會兩樣都是:用我們能印出來的最好的電晶體,切成已知良品的小晶片,再接合成一疊疊由封裝、而非晶粒來撐住的堆疊。為這個系列收尾的壓軸指南,會把這幾條線索——元件、設計、封裝——擰成一幅圖,描繪運算接下來要往哪裡去。