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

小晶片、3D 堆疊與封裝

數十年來,一顆晶片就是一整塊矽,封裝只是個事後才想到、把它接到電路板上的配角。如今一片巨大的單一晶粒已貴到難以做好,舞台便轉移到封裝本身——把一顆處理器拆成一個個小晶片(chiplet),再把它們縫合或堆疊起來。本篇要說明這場翻轉為何發生,以及底下的佈線到底是怎麼運作的。

為什麼一顆大晶片不再是答案

本梯級的第一篇已說明我們所處的困局:Dennard 縮放約在 2005 年終結、摩爾定律趨緩,於是我們不能再只是印出更小更快的電晶體、然後乾等。先前談過的一個對策是 SoC——把 CPU、GPU 與加速器全塞進一片晶粒。但這個策略自己也撞上了一面牆,禍首殘酷地物理:良率。製造晶圓時,缺陷或多或少是隨機地落在上頭,而單一晶粒越大,就越可能逮到一個致命缺陷。把面積加倍,成本不是加倍——而是不只加倍,因為太多大晶粒做出來就是壞的。

一個小小的算式能讓這點變得鮮明。假設一片晶圓平均每 100 平方毫米有一個缺陷、隨機散佈。一顆 100 平方毫米的晶粒預期約有一個缺陷,於是很大一部分做出來就是死的。現在把同樣的邏輯切成四個 25 平方毫米的小晶片:每一小片無缺陷的機率就高得多,你把好的留下、只丟掉那幾個壞的小片,並依速度把小晶片分級。總矽量一樣,但能賣的多得多。這就是核心的經濟論據:小晶粒的良率高出許多,而良率正是定價的關鍵。

還有第二個動機,而且同樣務實。一顆處理器並非每個部分都想用最新、最貴的製程來造。快速的邏輯核心能從最新節點得到巨大好處,但 I/O 電路、類比區塊與大型快取陣列在那裡幾乎沒進步、卻所費不貲。把它們拆成各自的小晶片,就能讓每一塊都用最適合它的製程來造——核心用最尖端的矽、I/O 用較便宜、較成熟、較可靠的製程——之後再把這混合體組裝起來。一片整體式晶粒逼著所有東西一次共用單一妥協製程;小晶片則讓每個區塊自己挑。

小晶片到底是什麼

小晶片不過是一片小型、單獨製造的晶粒,只做工作的某一部分——一叢 CPU 核心、一個 I/O 樞紐、一個記憶體控制器——且被設計成可在單一封裝內與其他小晶片接合。把它想成:從「把房子當成一整塊巨大的灌注水泥板來蓋」,轉為「用一間間預製好、運來再栓在一起的房間來蓋」。那些房間就是小晶片;連接它們的地基與走廊就是封裝。程式設計師看到的那顆處理器,是組裝好的整棟樓,而非其中任何一個房間。

難處在於:房間之間必須對「走廊如何相接」達成共識。兩個小晶片唯有在接合的邊界上講同一套物理與邏輯的互連——同樣的線路佈局、同樣的訊號、同樣的協定——才能協同運作。這正是為什麼業界一直在敲定共享的晶粒對晶粒(die-to-die)標準(UCIe 是其中最重要的一個):一份關於那道接縫的開放協議,好讓一家廠商的小晶片能對接另一家的小晶片。這跟上一篇的開放指令集是同一個念頭、往下推了一層——這裡我們約定的不是軟體合約,而是矽塊與矽塊之間的合約。把接縫標準化,一整個可任意搭配小晶片的市場就成為可能。

把它們並排縫合:2.5D 與中介層

接合小晶片的第一種方式,是把它們攤平、並排放置,但底下是一個比普通電路板豐富得多的表面。那個表面就是矽中介層(silicon interposer):一片薄薄的、本身沒有任何邏輯的矽板,它唯一的工作就是在坐落其上的小晶片之間,承載極高密度的微小線路。因為它是矽,所以能在電路板只給你寥寥幾條的空間裡塞進數千條連線——預製房間之間的走廊變得又寬、又短、又多,而非又長又擠。把小晶片在一個平面上排在中介層之上,業界稱之為 2.5D 整合:既不是單一平面晶粒、也還不是真正的垂直堆疊,而是介於兩者之間。

        package substrate (to the board)
  +-----------------------------------------------+
  |  +---------+   +---------+   +-------------+   |
  |  | CPU     |   | CPU     |   | HBM stack   |   |
  |  | chiplet |   | chiplet |   | (DRAM dies) |   |
  |  +----o----+   +----o----+   +------o------+   |
  |       |  thousands of fine wires  |           |
  |  ===== silicon interposer (passive) =======   |
  +-----------------------------------------------+
     2.5D: chiplets side by side on one interposer
並排的小晶片共享一片密集的矽中介層;中介層承載的線路遠多於電路板所能提供的。

2.5D 的招牌用途,正是你在加速器那幾篇已見過的:把高頻寬記憶體擺在 GPU 或加速器旁邊、同一片中介層上。回想那個一再出現的敵人——記憶體牆,也就是處理器運算的速度與記憶體餵料的速度之間的鴻溝。HBM 的攻法,是把 DRAM 擺在幾毫米之外、透過數千條中介層線路相連,給出一條極為寬闊的通往記憶體的路。那條寬路之所以存在,全因中介層能佈下普通封裝絕不可能的連線數量;HBM 與 2.5D 封裝是一起長大的,目的正是要把通往記憶體的那道門加寬。

把它們往上堆:真正的 3D 與穿矽通孔

如果 2.5D 是房間並排,那麼 3D 堆疊就是房間疊成一座塔。這裡晶粒直接疊在彼此之上、面對面鍵合,而讓它成為可能的把戲,是穿矽通孔(through-silicon via,TSV):一根微小的垂直電線,筆直地鑽穿一片晶粒的本體,好讓上層能跟下層對話。往上走而非往外攤,把最長的那些線路大幅縮短——一個原本得橫越整顆晶片的訊號,如今只往下掉幾微米到下一層樓——這同時砍掉了延遲,與搬資料所耗的能量,也就是前幾篇所揭示、主宰一顆現代晶片的那筆帳單。

其實,你早就一直在用 3D 堆疊了。一個 HBM 模組本身就是好幾片 DRAM 晶粒用 TSV 鍵合而成的垂直堆疊——那就是讓它的頻寬成為可能的堆疊記憶體。而如今正抵達產品的前沿,是把運算堆在運算之上:把一塊額外的快取直接鍵合在 CPU 核心的正上方,好讓一塊大得多、也快得多的快取坐落在幾微米之外,而非偏在一旁。每當兩個區塊之間的頻寬或延遲成為瓶頸時,同一個原理就再度浮現:別再把資料送過整顆晶片,而是把區塊疊起來,讓資料幾乎根本不必移動。

難啃的部分,以及它為何重要

對 3D 堆疊的代價要誠實,因為物理會反擊。最兇的敵人是熱。當你把晶粒疊起來,就把下層的熱困在上層底下,而一顆發燙的電晶體是又慢、又漏電、又易故障的電晶體。這正是為什麼你很少看到最燙、功率最高的邏輯被直接疊在更多熱邏輯之上;把又涼又密的記憶體疊在運算之上、或把運算疊在較涼的 I/O 層之上,都要容易得多。堆疊也讓測試更難——一座堆疊的好壞只取決於它最差的那片晶粒,而單單一層壞層就能毀掉一座本來完美的塔,這是小晶片良率故事的一個新轉折。

還有一個更隱微的陷阱:一個小晶片設計唯有在「晶片間的通訊不會把省下的吃掉」時才划算。從一片晶粒跨到另一片,即便是越過密集的中介層,也比待在同一片上更慢、更耗電,所以一個不斷在小晶片之間來回搬運資料的工作負載,可能跑得比它取代的那個整體式版本還差。架構師的工作,是把切割線畫在「跨線流量天生就低」的地方——把緊密耦合的區塊留在同一片小晶片上,只在邊界安靜的地方才切。這跟多核心那幾篇的偽共享是同一套局部性推理,只是被抬升到了整片晶粒的層次:把話講得多的東西放得近一點。

退一步看,它的意義很大。在後摩爾時代,當縮小電晶體不再白送你好處時,先進封裝已成為一條貨真價實的新改進軸線——一條靠「組裝」而非單靠「微影」來繼續打造更大、更快系統的路。它與專用化、開放指令集同處一個梯級並非偶然:這三者都是這個領域對同一條已耗盡的縮放曲線的回應,把好處從「矽神奇地變快」轉而尋於「我們如何組合與連接矽」。下個十年的處理器,比較不像一塊雕成的整石,而更像一個組裝起來的結構——而懂得它是怎麼栓在一起的,如今已是這門手藝的一部分。