軟件和芯片密不可分,但軟件是抽象的,芯片是物理的,二者如何建立關系?這讓我們很快想到計算機的底層——二進制的0和1。可是,0和1仍然是抽象的概念,芯片或者計算機內部也不存在0和1,但人們很聰明地想到一種對應方法,就是用電壓水平來表示,比如,高電平為1,低電平為0。于是,將抽象的軟件映射為01字符串(C之類的高級語言編譯后就是01機器碼),物理的芯片又可以體現不同的電壓水平。這樣,我們就將軟件與芯片建立起了聯系,或者說將人類世界和計算機世界建立起了聯系。
上面的聯系還是稍顯跳躍和粗糙,接下來,還要解決兩個連續的問題:- 問題二:映射為01字符串后如何在芯片中體現為電平組合(電路)?
我們先看問題一,復雜的軟件如何與簡單的01映射?但這個問題可以指向軟件在芯片中的兩個基本行為:如何存儲和如何運算。文字呢,比如,A、B、C分別用01000001、01000010、01000011表示(ASCII碼),同樣的道理,其他字母或者漢字也都可以用01排列組合來表示。聲音、圖片和視頻會略微復雜些,用到的辦法就是“離散化”。比如,對聲音可采集離散的波形,對圖片可采集離散的像素點,而視頻就是聲音和連續圖片的結合。所以,只要有足夠多的01字符串去排列組合,我們不但能表示軟件,還能表示軟件背后的世間萬物。
算術運算是指對數值進行計算的運算,包括加、減、乘、除等基本運算。邏輯運算則是基于布爾邏輯的運算,用于處理二進制數據(0和1)的位運算和邏輯關系判斷,如與、或、非、異或等。
既然我們進入到了0和1的世界,也就看看0和1的運算。學過布爾邏輯的我們,稍加思考,大約會發現這里的算術運算可以用邏輯運算來替代,也就是異或(相同為0,不同為1)邏輯得出加法位,與邏輯得出進位位(實際上,這是一個半加器)。再往后,加法作為運算的基礎,可以在擴展后處理更復雜的運算。走到這里,我們已經走完了抽象的部分,下一步就要邁進物理世界,也就是問題二,映射為01字符串后如何在芯片中體現為電平組合(電路)?實際上,結合上一小節的敘述,我們知道我們很難直接處理01,而需要通過布爾邏輯將無意義的01有意義化,問題二就轉變成了布爾邏輯如何用電路實現。
初中物理學過基礎電路圖,我們可以用如下導線、開關、燈泡組成的簡單的電路(這種用來表示布爾邏輯的電路就是邏輯門)來表示布爾邏輯。理論上,我們用無數這些電路就可以搭建一個芯片及一臺計算機。不過,現實顯然并非如此簡單。接下來,我們就需要進入半導體時代了。我們都見過電路板,上面有印刷銅線,可以對應前述示意邏輯門的電路導線。還遺留一個難點是開關,我們總不能用這個閘刀開關吧,太復古了。其實吧,也不能說不能,世界上第一臺可自由編程使用二進制數的Z1計算機就是用不比閘刀開關高端多少的繼電器來搭建的。繼電器這種笨重且單一的東西實非長久之計,人類很聰明,也很幸運,發現了半導體,半導體具備整流效應(依賴于PN結),也就是單向導電性,這讓半導體制作“開關”替代繼電器成為可能。再加上半導體還有熱敏、光生伏特與光電導這些效應,而且還具備穩定可靠、易于加工集成及適合大規模生產等特點,這都讓半導體成為“開關”的不二選擇,也最終成為計算機的基石。在這些半導體“開關”或者“開關”組合里,最出名的莫過于晶體管這個芯片的基礎元件,比如,美光公司的2T閃存芯片NAND,單芯片就使用了5.3萬億個晶體管。以上算是講了芯片的基本原理,到此,終于快摸到芯片的邊了,但我們還沒講芯片的基本概念。我講概念比較喜歡講狹義的,也就是業內談到它,腦子里共同浮現出來的那些東西,這才是概念更重要的意義。芯片,實際上是將電路中的元件,如晶體管、二極管、電阻、電容和電感等,以及它們的連線,按照一定規則在非常小的半導體硅片上實現互聯互通。這樣,原本需要大量分離電子元件才能實現的功能,被高度集成在了一個微小的”片“上,形成了一個功能完整的電子系統。由于它的體積小、重量輕,但功能強大,因此被稱為“芯片”。通過以上的描述,我們比較容易引出芯片更學術的概念——集成電路,但更廣義的芯片還包括傳感器、分立器件、光電器件產品等。車規級芯片也是個比較熱的概念,何為車規?
4.1 AEC-Q100
顧名思義,就是滿足汽車的標準與規范。又有哪些規范呢?
通常,我們可以用16949、26262、21434與AEC-Q100這四大標準作為車規芯片的門檻。
前三個標準屬于行業性或系統性的汽車行業規范,分別面向質量體系、功能安全、信息安全,并不專門面向芯片,而AEC-Q100 算是芯片專屬。
AEC-Q100的全稱是“基于汽車應用中集成電路的失效機理的應力測試認證”,本質是測試標準,主要從硬件層面確認集成電路在不同汽車環境中是否具有足夠的可靠性。比如,這些測試包括溫度循環、濕度測試、振動測試、電氣應力測試等。
需要注意的是,AEC-Q100標準是針對集成電路(如MCU)的,但這個家族還包括一系列其他標準,分別是:
AEC-Q101: 分立半導體器件(如三極管、二極管)
AEC-Q102: 分立光電半導體器件(如LED)
AEC-Q103: 傳感器(如加速度或溫度傳感器)
AEC-Q104: 多芯片組件(其他標準未涵蓋的多芯片組件)
AEC-Q200: 無源器件(如電容、電阻、電感)
4.2 芯片級別
說完車規級,再看看其他“規”。
延續車規這個應用場景分類邏輯,我們可以將汽車芯片分為以下5個級別。
當然,以上各個級別的芯片之間并沒有嚴格的界線。比如,某些高端的消費級芯片可能采用了與汽車級的制程技術,或者汽車上某些芯片仍然是消費級的。
萬億(12個0)、納米(十萬分之一頭發絲),這都是用來描述芯片的單位,簡直是“喪心病狂”的尺度。在如此尺度下,將芯片制造出來也是難以想象的。所以,我們把芯片制造比作是在拇指上建造一座超級城市,并不為過。
5.1 晶圓制造
首先,我們需要一片非常純凈的單晶硅作為“地基”,就像建造城市需要堅實的土地一樣。這片單晶硅的純度要求極高,甚至要達到99.999999999%(即11個9)以上。
也就是說,這意味著每一萬億個硅原子中,只允許有一個雜質原子。為了達到這樣的純度,原材料需要經過一系列復雜的物理和化學提純過程。
提純完成后,將純凈的硅材料放入高溫爐中,通過特殊的方法(如化學氣相沉積)將其轉化成單晶硅棒。
然后,使用精密的切割設備將這些單晶硅棒切割成薄薄的圓片,也就是晶圓。這些晶圓的厚度通常只有幾百微米,相當于頭發絲的直徑。
5.2 晶圓加工
接下來,我們需要在晶圓上建造城市的“道路和建筑”,也就是電路和電子元器件。這個過程包括光刻、刻蝕、離子注入等步驟,每一步都需要精確控制各種參數和條件。
例如,在光刻步驟中,我們需要使用特殊的光刻膠和掩膜版,通過紫外線曝光將電路圖案“印”到晶圓上。這個過程中,光刻膠的厚度、曝光時間等參數都需要精確控制,以確保圖案的清晰度和精度。
5.3 封裝測試
最后,當城市的“道路和建筑”都建造完成后,我們需要進行“裝修和驗收”,也就是封裝和測試。
封裝是將芯片放入保護殼中,并連接引腳以便與外部電路連接,以保護內部的電路不受外界環境的影響。
同時,我們還需要對芯片進行功能和性能測試,確保其符合規格要求。
先從最基礎的0和1講起,揭示了軟件與芯片之間的緊密聯系。在數字電子中,高電平和低電平分別代表1和0,這種簡單的對應關系為軟件與芯片的交互提供了基礎。
接著,從存儲和基于布爾邏輯的運算解釋了軟件與芯片的交互,并引出邏輯門和最適合邏輯門開關的晶體管。
以上算是芯片的基本原理,進一步地,我們明確了芯片的來歷和學術性概念——集成電路。
最后,從晶圓制造、晶圓加工、封裝測試這幾個角度概要介紹了芯片的制造過程。