設計一款CPU芯片到底有多難?

文章結構前端

  •     導讀
    android

  •     一顆芯片是怎麼誕生的?
    後端

  •     一款CPU是如何設計出來的?
    服務器

  •     設計一款CPU到底難在哪裏?微信


導讀
網絡


這幾天,刷遍朋友圈的新聞就是:中興被「一劍封喉」,被美國中止一切芯片進口和系統軟件服務。這對於芯片依賴美國的中興來講,基本上一會兒就處於休克狀態,上下游的生產線面臨停產,8萬員工前途未卜。中興事件給IT/IC屆帶來的衝擊,甚至給普通百姓帶來的衝擊至關大,以致於各個自媒體、公衆號、新聞APP這幾天的新聞全是跟芯片、半導體、集成電路相關的話題:芯片是啥?中美芯片差距到底有多大?各類段子也隨之誕生:一樣一堆沙子,有人拿它作出了芯片,有人拿它作成了磚,把房價炒上了天......,新聞多了,不少消息也愈來愈扯淡,不少看了實在無語,自卑和自大每每都來源於無知。今天就綜合一下行業知識、參考網上的新聞,給你們掃盲一下集成電路相關的知識,對於嵌入式開發者來講,學習一下集成電路領域的知識,對本身的知識體系和對嵌入式行業的理解也有很大的幫助。架構


一顆芯片是怎麼誕生的?app


上面的段子說得沒錯,芯片的原材料就是沙子,今天就先跟你們科普一下:一堆沙子是怎麼變成咱們手機裏的一顆芯片的。框架


芯片屬於半導體,半導體是介於導體和絕緣體之間的一類物質。元素週期表中的硅、鍺、硒的單質都屬於半導體。除了這些單質,經過摻雜生成的一些化合物,也屬於半導體的範疇。這些化合物在常溫下可激發載流子的能力大大加強,同時彌補了單質的一些缺點,所以在半導體行業中也普遍應用,如砷化鎵、磷化銦、碳化硅、氮化鎵等。這幾天集成電路概念股大漲,看到有人又炒做石墨烯,估計想趁機炒做一把。石墨烯其實不能算做半導體,雖然它可能經過摻雜實現半導體,但目前主要仍是當導體使用,好比在充電電池中的應用。在這些半導體材料中,目前只有硅在集成電路中大規模應用,充當着集成電路的原材料。在天然界中,硅是第二大豐富的元素,好比沙子,就含有大量的二氧化硅。因此說製造芯片的原材料是極大豐富,取之不盡的。ide

如何從沙子中提取單質硅呢,這就牽涉到一系列化學反應,具體不表。提取的硅純度越高,質量越高。提取出的單晶硅根據不一樣的需求和工藝,作成不一樣的尺寸,常見的如6寸、8寸、12寸等。


接下來,把這些硅棒像切黃瓜同樣,切成一片一片的。每一片咱們稱爲:晶圓(wafer)或者翻譯爲晶元。晶元是設計集成電路的載體,咱們設計的電路,最後就要在晶元上實現。每個晶元上,能夠實現上百上千個芯片電路,以下圖,每個小格子均可以看做是一個芯片電路的實現。接下來還要將這些芯片電路切割、封裝、引出管腳,才能焊接到咱們的開發板上,作成整機產品。


那在晶元上是如何實現電路的呢?將晶元拿到顯微鏡下觀察,你會發現,裏面全是密密麻麻的3D電路,猶如一座巨大的迷宮:


要想弄明白在晶元上是如何實現咱們設計的電路,就須要一點電子電路的基礎知識了。電路都是由大量的三極管、二極管、CMOS管、電容等元器件組成的,咱們搞懂了一個CMOS管是如何在硅片上實現的,也就搞懂了整個電路在晶元硅片上的實現原理。這些元器件的實現原理,其實就是PN結的實現原理。而PN節的工做原理也是半導體的基本工做原理。PN結是構成二極管、二極管等半導體器件的基礎。想要了解PN節的導電原理,還須要稍微瞭解一下金屬的導電原理。


咱們知道,一個原子由質子、中子和核外電子組成:中子不帶電,質子帶正電,原子帶負電,整個原子顯中性。根據電子的能級分佈,一個原子的最外層電子數爲8時最穩定。對於鈉原子,核外電子層分佈爲2-8-1,最外層1個電子,能量最大、受原子核的約束力小,因此最不穩定,受到激發容易發生躍遷,脫離鈉原子,成爲自由移動的電子。這些自由移動的電子在電場的做用下,就會發生自由移動,造成電流,這就是導體導電的原理。不少金屬元素最外層的電子數小於4個,容易丟失電子,因此容易導電,是導體。而對於氯原子,最外層7個電子,傾向於捕獲一個電子,造成最外層8個電子的穩定結構,氯原子不能產生自由移動的電子,因此不能導電,是絕緣體。


半導體元素,通常最外層4個電子,比較特殊:這些原子之間每每經過「共享電子」的模式存在,多個原子之間分別共享其最外層的電子,經過共價鍵造成穩定的結構。


可是穩定也不是絕對的,當這些電子收到能量激發時,也會發生躍遷,成爲自由移動的電子,同時在共價鍵中留下相同數量的空穴。這些自由移動的電子很是少,在電場的做用下,也會發生移動,造成電流;同時,臨近空穴的的電子也很容易跳過去填補這個空穴,形成空穴的移動,空穴帶正電荷,空穴的移動也會造成電流。


所以,半導體導電有兩種載流子:自由電子和空穴。可是由於硅元素的特性,只能生成極少數的自由電子和空穴,這就決定了半導體沒法像金屬那樣導電,但也不像絕緣體那樣一點也不導電。然而正是這種特性,才促成了半導體的飛速發展。


既然半導體內自由電子和空穴濃度很小,導電能力弱,那咱們能不能想辦法增長兩種載流子的濃度呢?濃度上去了,導電能力不就加強了嗎?辦法是有的,那就是摻雜。咱們能夠在一塊半導體兩邊摻入兩種不一樣的元素:一邊摻入三價元素,如硼、鋁等。硼的電子分佈爲2-3,最外層3個電子,在和硅的最外層的4個電子生成共價鍵時,缺乏一個電子,因而從臨近的硅原子中奪取一個電子,所以產生一個空穴位。這種摻雜的半導體稱爲空穴型半導體,簡稱P型半導體。


咱們在半導體的另外一邊摻雜一些五價元素,好比磷元素。磷原子最外層有5個電子,在和硅原子的最外層4個電子生成共價鍵時,多出來一個電子,成爲自由移動的電子,這種半導體稱爲電子型半導體,簡稱N型半導體。


咱們在一塊導體的兩邊摻入不一樣的元素,使之成爲不一樣的半導體,一邊爲P型,一邊爲N型。


在二者的交匯處,就會造成一個特殊的界面,稱爲PN結。理解了PN結,你也就理解了半導體的核心原理,接下來咱們看看PN結裏到底有什麼名堂。


首先,因爲一塊半導體兩邊空穴和自由電子濃度不一樣,所以在邊界處會發生相互擴散。分別越過邊界,擴散到對方區域的空穴和自由電子在邊界處互相中和掉,P區邊界處的空穴被擴散過來的自由電子中和掉後,剩下的都是不能自由移動的負離子;一樣,在N區邊界處留下的都是正離子,這些正負離子因爲不能移動,造成了空間電荷區和耗盡層。同時會在這個區域內造成一個內建電場。這個內建電場阻止P區的空穴繼續向N區擴散,同時阻止N區的自由電子向P區擴散,多子的擴散和和少子的漂移從而達到一個平衡。這個區域就是咱們所說的PN結。載流子的移動此時已達到平衡,所以流過PN結的電流也爲0。


這個PN節看起來也沒啥,但它有一個特性:單向導電性。正是這個特性,樹立了它的牛X地位,也構成了整個半導體大廈的基礎。咱們先看看這個特性是怎麼實現的:當咱們在PN結兩端加正電壓時,P區接正極,這時候就會削弱PN結的內建電場,平衡破壞,空穴和自由電子向兩邊擴散,造成電流,呈導電特性。當咱們加反向電壓時,內建電場加強,阻止了載流子的擴散,不會造成電流,因此呈現高阻特性,不導電。


不管二極管、三極管仍是MOSFET場效應管,其內部都是基於PN結原理實現的,咱們搞懂了PN結的原理,接下來咱們就看看如何在一個晶元上實現PN結:


這就涉及到集成電路工藝的方方面面了,包括光刻、刻蝕、離子注入、薄膜沉澱等步驟。爲了簡化流程,方便理解,咱們就講講核心的兩個步驟,光刻和離子注入。離子注入就是摻雜,根據前面的理解,就是在硅中摻入三價元素硼和五價元素磷,生成PN結構成的各類元器件和電路。光刻就是在晶元上給後續的離子注入操做開鑿各類摻雜窗口。


原理很簡單,但若是咱們在一個硅襯底上,要實現千萬門級的電路,上億個晶體管,難度就比較大了。尤爲是納米級的電路,好比28nm、14nm,要將千萬門級晶體管都刻在一個小小的晶元上,這就要求每一個元器件尺寸要很是小,這時候光刻機登場了,光刻機主要用來將你設計的千萬門級電路映射到晶元上。這對光刻機的要求很是高,要很是精密。所以光刻機很是貴,最牛逼的就是最近網上熱炒的荷蘭光刻巨頭ASML,一臺光刻機1億歐元,不少代工巨頭好比臺積電、三星、Intel都是其客戶。


光刻機的做用就是根據掩模,開鑿各類摻雜窗口,而後經過離子注入,生成PN節,構建千千萬萬個元器件。電路中的元器件都是經過這種複雜的工藝、生成不可勝數的PN結構成的。同時,離子注入也是一門大學問,網上PO一張關於離子注入的公式,感覺一下它的魅力:


這些工藝完成後,在一個晶元上就會有成百上千個芯片的原型:芯片電路,用專業術語就叫Die。


而後還要通過切割、封裝,引出管腳、測試,纔會變成市面上咱們看到的芯片的樣子



一款CPU是如何設計出來的?


前面一段,咱們瞭解了芯片的製造過程,也就是如何從沙子中提取硅、把硅切成片,在片上經過離子注入實現PN結、實現各類二極管、三極管、CMOS管、從而實現千萬門級大規模集成電路的大體流程。接下來,咱們繼續瞭解一下,一款CPU是如何設計出來的。集成電路設計通常分爲模擬IC設計、數字IC設計以及數模混合等。而數字IC設計,好比設計一款ARM Soc CPU芯片的基本流程以下:


1)設計芯片規格:根據需求,設計出基本的框架、功能、模塊劃分。有些複雜的芯片可能還須要建模、使用MATLAB等工具進行仿真。


2)HDL代碼實現:使用VHDL或Verilog語言將要實現的硬件功能描述出來、經過EDA工具不斷仿真、修改,驗證直至邏輯功能徹底正確。這種仿真咱們通常稱爲前仿,只驗證邏輯功能是否正確,不考慮延時。這個階段也是最重要的階段,通常會花費大量的時間、驗證工程師不斷驗證芯片功能的正確性。有時候爲提升效率,也會使用硬件仿真,經過FPGA平臺進行驗證。固然,這也是數字IC驗證工程師幹得活。


3)邏輯綜合:仿真驗證經過後,再使用專門的EDA工具將HDL代碼轉換成邏輯門電路。專業術語叫作將HDL代碼翻譯成門級網表(netlist)。在綜合過程當中,須要設定一些約束條件,讓綜合出來的電路在面積、時序等參數上知足要求。這個階段的仿真通常稱爲後仿,要考慮延時等因素,跟實際芯片已經很接近了。


網表文件用來描述電路中元器件之間的鏈接關係。有數字電路基礎的同窗可能都會知道,任何一個邏輯關係或運算均可以轉化爲相應的門級電路來實現。而網表就是用來描述這些門級實現電路的鏈接信息。


還須要注意的一個地方是:門級電路是由不一樣的晶圓廠,也就是芯片代工廠以工藝庫的形式提供的,好比中芯國際、臺積電等。若是你設計的芯片要臺積電代工製造,工藝要求是28nm,那麼你在設計芯片時,臺積電會提供給你28nm級的工藝庫,你綜合後生成的電路參數跟臺積電生產芯片使用的工藝參數是一致的。


4)仿真驗證:對生成的門級電路進行各類靜態時序分析、驗證。經過後,整個前端設計就結束了:從RTL代碼到生成門級網表電路。


5)後端設計

經過前端設計,咱們已經生成了門級網表電路,但這跟實際的芯片電路還有一段距離,咱們還須要對其不斷完善和優化,進一步設計成物理版圖,也就是代工廠作掩膜須要的版圖。後端設計包括不少步驟,通常包括:

DFT:designed for test,可測性設計。芯片內部每每會自帶測試電路,在設計中插入掃描鏈。

佈局規劃:各個IP模塊電路的擺放位置、時鐘線綜合、普通訊號線的佈線

版圖物理驗證:設計規則檢查、連線寬度、間距是否符合工藝要求、電氣規則簡則等等。

物理版圖驗證ok後,會將這個物理版圖以GDSII文件格式交給芯片代工廠(foundry),至此,整個芯片設計仿真驗證流程結束,咱們稱爲tap-out。


物理版圖是由咱們設計的電路轉化而成的一系列幾何圖形,如上圖,跟PCB版圖相似,也分爲好多層。物理版圖包含集成電路尺寸大小、各層的拓撲關係等。代工廠會根據這些信息來製造掩模、而後使用光刻機,經過這些掩模在晶元的硅片襯底上開鑿出摻雜窗口,接着就對硅片進行離子注入,摻雜不一樣的三價元素和五價元素,生成PN,進而構成各類元器件、電路。再經過刻蝕等工藝,能夠在晶圓硅片上生成多層立體的3D電路結構。

好了,到了這裏,咱們已經把整個芯片設計、製造的大體流程給你們講解完了,看起來很簡單,其實集成電路設計製造的每一個環節,都有極高的技術含量,集成電路行業是一個高度專業分工的行業,每一個環節都有不一樣的行業巨頭把守,從芯片設計、製造、各類EDA工具、IP核、光刻機、刻蝕機,每一個環節都有很是專業的製造商、服務商、EDA工具商,精確嚴謹地配合,同時也分享着IC設計產業鏈上的超額利潤。


設計一款CPU到底有多難?


網上不少媒體甚至用表格列舉了中國芯片的依賴率及自給率,除了消費電子領域的應用處理器AP外,其它不少領域的自給率都是0%。這也從一個角度說明:咱們集成電路發展的空間無比巨大、能夠想象的空間很廣闊。


差距比較大的地方,主要在模擬、射頻、AD轉換等領域,這些基本上被歐美一些巨頭壟斷,更悲催的是,不少核心領域如今已經禁止華人從事這方面的工做,可見美國政府對這些高精尖的領域技術保護很是重視。而在一些消費電子領域,因爲ARM的IP受權模式,大大下降了SOC的設計門檻,再加上半導體產業成熟嚴格的分工體系:設計、代工、封裝測試一條龍,因此中國最近幾年在消費電子領域SOC設計方面發展迅速,涌現出了不少芯片和公司,好比海思、展訊、聯芯、全志、瑞芯微等。從手機基帶、RF到AP都慢慢縮小了與國際半導體巨頭的差距。好比海思的麒麟系列,對標高通的驍龍系列,性能其實已經不相上下。


在ARM構建的生態和商業模式下,SOC芯片設計企業能夠跟這些芯片巨頭有同臺競爭的機會,至少能參與進來:你牛X,能夠拿到ARM的指令集受權,作本身的微架構,我沒這個實力,搞個低端領域的,搭個積木仍是綽綽有餘的。嵌入式市場,不像PC X86一統天下,它是分散的、多需求的、難以壟斷的。因此這也就給不少作ARM AP芯片的公司不少機會,你作手機、我作平板、智能電視、網絡盒子、遊戲機、挖礦機,只要找準一個方向,用低成本優點,就能夠活下來,再圖技術慢慢積累和發展。因此在ARM AP這一塊,你會看到有不少公司,之後還會出現不少公司,這方面應該最快能知足芯片的自給,固然,這也給嵌入式開發者提供大量的工做崗位。


在PC和服務器領域,可能就沒這麼容易突破了。咱們知道,在X86領域,是Intel和AMD的天下。設計一款X86架構的芯片,到底難不難呢?其實不算難,國內能找出很多公司能夠設計出來。那難的是什麼呢?是生態和專利受權。Intel在X86領域能夠說是一家獨大,在它的專利保護下,基本上就封死了你想本身設計X86架構CPU的道路,錢再多也不讓你作,不給你專利受權。AMD公司仍是美國爲了防止壟斷,才促使Intel跟其專利交叉受權,達到一個平衡,不過AMD如今貌似也過得不輕鬆,在CPU這塊被Intel壓得也是寸步難行。除此以外,還有一家公司,臺灣的威盛電子:VIA,就是電腦一開機顯示VIA標誌的,VIA也有一些X86專利,也得到Intel專利受權,可是作CPU貌似也很艱難,在芯片方面的盈利還不如旗下的酒店業務賺得錢多。其實這也沒辦法,贏者通吃,後面的可能連湯都喝不到。看網上的新聞好像跟上海國資合股成立兆芯,研究X86 CPU和顯卡,國家砸了很多錢,不知道能不能趟出一條路來。


跟兆芯對標的國內芯片公司,有一家比較有名:龍芯。龍芯走的是MIPS路線。MIPS跟ARM、X86同樣,也是一種指令集,也是當前世界上還在存活狀態的指令集,跟ARM、X86能夠說是三足鼎力吧。聽說,龍芯當年500萬拿到MIPS指令集的永久受權,而後本身不斷添加、完善指令集,造成了本身的指令集。龍芯的優點是MIPS有了必定的生態市場,能夠沒必要從零開始搭建本身的生態,有利於本身CPU的推廣。最新研發的微架構GS464E根據網上的相關資料,已經超越Intel的i3架構,跟i5稍有差距,但同時已經超越了同時期的Intel Atom、VIA Nano、ARM Cortex-A57等低功耗架構。


這裏得給你們普及一下什麼是指令集和微架構。指令集,你們學過彙編語言的可能都知道一些彙編指令,這些彙編指令其實就是指令集的助記符,咱們設計一個CPU架構,確定要設計一系列指令,這些指令集能夠看作是一個標準,咱們在設計CPU硬件電路時就是根據這些指令集,去設計一些指令譯碼、執行電路,執行咱們的指令集。那這個根據指令集設計的CPU硬件電路就是微架構。不一樣的CPU架構,指令集是不同的,這就致使了,不一樣的CPU架構,須要的編譯環境、開發環境是不同的。好比ARM架構,咱們須要開發一個編譯器,將咱們的C語言程序翻譯成ARM的指令集,而後才能在ARM架構的CPU上運行。而對於X86平臺,咱們須要開發另一個編譯器,將C語言程序翻譯成X86指令,而後才能在X86平臺上運行。爲何在X86平臺上不能運行ARM指令呢?很簡單,由於CPU硬件電路在設計時是根據X86指令集設計的,只支持X86指令的運行,不支持ARM指令,沒法運行。


由此,咱們能夠看到,不一樣的指令集,不一樣的CPU架構,就須要不一樣的編譯器和開發環境,由此也就造成了不一樣的軟件生態。對於不少芯片設計者來講,開發一個指令集並不難,如今國外甚至已經有開源的了,你們到Linux內核源碼的arch目錄下面能夠看看,有太多的架構了。根據這些指令集設計一個微架構,設計出一個CPU也不難。難的是什麼呢?難的是你要構建出跟你的CPU配套的一系列生態,好比編譯器,你要本身開發,大量的應用軟件你也要本身開發,不然誰會用你的CPU呢?這天大的工做量根本不是一個公司或團隊能完成的,須要一個產業鏈的完美配合。因此,咱們能夠看到,就算你研發出了本身的CPU,要想推廣起來,構建本身的生態,很是困難。推廣困難就難以盈利,難以盈利就很難繼續迭代下一代的產品,由此造成負反饋,若是沒有背後資金或者國家支持,真的很難堅持下去。好比之前在學校曾參與過一個項目:設計一款基於某種自主架構的SOC。那這個項目須要多少人配合呢?芯片設計這方面的人不說,光軟件方面就須要很多:編譯器工具須要本身開發,這個工做量就忒巨大,芯片流片成功後,Linux內核、android系統須要本身移植,各類庫,好比C庫也須要本身移植,包括上面的應該程序、Java虛擬機等等,工做量巨大。後期系統軟件,從驅動層、中間層到應用層,還須要不斷針對這種架構進行優化。就算優化完美,沒有大問題,還要推廣,若是沒有不少平常的應用加持,構建生態也很難。賺不到錢,性價比不划算,別人跟着一塊兒構建生態的慾望也就不大。


綜上,咱們能夠看到,設計一個CPU,從技術上講並不難。但從商業或者說生態上想成功就很難:別人已經構建好的生態紅利,會經過專利壁壘不讓你進;而你從零開始構建全新的生態,沒有了這種先發優點,很難很難。折中之策就是你想辦法兼容這個生態。好比android手機,如今絕大多數APP都是基於ARM平臺,Intel想推廣本身的atom平臺,那就須要大量的APP能夠運行到本身的atom平臺上,這就須要它本身的X86平臺去兼容這些app。包括前幾年,Intel這麼牛逼的行業巨頭也肯放下高貴的身姿跟深圳的一些白牌、山寨廠商打成一片,主要緣由就是,Intel對ARM構建的生態也是無從下手,深挖洞、廣積糧、樹技術壁壘、單打獨幹已不適應行業玩法,也想本身構建這個生態,市場效果如何,還有待時間檢驗。


設計一款CPU,除了後續推廣、生態構建比較艱難外,在設計過程當中,其實不少核心IP、技術模塊、EDA開發環境也須要外援,好比設計一款手機芯片,CPU須要向ARM公司受權,各類控制器IP若是本身研發不了,也須要購買,這些研發IP的公司通常分佈在北美、歐洲、以色列等國家,而中國、臺灣和韓國的主要廠家主要基於ARM架構和各類IP搭建應用處理器SOC,因此搞嵌入式的每每會看到,不少處理器都是東亞國家、美國設計,可是其實那些背後賣IP的公司倒賺了很多,由於不少作SOC設計的購買IP受權其實要交不少錢,它們只是賺了一些「組裝費」。這還不算,在設計CPU的過程當中,各類仿真設計、包括前端、後端設計、前仿後仿、都須要EDA開發環境支持,都須要花錢購買,或者花錢買培訓。之前工做過的一家公司,貌似什麼後端設計仍是後端仿真的一款EDA軟件,使用的是歐洲一家公司開發的,光軟件版權費不說,他們過來培訓,一個小時就是3000歐元,吃飯時間也要算在內,就這麼刁,沒辦法。就此一家,不買拉倒。由此能夠看到,芯片行業咱們如今還至關於富士康階段,賺取一個「加工費」而已,後面的道路,再加上各大芯片巨頭的技術壁壘和封鎖,任重而道遠。


與此同時,半導體行業也是一個忒燒錢的行業,不像搞互聯網,一臺電腦一根網線,就能夠開幹。芯片行業到處都須要錢、各類儀器、設備、EDA軟件、流片、封裝測試都須要大把的錢,並且流片風險很大,不少芯片前幾回流片還不必定成功,須要不斷修改bug,不斷完善。而流一次片就須要幾百萬,因此對於不少小公司來講,若是沒有足夠的資金支持,前幾回流片不成功的話,基本上就黃了。因此,這也是爲何除了國家大基金,不少民間資本不肯意進入的緣由:投資週期長、風險大。不如投資互聯網、金融P2P,共享單車,搞搞外賣:風險小、收益快、容易割韭菜、容易收割各類智商稅。然而,對於一個國家來講,若是人人都想短平快,搞金融,玩龐氏資本遊戲,不願投入時間、精力和資本去從事基礎領域的研究,那將來會有更多的地方被卡脖子,就像中興同樣,一劍封喉。

微信公衆號(微博):宅學部落

嵌入式技術交流羣:475504428

相關文章
相關標籤/搜索