積體電路到底是什麼
在上一篇裡你認識了 電晶體——一個能開能關的微小電子開關。單獨一個開關並不稀奇。但如果把成千上萬個開關按正確的方式連在一起,你就得到了能做加法、能記東西、能做判斷的東西。問題來了:怎麼把成千上萬個開關連起來,又不把自己逼瘋?
老辦法是:把每個電晶體都做成一個獨立的小元件——一粒矽,伸出三條金屬接腳——再用手把它們焊到電路板上,用導線一根根接起來。開關只有幾個時,這沒問題。可一旦上千,就沒救了:接點太多、佔地太大、太多地方可能脫焊。突破性的想法簡單得近乎「耍賴」。別再把零件分開做、再連起來。直接把它們一次性地、連好了做出來,全做在同一小片矽上。
這就是 積體電路,也就是 IC——大家平時直接叫它晶片。「積體」的意思很樸素:開關和它們之間的連線是一起做出來的,連成一整塊、一個物件。晶片內部沒有人去焊;那些連接是在製造時直接「長」進矽裡的。從前那塊擠滿獨立零件的電路板,如今變成一片比你指甲還小的平板。
一片晶粒上的百萬開關(VLSI)
晶片所在的那一小片矽,有個名字:晶粒(英文叫 die)。想像一塊薄薄的方形小瓦片,常常每邊只有幾毫米。晶片的一切——每個開關、每根線——都坐落在這一片瓦上。過去六十年的整段故事,說到底就是:我們學會了往一片晶粒上塞進多少個開關。
1960 年代初最早的積體電路只裝得下寥寥幾個——也許幾十個電晶體。隨著人們越來越擅長把它們做小,數量節節攀升:上百、上千、再到幾十萬。工程師開始用「整合度」給這個規模命名,而在「大聯盟」級別留下來的名字是 VLSI——*超大規模積體電路*。今天,你手機或筆電裡的單顆晶粒,就能裝下數百億個電晶體。不是幾千個。是數百億。
你沒法靠一個個手擺來設計「數十億個」任何東西——你這輩子都不夠長。設計者用的竅門,和任何龐大工程保持理智的竅門一樣:把它拆成塊。晶片不是一片汪洋般的開關,而是被組織成一個個有名字的「街區」,每個街區只幹一件事。你會反覆遇到的三種是:邏輯、記憶體、和 I/O(輸入輸出)。
- 邏輯(logic)——真正負責計算的部分。開關被排布成能做加法、比較、判斷的樣子。真正的「思考」就在這裡一步步發生。
- 記憶體(memory)——把數字穩穩存住、好讓邏輯稍後回來取用的部分。把它想成晶片的便條紙和短期記憶。
- I/O——是 input/output(輸入/輸出)的縮寫,負責和外界打交道的部分:把資料從相機或鍵盤送進來、再把結果推送到螢幕或另一顆晶片去的那些線路。
摩爾定律
我們是怎麼從幾十個電晶體走到數百億的?不是一蹴而就,而是靠一種穩定到近乎詭異的規律性攀升。早在 1965 年,一位名叫戈登·摩爾的工程師注意到:一顆晶片上能塞下的電晶體數量,大約*每兩年就翻一番*。他預期這個趨勢會持續下去——而令人驚訝的是,它真的持續了,一個十年又一個十年。這個觀察後來得了個名字:摩爾定律。
一個翻倍的數字,憑什麼值得你在意?因為一遍又一遍地翻倍,會快得驚人。翻二十次,大約就是*百萬*倍的增長。正是這種無情的複利,給我們換來了現代世界:每一代新晶片都塞進更多開關,也就意味著同樣價錢換來更多算力、更小的裝置、更長的續航。曾經佔滿一整間屋子的電腦搬上了桌面,又進了口袋,再到了你的手腕上——靠的不是魔法,而是騎在這條曲線上。
不過也得說句實話:那些「輕鬆的翻倍」快用完了。如今的電晶體已經小到只有幾個原子那麼寬,而你總不可能縮到比一個原子還小。這條曲線正在變緩。這並不意味著進步停了——而是意味著聰明勁兒轉移到了別處:把晶片在三維方向上疊起來、設計專攻某一件事的部件、把好幾片晶粒封裝在一起。對你來說,要點很簡單:那個定義了五十年的「免費、自動」的翻倍正在淡去,產業如今為每一點進步都得多費許多力氣。
一顆晶片上到底有些什麼
我們來慢慢地走過一片現代晶粒——就拿手機裡的主處理器來說——把你「飛越」時看到的各個街區一一點名。一旦你能讀懂這張地圖,這顆晶片就不再是一塊神祕的黑方塊,而變成一個你能給人指路的地方。
- 核心(cores)——執行程式的引擎。一個核心就是一台自成一體的電腦:它一條接一條地讀取指令並執行。現代晶片並排放好幾個核心,好讓它們同時幹好幾件事,就像一間廚房裡有好幾位廚師。
- 快取(cache)——緊貼著核心的、又小又極快的記憶體。從遠處取資料很慢,所以每個核心把最常用的東西放在這個就近的「櫥櫃」裡。在晶粒上,快取往往呈現為大片、整齊、重複的矩形——通常是看起來最規整的區域。
- 互連(interconnect)——道路。有這麼多核心和記憶體塊,就需要一張布線網路在它們之間搬運資料。互連就是晶片內部的高速公路系統;在一顆大晶片上,它的布局和它連接的「樓房」一樣重要。
- I/O——邊緣地帶,晶片在這裡與裝置的其他部分相接。這些是連出去通往記憶體晶片、螢幕、相機、電池的焊墊和電路——每一根離開晶粒的線,都從這裡經過。
把整趟旅程串起來的那個統一事實是:上面每一個街區——核心、快取、互連、I/O——都是用同一種基本材料造出來的,那就是電晶體,並以一種特定的低功耗方式連接起來,這種方式叫 CMOS。CMOS 就是幾乎每顆現代晶片都遵循的「配方」。它把兩種電晶體配成一對,於是當開關靜止不動時,幾乎沒有電流白白漏掉。把這一點點節省乘以數十億個開關,就是「一部能用一整天的手機」和「一部到午飯時已經發燙沒電的手機」之間的差別。
於是這一躍,從頭到尾就是:一個開關,是電晶體;許多開關一起做在一小片矽上,就是積體電路;用 CMOS 把數十億個塞進一片晶粒,再組織成核心、快取、互連和 I/O——你手裡握著的,就是一台完整的電腦。下一篇裡,我們會跟著看看:這樣一份設計,究竟是怎麼被畫出來、又怎麼變成工廠能造的東西的。