丁香五月天婷婷久久婷婷色综合91|国产传媒自偷自拍|久久影院亚洲精品|国产欧美VA天堂国产美女自慰视屏|免费黄色av网站|婷婷丁香五月激情四射|日韩AV一区二区中文字幕在线观看|亚洲欧美日本性爱|日日噜噜噜夜夜噜噜噜|中文Av日韩一区二区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號(hào)安全和更好的產(chǎn)品體驗(yàn),強(qiáng)烈建議使用更快更安全的瀏覽器
此為臨時(shí)鏈接,僅用于文章預(yù)覽,將在時(shí)失效
業(yè)界 正文
發(fā)私信給包永剛
發(fā)送

0

圖靈獎(jiǎng)得主長(zhǎng)文報(bào)告:是什么開(kāi)啟了計(jì)算機(jī)架構(gòu)的新黃金十年?(上)

本文作者: 包永剛 2019-02-01 19:03
導(dǎo)語(yǔ):近日2017 年圖靈獎(jiǎng)的兩位得主在ACM 通訊發(fā)表了一篇長(zhǎng)報(bào)告,詳細(xì)描述了引發(fā)計(jì)算機(jī)架構(gòu)新時(shí)代到來(lái)的種種變化,他們也展望未來(lái)的十年將是計(jì)算機(jī)體系架構(gòu)領(lǐng)域的“新的

雷鋒網(wǎng)按:近幾年來(lái),不論是普通消費(fèi)者還是科研人員們都可以感受到兩種浪潮,一種是CPU速度的提升越來(lái)越不顯著了,我們說(shuō)CPU制造商又在“擠牙膏”;另一方面,在深度學(xué)習(xí)的刺激下,各個(gè)半導(dǎo)體巨頭和一群 AI 初創(chuàng)企業(yè)都開(kāi)始宣傳自己的 AI 芯片。我們仿佛看到一類芯片逐漸走向慢車道,另一類芯片則準(zhǔn)備搭臺(tái)唱戲、躍躍欲試。

這種柳暗花明的背后,顯示的正是計(jì)算機(jī)計(jì)算架構(gòu)的時(shí)代變革;新的方法、新的思維、新的目標(biāo)引領(lǐng)了新的浪潮。2017 年圖靈獎(jiǎng)的兩位得主 John L. Hennessy 和 David A. Patterson 就是這個(gè)新浪潮的見(jiàn)證者和引領(lǐng)者。近日他們?cè)贏CM 通訊(Communications of the ACM)發(fā)表了一篇長(zhǎng)報(bào)告《A New Golden Age for Computer Architecture》,詳細(xì)描述了引發(fā)計(jì)算機(jī)架構(gòu)新時(shí)代到來(lái)的種種變化,他們也展望未來(lái)的十年將是計(jì)算機(jī)體系架構(gòu)領(lǐng)域的“新的黃金十年”。

雷鋒網(wǎng)把這篇文章全文編譯如下,本篇為上篇,下篇參見(jiàn)這里。

另外二位還有過(guò)一次輕松的訪談,可以參見(jiàn)這里。

圖靈獎(jiǎng)得主長(zhǎng)文報(bào)告:是什么開(kāi)啟了計(jì)算機(jī)架構(gòu)的新黃金十年?(上)

ISCA 2018 ,2017 圖靈獎(jiǎng)?lì)C獎(jiǎng)現(xiàn)場(chǎng),John L. Hennessy(左) 和 David A. Patterson(右)與 Alan Turing 的半身像合影

2018年6月4日,我們回顧了自20世紀(jì)60年代以來(lái)計(jì)算機(jī)架構(gòu)的發(fā)展,并以此開(kāi)始了我們的圖靈講座。除了那個(gè)回顧,我們還在講座中介紹了當(dāng)前的難題和未來(lái)機(jī)遇。計(jì)算機(jī)體系結(jié)構(gòu)領(lǐng)域?qū)⒂瓉?lái)又一個(gè)黃金十年,就像20世紀(jì)80年代我們做研究那時(shí)一樣,新的架構(gòu)設(shè)計(jì)將會(huì)帶來(lái)更低的成本,更優(yōu)的能耗、安全和性能。

“不能銘記過(guò)去的人注定要重蹈覆轍”

——George Santayana,1905

軟件與硬件的對(duì)話,是通過(guò)一種稱為指令集的體系結(jié)構(gòu)進(jìn)行來(lái)的。在20世紀(jì)60年代初,IBM擁有四條互不兼容的計(jì)算機(jī)系列,分別針對(duì)小型企業(yè),大型企業(yè),科研單位和即時(shí)運(yùn)算,每個(gè)系列都有自己的指令集、軟件棧和I/O系統(tǒng)。

IBM的工程師們,也包括ACM圖靈獎(jiǎng)獲獎(jiǎng)?wù)逨red Brooks在內(nèi),希望能夠創(chuàng)建一套新的ISA,將這四套指令集有效統(tǒng)一起來(lái),為此他們需要一種可以讓低端的8位計(jì)算機(jī)和高端的64位計(jì)算機(jī)共享一套指令集的解決方案。

實(shí)際上,數(shù)據(jù)通路的加寬和縮小相對(duì)是比較容易的,當(dāng)時(shí)的工程師們面臨的最大挑戰(zhàn)是處理器中的控制器部分。受軟件編程的啟發(fā),計(jì)算機(jī)先驅(qū)人物、圖靈獎(jiǎng)獲得者M(jìn)aurice Wilkes提出了簡(jiǎn)化控制流程的思路,即將控制器部分定義為一個(gè)被稱為“控制存儲(chǔ)器”的二維數(shù)組,可通過(guò)內(nèi)存實(shí)現(xiàn),比使用邏輯門的成本要低得多。數(shù)組的每一列對(duì)應(yīng)一條控制線,每一行對(duì)應(yīng)一條微指令,寫(xiě)微指令的操作稱為微編程,控制存儲(chǔ)器包含使用微指令編寫(xiě)的指令集解釋器,因此執(zhí)行一條傳統(tǒng)指令需要多個(gè)微指令完成。

下圖列出了IBM在1964年4月7日發(fā)布的新System/360系列計(jì)算機(jī)的指令集,四種型號(hào)之間的數(shù)據(jù)通路寬度相差8倍,內(nèi)存容量相差16倍,頻率相差近4倍,最終性能相差50倍。其中M65機(jī)型的控制存儲(chǔ)器容量最大,成本和售價(jià)也最昂貴,而最低端M30機(jī)型的控制存儲(chǔ)器容量最小,因此也需要有更多的微指令來(lái)執(zhí)行System/360的指令。

圖靈獎(jiǎng)得主長(zhǎng)文報(bào)告:是什么開(kāi)啟了計(jì)算機(jī)架構(gòu)的新黃金十年?(上)

IBM將公司的未來(lái)押在了這套新指令集上,寄希望其能革新計(jì)算行業(yè),贏得未來(lái)。而最終IBM也如愿以償,成功主宰了這一市場(chǎng),并將其影響力延續(xù)至今,這些55年前機(jī)型的后代產(chǎn)品現(xiàn)在仍能為IBM帶來(lái)每年100億美元的收入。

現(xiàn)在看來(lái),盡管市場(chǎng)對(duì)技術(shù)問(wèn)題做出的評(píng)判還不夠完善,但由于硬件系統(tǒng)架構(gòu)與商用計(jì)算機(jī)之間的密切聯(lián)系,市場(chǎng)最終成為計(jì)算機(jī)架構(gòu)創(chuàng)新的是否成功的關(guān)鍵性因素,這些創(chuàng)新往往需要工程人員方面的大量投入。

集成電路,CISC,432,8086,IBM PC

當(dāng)計(jì)算機(jī)進(jìn)入集成電路時(shí)代,摩爾定律的力量可以使控制存儲(chǔ)器被設(shè)計(jì)的更大,而這反過(guò)來(lái)又催生了更復(fù)雜的指令集,如Digital Equipment公司于1977年發(fā)布的VAX-11/780機(jī)型,其控制存儲(chǔ)器容量就達(dá)到了5120指令字*96bit,而其前代型號(hào)僅為256指令字*56bit。

于此同時(shí),一些制造商開(kāi)始設(shè)計(jì)可記錄控制存儲(chǔ)器(WCS),放開(kāi)微編程功能以使客戶可以自行定制功能,其中最有名的機(jī)型是圖靈獎(jiǎng)得主Chuck Thacker和Butler Lampson 和他的同事在1973年為施樂(lè)公司Palo Alto研究中心開(kāi)發(fā)的Alto計(jì)算機(jī)。這是第一臺(tái)個(gè)人計(jì)算機(jī),配備有首款點(diǎn)陣顯示器和首個(gè)以太網(wǎng)局域網(wǎng),其控制器存儲(chǔ)在一個(gè)容量為4096指令字*32bit的WCS中。

另一邊,20世紀(jì)70年代的微處理器仍處于8位時(shí)代(如Intel的8080處理器),主要采用匯編語(yǔ)言編程,各家公司的設(shè)計(jì)師會(huì)不斷加入新的指令來(lái)超越競(jìng)爭(zhēng)對(duì)手,并通過(guò)匯編語(yǔ)言展示他們的優(yōu)勢(shì)。

戈登·摩爾認(rèn)為,Intel的下一代指令集將會(huì)伴隨Intel的一生,他聘請(qǐng)了大批聰明的計(jì)算機(jī)科學(xué)博士,并將他們送到波特蘭的一個(gè)新工廠,以打造下一個(gè)偉大的指令集架構(gòu)。這個(gè)被Intel最初命名為8800的計(jì)算機(jī)架構(gòu)項(xiàng)目雄心勃勃,它具有32位尋址能力、面向?qū)ο蟮捏w系結(jié)構(gòu),可變位長(zhǎng)的指令以及用當(dāng)時(shí)最新編程語(yǔ)言Ada編寫(xiě)的操作系統(tǒng),是20世紀(jì)80年代最具挑戰(zhàn)性的一個(gè)項(xiàng)目。

可惜天不遂愿,這個(gè)項(xiàng)目在幾年間再三延期,迫使Intel在圣克拉拉啟動(dòng)了一項(xiàng)緊急更換計(jì)劃,要在1979年推出一款16位處理器,也就是后來(lái)的8086。Intel給了新團(tuán)隊(duì)52周時(shí)間來(lái)開(kāi)發(fā)新的指令集以及設(shè)計(jì)和構(gòu)建芯片。由于時(shí)間緊迫,這個(gè)團(tuán)隊(duì)實(shí)際上是把 8080 的 8 位寄存器和指令集擴(kuò)展成了 16 位,設(shè)計(jì)ISA部分僅僅花了10個(gè)人3周時(shí)間。最終8086如期完成,但在發(fā)布時(shí)卻沒(méi)引起什么關(guān)注。

這一次Intel很走運(yùn),當(dāng)時(shí)IBM正在開(kāi)發(fā)一款對(duì)位Apple II的個(gè)人計(jì)算機(jī),正需要16位處理器。IBM一度對(duì)Motorola 68000處理器很感興趣,它擁有類似于IBM 360的指令集,但性能表現(xiàn)卻無(wú)法滿足IBM激進(jìn)的需求,故轉(zhuǎn)而使用Intel 8086的8位總線版。IBM于1981年8月12日宣布推出該機(jī)型,全球銷量高達(dá)1億臺(tái),為Intel這套指令集鋪墊了一個(gè)非常光明的未來(lái)。

Intel原本的8800項(xiàng)目更名了為iAPX-432,并最終在1981年推出,但它需要多塊芯片并且存在嚴(yán)重的性能問(wèn)題,最終于1986年終止。同樣在這一年,Intel推出了80386處理器,將8086指令集的寄存器從16位擴(kuò)展到了32位。戈登?摩爾的預(yù)言成為了現(xiàn)實(shí),Intel的下一代指令集確實(shí)一直存續(xù)下來(lái),但市場(chǎng)做出的選擇是臨危上馬的8086,而不是被寄予厚望的iAPX-432,這對(duì)摩托羅拉68000和iAPX-432的架構(gòu)師來(lái)講,都是個(gè)現(xiàn)實(shí)的教訓(xùn),市場(chǎng)永遠(yuǎn)是沒(méi)有耐心的。

從CISC到RISC

20世紀(jì)80年代初,人們開(kāi)始研究CISC(復(fù)雜指令集計(jì)算機(jī))控制存儲(chǔ)器中的大型微程序,而Unix系統(tǒng)的誕生則證明了可以使用高級(jí)語(yǔ)言來(lái)編寫(xiě)操作系統(tǒng),因此隨后問(wèn)題的關(guān)鍵從“編程者會(huì)使用什么匯編語(yǔ)言”變成了“編譯器會(huì)生成什么指令”,軟硬件接口的顯著改進(jìn)為架構(gòu)創(chuàng)新帶來(lái)了機(jī)會(huì)。

圖靈獎(jiǎng)得主John Cocke和他的同事為小型計(jì)算機(jī)開(kāi)發(fā)了更簡(jiǎn)單的指令集和編譯器,并將編譯器的目標(biāo)設(shè)定為“僅使用 IBM 360指令集中簡(jiǎn)單的寄存器到寄存器操作,只以簡(jiǎn)單的Load和Store操作訪問(wèn)內(nèi)存”。他們發(fā)現(xiàn),這樣簡(jiǎn)化的流程可以讓程序運(yùn)行速度快上3倍。Emer和Clark發(fā)現(xiàn),VAX指令中有20%的常用指令需要60%的微代碼(microcode),但僅占據(jù)0.2%的執(zhí)行時(shí)間。

David Patterson把在DEC一次學(xué)術(shù)休假投入到了研究減少VAX指令中的漏洞上。他認(rèn)為,如果處理器制造商想要設(shè)計(jì)更龐大的復(fù)雜指令集,就免不了需要一種修復(fù)微代碼漏洞的方法。Patterson就此問(wèn)題寫(xiě)了一篇論文,但《Computer》期刊卻拒絕刊登,審稿人認(rèn)為,使用如此復(fù)雜以至于需要修補(bǔ)的指令集來(lái)設(shè)計(jì)處理器是很糟糕的。

雖然現(xiàn)在來(lái)看,現(xiàn)代的CISC處理器確實(shí)包含微代碼修復(fù)機(jī)制,但當(dāng)時(shí)的這次拒稿卻讓人們懷疑復(fù)雜指令集在處理器方面的價(jià)值,這也啟發(fā)了他去開(kāi)發(fā)更簡(jiǎn)單的精簡(jiǎn)指令集,以及RISC(精簡(jiǎn)指令集計(jì)算機(jī))。

這些觀點(diǎn)的產(chǎn)生,以及由匯編語(yǔ)言向高級(jí)語(yǔ)言的轉(zhuǎn)變,為CISC向RISC的過(guò)渡創(chuàng)造了條件。首先,精簡(jiǎn)指令集是經(jīng)過(guò)簡(jiǎn)化的,其指令通常和微指令一樣簡(jiǎn)單,硬件可以直接執(zhí)行,因此無(wú)需微代碼解釋器;第二,之前用于微代碼解釋器的快速存儲(chǔ)器被用作了RISC的指令緩存;第三,基于Gregory Chaitin圖染色法的寄存器分配器,使編譯器能夠更簡(jiǎn)易、高效地使用寄存器,這指令集中那些寄存器到寄存器的操作有很大好處;最后,集成電路規(guī)模的發(fā)展,使20世紀(jì)80年代的單塊芯片足以包含完整的32位數(shù)據(jù)路徑以及相應(yīng)的指令和數(shù)據(jù)緩存。

下圖是加州大學(xué)伯克利分校1982年研發(fā)的RISC-I處理器和斯坦福大學(xué)1983年研發(fā)的MIPS處理器,兩顆芯片充分展示了RISC的優(yōu)勢(shì),并最終發(fā)表在1984年IEEE國(guó)際固態(tài)電路會(huì)議上。加州大學(xué)和斯坦福大小的研究生研發(fā)出了比行業(yè)內(nèi)現(xiàn)有產(chǎn)品更優(yōu)秀處理器,這是非常了不起的時(shí)刻。

圖靈獎(jiǎng)得主長(zhǎng)文報(bào)告:是什么開(kāi)啟了計(jì)算機(jī)架構(gòu)的新黃金十年?(上)

這些由學(xué)術(shù)機(jī)構(gòu)開(kāi)發(fā)的芯片,激勵(lì)了許多企業(yè)開(kāi)始發(fā)力RISC處理器,并成為此后15年中發(fā)展最快的領(lǐng)域。其原因是處理器的性能公式:

時(shí)間/程序=操作數(shù)/程序*(時(shí)鐘周期)/指令*時(shí)間/(時(shí)鐘周期)

DEC公司的工程師后來(lái)表明,CISC處理器執(zhí)行每個(gè)程序的操作數(shù)大約為RISC處理器的75%(上式第一項(xiàng)),在使用類似的技術(shù)時(shí),CISC處理器執(zhí)行每個(gè)指令要多消耗5到6個(gè)時(shí)鐘周期(上式第二項(xiàng)),使得RISC處理器的速度大約快了3倍。

這樣的公式在20世紀(jì)80年代還沒(méi)有進(jìn)入計(jì)算機(jī)體系結(jié)構(gòu)的書(shū)中,所以我們?cè)?989年編寫(xiě)了《Computer Architecture: A Quantitative Approach》一書(shū),使用測(cè)量和基準(zhǔn)測(cè)試來(lái)對(duì)計(jì)算機(jī)架構(gòu)進(jìn)行量化評(píng)估,而不是更多地依賴于架構(gòu)師的直覺(jué)和經(jīng)驗(yàn),使用的量化方法也受到了圖靈獎(jiǎng)得主Donald Knuth關(guān)于算法的書(shū)的啟發(fā)。

VLIW、EPIC、Itanium

指令集架構(gòu)的下一次創(chuàng)新試圖同時(shí)惠及RISC和CISC,即超長(zhǎng)指令字(VLIW)和顯式并行指令計(jì)算機(jī)(EPIC)的誕生。這兩項(xiàng)發(fā)明由Intel和惠普共同命名,在每條指令中使用捆綁在一起的多個(gè)獨(dú)立操作的寬指令。與RISC一樣,VLIW和EPIC的目的是將工作負(fù)載從硬件轉(zhuǎn)移到編譯器上,它們的擁護(hù)者認(rèn)為,如果用一條指令可以指定六個(gè)獨(dú)立的操作(兩次數(shù)據(jù)傳輸,兩次整數(shù)操作和兩次浮點(diǎn)操作),并且編譯器技術(shù)可以有效地將操作分配到六個(gè)指令槽,則硬件可以變得更簡(jiǎn)單。

Intel和惠普合作設(shè)計(jì)了一款基于EPIC理念的64位處理器Itanium(安騰),想用其取代32位x86處理器。Intel和惠普對(duì)Itanium抱有很高的期望,但實(shí)際情況卻與他們的預(yù)期并不相符,EPIC雖然適用于高度結(jié)構(gòu)化的浮點(diǎn)程序,但卻很難在可預(yù)測(cè)性較低的緩存丟失或難以預(yù)測(cè)分支的整型程序上實(shí)現(xiàn)高性能。

Donald Knuth后來(lái)指出,Itanium的設(shè)想非常棒,但事實(shí)證明滿足這種設(shè)想的編譯器基本上不可能寫(xiě)出來(lái)。開(kāi)發(fā)人員注意到Itanium的延遲和性能表現(xiàn)不佳,并借鑒泰坦尼克號(hào)事件重新將其命名為“Itanic”。不過(guò)正如前面所提到的,市場(chǎng)永遠(yuǎn)是沒(méi)有耐心的,最終64位的x86-64成為了繼承者,沒(méi)有輪到Itanium。

不過(guò)一個(gè)好消息是,VLIW仍然小范圍應(yīng)用于數(shù)字信號(hào)處理等對(duì)分支預(yù)測(cè)和緩存要求不高的領(lǐng)域。

RISC vs. CISC,PC和后PC時(shí)代的宿命對(duì)決

Intel和AMD依靠500人的設(shè)計(jì)團(tuán)隊(duì)和卓越的半導(dǎo)體技術(shù)來(lái)縮小x86和RISC之間的性能差距,而受到精簡(jiǎn)指令相對(duì)于復(fù)雜指令性能優(yōu)勢(shì)的啟發(fā),Intel和AMD將RISC微指令的執(zhí)行流程化,使指令解碼器在運(yùn)行中將復(fù)雜的x86指令轉(zhuǎn)換成類似RISC的內(nèi)部微指令,從而讓x86處理器可以吸收RISC在性能分離指令、數(shù)據(jù)緩存、芯片二級(jí)緩存、深度流水線以及同時(shí)獲取和執(zhí)行多個(gè)指令等許多優(yōu)秀的設(shè)計(jì)。在2011年P(guān)C時(shí)代的巔峰時(shí)期,Intel和AMD每年大約出貨3.5億顆x86處理器。PC行業(yè)的高產(chǎn)量和低利潤(rùn)率也意味著價(jià)格低于RISC計(jì)算機(jī)。

在Unix市場(chǎng)中,軟件供應(yīng)商會(huì)為不同的復(fù)雜指令集(Alpha、HP-PA、MIPS、Power和SPARC)提供不同的軟件版本,而PC市場(chǎng)上絕對(duì)主流的指令集只有一套,軟件開(kāi)發(fā)人員只需兼容x86指令集即可。全球每年出貨數(shù)億臺(tái)PC,軟件就成為了一個(gè)巨大的市場(chǎng)。更大的軟件基礎(chǔ)、相似的性能和更低的價(jià)格使得x86處理器在2000年之前同時(shí)統(tǒng)治了臺(tái)式機(jī)和小型服務(wù)器市場(chǎng)。

蘋果公司在2007年推出了iPhone,開(kāi)創(chuàng)了后PC時(shí)代。智能手機(jī)公司不再購(gòu)買處理器,而是使用其他公司的設(shè)計(jì)來(lái)構(gòu)建自己的SoC。移動(dòng)設(shè)備設(shè)計(jì)人員需要對(duì)芯片面積和能效以及性能進(jìn)行綜合評(píng)估,CISC處理器在這一點(diǎn)上處于劣勢(shì)。此外,物聯(lián)網(wǎng)的到來(lái)需要海量的處理器,更加需要在芯片尺寸、功率、成本和性能上做權(quán)衡。這種趨勢(shì)增加了設(shè)計(jì)時(shí)間和成本的重要性,進(jìn)一步使CISC處理器處于不利地位。在今天這個(gè)“后PC時(shí)代”,x86處理器的出貨量自2011年達(dá)到峰值以來(lái),每年下降近10%,而RISC處理器的出貨量則飆升至200億。如今,99%的32位和64位處理器都是RISC處理器。

總結(jié)這些歷史,可以說(shuō)市場(chǎng)已經(jīng)解決了RISC和CISC宿命之爭(zhēng)。CISC贏得了PC時(shí)代的后期階段,但RISC正在后PC時(shí)代占據(jù)主導(dǎo)。復(fù)雜指令集領(lǐng)域已經(jīng)幾十年沒(méi)有新的指令集出現(xiàn)了,對(duì)于今天的通用處理器來(lái)說(shuō),最佳的選擇仍然是精簡(jiǎn)指令集。

處理器架構(gòu)當(dāng)前面臨的挑戰(zhàn)

“如果一個(gè)問(wèn)題無(wú)解,那它可能不是一個(gè)問(wèn)題,而是一個(gè)事實(shí),我們不需要解決,而是隨著時(shí)間的推移來(lái)處理?!?/p>

——Shimon Peres

雖然前面的部分聚焦在指令集架構(gòu)的設(shè)計(jì)上,但大部分計(jì)算機(jī)架構(gòu)師并不設(shè)計(jì)新的指令集,而是利用當(dāng)前的實(shí)現(xiàn)技術(shù)來(lái)實(shí)現(xiàn)現(xiàn)有的ISA。自20世紀(jì)70年代后期以來(lái),選擇的技術(shù)一直是基于MOS(金屬氧化物半導(dǎo)體)的集成電路,首先是 nMOS(n型金屬氧化物半導(dǎo)體),然后是CMOS(互補(bǔ)金屬氧化物半導(dǎo)體)。

戈登·摩爾在1965年預(yù)測(cè),集成電路的晶體管密度會(huì)每年翻一番,1975年又改為每?jī)赡攴环?,這一預(yù)測(cè)最終被稱為摩爾定律。在這一預(yù)測(cè)中,晶體管密度呈二次增長(zhǎng),驚人的進(jìn)化速度使架構(gòu)師可以用更多晶體管來(lái)提高性能。

摩爾定律和登納德縮放定律的失效

如圖2所示,摩爾定律已經(jīng)持續(xù)了幾十年,但它在2000年左右開(kāi)始放緩,到了 2018 年,實(shí)際結(jié)果與摩爾定律的預(yù)測(cè)相差了15倍,但摩爾在2003年做的判斷已不可避免(可參考GE Moore 的《No exponential is forever: But 'forever' can be delayed!》論文)?;诋?dāng)前的情況,這一差距還將持續(xù)增大,因?yàn)镃MOS已經(jīng)接近極限。

圖靈獎(jiǎng)得主長(zhǎng)文報(bào)告:是什么開(kāi)啟了計(jì)算機(jī)架構(gòu)的新黃金十年?(上)

圖2 單個(gè)英特爾微處理器上的晶體管數(shù)量 vs. 摩爾定律

與摩爾定律相伴的是由羅伯特·登納德(Robert Dennard)預(yù)測(cè)的登納德縮放定律(Dennard scaling;又稱作MOSFET縮放定律)。Robert Dennard 在 1974 年提出,晶體管不斷變小,但芯片的功率密度不變。隨著晶體管密度的增加,每個(gè)晶體管的能耗將降低,因此硅芯片上每平方毫米上的能耗幾乎保持恒定。由于每平方毫米硅芯片的計(jì)算能力隨著技術(shù)的迭代而不斷增強(qiáng),計(jì)算機(jī)將變得更加節(jié)能。不過(guò),登納德縮放定律從 2007 年開(kāi)始大幅放緩,大概在2012 年接近失效(見(jiàn)圖 3)。

圖靈獎(jiǎng)得主長(zhǎng)文報(bào)告:是什么開(kāi)啟了計(jì)算機(jī)架構(gòu)的新黃金十年?(上)

圖3每個(gè)芯片上的晶體管及每平方毫米的功率

1986 年至 2002 年間,利用指令級(jí)并行(ILP)是提高架構(gòu)性能的主要方法,伴隨著晶體管速度的提高,其性能每年能提高約50%。登納德縮放定律的終結(jié)意味著架構(gòu)師必須找到更有高效的方法利用并行性。

要理解增加ILP 所帶來(lái)高效率,可以看一看當(dāng)前的處理器核心比如ARM、英特爾、AMD。假設(shè)該芯片有15級(jí)流水線(管線),每個(gè)時(shí)鐘周期可以發(fā)送 4 條指令,那么它在任何時(shí)刻都有多達(dá)60條指令,包括大約15個(gè)分支,它們占執(zhí)行指令的大約25%。為了能夠充分利用流水線,需要預(yù)測(cè)分支,并根據(jù)推測(cè)將代碼放入流水線以便執(zhí)行。推測(cè)的使用同時(shí)是 ILP高性能和低能效的源頭。如果分支預(yù)測(cè)達(dá)到完美,推測(cè)就能提高 ILP 性能,但能耗會(huì)增加一些(也可能節(jié)約能耗),但如果分支預(yù)測(cè)出現(xiàn)失誤,處理器就必須放棄錯(cuò)誤的推測(cè)指令,計(jì)算所耗能量就會(huì)被浪費(fèi)。處理器的內(nèi)部狀態(tài)也必須恢復(fù)到錯(cuò)誤預(yù)測(cè)分支之前的狀態(tài),這將消耗額外的能量和時(shí)間。

要理解這種設(shè)計(jì)的挑戰(zhàn)性,想一想正確預(yù)測(cè)15個(gè)分支就可知道其中的難度。如果處理器架構(gòu)想把性能的浪費(fèi)控制在10%以內(nèi),那么它必須在 99.3%的時(shí)間里正確預(yù)測(cè)每個(gè)分支。很少有通用程序能夠如此準(zhǔn)確地預(yù)測(cè)。

要理解性能浪費(fèi)疊加的結(jié)果,可以參見(jiàn)圖4中,圖中顯示了有效執(zhí)行的指令,但由于處理器推測(cè)錯(cuò)誤而被浪費(fèi)。對(duì)英特爾酷睿 i7 基準(zhǔn)測(cè)試上,19%的指令都被浪費(fèi)了,但能量的浪費(fèi)情況更加嚴(yán)重,因?yàn)樘幚砥鞅仨毷褂妙~外的能量才能恢復(fù)到推測(cè)失誤前的狀態(tài)。這樣的測(cè)試導(dǎo)致許多人得出結(jié)論,架構(gòu)師需要一種不同的方法來(lái)實(shí)現(xiàn)性能改進(jìn)。于是迎來(lái)了多核時(shí)代的誕生。

圖靈獎(jiǎng)得主長(zhǎng)文報(bào)告:是什么開(kāi)啟了計(jì)算機(jī)架構(gòu)的新黃金十年?(上)

圖4 不同的SPEC整型數(shù)基準(zhǔn)測(cè)試,英特爾酷睿 i7 浪費(fèi)的指令占完成指令總數(shù)的百分比

多核將識(shí)別并行性和決定如何利用并行性的任務(wù)轉(zhuǎn)移給程序員和編程語(yǔ)言。多核并未解決節(jié)能的挑戰(zhàn),而這種挑戰(zhàn)因登納德縮放定律終結(jié)更加嚴(yán)峻。每個(gè)活躍的核都會(huì)消耗能量,無(wú)論其對(duì)計(jì)算是否有有效貢獻(xiàn)。一個(gè)主要的障礙可以用阿姆達(dá)爾定律(Amdahl's Law)表述,該定理認(rèn)為,在并行計(jì)算中用多處理器的應(yīng)用加速受限于程序所需的串行時(shí)間百分比。這一定律的重要性參見(jiàn)圖5,與單核相比,多達(dá)64個(gè)核執(zhí)行應(yīng)用程序速度的差別,假設(shè)串行執(zhí)行的不同部分只有一個(gè)處理器處于活動(dòng)狀態(tài)。例如,如果只有1%的時(shí)間是串行的,那么 64核的配置可加速大約35倍,當(dāng)然能量也與64個(gè)處理器成正比,大約有45% 的能量被浪費(fèi)。

圖靈獎(jiǎng)得主長(zhǎng)文報(bào)告:是什么開(kāi)啟了計(jì)算機(jī)架構(gòu)的新黃金十年?(上)

圖5 阿姆達(dá)爾定律對(duì)程序加速的影響

真實(shí)的程序當(dāng)然會(huì)更加復(fù)雜,部分組件允許在給定時(shí)刻使用不同數(shù)量的處理器。然而,需要定期性通信和同步意味著大部分應(yīng)用僅可高效使用一部分處理器。盡管阿姆達(dá)爾定律已經(jīng)出現(xiàn) 50 多年了,這仍然是一個(gè)很大的困難。

隨著登納德縮放定律的終結(jié),芯片內(nèi)核數(shù)量的增加意味著能耗也隨之增加。不幸的是,進(jìn)入處理器的電能有一部分會(huì)轉(zhuǎn)化為熱能,因此多核處理器受限于熱耗散功率(TDP),即封裝和冷卻系統(tǒng)在最大負(fù)載時(shí)的驅(qū)散熱量的最大限度。盡管一些高端數(shù)據(jù)中心可能使用更先進(jìn)的封裝和冷卻技術(shù),但沒(méi)有一個(gè)計(jì)算機(jī)用戶想要在自己桌子上放置小型熱交換器,或者為手機(jī)增加散熱器。TDP 的限制性直接導(dǎo)致了暗硅時(shí)代,也就是處理器通過(guò)降低時(shí)鐘頻率或關(guān)閉空閑內(nèi)核來(lái)防止處理器過(guò)熱。這種方法的另一種解釋是:一些芯片可將其寶貴的能量從空閑內(nèi)核轉(zhuǎn)移到活躍內(nèi)核。

登納德縮放定律的結(jié)束,摩爾定律放緩以及阿姆達(dá)爾定律正當(dāng)其時(shí),意味著低效性將每年的性能改進(jìn)限制在幾個(gè)百分點(diǎn)(如6所示)。想獲得高的性能改進(jìn)(像 20 世紀(jì)八九十年代那樣)需要新的架構(gòu)方法,新方法應(yīng)能更加高效地利用集成電路。接下來(lái)我們將討論現(xiàn)代計(jì)算機(jī)的另一個(gè)主要缺陷——計(jì)算機(jī)安全的支持以及缺乏,之后再繼續(xù)探討有效利用集成電路的新方法。

圖靈獎(jiǎng)得主長(zhǎng)文報(bào)告:是什么開(kāi)啟了計(jì)算機(jī)架構(gòu)的新黃金十年?(上)

圖6 計(jì)算機(jī)性能的提升(SPECintCPU)

被忽略的計(jì)算機(jī)安全

20 世紀(jì) 70 年代,處理器架構(gòu)師主要專注于計(jì)算機(jī)安全,涉及保護(hù)環(huán)和功能安全。架構(gòu)師們意識(shí)到,大部分漏洞都存在于軟件中,但他們認(rèn)為架構(gòu)能會(huì)有所幫助。這些功能大部分未被操作系統(tǒng)使用,這些操作系統(tǒng)有意專注于所謂的良性環(huán)境(如個(gè)人電腦),并且這些功能涉及大量消耗,因此被淘汰。在軟件社區(qū)中,很多人認(rèn)為正式驗(yàn)證技術(shù)如微內(nèi)核等技術(shù)會(huì)為構(gòu)建高度安全的軟件提供有效保障。不幸的是,我們的軟件系統(tǒng)規(guī)模和性能驅(qū)動(dòng)器意味著此類技術(shù)無(wú)法跟上處理器性能。結(jié)果就是大型軟件系統(tǒng)仍然有很多安全漏洞,且由于海量在線個(gè)人信息和云計(jì)算的使用,其影響被放大。

登納德縮放定律的終結(jié)意味著架構(gòu)師必須找到利用并行化的更高效方式。

架構(gòu)師們和其他人很晚才意識(shí)到安全的重要性,但他們已經(jīng)開(kāi)始對(duì)虛擬機(jī)和加密提供硬件支持。不幸的是,推測(cè)給許多處理器帶來(lái)了未知但明顯的安全缺陷。特別是,Meltdown和Spectre安全漏洞導(dǎo)致新漏洞利用位體系結(jié)構(gòu)中的漏洞,使受保護(hù)信息較快地遭到泄露,這兩種漏洞都使用了旁路攻擊。2018 年,研究者展示了在攻擊者不將代碼加載到目標(biāo)處理器的情況下,如何利用 Spectre 變體導(dǎo)致網(wǎng)絡(luò)信息泄露。盡管這次名為NetSpectre的攻擊泄露信息速度較慢,但它會(huì)使同一局域網(wǎng)(或云中同一集群)中的所有機(jī)器都受到攻擊,這會(huì)產(chǎn)生許多新的漏洞。還有兩個(gè)被報(bào)告的漏洞存在于虛擬機(jī)架構(gòu),其中一個(gè)叫Foreshadow,會(huì)影響專門保護(hù)高風(fēng)險(xiǎn)數(shù)據(jù)(如加密密鑰)的英特爾SGX 安全機(jī)制?,F(xiàn)在,每個(gè)月都會(huì)發(fā)現(xiàn)新的漏洞。

旁路攻擊并非新鮮事,但在最早期的大多數(shù)情況,軟件漏洞是攻擊成功的關(guān)鍵。但在Meltdown、Spectre 等攻擊中,硬件的缺陷導(dǎo)致受保護(hù)信息泄露。處理器架構(gòu)師如何定義什么是正確的ISA是一個(gè)源頭的難題,因?yàn)闃?biāo)準(zhǔn)中并未說(shuō)明執(zhí)行指令序列的性能影響,而僅僅涉及 ISA-visible 執(zhí)行架構(gòu)狀態(tài)。架構(gòu)師需要重新思考ISA正確實(shí)現(xiàn)的定義,以避免類似的安全漏洞。與此同時(shí),他們還應(yīng)該重新思考對(duì)計(jì)算機(jī)安全關(guān)注的側(cè)重點(diǎn),以及架構(gòu)師如何與軟件設(shè)計(jì)師一起實(shí)現(xiàn)更加安全的系統(tǒng)。架構(gòu)師(以及所有人)都過(guò)于依賴信息系統(tǒng),以至于對(duì)安全的重視程度不如對(duì)一流設(shè)計(jì)的關(guān)注。

雷鋒網(wǎng)編譯,via 本文編譯自 A New Golden Age for Computer Architecture,by John L. Hennessy, David A. Patterson 雷鋒網(wǎng)

相關(guān)文章:

獨(dú)家 | 計(jì)算機(jī)體系結(jié)構(gòu)頂級(jí)會(huì)議ISCA,2017圖靈獎(jiǎng)得主展望黃金時(shí)代

圖靈獎(jiǎng)得主John Hennessy、David Patterson訪談:未來(lái)小學(xué)生都能做機(jī)器學(xué)習(xí)

雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。

分享:
相關(guān)文章
最新文章
請(qǐng)?zhí)顚?xiě)申請(qǐng)人資料
姓名
電話
郵箱
微信號(hào)
作品鏈接
個(gè)人簡(jiǎn)介
為了您的賬戶安全,請(qǐng)驗(yàn)證郵箱
您的郵箱還未驗(yàn)證,完成可獲20積分喲!
請(qǐng)驗(yàn)證您的郵箱
立即驗(yàn)證
完善賬號(hào)信息
您的賬號(hào)已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
立即設(shè)置 以后再說(shuō)