手機,特別是智能手機的普及,其實就是最近十幾年的事?,F(xiàn)在我們的手機成了一個能讓人沉浸其中的小世界,這都多虧了手機芯片。
每臺手機里,都有一個個小芯片在不斷地執(zhí)行著各種指令。這靠的是芯片里很多稱為晶體管的半導體元器件,這些晶體管通過不同的電路連接方式可以實現(xiàn)開關、電信號放大等多種功能。我們每一次操作手機,都有上百億個晶體管在工作,讓指尖大小的微型集成電路發(fā)揮出遠超首臺巨型計算機的能力。 集成電路(又稱芯片)技術,不僅僅體現(xiàn)在手機中,大至工業(yè)制造、機械設備、物流運輸,小至電視機、計算機、手機、智能家居產(chǎn)品,底層都有芯片技術支撐。隨著5G、人工智能、物聯(lián)網(wǎng)、自動駕駛、大數(shù)據(jù)、云計算、智慧城市等新興領域的蓬勃發(fā)展,芯片將扮演更加重要的角色。 我們可能永遠都不會自己設計芯片,但了解芯片設計仍然是一件有趣且很重要的的事情。 芯片與晶體管 芯片發(fā)展史可以追溯到半導體特性的發(fā)現(xiàn),即半導體的導電能力會隨著溫度、光線、光照條件、輸入電壓和摻入雜質的不同而發(fā)生改變。在這一理論基礎上,半導體點接觸式晶體管誕生,帶來了集成電路。 其后,隨著芯片制作工藝的演進,人們得以將完整計算機的不同功能集成于一顆硅片,這種高度集成的集成電路芯片即 SoC (System on Chip,片上系統(tǒng)),一塊芯片中包含了具備不同功能的集成電路模塊,它們構成了一個完整的系統(tǒng),使芯片功能大大增強。一塊芯片中可能包含幾類不同功能的集成電路。 在理論上我們都知道,用晶體管搭成特定的電路,就可以讓電路訪問由0和1組成的機器語言代碼(指令),并且執(zhí)行這些指令。雖然每個指令對應的功能都很簡單,比如僅僅是把某個位置存儲著的數(shù)據(jù)拷貝到另一個位置去,但多個指令執(zhí)行下來,就能實現(xiàn)很復雜的功能。 在計算機圖書中,我們可以學習到,高級語言如C語言代碼,在真正被處理器運行時會轉化為匯編代碼,并最終形成二進制格式的目標代碼文件。最終機器執(zhí)行的程序只是一個字節(jié)序列,它是對一系列指令的編碼,機器對產(chǎn)生這些指令的源代碼幾乎一無所知。 晦澀的芯片知識 在計算機專業(yè)課堂中,當需要設計實際能夠工作的微處理器時,學生們會先學習怎么用晶體管組成數(shù)字電路的基本計算單元——邏輯門。 △與門、或門和非門 △非門的實際晶體管電路圖 后續(xù)設計時,我們就不會再畫出邏輯門的實際晶體管電路了。 將很多的邏輯門組合成一個網(wǎng),就稱為組合電路。比如下面就是一個簡單的組合電路。 之后我們可以將具體的組合電路寫成更抽象的表示圖。 比如算術/邏輯單元(ALU),就是一種很重要的組合電路,下面是它的一個抽象的圖示。電路有標號為A和B的兩個數(shù)據(jù)輸入,一個控制輸入。根據(jù)控制輸入的設置,電路會對數(shù)據(jù)輸入執(zhí)行不同的算術或邏輯操作。 早期的硬件設計者,就是通過紙和筆描繪示意性的邏輯電路圖來進行電路設計的。比如設計一個最簡單的、每個時鐘周期中執(zhí)行一條完整指令的順序執(zhí)行處理器時,就會畫出下面這樣的一個邏輯圖。 現(xiàn)在我們已經(jīng)不再直接描繪邏輯電路圖來進行電路設計了,而是會使用硬件描述語言(Hardware Description Language,HDL)來描述硬件結構,如Verilog語言。之后可以根據(jù)HDL的描述生成有效的電路設計。 用晶體管設計出特定的電路已經(jīng)很難了,而真正把大量的晶體管“放進”指甲蓋大小的芯片里并用電路連接在一起,難度會更大?,F(xiàn)代的芯片設計、制造、測試,已經(jīng)變得非常復雜了。按照傳統(tǒng)的方式來學習了解芯片的設計制造,以及芯片中各個功能模塊是怎么配合完成工作,還是很不容易的。 好在,我們現(xiàn)在有了一本介紹芯片知識的科普漫畫圖書,書中,芯片知識由擬人化的“元器件”們徐徐道來,帶領讀者輕松了解“點沙成芯”的奧秘。