<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 模擬技術(shù) > 設(shè)計應用 > 一個自稱非專業(yè)技術(shù)帝眼中的芯片設(shè)計

          一個自稱非專業(yè)技術(shù)帝眼中的芯片設(shè)計

          作者: 時間:2018-08-07 來源:網(wǎng)絡(luò) 收藏

          近年來,隨著ARM的走紅,ARM獨特的授權(quán)模式也幫助越來越多的中國芯片產(chǎn)業(yè)成長起來。尤其是華為海思的成長,更是讓很多人感到鼓舞。但很多好事之徒卻說它毫無技術(shù)含量。

          本文引用地址:http://www.ex-cimer.com/article/201808/385709.htm

          我(作者)看完之后痛心疾首,覺得很多人說的很多方面都是不對的,這是對中國IC設(shè)計的不尊重。所以獻上此文,客觀介紹一下芯片的設(shè)計制造流程,說一下我眼里的芯片產(chǎn)業(yè)

          賣弄前,先自我介紹順便聲明一下,本人海思新員工,但不從事芯片設(shè)計類崗位,只是最近聽過一個關(guān)于芯片的培訓,再加上本人對芯片如何實現(xiàn)等問題也比較好奇,所以搜集過一些非官方、不科學資料,發(fā)表一下淺鄙之見。

          一、工藝制程并不是越小越好

          OK,廢話不多說,對于芯片,先說一些自己感興趣的。經(jīng)常能聽到有人爭論40nm工藝、28nm工藝,14nm工藝,甚至10nm,7nm,那么這個多少nm指得是什么呢?

          它指的是mos管在硅片上的大小,mos管就是晶體管,它是組成芯片的最小單位,一個與非門需要4個mos管組成,一般一個ARM四核芯片上有5億個左右的mos管。世界上第一臺計算機用個是真空管,效果和mos管一樣,但是真空管的大小有兩個拇指大,而現(xiàn)在最先進工藝蝕刻的mos管只有7nm大。

          說到這里,大家一定和我一樣,非常好奇如何在一個15mm*15mm的正方形硅片上制作出5億個大小僅為40nm的mos管。如果要用機械的方法完成這一過程,世界上很難有這么精密的儀器,可以雕刻出nm級的mos管,就算有,要雕刻出5億個,所需要的成本、時間也是難以估計的。

          借助光可以在硅片上蝕刻下痕跡,掩膜就可以硅片上哪些部分會被蝕刻。掩膜覆蓋的地方,光照不到,硅片不會被蝕刻。硅片被蝕刻后,再涂上氧化層和金屬層,再蝕刻,反復多次,硅片就制造好了。一般來說,制作硅片需要蝕刻十幾次,每次用的工藝、掩膜都不一樣。幾次蝕刻之間,蝕刻的位置可能會有偏差,如果偏差過大,出來的芯片就不能用了,偏差需要在幾個nm以內(nèi)才能保證良品率,所以說制作硅片用的技術(shù)是人類目前發(fā)明的最精密的技術(shù)。

          芯片可以靠掩膜蝕刻,批量生產(chǎn),但是掩膜必須用更高精度的機器慢慢加工制作,成本非常高,一塊掩膜造價十萬美元。制造一顆芯片需要十幾塊不同的掩膜,所以芯片制造初期投入非常大,動輒幾百萬美元。芯片試生產(chǎn)過程,叫做流片,流片也需要掩膜,投入很大,流片之前,誰都不知道芯片設(shè)計是否成功,有可能流片多次不成功。所以國內(nèi)能做高端芯片的公司真沒幾家,光是掩膜成本就沒幾個公司支付得起。

          芯片量產(chǎn)后,成本相對來說就比較低了,好的掩膜非常大,直徑30厘米,可以同時生產(chǎn)上百塊芯片。芯片如果出貨量很大,利潤還是非常高的,像英特爾的芯片,賣1000多一塊,可能平均制造成本100不到。但如果出貨量很少,那芯片平均制造成本就高得嚇人,幾百萬美元打水漂是很正常的。

          海思芯片價格有沒有競爭力,還得看華為手機出貨量大不大??吹接腥藛?0nm好還是40nm好,從大小上來看顯而易見20nm好。20nm意味著mos管大小只有40nm的1/4。mos管工作時是一個充電放電的過程,mos管越小,它充電需要的電量越小,所以功耗越小。而且mos管小之后,門電路密度就大,同樣大小芯片能放的mos管數(shù)就越多,性能空間越大。40nm工藝門電路密度是65nm的2.35倍。但以上都是在不考慮漏電和二級效應的情況下的理論數(shù)據(jù)。

          當然,IC尺寸縮小也有其物理限制,當我們將晶體管縮小到 20 納米左右時,就會遇到量子物理中的問題,讓晶體管有漏電的現(xiàn)象,抵銷縮小 L 時獲得的效益。作為改善方式,就是導入 FinFET(Tri-Gate)這個概念,如下圖。在 Intel 以前所做的解釋中,可以知道藉由導入這個技術(shù),能減少因物理現(xiàn)象所導致的漏電現(xiàn)象。

          為什么會有人會說各大廠進入 10 納米制程將面臨相當嚴峻的挑戰(zhàn),主因是 1 顆原子的大小大約為 0.1 納米,在 10 納米的情況下,一條線只有不到 100 顆原子,在制作上相當困難,而且只要有一個原子的缺陷,像是在制作過程中有原子掉出或是有雜質(zhì),就會產(chǎn)生不知名的現(xiàn)象,影響產(chǎn)品的良率。

          如果無法想象這個難度,可以做個小實驗。在桌上用 100 個小珠子排成一個 10×10 的正方形,并且剪裁一張紙蓋在珠子上,接著用小刷子把旁邊的的珠子刷掉,最后使他形成一個 10×5 的長方形。這樣就可以知道各大廠所面臨到的困境,以及達成這個目標究竟是多么艱巨。

          再說說二級效應吧,學過初中物理的都知道一個最簡單電路的組成,包括電源、導線、電阻。接通電源,電流就瞬間流過電阻。如果把電阻換成電感,則電感會有一個逐漸充電的過程,這種情況下,電流就不是瞬間流過電感。

          其實電阻也有感抗,只是非常微小,可以忽略不計。但如果接在電阻上的電壓非常微小,電流量非常微小,那此時,感抗就不能被忽略不計了。二級效應在芯片制程非常小時(28nm以下),非常明顯,mos管由于電壓低,電流小,充電受到感抗的影響比40nm大,充電速度慢。芯片想要達到高頻率,mos管要加載更高的電壓,這樣就增加了功耗。漏電也是低制程的一個副作用,也需要提供芯片的功耗才能克服。所以低制程帶來的功耗優(yōu)勢就被漏電和二級效應扳回去了很多。

          當然,新的工藝、好的工藝可以部分解決上面兩個問題,不同工藝用的物理、化學材料不同,工藝流程也不同。高通四核用的是老28nm工藝,目前來看,這個28nm工藝相比40nm工藝優(yōu)勢不大。

          然后制程方面,目前聽過的最先進的制程是7nm,但這個制程只存在于實驗室里,遠遠沒有達到大規(guī)模量產(chǎn)的需要。低制程有些困難是難以克服的,學過物理的都知道光的衍射,低制程意味著掩膜透孔會非常小,衍射會非常嚴重,這樣肯定是無法蝕刻硅片的。這個問題也許可以通過使用電子射線或者其他粒子射線來蝕刻硅片解決。

          二、芯片設(shè)計考驗公司技術(shù)水平

          說說設(shè)計吧,芯片設(shè)計分為前端設(shè)計和后端設(shè)計。前端設(shè)計就像做建筑中的畫設(shè)計圖,芯片的邏輯、模塊、門電路關(guān)系都是前端設(shè)計完成的。后端設(shè)計則是布局布線,芯片做出來,最終是個實際的東西,那每個mos管擺放什么位置,每一條線怎么連,這個都是后端設(shè)計決定的。前端設(shè)計沒啥好說的,雖然技術(shù)含量非常高。

          我就說說后端設(shè)計吧,有趣一點。5億個mos管的布局布線,雖然很多用的是IP硬核,別的廠商已經(jīng)幫忙做好了,但這絕對不是一個輕松的活。拿導線來說,兩條導線在一個硅平面上不能交叉,它們可不像我們家里的導線,包了一層塑料。如果把5億個mos管的導線放在一個平面上,還要讓某些連接、某些不連接,還不能交叉,這絕對是不可能的。

          事實上,一個芯片布線,從上到下可能有十幾層。每一層都是蜘蛛網(wǎng)一樣的布線,如果我們化身成一個1nm的小人,進入芯片的世界走一圈,那絕對會發(fā)現(xiàn)那是一個非常宏偉,非常不可思議的世界。后端設(shè)計除了要保證線路正確連接,還要使模塊占用面積小,功耗小,規(guī)避二級效應,要求是很高的。名牌大學畢業(yè)搞后端,搞個兩年也才剛剛?cè)腴T。

          再說說仿真,芯片在流片之前,誰都不知道它長什么樣子,更難以去揣測它設(shè)計是否成功、合理,流片成本又非常高,不可能為了驗證設(shè)計是否成功去流片。這個時候就需要用到仿真,用計算機去模擬電路的運行情況。仿真貫穿芯片設(shè)計的始末,有前端仿真、后端仿真、模擬仿真、數(shù)字仿真…仿真脫離不了計算機仿真軟件,像Sysnopys、Cadence它們是芯片設(shè)計、驗證軟件領(lǐng)域的巨擘,海思每年付給他們的費用我不知道,但起碼千萬級別。

          仿真是一個需要超高性能計算機的任務,海思在IT中心有大量高性能計算機組成云計算資源,但在面對大型仿真時還是很吃力,跑幾個小時只能模擬出芯片幾秒鐘的運行情況。因為要跑仿真,這些計算機一天24小時都在跑。順便說一下我們部門一個Linux服務器的配置,英特爾4核4GCPU,內(nèi)存16G。

          這個只是一個打雜的服務器,放個數(shù)據(jù)庫,編譯幾個軟件。海思小網(wǎng)的Solaris接入服務器同時有上百人在上面辦公。從這點也可以看出,做芯片投入還是非常大的,就光這些軟件、硬件成本,每個人每年要花掉公司幾十萬。

          我們要承認,中國IC設(shè)計公司和美國那些公司比起來缺失有很大差距。畢竟80年代,人家芯片設(shè)計、制作都已經(jīng)非常成熟的時候,我們才有第一臺計算機。

          我們知道,在一款數(shù)字芯片商,它上面很多模塊都是別人的,公司花了大筆錢買了版權(quán),這個叫IP核。

          IP核分軟核和硬核,現(xiàn)在貌似也有軟硬結(jié)合的核…它是什么東西呢?比如ARM指令授權(quán),它就是軟核,它只規(guī)定了CPU的指令集,好比建橋,它只告訴你橋應該建多長、多寬、大概長什么樣,但是具體細節(jié)沒有,不告訴你電路在芯片上怎么擺放,怎么連線。軟核的好處是給了很大的發(fā)揮空間,模仿、抄襲也簡單,以后做類似東西可以參考。硬核就是它只告訴你電路在芯片上具體長什么樣子,把它擺上去用就行了。硬核的好處是它一般都是經(jīng)過其它芯片驗證的,很容易了解它的具體性能。但你幾乎不可能修改它,也很難了解它的實現(xiàn)細節(jié),畢竟有幾千萬個mos管,人怎么分析。

          中國的IC設(shè)計公司,自主IP核不多,因此很多都是從類似ARM和Ceva這類公司購買,但客觀地說,現(xiàn)在芯片設(shè)計分工越來越細,每個公司只是完成其中一小部分,就算是高通,也用了很多其他公司的IP核。

          一個公司想把所有活都干了,那絕對是不可能的,就算做到了,它的芯片也不會有競爭力。其實玩搭積木也是很有技術(shù)含量的,海思肯定是國內(nèi)玩得最好的公司。目前公司的一個目標也是把越來越多的模塊自主化,但是需要時間。

          先從最底層芯片說起,開頭說了mos管,現(xiàn)在說說與非門。上面說了mos管是芯片的最小單位,但這是對于芯片制造廠而言的。芯片設(shè)計時不會直接畫mos管,在數(shù)字電路中,使用的最小單位是門電路,與非門就是用得最廣泛的一種。一個與非門大概要4個mos管組成,與非門大家應該都非常熟悉。如下圖:

          大家都知道,家里的開關(guān)有兩種狀態(tài)嘛,打開和關(guān)閉。當上圖中的開關(guān)1和開關(guān)2兩個開關(guān)中只有1個開關(guān)打開時,經(jīng)過與非門處理,開關(guān)3就打開了。如果開關(guān)1和開關(guān)2兩個開關(guān)都關(guān)閉或者兩個開關(guān)都打開,經(jīng)過與非門處理,開關(guān)3就關(guān)閉了。其實和與非門類似的東西生活中隨處可見。比如說有的人家里有一個燈,這個燈在家門口設(shè)了一個開關(guān),方便進出家門時開關(guān)燈。在床邊也設(shè)了個開關(guān),方便晚上睡覺時關(guān)燈。這個其實就是一個與非門,兩個開關(guān)同一個燈。一個開關(guān)打開,燈就亮了,兩個開關(guān)同時打開或者關(guān)閉,燈就滅了。

          這樣的話,用一個與非門和一個與門就模擬了最簡單的一個加法器,最大只能計算1+1。計算機中有幾億個這樣的門電路,它們組合起來就能做非常復雜的運算?,F(xiàn)在的大部分CPU都是64位的,這種CPU肯定會有64位加法器甚至128位加法器。拿64位加法器來說,它最大可以計算出18446744073709551616 + 18446744073709551616。

          說到這里,不得不說說芯片頻率。

          先說說1G頻率是什么概念,讓大家有個至關(guān)的認識,這個數(shù)字就是說每秒鐘10億(1,000,000,000)次。為什么會有這個東西呢?剛才我說了與非門,開關(guān)3是隨著開關(guān)1和開關(guān)2的變化而變化的,對人類來說,開關(guān)3的變化速度很快,是瞬間的,但這個變化總是需要一點時間的。開關(guān)3可能是另外一個門電路的輸入開關(guān),如果變化到一半,它的下一個門電路就接受開關(guān)3的輸入,可能會產(chǎn)生很嚴重的問題。

          一般來說,一層門電路需要等它的上一層門電路完全變化完畢,輸出穩(wěn)定之后,它才接收上一層的輸入,開始變化。這個時候就需要有一個指揮家來指揮這些門電路什么時候開始變化,這個指揮家就是芯片頻率,指揮家會定時發(fā)出脈沖,1G就是每秒1一次脈沖。門電路等脈沖到來的時候就開始做這個變化。

          從上面可以看出,指揮家指揮得越快,芯片運算速度越快。但要說明一點,兩倍的頻率并不代表兩倍的性能。因為CPU和內(nèi)存、外設(shè)頻率不同步,它們之間的頻率相差越多,CPU空轉(zhuǎn)的次數(shù)越多。另外再說一點,門電路變化的過程其實就是mos充電放電的過程,mos管充電放電越快,芯片的頻率可以做到越高,而二級效應會減慢mos充電放電的速度。如果mos管想要充電放電快一點,要提高mos管電壓,這樣就提高了芯片的功耗。

          而關(guān)于芯片設(shè)計過程,大家對IP核、指令集和架構(gòu)這些東西都比較感興趣。

          先說說ARM的IP核吧,ARM授權(quán)包括指令集和CPU核心架構(gòu)。據(jù)我了解,除了高通外,其它芯片廠商都使用了ARM的CPU核心架構(gòu),也就是經(jīng)??梢月牭降腁9 A15。高通比較高端,CPU核心架構(gòu)自己搞,如果搞得比A9 A15好的話確實可以提高CPU性能,但由于ARM收取高昂的核心架構(gòu)修改費用,所以要付更多的錢給ARM。指令集是CPU與上層的編譯器、操作系統(tǒng)和應用程序的接口,使用ARM指令集意味著你做的CPU可以兼容安卓系統(tǒng)、安裝應用、C編譯器。

          如果哪個公司自己整一套全新的指令集,那它做出來的CPU一點用處沒有,既沒有操作系統(tǒng)也沒用應用。此前聯(lián)想出了個K800,用的是英特爾Atom CPU,這款CPU非常特別,使用X86指令集,結(jié)果是一出悲劇,很多游戲兼容不了。不過英特爾還得感謝谷歌,否則這個CPU連安卓都兼容不了。目前來看,CPU不用ARM指令集很難玩轉(zhuǎn),而且隨著越來越多應用只支持ARM,ARM的地位會越來越鞏固,就像電腦CPU,如果不用X86指令集,連Windows都很難安裝,這是一個壟斷的帝國。

          下面說說CPU核心架構(gòu),說之前不得不先談談PDK。PDK是ProcessDesign Kit 工藝設(shè)計包,它和晶圓廠的制作工藝緊密相關(guān)。PDK是什么呢,它描述了一個具體工藝基本元器件的電器特性。比如臺積電28nm工藝和40nm工藝做出來的mos管電器特性肯定不一樣。28nm工藝和40nm工藝做出來的mos管額定電流范圍、電壓范圍肯定不同,在相同外界輸入下,輸出曲線也肯定不一樣。芯片公司如果沒有PDK,根本不知道設(shè)計出來的電路性能如何,也沒辦法跑仿真。簡單一點說,你拿40nm PDK設(shè)計電路,用28nm工藝生產(chǎn),生產(chǎn)出來的芯片絕對一點用處沒有。所以說芯片設(shè)計非常苦逼,搞編程的,代碼可以重用,搞芯片設(shè)計的,如果換了生產(chǎn)工藝,很多東西得要從頭再來。

          ARM給IC設(shè)計廠商的CPU核心架構(gòu)只是FPGA代碼,它不是工藝相關(guān)的,數(shù)字前端設(shè)計的工作會少不少,但后端設(shè)計有大量的工作要做。但ARM提供的僅僅是一個計算核心,外圍一個都沒有。外圍包括一些什么呢?比如USB IP核,沒有這個,手機就沒有USB功能;比如GPU,這個不用我多說吧;比如音頻IP核,杜比音效就是這么來的;比如視頻解碼IP核,沒有這個,看視頻只能軟解;還有CPU功耗控制IP核等等。

          對于很多IC設(shè)計公司來說,這些外圍的IP核很多都是外購的。因此看CPU真心不能只看頻率,外圍IP有好有壞,有些比較高端的IP核授權(quán)費用非常高。即使買了很多IP核,但芯片也絕不是閉著眼睛就能整出來的。

          順便說一下,高通芯片外圍的IP核很多也是外購的。

          所以說芯片設(shè)計并不是簡單的事情,很多人認為國內(nèi)的IC設(shè)計公司毫無技術(shù)含量這種說法是無稽之談。



          關(guān)鍵詞: 控制

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();