有關處理器架構、工藝的必讀文章

文章推薦指數: 80 %
投票人數:10人

剛入手了SONY Xperia Z5 Premium,其CPU採用了爭(fa)議(re)較大的驍龍(Snapdragon )810,那就藉此機會談談關於桌面CPU和移動CPU的一些東西吧。

從小就比較喜歡數碼比較多,買了很多這方面的書和雜誌,但是對於絕大多數數碼設備的核心CPU詳細的一些技術參數也只是淺嘗輒止未嘗深究。

上大學以後,關注數碼動態不多了,反而更加想去了解之前不怎麼探究的微觀參數了。

好吧,我也不是科班出身,只是憑著愛好不斷地追尋和了解,所以下文只是個人的一些看法與總結,多多交流多多批評!

忽然覺得自己這點知識儲備居然要論述這麼大的一個問題,還是有點頭痛啊。

我們電力系統分析老師在課上有句話我感覺說的特別好,「你要給別人一滴水,首先你要有一桶水」。

那麼在下面我主要是以學習筆記的形式來展現吧,希望能和大家共同探討,共同提高!發現錯誤請一定要指出!

一 CPU的架構

1.1什麼是CPU的架構(Microarchitecture)?

1.1.1 微架構

80286的架

CPU的設計是一個系統工程,通常可以分為微結構(學術界喜歡把micro-architecture翻譯成「微結構」,傳媒上多見「微架構」)、電路,器件,工藝這幾大層面,每個層面內部都有很多細分方向,每個方向都有專家去研究,都有專門的工程團隊在做。

看一下Wikipedia對微架構的定義

在今日,管線資料路徑是微架構中最常被使用的資料路徑。

這種作法也被普遍的用於微處理器,微控制器,以及數位訊號處理器。

管線化的結構允許多個指令在同一時間執行,不同的指令在微架構不同的位置執行。

管線分有好幾個不同的階段(stage),這些階段是微架構的基礎。

這些階段包含擷取指令,指令解碼,執行指令,以及將資料寫回。

一些結構還包含其他階段,像是對記憶體做存取的動作。

管線是微架構其中一項主要的工作。

執行單元也是微架構的基本元件。

執行單元包含算術邏輯單元(ALU),浮點運算器(FPU),load/store單元,分支預測,以及SIMD。

這些單元在處理器內進行計算。

執行單元的數量,他們的latency(記憶體存取資料的時間)及throughput(將資料存到或是讀取出記憶體的速度)影響微架構的效能。

有點不知所以對吧,那就用相對通俗的語言來介紹一下:CPU的架構就是指「接受和處理信號的方式」,也就是說,CPU就是一個工廠,不斷的接受到信號,並且處理(運算)這些信號,架構就是在工廠里如何布置那些機器,讓機器快速的能夠進行以上的那些工序。

CPU的基本組成單元即為核心(core),而核心的實現方式即被稱為微架構。

微架構的設計影響核心可以達到的最高頻率、核心在一定頻率下能執行的運算量、一定工藝水平下核心的能耗水平等等。

1.1.2 微架構的發展歷程

推動計算機性能提升的一個車輪是半導體的微型化,另一個車輪就是微架構的改進,使得單位時間內可執行的指令更多。

1.1.2.1 微架構的發展之路

微架構的發展歷史就是縮短程序運行時間的奮鬥史。

下面我們來走馬觀花的看看現代處理器是用的這些主要技術的發展史。

流水線處理

運算器高速化

RISC和CISC

超標量執行

亂序執行

分之預測

緩存

多核

「流水線處理」就是用流水線方式執行指令,以提高指令的處理速度。

計算機是進行計算的機器,擁有各種運算的單元,讓這些運算能告訴執行非常重要。

x86等CISC(Complex Instruction Set Computer,複雜指令計算機)處理器的指令很複雜,很難採用流水線處理。

而RISC(Reduced Instruction Set Computer,精簡指令集計算機)是容易進行流水線處理的簡單指令架構,以在小型硬體上高速運行為目標。

可以認為,RISC是為了實現比CISC更優秀的微架構而重新設計的指令架構。

將流水線處理進一步發展,設置多條流水線,並行處理多條指令,這就是「超標量執行」。

但是,如果嚇一跳指令會用到當前指令的計算結果,這兩條結果就無法並行執行。

因此,要改變程序中的指令順序,先執行能執行的指令,從而提高處理速度,這就是「亂序執行」。

此外,遇到條件分支時,儘管不知道接下來要執行哪條指令,但可以進行預測,以提高執行速度,這就是「分支預測」。

半導體的微型化(下一篇會介紹到)帶來了處理器的高速化,但是DRAM內存的主要開發經歷放在了如何增大內存容量上,速度提高比較緩慢。

因此,處理器訪問內存就要花費很長時間,導致整體性能無法提高。

而在處理器中設置小容量、高速度的存儲器,就能解決內存訪問時間過場的問題,這就是「高速緩存」技術。

像這樣,人們實現了眾多處理器高速化技術,但實現這些機制需要大量的電晶體,耗電量也相應增大。

為此,與其在每個處理器中嵌入越來越多的電晶體提升性能,還不如製作多個適當大小的處理器,這樣同樣的耗電量能夠獲得更高的性能,這就是這幾年來流行的「多核心」技術。

1.1.2.2 指令架構

指令架構規定了處理器執行指令的方式及執行結果的樣子等「處理器的行為」。

指令架構只規定了處理器執行什麼指令、執行結果如何,但沒有規定處理器內部的實現方式。

相對於指令架構的,具體的內部硬體結構就是我們上面說的微架構啦。

在程序運行方面,相同指令架構下可以運行相同的軟體,而不同的微架構表現的性能會不同。

最早的電子計算機的速度大大超過機械式計算機,但是人們注意到,計算變快、處理時間縮短之後,人們在更換程序或鍵盤輸入時,計算機就無所事事了,十分浪費。

因此,人們把程序像數據那樣加載到內存中運行。

進一步,為了讓同一程序能在其他計算機上運行,人們設計了虛擬內存,能讓需要大量內存的程序的運行不受物理內存容量限制;確立了程序和硬體之間的接口——指令架構。

所以說,生產CPU的廠家不斷的優化微架構,想不斷的提高運行的效率,也就是說指令容易快速地在管線內被擷取,解碼與執行,由於指令頻繁的被使用,快取便被頻繁的使用,這樣就使記憶體存取的時間降低。

當然,架構的升級不一定就是完全是好的,比如今年高通公司採用了ARM公司的big.LITTLE架構,並且用在了其拳頭產品驍龍810上,可是……

我們知道,在最新一級旗艦產品驍龍820已經放棄了 ARM 的官方架構,轉而去重新自主設計架構。

(坑爹的big.LITTLE)

不過在桌面端,Intel公司有一個著名的戰略叫做Tick-Tock,也就是分別在奇數年和偶數年來更新架構和工藝(製程),自從實行這個戰略以後,把老對手AMD甩出好幾條街,AMD也在自暴自棄,在農企的路上越走越遠……

驍龍 820 集成新型 64 位定架構制 Kryo 。

藉助完全定製自主設計的 CPU,我們能夠更好地實施並優化異構計算架構 —— Qualcomm 中國

如果挑選一款CPU的話,一定要看看他的架構,一般來說,架構越新相對來說是越好!

1.2 移動端的架構?

我們本可以大聲的喊出答案:ARM架構!

但是,最近幾年強大的高通已經不滿足與ARM的公版架構,轉而自行設計微架構,同時,三星也傳出消息要設計自己的架構,有趣的是,高通公司的架構名稱為環蛇,在Exynos7420上大獲成功的三星針鋒相對,將下一代自行設計的微架構叫做貓鼬(Mongoose)(環蛇的天敵)。

看得出來,三星在2015年將高通驍龍系列按在地上摩擦以後,腰杆變硬許多,胸前的紅領巾更加鮮艷了……

不過現在大多數廠商的處理器晶片還是用著ARM架構的CPU,三星、TI、高通、Nvidia等等。

也就是說微架構的研發也是IT產業技術含量最高的領域之一。

話又說回來,即便是有些公司採用了自己的微架構,但是在根本上,還是採用了ARM的架構。

為什麼這麼說呢?

可能說到這,還沒有對ARM進行介紹,也許有些對數碼不太感冒的同學已經迷茫了,別急,現在就來引入和介紹ARM公司與ARM架構。

ARM有好幾個概念,分別是:

ARM公司

ARM是全球領先的半導體智慧財產權 (IP) 提供商。

全世界超過95%的智慧型手機和平板電腦都採用ARM架構。

ARM設計了大量高性價比、耗能低的RISC處理器、相關技術及軟體。

ARM公司並不像INTEL那樣直接將晶片賣給消費者,ARM公司既不生產晶片也不銷售晶片,它只出售晶片技術授權:比如我們買了一款三星手機,他採用了三星自己開發的一個手機晶片,這個晶片內部包括了幾個部分組成,比如一個負責數據處理的「CPU」,一個負責圖形處的「GPU」等,那麼,這個負責數據處理運算的「CPU」,正是來自ARM公司設計。

ARM架構

過去稱作進階精簡指令集機器(Advanced RISC Machine,更早稱作:Acorn RISC Machine),是一個32位精簡指令集(RISC)處理器架構,其廣泛地使用在許多嵌入式系統設計。

由於節能的特點,ARM處理器非常適用於移動通訊領域,符合其主要設計目標為低耗電的特性。

ARM微架構

ARM公司研發的Cortex系列是現在大部分晶片所採用的微架構。

ARM體系

我更喜歡叫它指令集架構,目前典型的有ARMv5 ARMv6 ARMv7以及最新的64位ARM指令集ARMv8等等,這個類似於台式機上的IA32、IA64,他是一個指令集,僅僅定義了機器指令,寄存器結構等等軟體開發者可以看到的最底層的東西,是軟硬體的接口。

注意微架構與指令集是兩個概念:指令集是CPU選擇的語言,而微架構是具體的實現。

補充關於指令集的知識:

CPU執行計算任務時都需要遵從一定的規範,程序在被執行前都需要先翻譯為CPU可以理解的語言。

這種規範或語言就是指令集(ISA,Instruction Set Architecture)。

程序被按照某種指令集的規範翻譯為CPU可識別的底層代碼的過程叫做編譯(compile)。

x86、ARM v8、MIPS都是指令集的代號。

指令集可以被擴展,如x86增加64位支持就有了x86-64。

廠商開發兼容某種指令集的CPU需要指令集專利持有者授權,典型例子如Intel授權AMD,使後者可以開發兼容x86指令集的CPU。

目前市場上很多的CPU,比如水果6s上逆天的A9,三星s6e+上的Exynos 7420(big.LITTLE架構CortexA57+CortexA53),都是廠商兼容ARM指令集而自主研發的微架構,都可以成為是廠商自己研發的CPU。

而相對於有些晶片廠商僅僅是在ARM購買微架構來組裝晶片就不能被稱作CPU研發企業的,比如之前的榮耀上的Kirin920、MX4Pro上的Exynos 5430等等。

當然,在上面那個圖里也可見看到有為嵌入式設備設計的的Cortex-Mx系列,之前曾經用過的MK60就是基於Cortex-M0架構的一款CPU,繼而封裝成了一片MCU。

1.3 栗子與展望2016

在2015年,移動端CPU是不同尋常的一年。

三星在高通的屋檐下待了N多年,今年終於憑藉使用7420的s6和s6e打了一個翻身仗(功勞主要在下面要談到的工藝上,當然和微架構也不無關係),在2015Q3智慧型手機出貨量來看,三星名列第一,並且出貨量和市場占有率已經接近蘋果iPhone的兩倍。

2016年三星的智慧型手機採用自主微架構(貓鼬)的64位晶片Exynos8890,性能及市場表現值得我們期待。

而在2015年,三星在處理器端的老大哥 高通 的日子真的不好過,由於驍龍810散熱問題晶片賣不出去,還要面對驍龍810手機表現甚至不如去年的驍龍801和驍龍805手機的事實,又被中國政府找了麻煩交了罰款。

所以2016年,習慣了作為智慧型手機市場執牛耳者的高通,必然會做出大動作,當然我們也已經知道了,驍龍820已經放棄了 ARM 的官方架構,轉而去重新自主設計架構Kyro。

希望高通能通過驍龍820橫掃810帶來的陰霾,打一個漂亮的翻身仗吧,並且能給這個疲軟的市場一劑強心針。

Kryo

那麼不禁就要問一問,到底是什麼坑了高通的,讓我們來舉個栗子吧。

關於big.LITTLE

big.LITTLE架構

Mr Big先生主要處理具有挑戰性的重任,Little小姐則負責小任務。

我們這樣比喻,在大掃除的時候,男同學負責提水、抬桌子抬椅子,女同學負責掃地擦黑板。

當手機不需要工作時,Big核心和LITTLE核心都可以停下來休息。

基於big.LITTLE技術的八核處理器,並沒有將傳統內核放在單一的處理器上,而是一分為二,其中一個使用了4個「小核心」,另一個則使用了4個「大核心」,這兩個「核心」都有著自己獨立的速度和性能。

通過兩大核心自主運行,搭載Big.little技術的處理器比之前的手機CPU更加高效,畢竟後者只有一個或者兩個內核。

當需要用智慧型手機打開一個網頁時,手機就可以用一個大的內核來處理該任務,而小的內核則同時處理其他小任務,比如查看電子郵件、撥打電話等。

ARM解釋道,big.LITTLE是一種節能省耗技術,最高性能的ARM CPU核心與最高效的ARM CPU核心相結合,可以以更低的功耗提供最好的工作性能,最快的處理任務速度。

設想是美好的,可是……A53 的 TDP (設計熱功耗)要比 A57 低數倍不止,甚至在低頻模式下 A57 的功耗也要比 A53 高,這本來是個合作共贏的好事,不過高通給出的原因是由於採用的ARM Cortex A57核心架構出現了發熱問題,這就造成了一個怪現象 A53 性能不夠,而 A57 又太費電溫度太高。

當然不是沒有解決辦法,對於 A57 這個耗電大戶ARM官方的建議是使用 big.LITTLE 大小核切換技術還有更低功耗的 FinFET 電晶體製程。

「可是,可是,你看看人家三星同樣採用這套64位核心架構的Exynos 7420性能卻相對穩定呀!其中最重要的原因就是三星採用了自家最新的14nm工藝,而高通採用的而是20nm工藝(下面馬上就要講到工藝啦!)。

那麼問題就來了,且不說 FinFET 根本上就沒幾個廠家用上,就 big.LITTLE 這個技術也有不小的問題。

在切換大小核的時候甚至會出現毫秒級的延遲,這對手機的體驗甚至是致命的。

不過就算是現在公認的最好採用 big.LITTLE 的 Exynos 7420 也沒有解決切換延遲問題,與驍龍801對比切換軟體明顯會有卡頓,而且四個 A57 同時工作的時候溫度很嚇人,驍龍810就是最大的受害者,一旦溫度上去就要降頻這就造成了驍龍810的性能嚴重下降。

這不就印證了前面我們曾經談到的觀點嗎?「一般來說,架構越新相對來說是越好」。

不過在2015年來看,ARM給出的這次公版架構,可是把高通搞得有點暈頭轉向。

所以我現在手頭上用的Z5P,用著驍龍810,索尼也是拿出了黑科技來鎮壓。

在驅動之家的Z5P評測上的標題是「鎮壓驍龍810 索尼Z5用上了雙熱管+矽脂」……

Z5P的雙熱管 - 1

Z5P的雙熱管 - 2

1.4 當下的手機市場與總結

Cortex A57性能固然強悍,可是高通卻沒有駕馭得了。

在各個手機廠商搭載了這顆CPU的旗艦手機一個個相繼淪為暖手寶的時候,高通只能無奈的推出了驍龍808,也就是減少了兩個Cortex A57大核心採用6核方案緩解發熱問題。

而在三星和高通的巔峰對決之外,MTK很聰明的用了8個Cortex-A53小核心推出自己的旗艦Helio X10繼續鞏固著自己的中低端市場份額,讓驍龍615銷量慘澹。

Helio X10的穩定性好,性能夠用,這也是很多國內千元機市場的首選CPU。

說到這,大家應該能夠感覺得到工藝和架構對於cpu的影響不亞於核心數和頻率了。

再舉個栗子吧,如今主流手機CPU都是六核,八核,聯發科甚至開始研發十核了,為什麼性能和桌面端CPU還是有一定的差距呢?沒錯,指令集不一樣,核心架構不一樣是最根本的原因。

複雜指令系統(CISC)和X86、X64的微架構與手機完全不同。

手機多核其實應該叫多CPU,將多個CPU晶片封裝起來處理不同的事情,就是大家所說的膠水核心,也就是被強行粘在一起的意思。

在待機或者空閒的時候,八核的手機也只能用到一至兩個核心。

而電腦則不同,桌面端的多核處理器是指在一個處理器上集成了多個運算核心,通過相互配合、相互協作可以處理同一件事情,是多個並行的個體封裝在了一起。

用一句話概括,就是並行處理,雙核就是單車道變多車道。

這不是說優劣的問題,而是定位的不一樣。

手機CPU要功耗低、廉價。

所以採用ARM架構的CPU,運算能力大大低於電腦CPU的運算能力,同等頻率CPU浮點運算能力相差在幾千到上萬倍。

同時,還要強調一點,就是現在不能僅僅只看重手機CPU性能,更要看重手機的SoC,CPU、GPU、基帶、DSP等等都很重要,在這方面來說,三星已經逐步追趕上高通了。

上面介紹了關於CPU性能兩個重要指標之一的架構,過了這麼久,也應該把第二篇,關於CPU的工藝(製程)的相關內容補全,兩篇結合起來作為一篇「科普文」來供大家一起探討。

其實在書寫這篇之前沒有什麼思路,因為「工藝」這部分的專業性較強,應該屬於電子信息類的範疇,比如有個高大上的專業叫做「微電子學與固體電子學」就是專門研究VLSI(Very Large Scale Integration)的。

我所學專業為電氣信息類(電氣工程及其自動化),更偏強電一些,只接觸一些必備的電子技術基礎(模擬部分與數字部分,當然只是很淺顯的進行了學習)。

說來也巧,寒假時候買了一本書《電的旅程》,這本書詳細的介紹了電子、電力的發展過程,也給我一些啟發,看完這本書,對人類駕馭電子的歷史過程有了初步的認識。

那好,不如趁熱打鐵,多看幾本關於處理器書來完整知識;不如現學現賣,再以學習筆記的形式記下所學所想。

二、CPU的工藝

首先開宗明義:無論是CPU還是GPU或是其他晶片,更優秀的工藝都是性能提高的重要條件。

當一個晶片能藉助新工藝容納更多的電晶體時,就能實現更多的功能和更強大的性能,同時也會有更低的功耗與發熱量。

回憶上篇內容對於架構的知識,可以發現無論架構設計的再合理,缺少優秀工藝都難以發揮晶片的應有性能。

反之,優秀的工藝卻能在很多時候彌補晶片設計上的不足。

2.1 0與1

我們知道,計算機特別笨,它只認識數字0和1,即我們所說的二進位:

電子線路的電平是高狀態時表示 1

電子線路的電平是低時狀態表示 0

那我們在電路中也很方便表示,如果電路導通便稱之為1,電路斷開就為0。

這些0和1不斷的組合,就成為了機器語言。

而計算機進行運算,需要N多個開關組合起來,經過組合排列形成邏輯電路,這個邏輯電路越複雜,基本的線路越多,它可以實現的功能就越強大。

因此,雖然計算機特別笨,只認識「0」與「1」,但是經過硬體上的排列和軟體上的設計,它就卻可以實現對人類來說很多繁重的計算任務了。

了解了基本原理,那如何在電路上實現開關功能呢?我們先從熟知的ENIAC說起。

2.1.1 ENIAC

ENIAC

ENIAC的全稱是Electronic Numerical Integrator And Calculator,即電子數字積分計算機,我們經常在IT基礎課上聽到他的名字,畢竟是世界上的第一台計算機嘛。

他體積不小,僅僅用了17468枚真空三極體,500多萬個焊點,重30噸,耗電量160kW,它在當時的計算能力也是令人咋舌,每秒可以進行500次計算!不過在現在的人看來,他的計算能力甚至不值一提,因為現在一台平常家用計算機中的微處理器性能就能達到每秒100多億次運算,但是耗電量平均只有300W不到!也就是說,計算性能提升了200萬倍,耗電量下降到了1/500!

從最初的電子計算機到現在僅僅用了60年的時間,到底是是什麼讓性能的提升如此顯著?功勞最大的當然要數從真空管到電晶體再到VLSI的電路技術的進步,下面我們就要介紹,這令人驚嘆的電子時代!

2.1.2 駕馭電子:從真空電子到固態電子再到……

CPU的發展經歷了真空管、電晶體、IC和LSI(Large Scale Integration)、VLSI幾個時代。

總體來說,CPU性能的不斷提升得益於人類對於駕馭電子能力的不斷進步,也是人類對材料科學、半導體技術方面研究越來越深入的實際表現。

第一代:真空管(1957年以前)

德福雷斯特與真空三極體

時間回溯到20世紀初,弗萊明發明了二極體。

沒過幾年,德福雷斯特在對二極體的研究基礎上,發明了真空三極體。

真空三極體(triode)擁有用電子訊號控制「開關」的性能,極適合用於高速執行數字型的邏輯及算數運算,我們可以用真空三極體來控制電路的導通與斷開,繼而形成邏輯電路。

具備了理論基礎和物質基礎,ENIAC的誕生也就是順理成章的啦。

真空管是個抽成真空的玻璃管,陰極產生電子飛向施加了高電壓的陽極,並利用陰極和陽極之間設置的細網格狀電極控制電子的流量。

電子管的開閉切換速度為微秒級。

但是,真空管的陽極需要施加數百伏的高電壓,因此耗電量巨大,而且壽命也不是特別長。

不過在當時,相較於之前的機械開關的什麼巴比奇差分機,人們已經對這個小東西構成的計算機十分的「依賴」啦。

第二代:電晶體(1958 - 1963年)

第一個電晶體

隨著駕馭電子能力的進一步增強,同時半導體技術也突飛猛進,科學家終於可以在固態電子方面大施拳腳了。

在極富盛名的貝爾實驗室,三位偉大的科學家蕭克萊(William Shockley)、約翰·巴頓(John Bardeen)和沃特·布拉頓(Walter Brattain)在1947年發明了電晶體(Bipolar transistor)。

相較於真空三極體,電晶體在體積、壽命、製作工藝上都有極大的優勢。

由電晶體構成的計算機更小、更省電,同時運算速度也大幅度的提高。

並且因為半導體材料相較於氣體來說,科學家更容易控制。

隨著科學家對半導體研究的進一步深入,純度和工藝越來越好,電晶體的壽命與穩定性也越來越受到一些晶片廠商的青睞。

第三代:集成電路(IC、LSI)(1964 - 1969年)

世界第一個集成電路

之前的電路還是分立元件構成,也就是在PCB(印刷電路板)把三極體、二極體焊接起來構成晶片。

IC的發明卻依賴於來自中國的神秘力量,德州扒雞公司(大霧),其實是德州儀器(TI)公司的傑克·基爾比(Jack Kilby)啦,他在鍺半導體晶片上生成了三極體等多個元件,並在元件之間用細金屬連線連接,從而形成了集成電路。

優勢是明顯的!之前由分立元件構成的100cm²印刷電路板,在集成電路上只需要1mm²的晶片就可以實現相同的功能。

至此,LSI將晶片技術領進了一個新的時代,下面的VLSI與LSI的界限並沒有那麼清晰,只是VLSI作為商家的噱頭來說,更加能吸引消費者吧!

指尖上的IC

第四代:大規模集成電路(1970年以後)

固態電子的不斷發展,從電晶體的基礎上,人們又繼續研究出了FET(場效應電晶體,Field-Effect Transistor),與傳統的電晶體相比,控制方式由電流變成了電壓,在FET的柵極上加上合適的電壓,就可以控制電流。

在FET中,一種叫做MOSFET(金屬-氧化物半導體場效應電晶體,Metal-Oxide-Semiconductor FET),MOSFET構造簡單,在一塊IC上的集成密度比三極體還要高,終於,經過四代的發展,「舊時王謝堂前燕」的IC通過VLSI工藝,可以飛入尋常百姓家了!

1971年,Intel4004這個劃時代產品出現,它使用MOSFET集成電路技術,採用了10μm工藝,集成了2300個MOSFET,別看他這麼小,和祖宗ENIAC的計算能力不相上下。

25年,ENIAC從30噸越跑越小,最後搖身一變進到3mm*4mm的矽晶片中,功率甚至只有不到1W!

2.1.3 兩個定律

2.1.3.1 摩爾定律(Moore's Law)

在越來越小的集成電路上放入越來越多電晶體是科學家們不斷追求的目標,Intel的創始人之一戈登·摩爾(GordonMoore)在1965年提出一個理論:當價格不變時,集成電路上可容納的電晶體數目,約每隔18個月便會增加一倍,性能也將提升一倍。

換言之,每一美元所能買到的電腦性能,將每隔18個月翻兩倍以上。

如今摩爾定律已經過去50年了,集成電路的發展準確的沿著摩爾定律預測的那樣前進,不過,在未來幾年,摩爾定律有要失效的趨勢,為什麼呢?我們先看下面這個定律。

2.1.3.1 縮放定律(Dennard scaling)

1974年,IBM公司被譽為內存之父的羅伯特·登納德(Robert Dennard)MOS電晶體的尺寸與運行速度 耗電量之間的關係,結果發現,如果將尺寸和電源電壓減半,MOS電晶體的切換速度將提高兩倍,耗電量則降至1/4。

我們同時也可以發現,如果將尺寸減半,可以將半導體晶片的面積減至1/4,或者在同樣的面積下製造4倍的電晶體。

2.1.4 一個問題

了解了摩爾定律以後,我們或許會想到,晶片在以後會不會尺寸無限小但性能卻可以趕超天河二號了呢?恐怕沒那麼簡單,我們看一個CMOS反相器。

簡單分析一下原理,CMOS反相器在靜止時不會產生電流耗費能量,僅在切換狀態時就會有充放電電流,消耗能量為1/2CV²焦耳(C為寄生電容,V為核心電壓)。

這些電能最後都成為了熱量需要散發出去,主頻越高,電晶體的數量越多,那麼產生的熱量便越多,給處理器散熱的壓力也就越大。

在45nm、32nm、22nm的工藝進化過程中,每次進化C值都會提高1.4倍左右,因此,假設每次進化,同樣晶片面積上的核心數加倍,而其他部分不變的話,耗電量就會每次進化增加1.4倍。

對於高性能處理器,耗電量帶來的熱能限制了時鐘頻率的提高,對於移動設備而言,電池技術在沒有技術突破的現有條件下,耗電量較大顯然不是一個好消息。

當工藝不斷進化,還有一個客觀事實不可以忽略,由縮放定律表明,C和F(頻率)增加必然導致V的降低,這才能抑制耗電量的上升。

剛才我們談到CMOS數字電路在靜止狀態下不會消耗電能,而其實實際上即使在截止條件下,三極體也會有極其微弱的漏電流,從而緩慢的消耗電能。

電源電壓減去閾值電壓小於一定程度時,這時候的漏電流已經無法忽視了。

那我們就心生疑問了,這可怎麼辦?難道之前提出的那個問題,摩爾定律還會延續他的神奇嗎?帶著問題,我們繼續往下看。

2.2 沙子的逆襲

上面一節都是關於工藝的前期準備知識,應該能初步了解計算機通過很多的電晶體構成的集成電路來完成工作的過程,也就是模擬電路器件構成數字電路,來完成預定的任務的過程。

上一節都是對於模擬電路中科學家駕馭電子過程的介紹,下面我們具體到一塊CPU,看看不同的工藝,對CPU的性能究竟有什麼影響。

2.2.1 做個CPU吧

如果問及CPU的原料是什麼,大家都會輕而易舉的給出答案—是矽。

這是不假,但矽又來自哪裡呢?其實就是那些最不起眼的沙子。

難以想像吧,價格昂貴,結構複雜,功能強大,充滿著神秘感的CPU竟然來自那根本一文不值的沙子。

當然這中間必然要經歷一個複雜的製造過程才行。

不過不是隨便抓一把沙子就可以做原料的,一定要精挑細選,從中提取出最最純凈的矽原料才行。

試想一下,如果用那最最廉價而又儲量充足的原料做成CPU,那麼成品的質量會怎樣,你還能用上像現在這樣高性能的處理器嗎?接下來的工序簡單帶過:對矽化學提純、整形、溶化矽原料,然後將液態矽注入大型高溫石英容器。

為了達到高性能處理器的要求,整塊矽原料必須高度純凈,及單晶矽。

然後從高溫容器中採用旋轉拉伸的方式將矽原料取出,此時一個圓柱體的矽錠就產生了。

intel工廠的晶圓

下一個步驟就是將這個圓柱體矽錠切片,切片越薄,用料越省,自然可以生產的處理器晶片就更多。

切片還要鏡面精加工的處理來確保表面絕對光滑,之後檢查是否有扭曲或其它問題。

這一步的質量檢驗尤為重要,它直接決定了成品CPU的質量。

新的切片中要摻入一些物質而使之成為真正的半導體材料,而後在其上刻劃代表著各種邏輯功能的電晶體電路。

準備工作的最後一道工序是在二氧化矽層上覆蓋一個感光層。

2010年最先進的半導體最小尺寸到了22nm,要形成如此細微的線路,只能利用ArF(氟化氬)紫外線雷射像銀鹽照相那樣再矽晶圓上進行刻制。

ArF雷射的波長位193nm,其半波長96.5nm就相當於筆尖。

要用它刻出22nm的線路,就像用1mm的自動鉛筆繪製0.3的線一樣,幾乎是不可能的事。

現在通過在鏡頭和矽晶圓之間充滿春水,將實際波長縮短到3/4左右,再加上各種其他技術,儘管能勉強達到要求,但已經是極限了。

不斷的追求工藝進步,就能在相同的矽晶圓裡面刻出更多的基本電路。

如果想看CPU的製作過程,請看下面的連結!

2.2.2 什麼是CPU的工藝!

首先說一下,這一部分我只是粗略的了解,大部分內容是源自參考書和知乎,如果想詳細了解,請查閱相關教材\參考書!

2.2.2.1 什麼是CPU的工藝?

那麼到底什麼是工藝呢?我查了不少資料,可以總結如下:半導體製程指的是製造晶片的工廠在矽晶圓上可以製造出的MOSFET的最小溝道長度。

製程越先進(即這個長度越小),說明這個工廠就擁有更先進的光刻設備來製造這麼小的電晶體(電晶體是用光刻在矽晶圓上的)。

也就是我們經常在前面說到的,長度越小,可以排布在晶片上的元器件就可以更多,綜合之前我們談到的知識(縮放定律),縮減元器件之間的距離之後,電晶體之間的電容也會更低,從而提升它們的開關頻率。

CPU的截面圖

當然,工藝越先進,意味著在矽晶圓可以放下更多的元器件。

組件越小,同一片晶圓可切割出來的晶片就可以更多。

即使更小的工藝需要更昂貴的設備,其投資成本也可以被更多的晶片所抵消。

總結先進的工藝優點如下:

性能提高(切換速度提高即主頻升高)

單位電晶體的成本降低

耗電量下降

這三個優點對於晶片設計生產者和消費者來說,好處是顯而易見的。

可是,工藝要進步,即便是有摩爾定律的加持,可在最近幾年也是困難重重,因為隨著工藝的提高,矽晶圓在光刻蝕的過程中,也漸漸的力不從心,比方說良品率下降這個最顯著的問題。

2.2.2.2 什麼是CPU的製程?

製程

CPU製程指的是MOS管實際製造結束時的柵級引線寬度,也就是柵級多晶矽的寬度。

當然,實際中源極和漏極會有少量延伸到柵級下面,所以源極和漏極的實際分隔距離小於柵級寬度。

這個有效分開距離被稱為有效溝道長度,對電晶體而言是最重要的參數。

不過這個參數很難測量,所以一般直接用柵級引線寬度來比較不同的工藝。

因此我們常常以閘極長度來代表半導體製程的進步程度,這就是所謂的「製程線寬」。

閘極長度會隨製程技術的進步而變 小,從早期的 0.18μm、0.13μm,進步到 90nm、65nm、45nm、22nm,再到目前最新製程 10nm。

隨著製程的進步,帶來了非常多的好處,同時,也會帶來很多問題。

接下來就說說i3 i5 與 i7處理器和製程進步一些有趣的問題。

(背景音樂響起,intel的等~等~等~等~~)

2.2.3 i3 i5 與 i7

打開京東,到CPU品類里發現,i3要賣700多,i7要賣2000多,咋差這麼些錢呢?同一代的處理器,在工藝和架構上都差不多啊,有區別主要是在核心數、主頻、緩存大小上,好吧,差了這麼多你說忍了,買,畢竟2000多就是壕好好,肯定比那i3高到不知道哪裡去了!可是,如果我告訴你,其實,i3、i5其實都(曾經)是i7的話呢?你會不會去炸了intel的老窩呢?好吧,其實應該這麼說:i3,i5隻是閹割版的i7。

未成品的處理器

數字電路設計過程並生產之前,是不區分i7,i5或者i3的,只是光刻蝕的流程是不完美的,有可能某些該連著刻開了,很多該刻開的地方沒有刻開,導致每一個小器件體質難免有差異比如:第四個核心不能用;頻率升到3GHz 以後掛掉;比如它在緩存功能上有缺陷(這種缺陷足以導致絕大多數的CPU癱瘓)等等。

這時候,扔掉太浪費!那該怎麼版呢?合理的做法就是將「壞區」隔離起來,只用其中能用的地方,並鎖定在安全的頻率下工作,屏蔽掉一些緩存容量,降低了性能,當然也就降低了產品的售價。

也有一種辦法,就是給處理器增加冗餘塊。

處理器增加了冗餘塊,晶片面積會變成9/8倍,但整體面積會降到0.62倍,因此能節省38%的成本。

所以說,700多的i3和2000多的i7其實是一個成本……不過,又說明個問題,體質好的人就是比體質差的的人要受歡迎啊:)

2.3 展望未來

蘋果A7晶片的截面圖

1971年的第一片微處理器Intel 4004使用了大約2300個電晶體,而2010年的微處理器集成了大約幾億甚至十幾億個電晶體。

40年中的VLSI中集成的元件數目增加了數十萬甚至上百萬倍。

那以後呢?似乎半導體工藝已經進入了瓶頸,工藝的發展還會在高速公路上向前快速行駛嗎?

2.3.1 一個答案

正如摩爾定律預測的那樣,晶片工藝在不斷進步,同樣尺寸的晶片上塞入了越來越多的元件,可又受到縮放定律的限制,漏電流再也無法忽視了,這是由於CMOS的固有物理特性決定了,想要繼續沿著摩爾定律預測向前進的話,必須在半導體工藝上有所突破,就像前幾代那樣。

那麼,現在是什麼支撐摩爾定律的呢?其中的一個答案就是使用FinFET封裝。

FinFET的鰭片結構

FinFET稱為鰭式場效電晶體(FinField-EffectTransistor;FinFET)是一種新的互補式金氧半導體(CMOS)電晶體。

閘長已可小於25nm。

該項技術的發明人是加州大學伯克利分校的胡正明教授。

Fin是魚鰭的意思,FinFET命名根據電晶體的形狀與魚鰭的相似性。

FinFET的架構中,閘門成類似魚鰭的叉狀3D架構,可於電路的兩側控制電路的接通與斷開。

這種設計可以大幅改善電路控制並減少漏電流(leakage),也可以大幅縮短電晶體的閘長。

FinFET - 1

FinFET - 2

FinFET - 3

FinFET - 4

FinFET實際上就是當時英特爾大力宣傳的「3D電晶體」,從技術角度來看,FinFET將原本扁平、薄而不可靠的漏極和源極之間的連接「豎立」起來,在另一個維度上變相增加了厚度(或者面積),使得電晶體在繼續縮小後還能夠有比較好的性能表現。

在使用了FinFET後,原本比較令人煩惱的漏電電流得到了有效控制,同時還帶來了很多優秀特性,比如使用更低電壓即可驅動、電晶體可承受電流上限也更高等。

採用FinFET封裝的目前可以繼續讓摩爾定律成功的預測下去,並且以後還有更多的辦法,但是不得不承認的是,現在工藝的提升已經沒有之前那樣的飛速了。

2.3.2 Tick-Tock

在上一篇我們談到了Intel公司著名的「Tick-Tock」戰略,也就是分別在奇數年和偶數年來更新架構和工藝。

Intel大概是在十年前提出的,依靠這個已經領先競爭對手好幾代,不過現在,最近在公司文檔中廢止了「Tick-Tock」的晶片發展周期,從下一代10納米製程CPU開始,英特爾會採用「製程-架構-優化」(PAO)的三步走戰略。

在發展到14nm製程時,Intel已經「力不從心」,最新一代架構Skylake的發布時間比預料晚半年。

當進入10nm製程後,原本的晶片周期已經無法適應每年發布一代CPU,Intel必須延長每一代製程的生命周期,也就是說每一代製程將沿用3年,共發布3代CPU。

10nm製程還將面臨晶片製造的難題,因為10nm僅僅相當於20個矽原子寬度。

Intel在文檔中表示,優化晶片製程和架構將維持每年發布一代CPU的市場需求。

不知道Intel到底是因為競爭對手不給力(AMD:我還會做PPT!),還是戰略有意為之,還是真的在工藝製程上出現了瓶頸,作為科技愛好者或者是消費者,也可以隱約的感到,相較於架構,工藝的「軍備競賽」已經逐漸降溫了。

2.4 談談其他

2.4.1 台積電(TSMC)

台灣集成電路製造公司(TSMC,Taiwan Semiconductor Manufacturing Company),是台灣一家半導體製造公司,成立於1987年,是全球第一家、以及最大的專業集成電路製造服務(晶圓代工)企業。

寶島灣灣在20世紀80年代末期,由於傳統工業收到了嚴重的局限,在當時台灣領導人蔣經國的指示下,台灣要大力發展半導體工業,此時,TSMC就應運而生了。

之前我們介紹了,很多晶片廠商通過對架構的改進,繪製與設計集成電路,而生產,需要交付給有能力生產的廠家去。

台積電專門性的對晶片設計顧客提供最佳生產製造服務,因為自己沒有產品,對所有顧客都沒有直接利益衝突。

台積電不需要設計市場上瞬息萬變的晶片產品,只要把精力集中在提供最先進的製造技術與服務上,以靜制動。

打個比方,晶片設計者就像是書的作者,內容及表達技巧才是一本書的精華。

而晶片生產商就是書籍印刷廠,只有將書稿發給印刷廠來印製,才能將想表達的東西實現。

隨著摩爾定律的演變,電晶體越變越小,但矽晶圓則越來越大,每一片矽晶圓上可容納更多晶片,因為可降低每片晶片的成本。

但是,掌握這個技術的公司並不多,我們現在了解的只有台積電、三星、Intel等等,因為這個行業的前期投資非常大,只有良性循環的企業才能生存下來。

所以之前有人提出,世界上其實只需要3家晶片廠和他們的產品就夠了:英特爾的微處理器、韓國三星的DRAM內存、以及台積電的晶圓代工,來生產所有其他公司的設計。

2.4.2 蘋果6s的處理器

在蘋果6s發布會後,果粉和科技人士都高潮了,不僅是因為又可充值信仰了,而是因為6s並沒有和6長的沒什麼不同!開玩笑的。

在蘋果6s上搭配了最新的A9處理器,當時科技新聞標題如下:「iPhone 6S A9處理器稱霸全球!安卓集體崩潰」、「號稱秒80%桌面PC:蘋果A9系列達到桌面級」、「主流手機CPU跑分對比:蘋果A9單核默默全秒殺」。

看起來一切悲壯,除了高通驍龍810不給力以外,只能讚嘆蘋果在處理器設計上的登峰造極了。

不過當6s發售,消費者紛紛拿到最新的6s手機時,一個爭議出現了,好像分了兩個廠家代工6s啊,分別是三星和台積電,按道理說製程差不多、架構一樣,好像在實際表現上差了很多呢?下面一起來看看。

「A9台積電完爆三星!iPhone 6S現大範圍退貨潮」,這是當時的標題,問題出在哪?

iPhone 6S A9處理器上有兩個版本,一個是出自台積電,而另外一個是三星,前者基於16nm製程,而後者則是14nm製程,由於工藝上的不同,導致它們性能、續航上有了不同。

A9處理器的不同,讓iPhone 6S的表現也不一樣,如果性能上的差距還能忍受的話,那麼續航上的不同,則是用戶最難受的,畢竟這是硬傷。

不少國外網友紛紛在Reddit上曬出的自己的實測成績,即同樣設置、使用情況下,搭載台積電A9的iPhone 6S續航要比三星A9長近兩個小時。

A9 - 2

2.4.3 安迪-比爾定律

安迪是原英特爾公司 CEO 安迪·格魯夫(Andy Grove),比爾就是微軟的創始人比爾·蓋茨。

在過去的二十年里,英特爾處理器的速度每十八個月翻一番,計算機內存和硬碟的容量以更快的速度在增長。

但是,微軟的作業系統等應用軟體越來越慢,也越做越大。

所以,現在的計算機雖然比十年前快了一百倍,運行軟體感覺上還是和以前差不多。

而且,過去整個視窗作業系統不過十幾兆大小,現在要幾千兆,應用軟體也是如此。

雖然新的軟體功能比以前的版本強了一些,但是,增加的功能絕對不是和它的大小成比例的。

因此,一台十年前的計算機能裝多少應用程式,現在的也不過裝這麼多,雖然硬碟的容量增加了一千倍。

更糟糕的是,用戶發現,如果不更新計算機,現在很多新的軟體就用不了,連上網也是個問題。

而十年前買得起的車卻照樣可以跑。

安迪-比爾定理,即比爾要拿走安迪所給的。

What Andy gives, Bill takes away.

我想大家肯定也有這樣的感覺,電腦越用越慢、手機越用越卡。

這就是這定律最真實的體現咯。

1997年安迪·格魯夫成為當年的時代人物

2016年3月21日,安迪·格魯夫離我們而去了,R.I.P.

2.4.4 量子力學

不懂量子力學,只是引用一位網友的回覆,拋磚引玉。

單原子大小工藝?小編無知就不要瞎說。

聽說過量子力學嗎?知道隧道效應嗎?幾納米下隧道效應已經夠明顯了,這種情況下,「1」有很大的機率變成「0」,電晶體就變得不穩定。

這就是現在摩爾定律失靈的原因。

以前18個月集成度翻一翻,現在呢?

2.5 後記

寫作的感覺只有一個就是,累。

不斷的查資料,並且還要綜合、總結。

蹲坑的時候在反覆看,下課的時候在反覆看,有時候有了靈感抓緊寫下來,還要不斷修改、不斷刪改,說來也搞笑,居然做夢也在寫寫寫。

不過終於寫完了,覺得好輕鬆。

在Deadline之前完成了,當作給自己的生日禮物吧!

當然,寫的肯定還是漏洞百出,希望大家可以多多給予批評和意見!謝謝大家!

2.6 一些感想

計算機發展的如此快,最重要的就是晶片發展的速度遠遠的超過了其他方面的發展速度。

而晶片之所以可以發展的這麼快,矽谷發揮的作用功不可沒。

不管是因為美國政府或者是軍方在這方面肯投資,更多的是美國給科學家創造了一個優良的環境,讓他們可以專心於自己的工作,如前文所說,發展的速度快也就是順理成章了。

基礎物理、材料物理、材料科學、半導體科學等等等,需要社會有一個好的大環境來讓這些方面的科學家沉下心來專心於自己的研究方向,有時候我也在想,我們的貝爾實驗室會出現在哪裡呢?我們的矽谷出現在哪裡呢?又是一個問題,希望十年後、二十年後我可以再來寫一篇blog,給出一個答案。

最新電子行業資訊、教程以及開發板樣片申請,請關注「雲漢電子社區」官方微信公眾號ickeybbs


請為這篇文章評分?


相關文章 

RISC和CISC指令集對晶片性能影響重要嗎?

我們看科技新聞的時候經常會看到指令集三個字,這是什麼?又該如何理解呢?對晶片會有什麼樣的影響呢?這裡我們就來簡單說一說。 大家都知道電腦是靠晶片來執行命令和運算的,而晶片的本質是一堆電晶體並不認...

超能課堂(144):X86、ARM有何不同?

一台伺服器、一台電腦、一台手機最重要的電子零部件是什麼?沒錯,就是CPU處理器。它主要負責數據計算、控制功能,是最核心的部分。不過你又知道有多少種CPU架構嗎?主流的X86、ARM到底有什麼區別?

晶片戰爭2.0:「失效」的摩爾定律

5月的上海陽光明媚,歐洲印製電路板(PCB)製造商奧特斯(AT&S)全球CEO葛思邁(AndreasGerstenmayer)的心情卻有些沉重。葛思邁在每年5月的財報季都會飛到中國,中國是奧特斯...

10納米製程工藝手機湧現 7nm還會遠嗎?

【手機中國 評測】在智慧型手機行業蓬勃發展的今日,手機為我們的生活乃至工作協助了太多,不可否認手機製造業從每五年的大跨步到現如今每年都有黑科技產出,並且在廠商的相互競爭下還在高速向前,飛速進步之...