91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

計算機架構(gòu)的新黃金十年開啟

jmiy_worldofai ? 來源:cc ? 2019-02-15 15:01 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

ISCA 2018 ,2017 圖靈獎頒獎現(xiàn)場,John L. Hennessy(左) 和 David A. Patterson(右)與 Alan Turing 的半身像合影

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

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

——George Santayana,1905

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

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

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

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

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

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

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

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

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

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

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

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

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

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

從CISC到RISC

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

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

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

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

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

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

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

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

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

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

VLIW、EPIC、Itanium

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

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

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

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

RISC vs. CISC,PC和后PC時代的宿命對決

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

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

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

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

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

“如果一個問題無解,那它可能不是一個問題,而是一個事實,我們不需要解決,而是隨著時間的推移來處理?!?/p>

——Shimon Peres

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

戈登·摩爾在1965年預(yù)測,集成電路的晶體管密度會每年翻一番,1975年又改為每兩年翻一番,這一預(yù)測最終被稱為摩爾定律。在這一預(yù)測中,晶體管密度呈二次增長,驚人的進化速度使架構(gòu)師可以用更多晶體管來提高性能。

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

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

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

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

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

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

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

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

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

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

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

圖5 阿姆達爾定律對程序加速的影響

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

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

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

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

被忽略的計算機安全

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

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

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

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

計算機架構(gòu)的未來機遇

「我們面前有一些令人目瞪口呆的機會,不過它們把自己偽裝成了看似無法解決的困難」。 -John Gardner

不論是對于 ILP 的技術(shù)或者多核心處理器,由于為通用計算設(shè)計的微處理器注定了效率較低,再加上Dennard Scaling定律和摩爾定律走向終結(jié),所以在我們看來,處理器架構(gòu)師和設(shè)計師們很有可能再也無法讓通用處理器的性能以之前那樣的速度繼續(xù)大幅提高。但是我們?nèi)匀恍枰朕k法繼續(xù)提升硬件性能、為未來的新的軟件功能留下發(fā)展空間,我們就必須仔細思考這個問題:有沒有其他的有潛力的方案?

比較明顯的方案有兩種,以及把這兩種方案合并在一起的話我們還可以得到第三種方案。

執(zhí)行性能優(yōu)化

第一種方案是,現(xiàn)代軟件的編寫中大量使用了高級語言,其中有動態(tài)類型和動態(tài)存儲管理。然而不幸的是,這些語言的編譯和執(zhí)行是非常低效的。Leiserson 等人用矩陣乘法的小例子說明了這種低效性。

Python 是一種當(dāng)前火熱的編程語言,也是一種典型的高級、動態(tài)類型語言。如下面圖 7,僅僅是把本來用 Python 編寫的程序用 C 語言重新寫一遍,就可以把程序的性能提高 47 倍。在多核心處理器上并行運行多個循環(huán)可以繼續(xù)得到大約 7 倍的性能提升。優(yōu)化程序的存儲布局,讓程序使用處理器中的緩存(而不是外部安裝的內(nèi)存)可以提升 20 倍性能,最后,如果加入拓展的計算硬件,用能夠在每個指令周期內(nèi)計算 16 次 32 位運算的單指令多數(shù)據(jù)并行(SIMD)計算單元進行運算的話,我們還可以再把性能提高9倍。把以上這些改進全部用起來的話,

一個運行在英特爾多核處理器上的、經(jīng)過高度優(yōu)化過的程序可以比最初的 Python 版本快超過 6 萬倍。

這當(dāng)然只是一個很小的例子,一般的程序員可能自己就會使用一個有優(yōu)化作用的庫來享受這種提升。雖然這個例子把性能的變化展現(xiàn)得很夸張,但是在許許多多的程序中,提升 100 倍或者 1000 倍的性能還是完全可以實現(xiàn)的。

圖 7

有一個有趣的研究方向是,考慮其中的一些性能差距是否可以用更好的編譯器技術(shù)來補上,當(dāng)然了也可以同時搭配一些計算架構(gòu)的改進。雖然高效的語言翻譯、以及高效實現(xiàn) Python 這類的高級腳本語言確實有很大困難,但潛在的性能收益也是巨大的。即便我們只實現(xiàn)了這些潛力中的 25% 就已經(jīng)可以讓 Python 程序的運行速度提高數(shù)十倍甚至一百倍。這個簡單的例子就清晰地展示了關(guān)注軟件工程師的生產(chǎn)力的現(xiàn)代編程語言和關(guān)注程序性能表現(xiàn)的傳統(tǒng)方法之間的巨大鴻溝。

設(shè)計專用硬件

領(lǐng)域?qū)S玫挠嬎慵軜?gòu)。除了改進軟件執(zhí)行效率的第一種方案之外,第二種方案更加以硬件為中心,那就是為某個特定的領(lǐng)域問題設(shè)計專用的計算架構(gòu),從而為這些問題帶來顯著的性能(和效率)提升。這種方案的名字,DSA,「domain-specific architectures」,描述的就是這種為特定的領(lǐng)域問題而專門定制設(shè)計的處理器,它們可編程,同樣也是圖靈完備的,但只適用于特定的某一類問題。從這個角度來講,它們和專用集成電路 ASIC 之間也有所不同,ASIC 只執(zhí)行單一的功能,對應(yīng)的程序代碼幾乎從不變化。DSA 則常被稱為加速器,相比于把程序的所有功能都在為通用計算的 CPU 上執(zhí)行,DSA 可以讓程序中的一部分計算運行得更快。更重要的是,DSA 可以讓一些程序得到明顯更高的性能,因為它們就是為了貼近這些程序的計算需求而設(shè)計的。圖像處理單元 GPU、深度學(xué)習(xí)中使用的神經(jīng)網(wǎng)絡(luò)芯片、軟件定義網(wǎng)絡(luò)處理器 SDN 都是典型的例子。DSA 可以達到高得多的性能表現(xiàn)和高得多的能量效率,是由于以下四個原因:

第一點,也是最重要的一點,DSA 可以為具體的領(lǐng)域問題采用更為高效的并行計算設(shè)計。比如,單指令多數(shù)據(jù)并行(SIMD)就比多指令多數(shù)據(jù)并行(MIMD)的效率高得多,因為它只需要獲取一條指令流就可以讓處理單元在鎖定步驟內(nèi)執(zhí)行運算。SIMD 的靈活性固然不如 MIMD 高,但是它很符合許多 DSA 的需求。DSA 中還有可能使用 VLIW 方案來實現(xiàn) ILP,而不是使用更復(fù)雜的亂序執(zhí)行機制。正如前面提到的,VLIW 無力與通用計算代碼競爭,但是在有限制條件的領(lǐng)域中它就可以高效得多,因為它的控制機制簡單得多。尤其是,多數(shù)的高端通用計算處理器都是亂序執(zhí)行的超標量處理器,對于指令初始化和指令完成都需要復(fù)雜的控制邏輯。相比之下,VLIW 在編譯的時候就已經(jīng)執(zhí)行好了必需的分析和流程規(guī)劃,在顯示并行的程序中就可以起到很好的效果。

第二,DSA 可以更高效地利用不同層次的存儲器。Horowitz 指出,讀寫存儲器的成本已經(jīng)變得高于數(shù)學(xué)運算的成本了。比如,從一個 32KB 容量的緩存里讀取一個塊需要消耗的能量差不多要比執(zhí)行一次 32 位整型加法高 200 倍。正因為這種差別的存在,想要達到高的能源效率,優(yōu)化存儲器的讀寫就至關(guān)重要。通用計算處理器執(zhí)行代碼的方式是,一般來說存儲器的讀寫都具有時間和空間上的局部性,但是其他狀況是在程序編譯時很難預(yù)測的。所以 CPU 會配合使用多級緩存,以便增加存儲器帶寬,同時緩解相對較慢的片外存儲(內(nèi)存,DRAM)的高延遲問題。CPU 消耗的電能里,常常有一半都是花在了這些多級緩存上面,不過它們的作用也就是避免了大多數(shù)對片外 DRAM 的訪問,要知道,讀寫 DRAM 消耗的能源要比讀寫最后一級緩存還要高差不多 10 倍。

緩存的缺點會在這兩種情況下暴露出來:

當(dāng)數(shù)據(jù)集非常大的時候,緩存的時間和空間局部性都很差;

當(dāng)緩存表現(xiàn)得非常好的時候,也就是說局部性非常高的時候,這其實說明大多數(shù)緩存都是空閑的。

在那些存儲器的讀寫模式有良好定義、在編譯時就可以發(fā)現(xiàn)的應(yīng)用中(典型的 DSL 都符合),程序員和程序的編譯器都可以優(yōu)化存儲器的使用,效果要比動態(tài)分配緩存更好。所以 DSA 通常會使用一個層次式的存儲器,它的操作也是由軟件明確定義的,這和向量處理器的運行方式很類似。對于適合的應(yīng)用,用戶控制的存儲器消耗的能源要比緩存低多了。

第三,在適當(dāng)?shù)臅r候,DSA 可以用更低的精度做運算。通用計算 CPU 一般支持 32 位和 64 位整型以及浮點數(shù)據(jù)運算。不過對于機器學(xué)習(xí)和圖形領(lǐng)域的許多應(yīng)用來說,這樣的精度都高于實際需求了。比如在深度神經(jīng)網(wǎng)絡(luò)中,推理任務(wù)經(jīng)常使用 4 位、8 位或者 16 位的整型,以獲取更高的數(shù)據(jù)吞吐量、更高的計算吞吐量。類似地,在深度神經(jīng)網(wǎng)絡(luò)的訓(xùn)練中需要使用浮點類型,32 位就已經(jīng)夠用了,16 位很多時候都可以。

第四,如果程序是用領(lǐng)域?qū)S谜Z言(DSL)編寫的,由于語言本身對并行化有更好的支持,DSA 也就可以從中受益。這改進了存儲器讀取的結(jié)構(gòu)和表示,也可以更容易地把應(yīng)用程序映射到一個領(lǐng)域?qū)S玫奶幚砥魃先ァ?/p>

領(lǐng)域?qū)S谜Z言

DSA 需要把編程語言中的高級操作對應(yīng)到硬件架構(gòu)上去,但是想要從 Python、Java、C、Fortan 這樣的為通用型計算設(shè)計的語言中提取這樣的結(jié)構(gòu)和信息實在是太難了。領(lǐng)域?qū)S谜Z言(DSL)讓這個過程變得可以實現(xiàn),而且也讓我們有機會高效地為 DSA 編程。比如,DSL 中可以定義顯式的向量、稠密矩陣、稀疏矩陣操作,這樣 DSL 的編譯器就可以高效地把這些操作映射到處理器中。許多語言屬于 DSL,比如矩陣運算語言 Matlab,深度神經(jīng)網(wǎng)絡(luò)編程用的數(shù)據(jù)流語言 TensorFlow,DSN 編程語言 P4,以及描述圖像處理中高級變換操作的 Halide。

使用 DSL 的時候也有一個挑戰(zhàn),就是如何讓硬件架構(gòu)設(shè)計保持足夠的獨立性,這樣在一種 DSL 中編寫的軟件可以遷移到不同的硬件架構(gòu),同時在把軟件映射到下方的 DSA 的時候還能過保持足夠高的效率。比如,TensorFlow 中的 XLA 系統(tǒng)可以把編寫的程序翻譯成使用不同處理器的版本,在英偉達 GPU 和谷歌 TPU 上都可以運行。在 DSA 之間平衡可遷移性的同時還要保持足夠高的效率,這對語言設(shè)計師、編譯器設(shè)計師、DSA 架構(gòu)師們來說都是一個有意思的科研挑戰(zhàn)。

下面用 TPUv1 這款 DSA 芯片舉例做詳細的解釋。谷歌 TPUv1 的設(shè)計目標是加速神經(jīng)網(wǎng)絡(luò)的推理過程。這款 TPU 從 2015 年就投入了生產(chǎn)環(huán)境開始使用,它支持著谷歌的各種應(yīng)用計算需求,包括搜索查詢、語言翻譯、圖像識別,一直到 DeepMind 的圍棋/象棋 AI AlphaGo/AlphaZero。這個芯片的設(shè)計目標就是把深度神經(jīng)網(wǎng)絡(luò)推理時的性能表現(xiàn)和能量效率提升 10 倍。

如下方圖 8 所示,TPU 的內(nèi)核結(jié)構(gòu)設(shè)計和通用計算處理器完全不同。其中的主計算單元是一個矩陣計算單元,這是一個脈動列表結(jié)構(gòu),它可以在每個時鐘周期進行一次 256x256 矩陣的乘法加法運算。在這項功能上聯(lián)合使用的 8 位精度、高效率的脈動架構(gòu)、SIMD 控制、專門劃分出的一大片芯片面積,最終讓這個乘法累加器的每時鐘周期性能比一般的單核心通用計算 CPU 提升了大約 100 倍。而且,TPU 中并沒有使用緩存,它使用的是大小為 24MB 的本地存儲器,這相當(dāng)于是 2015 年時期的相同功耗的 CPU 上帶有的緩存空間的 2 倍。最后,激活值存儲器和權(quán)重存儲器(以及保留權(quán)重的 FIFO 架構(gòu))都通過一個用戶控制的高帶寬存儲通道連接在一起。在基于谷歌數(shù)據(jù)中心的六種常見推理問題的加權(quán)性能統(tǒng)計中,TPU 要比通用計算 CPU 快 29 倍。由于 TPU 消耗的電能還不到 CPU 的一半,在處理這些負載時 TPU 的能量效率要比通用計算 CPU 高 80 倍還不止。

圖 8

總結(jié)

我們分析了通過提高硬件效率來提升程序運行性能的兩種不同的方案。方案一,改進通常是解釋執(zhí)行的現(xiàn)代高級編程語言的性能;方案二,設(shè)計領(lǐng)域?qū)S玫挠嬎慵軜?gòu),相比于通用計算 CPU 的表現(xiàn),這樣可以極大改進運行速度和能源效率。DSL 也是改進硬件/軟件接口,從而讓計算架構(gòu)設(shè)計師們可以做出 DSA 這樣的創(chuàng)新的另一個重要例子。

想要通過這些方式取得程序性能的顯著提高,需要一支垂直集成的設(shè)計團隊,他們需要了解應(yīng)用、了解領(lǐng)域?qū)S谜Z言以及對應(yīng)的編譯器技術(shù)、了解計算機架構(gòu)和組件,并且了解其中蘊含的實現(xiàn)技術(shù)。在整個計算機產(chǎn)業(yè)鏈變得水平整合之前,計算領(lǐng)域的許多早期工作都表現(xiàn)出了強烈的「垂直集成、可以跨越多個不同的抽象層次」的特點。而在現(xiàn)在這個新時代中,垂直整合能力變得更為重要,能夠做出重要的權(quán)衡并進行檢驗和優(yōu)化的團隊將會占有先機。

這些改進機會已經(jīng)引發(fā)了計算架構(gòu)創(chuàng)新的新浪潮,吸引了許多來自不同計算架構(gòu)設(shè)計邏輯的競爭者:

GPU - 英偉達 GPU 有許多核心,每個都有很大的寄存器,有許多硬件線程,也有緩存

TPU - 谷歌 TPU 主要依賴其中的大規(guī)模二維脈動乘法累加器,以及依靠軟件控制片上存儲

FPGA - 微軟在數(shù)據(jù)中心中部署了現(xiàn)場可編程邏輯陣列(FPGA),這些數(shù)據(jù)中心是專為神經(jīng)網(wǎng)絡(luò)應(yīng)用優(yōu)化的

CPU - 英特爾提供的 CPU 帶有許多核心,然后用大容量的多級別緩存和一維 SIMD 指令增強 CPU 的性能;英特爾也提供微軟使用的 FPGA,以及另一種更接近 TPU 的新型神經(jīng)網(wǎng)絡(luò)處理器。

除了這些大體量的競爭者之外,也有好幾十家初創(chuàng)企業(yè)提出了自己的想法。為了滿足不斷增長的計算需求,計算架構(gòu)設(shè)計師們把這樣的芯片成百上千地互相連接起來,形成了為神經(jīng)網(wǎng)絡(luò)計算服務(wù)的超級計算機。

深度神經(jīng)網(wǎng)絡(luò)的瀑布式結(jié)構(gòu)也為計算機架構(gòu)設(shè)計帶來一段有趣的時光。很難預(yù)測 2019 年中這些不同的方向中是否會出現(xiàn)勝利者,但是市場最終一定會為這場競爭分出勝負,就像它過去也曾分出了一場計算機架構(gòu)之爭的勝負一樣。

開放的架構(gòu)

受到開源軟件的成功的啟發(fā),計算機架構(gòu)的第二個發(fā)展機遇在于開放 ISA。為了創(chuàng)建一個「處理器的 Linux」,這個領(lǐng)域需要工業(yè)標準級別的開放 ISA,這樣整個生態(tài)中才可以創(chuàng)建開源的核心,在不同公司持有各自的專有核心架構(gòu)的環(huán)境中形成補充。如果許多組織結(jié)構(gòu)都使用同樣的 ISA 設(shè)計處理器,更激烈的競爭可能會帶來的更快的創(chuàng)新和發(fā)展。這里的發(fā)展目標是為不同的使用用途提供不同規(guī)模的處理器設(shè)計,可以有 100 美元一個的處理器,也可以有幾美分一個的處理器。

這里的第一個例子就是 RISC-V,UC 伯克利大學(xué)開發(fā)的第五代 RISC 架構(gòu)。在 RISC-V 基金會的管理之下,RISC-V 有一整個生態(tài)維護著這個架構(gòu)。選擇了開放,也就讓這個 ISA 也可以在公眾中露面,軟件和硬件專家們也可以在做出最終決定之前就展開合作。開放體系還會帶來一個好處,就是 ISA 很少會出于純市場營銷的原因而擴大,相比之下專有指令集就經(jīng)常會為了市場營銷而增擴充指令集。

首先,RISC-V 是一個模塊化的指令集。一小組基礎(chǔ)指令首先支持整個開源軟件框架的運行,然后有一些標準的拓展指令,設(shè)計師們可以根據(jù)自己的需求添加或者刪除?;A(chǔ)指令含有 32 位和 64 位地址的版本。RISC-V 指令集的增長完全可以只依靠可選的拓展指令的增加,支持軟件框架運行的基礎(chǔ)指令不增加任何新的拓展也不會有任何問題。專有指令集的處理器架構(gòu)一般都會需要向前的二進制兼容性,這意味著如果一家處理器制造商決定在某一代處理器中增加一個新的功能,那么這家制造商未來的所有處理器都需要保留對這個功能的支持。但 RISC-V 就不需要這樣,所有的功能增強都是可選的,而且如果沒有應(yīng)用需要的話就可以隨時刪除。目前 RISC-V 中有如下幾個標準的拓展指令集,用首字母作為它們的簡稱

M. 整型乘法/除法

A. 原子內(nèi)存操作

F/D. 單精度/雙精度浮點運算

C. 壓縮指令

其次,RISC-V 有一個特色是 ISA 的簡潔性。下面提供了一組 RISC-V 與 ARM 公司在近似時間開發(fā)的 ARMv8 架構(gòu)的對比,雖然對比的內(nèi)容不是完全可以量化的。

指令更少。RISC-V 的指令更少,基礎(chǔ)指令只有 50 條,這個數(shù)量和這些指令的性質(zhì)和最初的 RISC-I 驚人地相似。其它的幾個標準拓展指令集,M、A、F 和 D,一共增加 53 條指令,再加上 C 的另外 34 條,一共也只有 137 條。ARMv8 則有超過 500 條。

指令格式更少。RISC-V 的指令格式更少,只有 6 種,而 ARMv8 至少有 14 種。

第三,RISC-V 的簡潔性不僅降低了設(shè)計處理器的復(fù)雜度,也減小了驗證硬件正確性的難度。由于 RISC-V 的目標就是要應(yīng)用在包括數(shù)據(jù)庫的高性能計算芯片到 IoT 設(shè)備上的低功耗芯片上,設(shè)計驗證也可以在開發(fā)成本中占據(jù)不小的比例。

第四,RISC-V 是一個完全從頭開始的設(shè)計,它是在初始設(shè)計的 25 年后開始的。它的設(shè)計師們從前幾代的設(shè)計中吸取了許多錯誤經(jīng)驗。與第一代的 RISC 架構(gòu)不同,RISC-V 避開了依賴微架構(gòu)和依賴技術(shù)的特征(比如延遲分支和延遲載入)以及很新的創(chuàng)新(比如寄存器窗口),實際上這些功能都隨著編譯器技術(shù)的發(fā)展而被替代了。

最后,RISC-V 還可以為定制化設(shè)計的加速器提供很大的操作指令設(shè)計空間,這為 DSA 提供了良好的支持。

除了 RISC-V 之外,英偉達也在 2017 年發(fā)布了一個免費開放的架構(gòu),名為英偉達深度學(xué)習(xí)加速器(NVDLA),這是一個用于深度學(xué)習(xí)推理的標量、可配置的 DSA。它的可選配置包括數(shù)據(jù)類型(8 位整型、16 位整型、16 位浮點)以及其中的二維乘法矩陣的大小。根據(jù)不同的配置,芯片面積可以有 0.5mm2 到 3mm2 的不同大小,功耗也有 20mW 到 200mW 不同。這個架構(gòu)的 ISA、軟件架構(gòu)、實現(xiàn)方案也都是全部開放的。

開放的簡單架構(gòu)實際上會帶來安全方面的好處。首先,安全專家們并不相信模糊不清就可以帶來安全,所以開放的技術(shù)實現(xiàn)方案對他們更有吸引力;開放的技術(shù)實現(xiàn)也就需要開放的架構(gòu)。同等重要的是,有越來越多的人和組織機構(gòu)參與,也就可以圍繞安全的架構(gòu)設(shè)計做出更多改進。專用的架構(gòu)把參與者局限為企業(yè)的員工,而開放的架構(gòu)允許全世界學(xué)術(shù)和工業(yè)界的人參與提高安全性。更重要的是,這樣開放的架構(gòu)、技術(shù)實現(xiàn)、軟件架構(gòu),再加上 FPGA 的高可塑性,都意味著架構(gòu)設(shè)計師們可以在線部署并評價新的解決方案,而且這個周期不再是以年計,而是以周計。雖然 FPGA 比定制化芯片慢大約 10 倍,但這樣的性能表現(xiàn)也已經(jīng)足以支持用戶的在線使用,也就可以針對真正的攻擊者更及時地做出安全改進。我們期待開放的計算架構(gòu)未來成為架構(gòu)設(shè)計師和安全專家們進行軟硬件聯(lián)合設(shè)計的典型范例。

敏捷硬件開發(fā)

Beck 等人撰寫的《軟件敏捷開發(fā)手冊》為軟件開發(fā)領(lǐng)域帶來了一場革命,它克服了傳統(tǒng)瀑布式開發(fā)中精心設(shè)計的開發(fā)計劃和文檔經(jīng)常失效的問題。小的編程團隊得以快速開發(fā)出包含了核心功能但并不完善的軟件原型,然后在下一次迭代開始前就獲得用戶反饋。競爭性的敏捷開發(fā)可以讓 5 到 10 人的開發(fā)團隊以 2 到 4 周一次迭代的速度快速前進。

再一次,受到軟件開發(fā)領(lǐng)域成功經(jīng)驗的啟發(fā),硬件領(lǐng)域的第三個機遇就是敏捷硬件開發(fā)。對架構(gòu)設(shè)計師們來說也有一個好消息,現(xiàn)代電子計算機輔助設(shè)計(ECAD)工具提高了抽象級別,可以讓敏捷開發(fā)以及對應(yīng)的更高級別的抽象在不同的設(shè)計之間重復(fù)使用。

如果說要把軟件開發(fā)中的每四周一次迭代的快速前進方式照搬到硬件開發(fā),一聽之下會覺得難以置信,畢竟從硬件設(shè)計定版到得到芯片成品就有好幾個月的時間。而下面的圖 9 就展示了敏捷開發(fā)過程中可以在適當(dāng)?shù)某橄蠹墑e上更改原型。最中央的抽象級別是軟件模擬器,也是在迭代中做改動最簡單、最快的部分。下一層是可以比細致的軟件模擬器運行快數(shù)百倍的 FPGA。在 FPGA 上可以運行操作系統(tǒng),也可以進行全功能的性能評測,比如 SPEC 中的測試項目;這讓原型的評價更加準確。亞馬遜云服務(wù)就提供了 FPGA,架構(gòu)設(shè)計師們無需購買 FPGA 硬件并建立實驗室就可以使用 FPGA 做自己的驗證。為了獲得芯片面積和功耗的具體數(shù)值,下一層的 ECAD 工具可以生成芯片的布局圖。在工具運行完畢之后還需要人工進行一些步驟,對結(jié)果進行微調(diào),確保新的處理器已經(jīng)準備好投入生產(chǎn)了。處理器設(shè)計師們把這下一層稱作「tape in」。前面的這四個級別都可以使用每四周一次的迭代速度。

圖 9

如果是出于科研目的,我們在 tape in 這一步就可以停下來了,因為這時就已經(jīng)可以獲得非常準確的面積、能耗、性能的估計數(shù)據(jù)了。不過如果真的停下來的話,那就像參加長跑比賽,最后在重點線前 50 米停了下來,「因為可以準確地預(yù)測出最終要花多少時間了」。既然已經(jīng)在比賽的準備以及前面的大部分賽程中投入了許多精力,但只要不沖過終點線,那就沒辦法享受到真正的興奮和滿足。所以其實,硬件工程師在有個方面比軟件工程師強,就是因為他們最終會生產(chǎn)出切實可感的物品。把芯片成品拿回來測量、運行真正的程序、把芯片展示給他們的朋友和家人們看,這都是硬件設(shè)計工作中非常幸福的時刻。

許多研究人員會認為他們需要在芯片試產(chǎn)之前停下來,因為芯片的制造實在是太貴了。實際上,當(dāng)芯片很小的時候,它的制造價格就非常便宜。架構(gòu)設(shè)計師們委托半導(dǎo)體廠商制造 100 個 1mm2 面積的芯片只需要花 1.4 萬美元。如果是以 28nm 工藝制作,1mm2 的面積上就可以放下數(shù)百萬個晶體管,足以容納一個 RISC-V 處理器再加一個英偉達加速器。如果要制造一個很大的芯片,那么最外面這一步可能就會花很多錢,但是如果是為了展現(xiàn)新的想法的話,小的芯片就可以做到。

結(jié)論

「黎明之前正是最灰暗的時刻」-Thomas Fuller

要從歷史經(jīng)驗中學(xué)習(xí),有幾件事架構(gòu)師們必須知道:軟件開發(fā)領(lǐng)域的創(chuàng)新點子同樣可以啟發(fā)硬件架構(gòu)設(shè)計師們,提升硬件/軟件接口設(shè)計的抽象級別可以為創(chuàng)新帶來機會,以及市場最終會為計算機架構(gòu)之爭畫上句號。iAPX-432 和 Itanium 的故事說明了硬件架構(gòu)方面的投資可能無法帶來對等的回報,而 S/360、8086、ARM 架構(gòu)則能夠年復(fù)一年地帶來充沛的盈利。

Dennard Scaling 定律和摩爾定律走向終結(jié),以及標準微處理器的性能提升越來越慢并不是什么必須解決不可的問題,而實際上,它們完全可以看作是令人激動的新機遇。高級別、領(lǐng)域?qū)S玫恼Z言和架構(gòu)把架構(gòu)設(shè)計師們從專用指令集不斷擴充的鏈條中解放出來,同樣也釋放了公眾對于更高的安全性的需求,這都會帶來計算機架構(gòu)的新的黃金時代。另外依靠開源生態(tài)的幫助,敏捷開發(fā)的芯片也會越來越令人信服地展現(xiàn)出它的優(yōu)勢,并逐步越來越快地取得商業(yè)上的成功。對于通用處理器的設(shè)計理念,ISA 未來也將隨著時間的流逝而越發(fā)顯得熠熠生輝,就像 RISC 一樣。在新的黃金時代中我們可以期待繼續(xù)看到上個黃金時代那樣的高速發(fā)展,只不過這次首當(dāng)其沖的是價格、能耗以及安全,性能當(dāng)然也會有繼續(xù)的提高。

在未來 10 年中,我們可以期待在計算機架構(gòu)領(lǐng)域也看到寒武紀生物大爆炸那樣地充滿新鮮創(chuàng)意,這對于學(xué)術(shù)界和工業(yè)界的計算機架構(gòu)設(shè)計師們來說會是一段充滿激情的時光。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    11294

    瀏覽量

    225339
  • 計算機
    +關(guān)注

    關(guān)注

    19

    文章

    7816

    瀏覽量

    93272

原文標題:圖靈獎得主長文報告:是什么開啟了計算機架構(gòu)的新黃金十年?

文章出處:【微信號:worldofai,微信公眾號:worldofai】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    進制計算機硬件體系結(jié)構(gòu)及“獨值”量化邏輯運算革命(一)

    采用“獨值”量化邏輯理論設(shè)計十進制數(shù)字計算機,進制網(wǎng)絡(luò)計算機進制模擬計算機,進制模糊
    的頭像 發(fā)表于 01-29 09:13 ?994次閱讀
    <b class='flag-5'>十</b>進制<b class='flag-5'>計算機</b>硬件體系結(jié)構(gòu)及“獨值”量化邏輯運算革命(一)

    華為五大創(chuàng)新開啟非洲移動產(chǎn)業(yè)黃金十年

    在2025非洲通信展(AfricaCom 2025)期間,華為無線網(wǎng)絡(luò)產(chǎn)品線營銷副總裁陳實發(fā)表“創(chuàng)新開啟非洲移動產(chǎn)業(yè)黃金十年”主題演講,表示非洲是充滿活力的數(shù)字熱土,華為將聚焦“新流
    的頭像 發(fā)表于 11-14 16:23 ?1496次閱讀

    架構(gòu)計算機系統(tǒng)能力核心課程教學(xué)研討會圓滿舉行

    202511月8日,由教育部計算機類專業(yè)系統(tǒng)能力課程群虛擬教研室指導(dǎo)、北京航空航天大學(xué)計算機學(xué)院主辦的龍架構(gòu)計算機系統(tǒng)能力核心課程教學(xué)研討
    的頭像 發(fā)表于 11-14 13:52 ?669次閱讀

    Wi-Fi FEM研發(fā),開啟第二個十年

    轉(zhuǎn)載自《鐘林談芯》 人生如逆旅,我亦是行人。十年之旅,?一起同行,?步步開花,Wi-Fi FEM研發(fā),我們開啟第二個十年。 2015,在 銳迪科 (RDA)一起走進Wi-Fi FEM
    的頭像 發(fā)表于 11-12 15:37 ?465次閱讀
    Wi-Fi FEM研發(fā),<b class='flag-5'>開啟</b>第二個<b class='flag-5'>十年</b>

    NVIDIA DGX Spark桌面AI計算機開啟預(yù)訂

    DGX Spark 現(xiàn)已開啟預(yù)訂!麗臺科技作為 NVIDIA 授權(quán)分銷商,提供從產(chǎn)品到服務(wù)的一站式解決方案,助力輕松部署桌面 AI 計算機。
    的頭像 發(fā)表于 09-23 17:20 ?1377次閱讀
    NVIDIA DGX Spark桌面AI<b class='flag-5'>計算機</b><b class='flag-5'>開啟</b>預(yù)訂

    【作品合集】賽昉科技VisionFive 2單板計算機開發(fā)板測評

    體驗】安裝openplc【VisionFive 2單板計算機試用體驗】測試聲卡 作者:xinglong01【VisionFive 2單板計算機試用體驗】RISC-V架構(gòu)卡片計算機初體驗
    發(fā)表于 09-04 09:08

    工業(yè)計算機的重要性

    工業(yè)計算機對某些行業(yè)至關(guān)重要。我們將在下面詳細解釋這些行業(yè)中的工業(yè)計算機應(yīng)用。1.制造與工業(yè)自動化工業(yè)級計算機非常適合制造工廠,特別是那些想要自動化裝配過程的工廠。在這樣的環(huán)境中,工業(yè)計算機
    的頭像 發(fā)表于 07-28 16:07 ?615次閱讀
    工業(yè)<b class='flag-5'>計算機</b>的重要性

    自動化計算機經(jīng)過加固后有什么好處?

    讓我們討論一下部署堅固的自動化計算機的一些好處。1.溫度范圍寬自動化計算機經(jīng)過工程設(shè)計,配備了支持寬溫度范圍的組件,使自動化計算解決方案能夠在各種不同的極端環(huán)境中運行。自動化計算機能夠
    的頭像 發(fā)表于 07-21 16:44 ?659次閱讀
    自動化<b class='flag-5'>計算機</b>經(jīng)過加固后有什么好處?

    自動化計算機的功能與用途

    工業(yè)自動化是指利用自動化計算機來控制工業(yè)環(huán)境中的流程、機器人和機械,以制造產(chǎn)品或其部件。工業(yè)自動化的目的是提高生產(chǎn)率、增加靈活性,并提升制造過程的質(zhì)量。工業(yè)自動化在汽車制造中體現(xiàn)得最為明顯,其中許多
    的頭像 發(fā)表于 07-15 16:32 ?774次閱讀
    自動化<b class='flag-5'>計算機</b>的功能與用途

    工業(yè)計算機與商用計算機的區(qū)別有哪些

    工業(yè)計算機是一種專為工廠和工業(yè)環(huán)境設(shè)計的計算系統(tǒng),具有高可靠性和穩(wěn)定性,能夠應(yīng)對惡劣環(huán)境下的自動化、制造和機器人操作。其特點包括無風(fēng)扇散熱技術(shù)、無電纜連接和防塵防水設(shè)計,使其在各種工業(yè)自動化場景中
    的頭像 發(fā)表于 07-10 16:36 ?795次閱讀
    工業(yè)<b class='flag-5'>計算機</b>與商用<b class='flag-5'>計算機</b>的區(qū)別有哪些

    Blue Lion超級計算機將在NVIDIA Vera Rubin上運行

    德國萊布尼茨超算中心(LRZ)將迎來全新超級計算機 Blue Lion,其算力比該中心現(xiàn)有的 SuperMUC-NG 高性能計算機提升了約 30 倍。這臺新的超級計算機將在 NVIDIA Vera Rubin
    的頭像 發(fā)表于 06-12 15:39 ?1187次閱讀

    如何選擇合適的外形尺寸的工業(yè)計算機

    工業(yè)計算機尺寸的關(guān)鍵差異化因素工業(yè)計算機的尺寸因應(yīng)用要求、環(huán)境限制和性能能力而異。以下是區(qū)分它們的關(guān)鍵因素:物理尺寸(寬度、深度和高度):確定系統(tǒng)是否適合空間受限的機柜、控制面板或機架??蓴U展性
    的頭像 發(fā)表于 04-27 12:10 ?689次閱讀
    如何選擇合適的外形尺寸的工業(yè)<b class='flag-5'>計算機</b>

    一文帶你了解工業(yè)計算機尺寸

    工業(yè)計算機是現(xiàn)代自動化、人工智能(AI)和邊緣計算的支柱。這些堅固耐用的系統(tǒng)旨在承受惡劣的環(huán)境,同時為關(guān)鍵應(yīng)用提供可靠的性能。然而,由于有這么多可用的外形尺寸,為您的工業(yè)計算機選擇合適的尺寸可能是
    的頭像 發(fā)表于 04-24 13:35 ?1079次閱讀
    一文帶你了解工業(yè)<b class='flag-5'>計算機</b>尺寸

    計算機網(wǎng)絡(luò)入門指南

    計算機網(wǎng)絡(luò)是指將地理位置不同且具有獨立功能的多臺計算機及其外部設(shè)備,通過通信線路連接起來,在網(wǎng)絡(luò)操作系統(tǒng)、網(wǎng)絡(luò)管理軟件及網(wǎng)絡(luò)通信協(xié)議的管理和協(xié)調(diào)下,實現(xiàn)資源共享和信息傳遞的計算機系統(tǒng)。
    的頭像 發(fā)表于 04-22 14:29 ?2308次閱讀
    <b class='flag-5'>計算機</b>網(wǎng)絡(luò)入門指南

    Raspberry Pi 是單板計算機之王?

    如果你需要一臺小型且經(jīng)濟實惠的電腦來完成個人項目,那么現(xiàn)在正是最佳時機。單板計算機市場價值30億美元,預(yù)計未來十年將持續(xù)增長。這意味著有很多選擇,但除非你有非常具體的需求,否則在考慮其他選項之前,有
    的頭像 發(fā)表于 03-25 09:27 ?931次閱讀
    Raspberry Pi 是單板<b class='flag-5'>計算機</b>之王?