以英特爾4004的誕生為開(kāi)端,五十年的微處理器歷史已經(jīng)書(shū)寫(xiě)完成。幾乎沒(méi)有一個(gè)領(lǐng)域像微處理器那樣發(fā)展的如此迅速,在短短五十年間,微處理器的發(fā)展跨越了七個(gè)數(shù)量級(jí)--從2300個(gè)晶體管到540億個(gè)。最初的4位單個(gè)ALU設(shè)計(jì)已經(jīng)演變成眾核巨無(wú)霸,這些進(jìn)步幾乎為人類(lèi)生活的每個(gè)方面提供了動(dòng)力。
為了說(shuō)明這些變化,MPR重點(diǎn)突顯了一些能定義整個(gè)行業(yè)的產(chǎn)品,包括英特爾8088、MIPS R2000、DEC Alpha 21164、英特爾Core Duo、IBM Power8和NvidiaA100。每一個(gè)產(chǎn)品都通過(guò)頻率和微體系結(jié)構(gòu)的升級(jí)展示出不斷增長(zhǎng)的性能。
在過(guò)去的50年里,晶體管數(shù)量的上升與戈登-摩爾的預(yù)測(cè)(摩爾定律)保持了驚人的一致,即晶體管的數(shù)量每?jī)赡昃蜁?huì)翻一番。將這一翻倍速度應(yīng)用于4004的晶體管,預(yù)測(cè)2020年將出現(xiàn)540億個(gè)晶體管的處理器,如圖1所示,Nvidia通過(guò)A100實(shí)現(xiàn)了這一目標(biāo)。盡管晶體管數(shù)量仍然與性能密切相關(guān),但在這段期間,各公司也通過(guò)電路結(jié)構(gòu)和微體系結(jié)構(gòu)創(chuàng)新提高了性能。
圖1 50年的晶體管數(shù)量
?。ò凑漳柖?,這一數(shù)字穩(wěn)定的每?jī)赡攴槐丁vidia的A100,當(dāng)前達(dá)到光罩孔極限尺寸的芯片(reticle-size chip),完美的匹配這一預(yù)測(cè)。(數(shù)據(jù)來(lái)源:各個(gè)廠商))
一個(gè)人的軍隊(duì)推出4004
英特爾于1971年發(fā)布了其4位4004處理器,在兩英寸晶圓上以10微米的工藝制造它。與以前擁有幾十或幾百個(gè)晶體管的集成電路相比,它是當(dāng)時(shí)最先進(jìn)的設(shè)計(jì),包括2250個(gè)晶體管。然而,它是由單獨(dú)一名工程師費(fèi)德里科-法金(Federico Faggin)創(chuàng)造的,他每周工作80小時(shí),以按期交付740kHz的處理器(見(jiàn)MPR 12/18/06,“英特爾4004的35周年”)。除了設(shè)計(jì)邏輯和電路之外,他還必須手工切割用于制造光學(xué)掩模的紅寶石薄膜。在一個(gè)自我陶醉的時(shí)刻,設(shè)計(jì)師在一個(gè)掩模上刻下了“F.F.”。
4004只實(shí)現(xiàn)了46條指令,其中5條是雙倍長(zhǎng)度。該處理器集成了一個(gè)單一的ALU,在8個(gè)時(shí)鐘周期內(nèi)完成4位加法(和大多數(shù)其他指令),使其有效執(zhí)行率低于0.1MHz。盡管有一個(gè)完整的CPU,尺寸為12平方毫米,但4004無(wú)法獨(dú)立運(yùn)行,因?yàn)槌?4位(16x4位)寄存器文件外,它缺乏任何存儲(chǔ)器。因此,F(xiàn)aggin還交付了4001 ROM芯片、4002總線接口芯片、4002 RAM芯片和4003總線接口芯片。
4004徹底改變了市場(chǎng),因?yàn)樗堑谝粋€(gè)軟件可編程的芯片。它首先服務(wù)于Busicom公司的141-PF計(jì)算器,因?yàn)樵摴緭碛性撛O(shè)計(jì)的獨(dú)家權(quán)利。但I(xiàn)ntel意識(shí)到可編程性使這一設(shè)計(jì)適用于廣泛的系統(tǒng),因此它通過(guò)談判達(dá)成協(xié)議,允許Intel向其他客戶出售4004,從而開(kāi)創(chuàng)了微處理器市場(chǎng)。即使在1971年,該公司也著眼于游戲市場(chǎng);例如,4004最終進(jìn)入了彈球機(jī),為曾經(jīng)的純機(jī)械游戲增添了光彩。
8088為IBM個(gè)人電腦提供動(dòng)力
16位的Intel 8088于1979年投入生產(chǎn)。如圖2所示,該公司使用其3微米技術(shù)制造了這個(gè)包含29000個(gè)晶體管的芯片。峰值速度徘徊在5MHz左右。英特爾在其新建的以色列海法實(shí)驗(yàn)室創(chuàng)造了8088。該處理器與8086基本相同,后者引入了x86指令集,但8088將外部總線接口減少到8位以降低系統(tǒng)成本。與8086一樣,它有一個(gè)6字節(jié)的取指隊(duì)列,一個(gè)16位的ALU和16位的寄存器。它的簡(jiǎn)單流水線有兩個(gè)流水段:取指/譯碼和執(zhí)行。
圖2 AMD的8088芯片晶片管芯照片
?。?088有33平方毫米和29,000個(gè)晶體管。雖然芯片最早是Intel設(shè)計(jì)的,許多類(lèi)似AMD的廠商獲得了設(shè)計(jì)授權(quán)能夠進(jìn)行制造。(照片源自Pauli Rautakorpi《維基百科<https://en.wikipedia.org/wiki/Intel_8088#/media/File:AMD_8088_die.JPG>》,按照CC BY 3.0授權(quán)))
然而,與8086相比,8088由于其較窄的數(shù)據(jù)總線和較小的預(yù)取隊(duì)列而出現(xiàn)性能問(wèn)題。它體現(xiàn)了順序處理器的低效率:例如,程序員需要將長(zhǎng)指令與短指令交錯(cuò)使用,以避免瓶頸。8088在調(diào)用、跳轉(zhuǎn)和中斷方面也有困難,因?yàn)檫@些指令重置了預(yù)取隊(duì)列,可能需要15個(gè)周期來(lái)重新填充。4004需要定制存儲(chǔ)芯片,而8088可以使用商品RAM和ROM??蛻敉ǔ?088與英特爾的8位鎖存器8282處理器、8284時(shí)鐘發(fā)生器、8位8287驅(qū)動(dòng)器、8288總線控制器、8259總線仲裁器和8087數(shù)學(xué)協(xié)處理器配對(duì)使用。
8088在第一臺(tái)IBM PC中贏得了一個(gè)重要的設(shè)計(jì),確保了英特爾和x86體系結(jié)構(gòu)在個(gè)人電腦PC革命的長(zhǎng)期中心地位。英特爾并不是唯一一家提供8088解決方案的公司;IBM要求有第二個(gè)供應(yīng)來(lái)源,因此英特爾將8088設(shè)計(jì)授權(quán)給AMD、NEC、德州儀器和其他公司。在這一時(shí)期,授權(quán)處理器是很常見(jiàn)的,但英特爾最終在1985年的80386時(shí)代停止了這種做法。
MIPS提供了第一個(gè)RISC處理器
MIPS計(jì)算機(jī)系統(tǒng)公司在1986年提供了MIPSISA的第一個(gè)商業(yè)實(shí)現(xiàn),從而震撼了計(jì)算機(jī)體系結(jié)構(gòu)的世界。R2000是第一個(gè)商業(yè)化的RISC體系結(jié)構(gòu),啟動(dòng)了RISC與CISC的辯論。這款32位110,000晶體管的芯片有三個(gè)速度等級(jí):8.3MHz、12.5MHz和15MHz。MIPS是第一批無(wú)工廠產(chǎn)線的處理器供應(yīng)商之一,將R2000外包給Sierra半導(dǎo)體公司并使用其2微米的雙層金屬CMOS工藝(見(jiàn)MPR 2/89,“MIPS挑戰(zhàn)SPARC和88000”)。
R2000的執(zhí)行引擎有一個(gè)ALU和一個(gè)乘法/除法單元。簡(jiǎn)化的RISC結(jié)構(gòu)在每個(gè)時(shí)鐘周期處理一條指令,遠(yuǎn)遠(yuǎn)超過(guò)了競(jìng)爭(zhēng)性的CISC處理器。該CPU有五個(gè)流水段,使其成為未來(lái)幾十年內(nèi)的順序RISC設(shè)計(jì)模板,包括RISC-V的RocketCPU。像同時(shí)期的80386一樣,R2000需要外部芯片來(lái)實(shí)現(xiàn)高速緩沖存儲(chǔ)和(可選擇)執(zhí)行浮點(diǎn)(FP)運(yùn)算。
R2000在工作站和服務(wù)器制造商中特別受歡迎。其強(qiáng)大的數(shù)學(xué)性能使MIPS成為工程師和科學(xué)家的理想選擇,而ISA因其優(yōu)化的軟件棧而變得更加流行。編譯器設(shè)計(jì)者幫助創(chuàng)建了最早的ISA模擬器之一,這加速了UNIX在MIPS機(jī)器上的應(yīng)用。
DEC在性能上壓倒了英特爾
如圖3所示,Alpha 21164是一款野獸般的微處理器。數(shù)字設(shè)備公司(DEC)于1994年發(fā)布,它的最高頻率為300MHz(見(jiàn)MPR 9/12/94,“Digital公司以21164引領(lǐng)潮流”)。七級(jí)流水線比任何競(jìng)爭(zhēng)者的設(shè)計(jì)都要深,使該處理器具有速度優(yōu)勢(shì)。21164實(shí)現(xiàn)了DEC專(zhuān)有的64位Alpha體系結(jié)構(gòu),支持UNIX和OpenVMS。該公司用自己的0.5微米工藝制造該芯片,塞進(jìn)了930萬(wàn)個(gè)晶體管。
圖3 DEC公司Alpha 21264的晶片管芯照片
(這款芯片在當(dāng)時(shí)是龐然大物,尺寸為314平方毫米。主頻300MHz,遠(yuǎn)遠(yuǎn)超過(guò)其他競(jìng)爭(zhēng)芯片。(照片源自Pauli Rautakorpi《維基百科<https://en.wikipedia.org/wiki/Intel_8088#/media/File:AMD_8088_die.JPG>》,按照CC BY 3.0授權(quán)))
21164的超標(biāo)量微體系結(jié)構(gòu)與最近的處理器相似。它集成了一個(gè)8KB的指令緩存,并將指令傳遞給一個(gè)寬度為4的譯碼器,該解碼器每個(gè)周期向執(zhí)行引擎發(fā)出四條譯碼后的指令。21164包括兩個(gè)整數(shù)單元和兩個(gè)浮點(diǎn)單元用于算術(shù)運(yùn)算。它還實(shí)現(xiàn)了一個(gè)片上二級(jí)緩存,容量為96KB。該設(shè)計(jì)有一個(gè)43位的虛擬地址空間和一個(gè)40位的物理地址空間,使其能夠處理比同時(shí)代更多的存儲(chǔ)。8TB的虛擬內(nèi)存和1TB的DRAM。這種地址空間為需要大型數(shù)據(jù)集的應(yīng)用提供了獨(dú)特的優(yōu)勢(shì)。
在發(fā)布時(shí),21164擴(kuò)大了DEC的性能領(lǐng)先優(yōu)勢(shì):它在SPECint95中的得分是15.4,在SPECfp95中的得分是21.1,在這兩個(gè)方面都超過(guò)了英特爾的Pentium。由Alpha 21164驅(qū)動(dòng)的系統(tǒng)因此完成了新的壯舉,如CAD建模,多媒體編輯,甚至是視頻會(huì)議。1994年,DEC公司處于世界之巔,因?yàn)樗腁lpha組合提供了無(wú)可匹敵的性能。但是,當(dāng)英特爾的Pentium Pro(P6)到來(lái)時(shí),好日子就結(jié)束了,它使用RISC技術(shù)來(lái)提高x86性能。從那時(shí)起,RISC在PC和服務(wù)器中的受歡迎程度急劇下降,DEC在2001年放棄了Alpha。
酷睿雙核是第一個(gè)多核PC處理器
英特爾在2006年發(fā)布了Core Duo,這是第一個(gè)多核的個(gè)人電腦PC處理器。服務(wù)器之前已經(jīng)采用了多核芯片,但該公司將這種方法帶到了個(gè)人電腦上,為筆記本電腦和臺(tái)式機(jī)提供了兩種不同的設(shè)計(jì)(見(jiàn)MPR 10/3/05,“Yonah做雙核的權(quán)利”)。該公司在其65納米節(jié)點(diǎn)上制造了管芯面積為143平方毫米的臺(tái)式機(jī)版本(Conroe),包裝了2.91億個(gè)晶體管。它的頻率達(dá)到3.0GHz,同時(shí)運(yùn)行32位和64位x86體系結(jié)構(gòu)。在英特爾的高主頻NetBurst方法火了之后,Conroe是第一批使用Core微體系結(jié)構(gòu)的處理器之一,該體系結(jié)構(gòu)仍然是該公司目前旗艦CPU的基礎(chǔ)。
酷睿雙核Core Duo開(kāi)啟了今天的多核運(yùn)動(dòng),并成為中心。通過(guò)將兩個(gè)CPU裝在一個(gè)管芯Die上以填補(bǔ)其晶體管預(yù)算,英特爾大大提升了性能。另一個(gè)選擇是建立一個(gè)更復(fù)雜的單核CPU,相對(duì)于上一代產(chǎn)品,其尺寸增加了一倍,但這被證明是不可行的。亂序的Core CPU核心集成了一個(gè)32KB的指令和數(shù)據(jù)緩存,四個(gè)解碼器,一個(gè)96個(gè)條目的重排緩沖器,以及五個(gè)用于內(nèi)存和算術(shù)操作的執(zhí)行端口。它集成了一個(gè)128位SIMD單元,用于加速英特爾的向量(SSE)擴(kuò)展。
新的雙核處理器不僅因其性能而聞名,而且還因其(當(dāng)時(shí))令人印象深刻的65W功耗TDP等級(jí)而聞名。然而,雙核模式給軟件帶來(lái)了問(wèn)題,這些軟件被設(shè)計(jì)為在單個(gè)CPU上運(yùn)行。工程師需要實(shí)現(xiàn)多線程編程模型。發(fā)布升級(jí)的軟件花了幾年時(shí)間;在這期間,很少有用戶能看到承諾的性能提升。
Power8將多線程帶入一個(gè)新的水平
到2014年,多線程軟件已經(jīng)成為常態(tài),但Power8將多線程帶到了一個(gè)新的水平。2014年發(fā)布的它是一個(gè)多線程的怪物,包裝了12個(gè)核心,有96個(gè)線程(見(jiàn)MPR 12/29/14,“Power8沖擊商業(yè)市場(chǎng)”)。IBM用22納米絕緣體上硅(SOI)工藝制造了這顆190W的芯片。即使按照現(xiàn)代標(biāo)準(zhǔn),它也是巨大的,面積為650mm2,裝有42億個(gè)晶體管,如圖4所示。這也是第一個(gè)可供商業(yè)購(gòu)買(mǎi)的POWER芯片。
圖4 Power8的晶片管芯照片
?。ㄔ?014年,IBM通過(guò)12核,每核4線程將多線程推進(jìn)到新的高度。22納米的晶片管芯尺寸是650平方毫米,同時(shí)封裝了42億晶體管。(由IBM拍攝的晶片管芯照片))
在設(shè)計(jì)Power8時(shí),片上存儲(chǔ)器成為IBM的重點(diǎn)。該芯片每個(gè)內(nèi)核采用512KB的二級(jí)緩存,96MB的嵌入式DRAM(eDRAM)用于L3緩存。eDRAM的使用是獨(dú)一無(wú)二的:它使IBM能夠在芯片上集成大量的存儲(chǔ),而單靠SRAM是不可能做到的。即使是巨大的內(nèi)核數(shù)量,Power8的速度也達(dá)到了3.6GHz。該設(shè)計(jì)的特點(diǎn)是具有14個(gè)執(zhí)行單元的特別寬的執(zhí)行引擎,可以處理分支以及整數(shù)、浮點(diǎn)、定點(diǎn)和向量操作。廣泛的執(zhí)行引擎幫助Power8在IPC方面超過(guò)了競(jìng)爭(zhēng)對(duì)手。
該處理器仍然讓Intel在服務(wù)器市場(chǎng)上賺到錢(qián)。Power8的價(jià)格比英特爾的旗艦產(chǎn)品至強(qiáng)E5-2699v3低30%,提供類(lèi)似的整數(shù)性能和領(lǐng)先的浮點(diǎn)性能。全球的銀行家和零售商都受益于定點(diǎn)的十進(jìn)制引擎,它加速了傳統(tǒng)的Cobol軟件。盡管有更好的性能和更低的價(jià)格,但該處理器缺乏X86兼容性,使其在IBM自己的系統(tǒng)之外沒(méi)有獲得吸引力。
Nvidia A100達(dá)到了光照極限(Reticle Limit)
Nvidia的A100最能代表當(dāng)今的高性能處理器,它使用專(zhuān)門(mén)的體系結(jié)構(gòu)在一個(gè)流行的應(yīng)用程序上實(shí)現(xiàn)了領(lǐng)先的性能。該公司的GPU已經(jīng)成為神經(jīng)網(wǎng)絡(luò)訓(xùn)練的代名詞(見(jiàn)MPR 6/8/20,“Nvidia A100在AI性能方面名列前茅”)。在過(guò)去十年中,人工智能應(yīng)用的普及率飆升,觸及日常生活的許多方面。但神經(jīng)網(wǎng)絡(luò)帶來(lái)的巨大計(jì)算壓力造成了對(duì)專(zhuān)門(mén)硬件的需求。用于數(shù)據(jù)中心400W的A100 GPU在20年第二季度投入量產(chǎn),并立即成為AI的熱門(mén)產(chǎn)品。它具有540億個(gè)晶體管;在7納米統(tǒng)一中,826毫米的巨大芯片測(cè)試了臺(tái)積電的光照尺寸極限。
A100實(shí)現(xiàn)了Nvidia的AmpereGPU體系結(jié)構(gòu),以加速AI訓(xùn)練和推理。VLIW配置減少了指令調(diào)度邏輯,許多SIMD單元有利于計(jì)算神經(jīng)網(wǎng)絡(luò)經(jīng)常采用的大型卷積。該芯片有108個(gè)GPU核心,包含矩陣乘法單元和向量ALU。它的發(fā)布使英偉達(dá)處于人工智能市場(chǎng)的頂端。該公司圍繞A100及其他基于GPU的人工智能加速器建立了一個(gè)龐大的軟件生態(tài)系統(tǒng),其目標(biāo)是幾乎所有可以想象的領(lǐng)域,從醫(yī)療保健到農(nóng)業(yè)到分子動(dòng)力學(xué)。
摩爾定律的勝利
如表1所示,在過(guò)去的50年里,單個(gè)芯片上的晶體管數(shù)量已經(jīng)爆炸性增長(zhǎng)。表中的每個(gè)產(chǎn)品都需要重大的工藝技術(shù)進(jìn)步,從光學(xué)光刻到紫外線、多重曝光,以及今天的EUV(見(jiàn)MPR 5/20/19,“EUV工藝達(dá)到大規(guī)模生產(chǎn)”)。晶體管面積下降了200萬(wàn)倍。隨著缺陷率的下降和工藝的改進(jìn),晶片管芯尺寸也在增加,允許每個(gè)芯片有更多的晶體管。這些因素使更復(fù)雜的微體系結(jié)構(gòu)、更多的片上存儲(chǔ)器,以及最終每片更多的內(nèi)核成為可能,提高了性能。
表1 歷史上的MPU對(duì)比
?。?0多年來(lái),晶體管數(shù)量猛增。這種增長(zhǎng)之所以可能,是因?yàn)橹髁鞴に嚰夹g(shù)的改進(jìn)。?使用了向量(SIMD)單元。(來(lái)源:廠商))
對(duì)于基于CPU的處理器,頻率上升了四個(gè)數(shù)量級(jí)。4004開(kāi)始時(shí)不到1MHz,但現(xiàn)代Intel處理器可以達(dá)到5,200MHz。CPU設(shè)計(jì)者使用了兩種技術(shù)來(lái)提高時(shí)鐘頻率:一種是依靠代工廠提高晶體管速度,另一種是通過(guò)微體系結(jié)構(gòu)的升級(jí)來(lái)實(shí)現(xiàn)收益。
雖然A100是一個(gè)GPU,但MPR仍然認(rèn)為它是一個(gè)處理器,因?yàn)樗虞d和執(zhí)行指令。MPR把Nvidia的芯片包括在內(nèi),以強(qiáng)調(diào)GPU和AI產(chǎn)品現(xiàn)在是如何推動(dòng)摩爾定律的。最先進(jìn)的設(shè)計(jì)有數(shù)百個(gè)1,024位的ALU,與原始微處理器上的單一4位ALU相比,相差甚遠(yuǎn)。
我們是如何走到今天的?
沒(méi)有一篇文章能涵蓋微處理器50年的全部歷史。MPR的精心策劃包括了其認(rèn)為在這個(gè)時(shí)間段內(nèi)具有代表性的產(chǎn)品,強(qiáng)調(diào)了處理器所經(jīng)歷的許多結(jié)構(gòu)變化。最早的例子只能執(zhí)行最基本的功能,如加法,而且缺乏片上存儲(chǔ)器。隨著時(shí)間的推移,設(shè)計(jì)者集成了一些功能,如浮點(diǎn)單元和總線接口,而這些功能以前是在獨(dú)立的芯片上。
一旦整個(gè)CPU都在芯片上,公司開(kāi)始增加更多的CPU。數(shù)據(jù)路徑從4位擴(kuò)展到64位,對(duì)于專(zhuān)門(mén)的SIMD單元來(lái)說(shuō)甚至更寬(在這個(gè)過(guò)程中消耗了許多晶體管)。緩存在20世紀(jì)80年代開(kāi)始成為一種外部功能,在20世紀(jì)90年代轉(zhuǎn)移到芯片上,并發(fā)展成為今天復(fù)雜的多級(jí)緩存。更深的流水線實(shí)現(xiàn)了更高的時(shí)鐘速度,但它們需要更多的緩沖器和旁路邏輯,進(jìn)一步增加了晶體管數(shù)量。
雖然更深的流水線和更寬的執(zhí)行單元等技術(shù)似乎已經(jīng)達(dá)到了極限,但芯片設(shè)計(jì)者仍在試圖通過(guò)嘗試不同的方法來(lái)提高性能,如特定應(yīng)用和異構(gòu)體系結(jié)構(gòu)。當(dāng)他們?nèi)狈Ω玫南敕〞r(shí),他們會(huì)增加更多的CPU內(nèi)核,盡管很少有PC應(yīng)用能夠使用它們。
相對(duì)于人類(lèi)歷史的跨度,50年幾乎是一個(gè)小點(diǎn)。然而,在這個(gè)微不足道的時(shí)期,微處理器的發(fā)展速度令人難以置信。它們無(wú)處不在,從微波爐到自動(dòng)駕駛汽車(chē)。當(dāng)人們花時(shí)間欣賞微處理器時(shí),也必須記住這項(xiàng)寶貴的發(fā)明是如何從簡(jiǎn)陋的4004開(kāi)始的。