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

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

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

計(jì)算機(jī)體系結(jié)構(gòu)將迎來(lái)一個(gè)新的黃金時(shí)代!

DPVg_AI_era ? 來(lái)源:lq ? 2019-02-11 09:47 ? 次閱讀

圖靈獎(jiǎng)得主、計(jì)算機(jī)體系結(jié)構(gòu)宗師David Patterson與John Hennessy認(rèn)為,未來(lái)將是計(jì)算機(jī)體系結(jié)構(gòu)的黃金十年。最新一期的ACM通訊上刊登了兩人合著的論文《計(jì)算機(jī)體系結(jié)構(gòu)的新黃金時(shí)代》,闡述計(jì)算性能如何實(shí)現(xiàn)再一次飛升。

計(jì)算機(jī)體系結(jié)構(gòu)將迎來(lái)一個(gè)新的黃金時(shí)代!

2017年3月,計(jì)算機(jī)架構(gòu)領(lǐng)域兩位巨星級(jí)人物David Patterson與John Hennessy在斯坦福大學(xué)發(fā)表演講時(shí)如是說(shuō)。

當(dāng)時(shí),Hennessy最知名title是斯坦福大學(xué)前任校長(zhǎng),而Patterson則是伯克利的退休教授。他們1990年合著出版的《計(jì)算機(jī)體系架構(gòu):量化研究方法》被譽(yù)為領(lǐng)域“體系結(jié)構(gòu)圣經(jīng)”,培養(yǎng)和指導(dǎo)了無(wú)數(shù)處理器設(shè)計(jì)人才。

John Hennessy(左) 和David Patterson 拿著他們合著的《計(jì)算機(jī)體系架構(gòu):量化研究方法》,照片的拍攝時(shí)間大約是1991年。來(lái)源:ACM

當(dāng)時(shí),由GPU推動(dòng)的深度學(xué)習(xí)浪潮已然興起,谷歌推出了TPU,AI芯片創(chuàng)業(yè)公司林立,芯片市場(chǎng)群雄并起,連做軟件的人都能感到從硬件行業(yè)迸發(fā)出的熱氣。

很快,一年后,已經(jīng)出任谷歌母公司Alphabet董事長(zhǎng)的Hennessy和已經(jīng)加入谷歌TPU團(tuán)隊(duì)的Patterson又站在了一起,這次是為了紀(jì)念他們共同榮獲2017年的圖靈獎(jiǎng)。

他們的圖靈獎(jiǎng)演講題目叫做《計(jì)算機(jī)體系結(jié)構(gòu)的新黃金時(shí)代》(A New Golden Age for computer Architecture),兩人回顧了自20世紀(jì)60年代以來(lái)計(jì)算機(jī)體系結(jié)構(gòu)發(fā)展歷史,并展望人工智能為計(jì)算機(jī)架構(gòu)設(shè)計(jì)所帶來(lái)的新的挑戰(zhàn)和機(jī)遇。

在那次的圖靈演講中,David Patterson與John Hennessy還提到了軟件設(shè)計(jì)也能為計(jì)算機(jī)硬件架構(gòu)帶來(lái)靈感,改善軟硬件接口能為架構(gòu)創(chuàng)新帶來(lái)機(jī)遇?!霸谀柖勺呦蚪K點(diǎn)的同時(shí),體系結(jié)構(gòu)正在閃耀新的活力——以TPU為代表的領(lǐng)域特定架構(gòu) (Domain Specific Architectures, DSA) 興起,但CPU、GPU、FPGA仍然有用武之地,最終,市場(chǎng)會(huì)決定勝者。

2019年2月出版的Communications of the ACM,刊登了兩人的署名文章“A New Golden Age for computer Architecture”,在圖靈演講的基礎(chǔ)之上進(jìn)一步完善思想,并用文字將他們的洞見更加清晰地呈現(xiàn)。

“計(jì)算機(jī)體系結(jié)構(gòu)領(lǐng)域?qū)⒂瓉?lái)又一個(gè)黃金十年,就像20世紀(jì)80年代我們做研究那時(shí)一樣,新的架構(gòu)設(shè)計(jì)將會(huì)帶來(lái)更低的成本,更優(yōu)的能耗、安全和性能?!?/p>

下面是新智元對(duì)文章的編譯。

不能牢記過(guò)去的人,必定重蹈覆轍。

——George Santayana,1905年

軟件通過(guò)稱為指令集架構(gòu)(ISA)的詞匯表與硬件實(shí)現(xiàn)交互。在20世紀(jì)60年代初,IBM共推出了四個(gè)彼此不兼容的計(jì)算機(jī)系列,每個(gè)計(jì)算機(jī)系列都有自己的ISA、軟件堆棧和輸入/輸出系統(tǒng),分別針對(duì)小型企業(yè)、大型企業(yè),科研單位和實(shí)時(shí)運(yùn)算。 IBM的工程師們,包括ACM圖靈獎(jiǎng)獲獎(jiǎng)?wù)逨red Brooks在內(nèi),都認(rèn)為能夠創(chuàng)建一套新的ISA,將這四套ISA有效統(tǒng)一起來(lái)。

這需要一套技術(shù)解決方案,讓計(jì)算8位數(shù)據(jù)路徑的廉價(jià)計(jì)算機(jī)和計(jì)算64位數(shù)據(jù)路徑的昂貴計(jì)算機(jī)可以共享一個(gè)ISA。數(shù)據(jù)路徑(data path)是處理器的“肌肉”,因?yàn)檫@部分負(fù)責(zé)執(zhí)行算法,但相對(duì)容易“加寬”或“縮小”。當(dāng)時(shí)和現(xiàn)在計(jì)算機(jī)設(shè)計(jì)人員共同面臨的最大挑戰(zhàn)是處理器的“大腦”,即控制硬件。受軟件編程的啟發(fā),計(jì)算機(jī)先驅(qū)人物、圖靈獎(jiǎng)獲得者莫里斯·威爾克斯提出了簡(jiǎn)化控制流程的思路。控制部分被指定為一個(gè)二維數(shù)組,他稱之為“控制存儲(chǔ)”。數(shù)組的每一列對(duì)應(yīng)一條控制線,每一行都是微指令,寫微指令的操作稱為微編程??刂拼鎯?chǔ)包含使用微指令編寫的ISA解釋器,因此執(zhí)行一個(gè)傳統(tǒng)指令需要多個(gè)微指令完成??刂拼鎯?chǔ)通過(guò)內(nèi)存實(shí)現(xiàn),這比使用邏輯門的成本要低得多。

此表列出了IBM于1964年4月7日發(fā)布的新360系統(tǒng)的四種型號(hào)的指令集。四種型號(hào)之間。數(shù)據(jù)路徑相差8倍,內(nèi)存容量相差16倍,時(shí)鐘速率相差近4倍,而性能相差50倍,其中最昂貴的機(jī)型M65具有最大空間的控制存儲(chǔ),因?yàn)楦鼜?fù)雜的數(shù)據(jù)路徑需要使用更多的控制線。由于硬件更簡(jiǎn)單,成本最低的機(jī)型M30的控制存儲(chǔ)空間最小,但由于它們需要更多的時(shí)鐘周期來(lái)執(zhí)行360系統(tǒng)指令,因此需要有更多的微指令。

通過(guò)微程序設(shè)計(jì),IBM認(rèn)為新的ISA將能夠徹底改變計(jì)算行業(yè),贏得未來(lái)。 IBM統(tǒng)治了當(dāng)時(shí)的計(jì)算機(jī)市場(chǎng),55年前誕生的IBM大型機(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ī)開始使用集成電路時(shí),摩爾定律意味著控制存儲(chǔ)可能變得更大。更大的內(nèi)存可以運(yùn)行更復(fù)雜的ISA。1977年,數(shù)字設(shè)備公司(Digital Equipment)發(fā)布的VAX-11/780機(jī)型的控制存儲(chǔ)大小達(dá)到5120 word×96 bit,而其之前的型號(hào)僅為256 word×56 bit。

一些制造商選擇讓選定的客戶添加名為“可寫控制存儲(chǔ)”(WCS)的自定義功能來(lái)進(jìn)行微程序設(shè)計(jì)。最著名WCS計(jì)算機(jī)是Alto,這是圖靈獎(jiǎng)獲得者Chuck Thacker和Butler Lampson以及他們的同事們于1973年為Xerox Palo Alto研究中心設(shè)計(jì)制造的。它是第一臺(tái)個(gè)人計(jì)算機(jī),使用第一臺(tái)位映射顯示器和第一個(gè)以太局域網(wǎng)。用于支持新顯示器和網(wǎng)絡(luò)的設(shè)備控制器是存儲(chǔ)在4096 word×32 bit WCS中的微程序。

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

戈登·摩爾認(rèn)為英特爾的下一代指令集架構(gòu)將能夠延續(xù)英特爾的生命,他聘請(qǐng)了大批聰明的計(jì)算機(jī)科學(xué)博士,并將他們送到波特蘭的一個(gè)新工廠,以打造下一個(gè)偉大的指令集架構(gòu)。英特爾最初推出8800處理器是一個(gè)雄心勃勃的計(jì)算機(jī)架構(gòu)項(xiàng)目,適用于任何時(shí)代,它具有32位尋址能力、面向?qū)ο蟮捏w系結(jié)構(gòu),可變位的長(zhǎng)指令,以及用當(dāng)時(shí)新的編程語(yǔ)言Ada編寫的自己的操作系統(tǒng)。

圖1 IBM 360系列機(jī)型的參數(shù),IPS意為“每秒操作數(shù)”

這個(gè)雄心勃勃的項(xiàng)目遲遲不能退出,這迫使英特爾緊急改變計(jì)劃,于1979年推出一款16位微處理器。英特爾為新團(tuán)隊(duì)提供了52周的時(shí)間來(lái)開發(fā)新的“8086”指令集,并設(shè)計(jì)和構(gòu)建芯片。由于時(shí)間緊迫,設(shè)計(jì)ISA部分僅僅花了3周時(shí)間,主要是將8位寄存器和8080的指令集擴(kuò)展到了16位。團(tuán)隊(duì)最終按計(jì)劃完成了8086的設(shè)計(jì),但產(chǎn)品發(fā)布后幾乎沒(méi)有大張旗鼓的宣傳。

英特爾很走運(yùn),當(dāng)時(shí)IBM正在開發(fā)一款旨在與Apple II競(jìng)爭(zhēng)的個(gè)人計(jì)算機(jī),正需要16位微處理器。 IBM一度對(duì)摩托羅拉的68000型感興趣,它擁有類似于IBM 360的指令集架構(gòu),但與IBM激進(jìn)的方案相比顯得落后。IBM轉(zhuǎn)而使用英特爾8086的8位總線版本處理器。IBM于1981年8月12日宣布推出該機(jī)型,預(yù)計(jì)到1986年能夠賣出25萬(wàn)臺(tái),結(jié)果最終在全球賣出了1億臺(tái),未來(lái)前景一片光明。

英特爾的8800項(xiàng)目更名為iAPX-432,最終于1981年發(fā)布,但它需要多個(gè)芯片,并且存在嚴(yán)重的性能問(wèn)題。該項(xiàng)目在1986年終止,此前一年,英特爾將寄存器從16位擴(kuò)展到32位,在80386芯片中擴(kuò)展了8086指令集架構(gòu)。摩爾的預(yù)測(cè)是正確的,這個(gè)指令集確實(shí)和英特爾一直存續(xù)下來(lái),但市場(chǎng)卻選擇了緊急趕工的產(chǎn)品8086,而不是英特爾寄予厚望的iAPX-432,這對(duì)摩托羅拉68000和iAPX-432的架構(gòu)師來(lái)講,都是個(gè)現(xiàn)實(shí)的教訓(xùn),市場(chǎng)永遠(yuǎn)是沒(méi)有耐心的。

從復(fù)雜指令集計(jì)算機(jī)到精簡(jiǎn)指令集計(jì)算機(jī)。 20世紀(jì)80年代初期,對(duì)使用大型控制存儲(chǔ)中的大型微程序的復(fù)雜指令集計(jì)算機(jī)(CISC)的相關(guān)問(wèn)題進(jìn)行過(guò)幾項(xiàng)調(diào)查。Unix的廣泛應(yīng)用,證明連操作系統(tǒng)都可以使用高級(jí)語(yǔ)言,所以關(guān)鍵問(wèn)題就是:“編譯器會(huì)產(chǎn)生什么指令?”而不是“程序員使用什么匯編語(yǔ)言?”軟硬件交互手段的顯著進(jìn)步,為架構(gòu)創(chuàng)新創(chuàng)造了機(jī)會(huì)。

圖靈獎(jiǎng)獲得者John Cocke和他的同事為小型計(jì)算機(jī)開發(fā)了更簡(jiǎn)單的指令集架構(gòu)和編譯器。作為一項(xiàng)實(shí)驗(yàn),他們重新定位了研究編譯器,只使用簡(jiǎn)單的寄存器-寄存器操作和IBM 360指令集加載存儲(chǔ)數(shù)據(jù)傳輸,避免了使用更復(fù)雜的指令。他們發(fā)現(xiàn),使用簡(jiǎn)單子集的程序運(yùn)行速度提高了三倍。 Emer和Clark發(fā)現(xiàn),20%的VAX指令需要60%的微代碼,僅占執(zhí)行時(shí)間的0.2%。Patterson發(fā)現(xiàn),如果微處理器制造商要遵循大型計(jì)算機(jī)的CISC指令集設(shè)計(jì),就需要一種方法來(lái)修復(fù)微代碼錯(cuò)誤。

Patterson就此問(wèn)題寫了一篇論文,但被《計(jì)算機(jī)》期刊拒稿。審稿人認(rèn)為,構(gòu)建具有ISA的微處理器是一個(gè)糟糕的想法,因?yàn)檫@需要在現(xiàn)場(chǎng)進(jìn)行修復(fù)。這讓人懷疑,CISC 指令集對(duì)微處理器的價(jià)值究竟有多大。具有諷刺意味的是,現(xiàn)代CISC微處理器確實(shí)包含微代碼修復(fù)機(jī)制,但這篇論文被拒的主要結(jié)果是,激勵(lì)了他開始研究面向微處理器的精簡(jiǎn)指令集,即復(fù)雜度較低的指令集架構(gòu),以及使用精簡(jiǎn)指令集的計(jì)算機(jī)(RISC)。

這些觀點(diǎn)的產(chǎn)生,以及由匯編語(yǔ)言向高級(jí)語(yǔ)言的轉(zhuǎn)變,為CISC向RISC的過(guò)渡創(chuàng)造了條件。首先,RISC指令經(jīng)過(guò)簡(jiǎn)化,因此不再需要微代碼解釋器。 RISC指令通常與微指令一樣簡(jiǎn)單,硬件能夠直接執(zhí)行。其次,以前用于CISC 指令集的微代碼解釋器的快速存儲(chǔ)器被重新用作RISC指令的高速緩存。(緩存是一個(gè)小而快速的內(nèi)存,用于緩沖最近執(zhí)行的指令,因?yàn)檫@類指令很快就會(huì)被再次調(diào)用。)第三,基于Gregory Chaitin的圖著色方案的寄存器分配器,使編譯器能夠更簡(jiǎn)易、高效地使用寄存器,最后,摩爾定律意味著在20世紀(jì)80年代能夠誕生有足夠數(shù)量的晶體管的芯片,可以容納一個(gè)完整的32位數(shù)據(jù)路徑、指令集和數(shù)據(jù)高速緩存。

在今天的“后PC時(shí)代”,x86芯片的出貨量自2011年達(dá)到峰值以來(lái),每年下降近10%,而采用RISC處理器的芯片出貨量則飆升至200億。

下圖分別為1982年和1983年在加州大學(xué)伯克利分校和斯坦福大學(xué)開發(fā)的RISC-I8和MIPS12微處理器,體現(xiàn)出了RISC的優(yōu)點(diǎn)。這些芯片最終于1984年在IEEE國(guó)際固態(tài)電路會(huì)議上發(fā)表。這是一個(gè)了不起的時(shí)刻,伯克利和斯坦福的一些研究生也可以構(gòu)建微處理器了,可以說(shuō)比行業(yè)內(nèi)的產(chǎn)品更優(yōu)秀。

圖2由加州大學(xué)伯克利分校開發(fā)的RISC-I8和斯坦福大學(xué)開發(fā)的MIPS12微處理器

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

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

DEC公司的工程師后來(lái)表明,更復(fù)雜的CISC指令集每個(gè)程序執(zhí)行的操作數(shù)大約為RISC的75%執(zhí)行大約75%,不過(guò)在類似的技術(shù)下,CISC每個(gè)指令執(zhí)行時(shí)間約為五到六個(gè)時(shí)鐘周期,使RISC微處理器的運(yùn)算速度是CISC的大約4倍。

20世紀(jì)80年代時(shí),這些內(nèi)容還沒(méi)有進(jìn)入計(jì)算機(jī)體系結(jié)構(gòu)的書中,所以我們?cè)?989年編寫《計(jì)算機(jī)架構(gòu):定量方法》(Computer Architecture: AQuantitative Approach)一書。本書的主題是使用測(cè)量和基準(zhǔn)測(cè)試來(lái)對(duì)計(jì)算機(jī)架構(gòu)進(jìn)行量化評(píng)估,而不是更多地依賴于架構(gòu)師的直覺和經(jīng)驗(yàn),就像過(guò)去一樣。我們使用的定量方法也得益于圖靈獎(jiǎng)得主高德納(Donald Knuth)關(guān)于算法的著作內(nèi)容的啟發(fā)。

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

英特爾和惠普合作設(shè)計(jì)了一款基于EPIC理念的64位處理器Itanium,想用其取代32位x86處理器并對(duì)其抱了很高的期望,但實(shí)際情況與他們的早期預(yù)期并不相符。雖然EPIC方法適用于高度結(jié)構(gòu)化的浮點(diǎn)程序,但在可預(yù)測(cè)性較低的緩存或的分支整數(shù)程序上很難實(shí)現(xiàn)高性能。正如高德納后來(lái)所指出的那樣:“Itanium的設(shè)想非常棒,但事實(shí)證明滿足這種設(shè)想的編譯器基本上不可能寫出來(lái)?!?開發(fā)人員注意到Itanium的遲鈍和性能不佳,將用命途多舛的游輪“Titanic”其重命名為“Itanic”。不過(guò),市場(chǎng)再次失去了耐心,最終64位版本的x86成為32位x86的繼承者,沒(méi)有輪到Itanium。

不過(guò)一個(gè)好消息是,VLIW在較窄的應(yīng)用程序與小程序上,包括數(shù)字信號(hào)處理任務(wù)中留有一席之地。

PC和后PC時(shí)代的RISC vs. CISC

AMD和英特爾利用500人的設(shè)計(jì)團(tuán)隊(duì)和先進(jìn)的半導(dǎo)體技術(shù),縮小了x86和RISC之間的性能差距。同樣,受到流水線化簡(jiǎn)單指令vs.復(fù)雜指令的性能優(yōu)勢(shì)的啟發(fā),指令解碼器在運(yùn)行中將復(fù)雜的x86指令轉(zhuǎn)換成類似RISC的內(nèi)部微指令。AMD和英特爾隨后將RISC微指令的執(zhí)行流程化。RISC的設(shè)計(jì)人員為了性能所提出的任何想法,例如隔離指令和數(shù)據(jù)緩存、片上二級(jí)緩存、deep pipelines以及同時(shí)獲取和執(zhí)行多條指令等,都可以集成到x86中。在2011年P(guān)C時(shí)代的巔峰時(shí)期,AMD和英特爾每年大約出貨3.5億臺(tái)x86微處理器。PC行業(yè)的高產(chǎn)量和低利潤(rùn)率也意味著價(jià)格低于RISC計(jì)算機(jī)。

考慮到全球每年售出數(shù)億臺(tái)個(gè)人電腦,PC軟件成為了一個(gè)巨大的市場(chǎng)。盡管Unix市場(chǎng)的軟件供應(yīng)商會(huì)為不同的商業(yè)RISC ISA (Alpha、HP-PA、MIPS、Power和SPARC)提供不同的軟件版本,但PC市場(chǎng)只有一個(gè)ISA,因此軟件開發(fā)人員發(fā)布的“壓縮打包”軟件只能與x86 ISA兼容。更大的軟件基礎(chǔ)、相似的性能和更低的價(jià)格使得x86在2000年之前同時(shí)統(tǒng)治了臺(tái)式機(jī)和小型服務(wù)器市場(chǎng)。

Apple公司在2007年推出了iPhone,開創(chuàng)了后PC時(shí)代。智能手機(jī)公司不再購(gòu)買微處理器,而是使用其他公司的設(shè)計(jì)(包括ARM的RISC處理器),在芯片上構(gòu)建自己的系統(tǒng)(SoC)。移動(dòng)設(shè)備的設(shè)計(jì)者不僅重視性能,而且重視晶格面積和能源效率,這對(duì)CISC ISA不利。此外,物聯(lián)網(wǎng)的到來(lái)大大增加了處理器的數(shù)量,以及在晶格大小、功率、成本和性能方面所需的權(quán)衡。這種趨勢(shì)增加了設(shè)計(jì)時(shí)間和成本的重要性,進(jìn)一步不利于CISC處理器。在今天的后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正在贏得整個(gè)后PC時(shí)代。幾十年來(lái),沒(méi)有出現(xiàn)新的CISC ISA。令我們吃驚的是,今天在通用處理器的最佳ISA原則方面的共識(shí)仍然是RISC,盡管距離它們的推出已經(jīng)過(guò)去35年了。

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

雖然上一節(jié)的重點(diǎn)是指令集體系結(jié)構(gòu)(ISA)的設(shè)計(jì),但大多數(shù)計(jì)算機(jī)架構(gòu)師并不設(shè)計(jì)新的ISA,而是在當(dāng)前的實(shí)現(xiàn)技術(shù)中實(shí)現(xiàn)現(xiàn)有的ISA。自20世紀(jì)70年代末以來(lái),技術(shù)的選擇一直是基于金屬氧化物半導(dǎo)體(MOS)的集成電路,首先是n型金屬氧化物半導(dǎo)體(nMOS),然后是互補(bǔ)金屬氧化物半導(dǎo)體(CMOS)。MOS技術(shù)驚人的改進(jìn)速度(Gordon Moore的預(yù)測(cè)中已經(jīng)提到這一點(diǎn))已經(jīng)成為驅(qū)動(dòng)因素,使架構(gòu)師能夠設(shè)計(jì)更積極的方法來(lái)實(shí)現(xiàn)給定ISA的性能。摩爾在1965年26年的最初預(yù)測(cè)要求晶體管密度每年翻一番;1975年,他對(duì)其進(jìn)行了修訂,預(yù)計(jì)每?jī)赡攴环_@最終被稱為摩爾定律。由于晶體管密度呈二次增長(zhǎng),而速度呈線性增長(zhǎng),架構(gòu)師們使用了更多的晶體管來(lái)提高性能。

摩爾定律和 Dennard Scaling的終結(jié)

盡管摩爾定律已經(jīng)存在了幾十年(見圖2),但它在2000年左右開始放緩,到2018年,摩爾的預(yù)測(cè)與目前的能力之間的差距大約是15倍。目前的預(yù)期是,隨著CMOS技術(shù)接近基本極限,差距將繼續(xù)擴(kuò)大。

圖2:每片英特爾微處理器的晶體管與摩爾定律的差別

與摩爾定律相伴而來(lái)的是羅伯特·登納德(Robert Dennard)的預(yù)測(cè),稱為“登納德縮放比例”(Dennard Scaling)。該定律指出,隨著晶體管密度的增加,每個(gè)晶體管的功耗會(huì)下降,因此每平方毫米硅的功耗幾乎是恒定的。由于硅的計(jì)算能力隨著每一代新技術(shù)的發(fā)展而提高,計(jì)算機(jī)將變得更加節(jié)能。Dennard Scaling在2007年開始顯著放緩,到2012年幾乎變?yōu)榱?見圖3)。

圖3:Transistors per chip and power per mm2.

在1986年到2002年之間,指令級(jí)并行(ILP)的開發(fā)是提高性能的主要架構(gòu)方法,并且隨著晶體管速度的提高,每年的性能增長(zhǎng)大約50%。Dennard Scaling的結(jié)束意味著架構(gòu)師必須找到更有效的方法來(lái)利用并行性。

要理解為什么ILP的增加會(huì)導(dǎo)致更大的效率低下,可以考慮一個(gè)像ARM、Intel和AMD這樣的現(xiàn)代處理器核心。假設(shè)它有一個(gè)15-stage的pipeline,每個(gè)時(shí)鐘周期可以發(fā)出四條指令。因此,它在任何時(shí)刻都有多達(dá)60條指令在pipeline中,包括大約15個(gè)分支,因?yàn)樗鼈兇砹舜蠹s25%的執(zhí)行指令。為了使pipeline保持完整,需要預(yù)測(cè)分支,并推測(cè)地將代碼放入pipeline中以便執(zhí)行。投機(jī)性的使用是ILP性能和效率低下的根源。當(dāng)分支預(yù)測(cè)完美時(shí),推測(cè)可以提高性能,但幾乎不需要額外的能源成本——甚至可以節(jié)省能源——但是當(dāng)它“錯(cuò)誤地預(yù)測(cè)”分支時(shí),處理器必須扔掉錯(cuò)誤推測(cè)的指令,它們的計(jì)算工作和能量就被浪費(fèi)了。處理器的內(nèi)部狀態(tài)也必須恢復(fù)到錯(cuò)誤預(yù)測(cè)分支之前的狀態(tài),這將花費(fèi)額外的時(shí)間和精力。

要了解這種設(shè)計(jì)的挑戰(zhàn)性,請(qǐng)考慮正確預(yù)測(cè)15個(gè)分支的結(jié)果的難度。如果處理器架構(gòu)師希望將浪費(fèi)的工作限制在10%的時(shí)間內(nèi),那么處理器必須在99.3%的時(shí)間內(nèi)正確預(yù)測(cè)每個(gè)分支。很少有通用程序具有能夠如此準(zhǔn)確預(yù)測(cè)的分支。

為了理解這些浪費(fèi)的工作是如何累加起來(lái)的,請(qǐng)考慮下圖中的數(shù)據(jù),其中顯示了有效執(zhí)行但由于處理器的錯(cuò)誤推測(cè)而被浪費(fèi)的指令的部分。在Intel Core i7上,這些基準(zhǔn)測(cè)試平均浪費(fèi)了19%的指令。

圖4

但是,浪費(fèi)的能量更大,因?yàn)樘幚砥髟谕茰y(cè)錯(cuò)誤時(shí)必須使用額外的能量來(lái)恢復(fù)狀態(tài)。這樣的度量導(dǎo)致許多人得出結(jié)論,架構(gòu)師需要一種不同的方法來(lái)實(shí)現(xiàn)性能改進(jìn)。多核時(shí)代就這樣誕生了。

多核將識(shí)別并行性和決定如何利用并行性的責(zé)任轉(zhuǎn)移給程序員和語(yǔ)言系統(tǒng)。多核并不能解決由于登納德縮放比例定律結(jié)束而加劇的節(jié)能計(jì)算的挑戰(zhàn)。無(wú)論有源堆芯對(duì)計(jì)算的貢獻(xiàn)是否有效,有源堆芯都會(huì)消耗能量。

一個(gè)主要的障礙是Amdahl定律,它指出并行計(jì)算機(jī)的加速受到連續(xù)計(jì)算部分的限制。為了理解這一觀察的重要性,請(qǐng)考慮下圖,其中顯示了假設(shè)串行執(zhí)行的不同部分(其中只有一個(gè)處理器處于活動(dòng)狀態(tài)),在最多64個(gè)內(nèi)核的情況下,應(yīng)用程序的運(yùn)行速度要比單個(gè)內(nèi)核快得多。例如,當(dāng)只有1%的時(shí)間是串行的,64處理器配置的加速大約是35。不幸的是,所需的功率與64個(gè)處理器成正比,因此大約45%的能量被浪費(fèi)了。

圖5

當(dāng)然,真正的程序有更復(fù)雜的結(jié)構(gòu),其中部分允許在任何給定的時(shí)間點(diǎn)使用不同數(shù)量的處理器。盡管如此,定期通信和同步的需求意味著大多數(shù)應(yīng)用程序的某些部分只能有效地使用一部分處理器。盡管Amdahl定律已有50多年的歷史,但它仍然是一個(gè)困難的障礙。

隨著Dennards Scaling定律的結(jié)束,芯片上內(nèi)核數(shù)量的增加意味著功率也在以幾乎相同的速度增長(zhǎng)。不幸的是,進(jìn)入處理器的能量也必須以熱量的形式被移除。因此,多核處理器受到熱耗散功率(TDP)的限制,即封裝和冷卻系統(tǒng)可以移除的平均功率。雖然一些高端數(shù)據(jù)中心可能會(huì)使用更先進(jìn)的軟件包和冷卻技術(shù),但沒(méi)有電腦用戶愿意在辦公桌上安裝一個(gè)小型熱交換器,或者在背上安裝散熱器來(lái)冷卻手機(jī)。TDP的限制直接導(dǎo)致了“暗硅”時(shí)代,處理器會(huì)降低時(shí)鐘速率,關(guān)閉空閑內(nèi)核以防止過(guò)熱。另一種看待這種方法的方法是,一些芯片可以重新分配他們寶貴的權(quán)力,從空閑的核心到活躍的。

一個(gè)沒(méi)有Dennards Scaling,摩爾定律減速、Amdahl法則完全有效的時(shí)代,意味著低效率限制了性能的提升,每年只有幾個(gè)百分點(diǎn)的提升(見圖6)。實(shí)現(xiàn)更高的性能改進(jìn)需要新的架構(gòu)方法,更有效地使用集成電路功能。在討論了現(xiàn)代計(jì)算機(jī)的另一個(gè)主要缺點(diǎn)后,我們將回到可能起作用的方法上來(lái)。

圖6

被忽視的安全問(wèn)題

20世紀(jì)70年代,處理器架構(gòu)師將重點(diǎn)放在通過(guò)保護(hù)環(huán)等概念來(lái)增強(qiáng)計(jì)算機(jī)安全性上。這些架構(gòu)師充分認(rèn)識(shí)到大多數(shù)錯(cuò)誤將出現(xiàn)在軟件中,但是他們相信架構(gòu)支持可以提供幫助。這些特性在很大程度上沒(méi)有被操作系統(tǒng)所采用,這些操作系統(tǒng)被有意地集中在所謂的良性環(huán)境中(比如個(gè)人電腦),并且成本很高,所以很快被放棄了。在軟件社區(qū)中,許多人認(rèn)為正式驗(yàn)證機(jī)制和微內(nèi)核這樣的技術(shù),將為構(gòu)建高度安全的軟件提供有效的機(jī)制。遺憾的是,規(guī)模化軟件系統(tǒng)和對(duì)性能的追求,使得這些技術(shù)無(wú)法跟上處理器的性能。其結(jié)果是,大型軟件系統(tǒng)仍然存在許多安全缺陷,由于在線個(gè)人信息的大量增加,以及云計(jì)算的大規(guī)模應(yīng)用,這種缺陷的影響被進(jìn)一步放大了。

盡管計(jì)算機(jī)架構(gòu)師們安全性的重要意識(shí)方面進(jìn)展緩慢,但他們也已經(jīng)開始為虛擬機(jī)和加密硬件提供安全支持。遺憾的是,這也可能為不少處理器帶來(lái)了一個(gè)未知、但重要的安全缺陷。尤其是,Meltdown和Spectre安全缺陷導(dǎo)致了新的漏洞,這些漏洞會(huì)利用微架構(gòu)中的漏洞,使得本來(lái)受保護(hù)的信息迅速泄露。Meltdown和Spectre使用所謂的側(cè)通道攻擊(Side-channel attacks),通過(guò)觀察任務(wù)所需時(shí)間,將ISA級(jí)別上不可見的信息轉(zhuǎn)換為時(shí)間上可見的屬性,從而泄露信息。

2018年,研究人員展示了如何利用Spectre的變種在網(wǎng)絡(luò)上泄露信息,而攻擊者并不需要將代碼加載到目標(biāo)處理器上。盡管這種被稱為NetSpectre的攻擊泄漏信息速度很慢,但它可以讓同一局域網(wǎng)(或云中的同一集群)上的任何機(jī)器受到攻擊,這又產(chǎn)生了許多新的漏洞。隨后有報(bào)告稱發(fā)現(xiàn)了虛擬機(jī)體系結(jié)構(gòu)中的另外兩個(gè)漏洞。其中一種被稱為“預(yù)見”(hadow),可以滲透英特爾旨在保護(hù)高風(fēng)險(xiǎn)數(shù)據(jù)(如加密密鑰)的安全機(jī)制。此后每月都有新的漏洞被發(fā)現(xiàn)。

側(cè)通道攻擊并不新鮮,但在早期,軟件缺陷導(dǎo)致這種攻擊往往能夠成功。在Meltdown和Spectre和其他攻擊中,導(dǎo)致受保護(hù)信息泄露的是硬件實(shí)現(xiàn)中的一個(gè)缺陷。處理器架構(gòu)師在如何定義ISA的正確實(shí)現(xiàn)上存在基本的困難,因?yàn)闃?biāo)準(zhǔn)定義中并沒(méi)有說(shuō)明執(zhí)行指令序列對(duì)性能的影響,只是說(shuō)明了執(zhí)行指令的ISA可見的體系結(jié)構(gòu)狀態(tài)。處理器架構(gòu)師們需要重新考慮ISA的正確實(shí)現(xiàn)的定義,以防范此類安全缺陷。同時(shí),架構(gòu)師們應(yīng)該重新考慮他們對(duì)計(jì)算機(jī)安全性的關(guān)注程度,以及如何與軟件設(shè)計(jì)人員合作來(lái)打造更安全的系統(tǒng)。從目前來(lái)看,架構(gòu)師過(guò)于依賴于信息系統(tǒng),并不愿意將安全性問(wèn)題視為設(shè)計(jì)時(shí)的首要關(guān)注焦點(diǎn)。

計(jì)算機(jī)體系結(jié)構(gòu)新機(jī)遇

“我們面前的一些令人嘆為觀止的機(jī)會(huì)被偽裝成不可解決的問(wèn)題?!?——John Gardner,1965年

通用處理器固有的低效率,無(wú)論是由ILP技術(shù)還是多核所致,加上登納德縮放定律(DennardScaling)和摩爾定律的終結(jié),使我們認(rèn)為處理器架構(gòu)師和設(shè)計(jì)人員在一般情況下難以繼續(xù)保持通用處理器性能實(shí)現(xiàn)顯著的提升。而鑒于提高處理器性能以實(shí)現(xiàn)新的軟件功能的重要性,我們必須要問(wèn):還有哪些其他可行的方法?

有兩個(gè)很清楚的機(jī)會(huì),以及將兩者結(jié)合起來(lái)所創(chuàng)造出的第三個(gè)機(jī)會(huì)。首先,現(xiàn)有的軟件構(gòu)建技術(shù)廣泛使用具有動(dòng)態(tài)類型和存儲(chǔ)管理的高級(jí)語(yǔ)言。不幸的是,這些語(yǔ)言的可解釋性和執(zhí)行效率往往非常低。Leiserson等人用矩陣乘法運(yùn)算為例來(lái)說(shuō)明這種低效率。如圖7所示,簡(jiǎn)單地把動(dòng)態(tài)高級(jí)語(yǔ)言Python重寫為C語(yǔ)言代碼,將性能提高了47倍。使用多核并行循環(huán)處理將性能提升了大約7倍。優(yōu)化內(nèi)存布局提高緩存利用率,將性能提升了20倍,最后,使用硬件擴(kuò)展來(lái)執(zhí)行單指令多數(shù)據(jù)(SIMD)并行操作每條指令能夠執(zhí)行16個(gè)32位操作,讓性能提高了9倍??偠灾?,與原始Python版本相比,最終的高度優(yōu)化版在多核英特爾處理器上的運(yùn)行速度提高了62,000倍。這當(dāng)然只是一個(gè)小的例子,程序員應(yīng)該使用優(yōu)化后的代碼庫(kù)。雖然它夸大了通常的性能差距,但有許多軟件都可以實(shí)現(xiàn)這樣性能100倍到1000倍的提升。

一個(gè)有趣的研究方向是關(guān)于是否可以使用新的編譯器技術(shù)來(lái)縮小某些性能差距,這可能有助于體系結(jié)構(gòu)的增強(qiáng)。盡管高效編譯和實(shí)現(xiàn)Python等高級(jí)腳本語(yǔ)言的難度很大,但潛在的收益也是巨大的。哪怕編譯性能提升25%的潛在收益都可能使Python程序運(yùn)行速度提高數(shù)十乃至數(shù)百倍。這個(gè)簡(jiǎn)單的例子說(shuō)明了在注重程序員效率的現(xiàn)代語(yǔ)言與傳統(tǒng)方法之間有多大的差距。

領(lǐng)域特定結(jié)構(gòu)(DAS)。一個(gè)更加以硬件為中心的方法,是設(shè)計(jì)針對(duì)特定問(wèn)題域定制的體系結(jié)構(gòu),并為該領(lǐng)域提供顯著的性能(和能效)增益,這也被稱之為“領(lǐng)域特定結(jié)構(gòu)”(DSA),是一種為特定領(lǐng)域可編程且通常是圖靈完整的,但針對(duì)特定應(yīng)用程序類別進(jìn)行了定制。從這個(gè)意義上說(shuō),DSA與專用集成電路(ASIC)不同,后者通常用于單一功能,代碼很少發(fā)生變化。DSA通常稱為加速器,因?yàn)榕c在通用CPU上執(zhí)行整個(gè)應(yīng)用程序相比,它們只會(huì)加速某些應(yīng)用程序。此外,DSA可以實(shí)現(xiàn)更好的性能,因?yàn)樗鼈兏N近應(yīng)用程序的需求;DSA的例子包括圖形處理單元(GPU),用于深度學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò)處理器和用于軟件定義網(wǎng)絡(luò)(SDN)的處理器。

DSA可以實(shí)現(xiàn)更好的性能和更高的能效,主要有以下四個(gè)原因:

首先也是最重要的一點(diǎn),DSA利用了特定領(lǐng)域中更有效的并行形式。例如,單指令多數(shù)據(jù)并行(SIMD)比多指令多數(shù)據(jù)(MIMD)更有效,因?yàn)樗恍枰@取一個(gè)指令流并且處理單元以鎖步操作。雖然SIMD不如MIMD靈活,但它很適合許多DSA。DSA也可以使用VLIW方法來(lái)實(shí)現(xiàn)ILP,而不是推測(cè)性的無(wú)序機(jī)制。如前所述,VLIW處理器與通用代碼不匹配,但由于控制機(jī)制更簡(jiǎn)單,因此對(duì)于數(shù)量有限的幾個(gè)領(lǐng)域更為有效。特別是,大多數(shù)高端通用處理器都是亂序超標(biāo)量執(zhí)行,需要復(fù)雜的控制邏輯來(lái)啟動(dòng)和完成指令。相反,VLIW在編譯時(shí)會(huì)進(jìn)行必要的分析和調(diào)度,這非常適用于運(yùn)行顯式并行程序。

其次,DSA可以更高效地利用內(nèi)存層次結(jié)構(gòu)。正如Horowitz所指出的,內(nèi)存訪問(wèn)比加減計(jì)算成本要高得多。例如,訪問(wèn)32K字節(jié)緩存塊所需的能量成本比32位整數(shù)相加高約200倍。這種巨大的差異使得優(yōu)化存儲(chǔ)器訪問(wèn)對(duì)于實(shí)現(xiàn)高能效至關(guān)重要。通用處理器在運(yùn)行代碼的時(shí)候,存儲(chǔ)器訪問(wèn)往往表現(xiàn)出空間和時(shí)間局部性,但這在編譯時(shí)非常難以預(yù)測(cè)。因此,CPU使用多級(jí)高速緩存來(lái)增加帶寬,并隱藏相對(duì)較慢的片外DRAM的延遲。這些多級(jí)高速緩存通常消耗大約一半的處理器能量,但幾乎都不需要對(duì)片外DRAM的所有訪問(wèn),導(dǎo)致這些訪問(wèn)需要大約10倍于最后一級(jí)高速緩存訪問(wèn)的能量。

緩存有兩大明顯缺點(diǎn):

數(shù)據(jù)集非常大時(shí):當(dāng)數(shù)據(jù)集非常大并且時(shí)間或空間位置較低時(shí),緩存根本不能很好工作;

當(dāng)緩存工作得很好時(shí):當(dāng)緩存運(yùn)行良好時(shí),位置非常高,這意味著,根據(jù)定義,大多數(shù)緩存大部分時(shí)間都處于空閑狀態(tài)。

在編譯時(shí)可以很好地定義和發(fā)現(xiàn)應(yīng)用程序中的內(nèi)存訪問(wèn)模式,這對(duì)于典型的DSL來(lái)說(shuō)是正確的,程序員和編譯器可以比動(dòng)態(tài)分配緩存,更好地優(yōu)化內(nèi)存的使用。因此,DSA通常使用由軟件明確控制的動(dòng)態(tài)分層存儲(chǔ)器,類似于矢量處理器的操作。對(duì)于合適的應(yīng)用,用戶控制的存儲(chǔ)器可以比高速緩存消耗更少的能量。

第三,DSA可以適度使用較低的精度。通用CPU通常支持32位和64位整數(shù)和浮點(diǎn)(FP)數(shù)據(jù)。機(jī)器學(xué)習(xí)和圖形學(xué)中的許多應(yīng)用不需要計(jì)算得這樣精確。例如,在深度神經(jīng)網(wǎng)絡(luò)(DNN)中,推理通常使用4位,8位或16位整數(shù),從而提高數(shù)據(jù)和計(jì)算吞吐量。同樣,對(duì)于DNN訓(xùn)練應(yīng)用,F(xiàn)P很有用,但32位足夠了,一般16位就行。

最后,DSA受益于以領(lǐng)域特定語(yǔ)言(DSL)編寫的目標(biāo)程序,這些程序可以利用更多的并行性,改進(jìn)內(nèi)存訪問(wèn)的結(jié)構(gòu)和表示,并使應(yīng)用程序更有效地映射到特定領(lǐng)域處理器。

領(lǐng)域特定語(yǔ)言

DSA要求將高級(jí)運(yùn)算融入到體系結(jié)構(gòu)里,但嘗試從Python,Java,C或Fortran等通用語(yǔ)言中提取此類結(jié)構(gòu)和信息實(shí)在太難了。領(lǐng)域特定語(yǔ)言(DSL)支持這一過(guò)程,并能有效地對(duì)DSA進(jìn)行編程。例如,DSL可以使向量、密集矩陣和稀疏矩陣運(yùn)算顯式化,使DSL編譯器能夠有效地將將運(yùn)算映射到處理器。常見的DSL包括矩陣運(yùn)算語(yǔ)言Matlab,編程DNN的數(shù)據(jù)流語(yǔ)言TensorFlow,編程SDN的語(yǔ)言P4,以及用于指定高級(jí)變換的圖像處理語(yǔ)言Halide。

使用DSL的難點(diǎn)在于如何保持足夠的架構(gòu)獨(dú)立性,使得在DSL中編寫的軟件可以移植到不同的架構(gòu),同時(shí)還可以實(shí)現(xiàn)將軟件映射到底層DSA的高效率。例如,XLA系統(tǒng)將Tensorflow編譯到使用Nvidia GPU和張量處理器單元(TPU)的異構(gòu)處理器。權(quán)衡DSA的可移植性以及效率是語(yǔ)言設(shè)計(jì)人員、編譯器創(chuàng)建者和DSA架構(gòu)師面臨的一項(xiàng)有趣的研究挑戰(zhàn)。

DSA TPU v1。以Google TPU v1作為DSA的一個(gè)例子,Google TPU v1旨在加速神經(jīng)網(wǎng)絡(luò)推理。TPU自2015年開始投入生產(chǎn),應(yīng)用范圍從搜索查詢到語(yǔ)言翻譯再到圖像識(shí)別,再到DeepMind的圍棋程序AlphaGo和通用棋類程序AlphaZero,其目標(biāo)是將深度神經(jīng)網(wǎng)絡(luò)推理的性能和能效提高10倍。

如圖8所示,TPU的組織架構(gòu)與通用處理器完全不同。

總結(jié)

我們考慮了兩種不同的方法,通過(guò)提高硬件技術(shù)的使用效率來(lái)提高程序運(yùn)行性能:首先,通過(guò)提高現(xiàn)代高級(jí)語(yǔ)言的編譯性能;其次,通過(guò)構(gòu)建領(lǐng)域特定體系結(jié)構(gòu),可以大大提高性能和效率。DSL是另一個(gè)如何改進(jìn)支持DSA等架構(gòu)創(chuàng)新的硬件/軟件接口的例子。通過(guò)這些方法獲得顯著性能提升。在行業(yè)橫向結(jié)構(gòu)化之前,需要在跨抽象層次上垂直集成并做出設(shè)計(jì)決策,這是計(jì)算機(jī)早期工作的主要特征。在這個(gè)新時(shí)代,垂直整合變得更加重要,能夠核查和進(jìn)行復(fù)雜權(quán)衡及優(yōu)化的團(tuán)隊(duì)將會(huì)受益。

這個(gè)機(jī)會(huì)已經(jīng)引發(fā)了架構(gòu)創(chuàng)新的激增,吸引了許多競(jìng)爭(zhēng)性的架構(gòu)理念:

Nvidia GPU使用許多內(nèi)核,每個(gè)內(nèi)核都有大型寄存器文件,許多硬件線程和緩存;

Google TPU依賴于大型二維收縮倍增器和軟件控制的片上存儲(chǔ)器;

FPGA,微軟在其數(shù)據(jù)中心部署了現(xiàn)場(chǎng)可編程門陣列(FPGA),它可以根據(jù)神經(jīng)網(wǎng)絡(luò)應(yīng)用進(jìn)行定制;

CPU,英特爾提供的CPU具有許多內(nèi)核,這些內(nèi)核通過(guò)大型多級(jí)緩存和一維SIMD指令(微軟使用的FPGA)以及更接近TPU而不是CPU的新型神經(jīng)網(wǎng)絡(luò)處理器得到增強(qiáng)。

除了這些大型企業(yè)外,還有數(shù)十家創(chuàng)業(yè)公司正在尋求自己的路徑。為了滿足不斷增長(zhǎng)的需求,體系結(jié)構(gòu)設(shè)計(jì)師正在將數(shù)百到數(shù)千個(gè)此類芯片互連,形成神經(jīng)網(wǎng)絡(luò)超級(jí)計(jì)算機(jī)。

DNN架構(gòu)的這種雪崩使計(jì)算機(jī)架構(gòu)變得有趣。在2019年很難預(yù)測(cè)這些方向中哪些(或者即使有)會(huì)贏,但市場(chǎng)肯定會(huì)最終解決技術(shù)以及架構(gòu)爭(zhēng)議。

開放式架構(gòu)

受開源軟件成功的啟發(fā),計(jì)算機(jī)體系結(jié)構(gòu)中的第二個(gè)機(jī)遇是開源的ISA。要?jiǎng)?chuàng)建一個(gè)“面向處理器的Linux”,該領(lǐng)域需要行業(yè)標(biāo)準(zhǔn)的開源ISA,這樣社區(qū)就可以創(chuàng)建開源內(nèi)核(除了擁有專有內(nèi)核的個(gè)別公司之外)。如果許多組織使用相同的ISA設(shè)計(jì)處理器,那么更大的競(jìng)爭(zhēng)可能會(huì)推動(dòng)更快的創(chuàng)新。目標(biāo)是為芯片提供處理器,成本從幾美分到100美元不等。

第一個(gè)例子是RISC-V(稱為“RISC Five”),這是加州大學(xué)伯克利分校開發(fā)的第五個(gè)RISC架構(gòu)。RISC-V的社區(qū)在RISC-V基金會(huì)(http://riscv.org/)的管理下維護(hù)體系結(jié)構(gòu)。開源允許ISA在公開的場(chǎng)景下發(fā)生演變,在決策最終確定之前,由硬件和軟件專家進(jìn)行協(xié)作。

RISC-V是一個(gè)模塊化的指令集。一小部分指令運(yùn)行完整的開源軟件棧,然后是可選的標(biāo)準(zhǔn)擴(kuò)展設(shè)計(jì)器,設(shè)計(jì)人員可以根據(jù)需求包含或省略這些擴(kuò)展。這個(gè)基礎(chǔ)包括32位和64位版本。RISC-V只能通過(guò)可選擴(kuò)展來(lái)發(fā)展;即使架構(gòu)師不接受新的擴(kuò)展,軟件堆棧仍可以很好的運(yùn)行。

專有架構(gòu)通常需要向上的二進(jìn)制兼容性,這意味著當(dāng)處理器公司添加新特性時(shí),所有在此之后的處理器也必須包含這些新特性。而RISC-V則不是如此,所有增強(qiáng)功能都是可選的,如果應(yīng)用程序不需要,可以刪除。以下是迄今為止的標(biāo)準(zhǔn)擴(kuò)展名,使用的是代表其全名的縮寫:

M. Integer multiply/divide;

A. Atomic memory operations;

F/D. Single/double-precision floating-point;

C. Compressed instructions。

RISC-V的第三個(gè)顯著特征是ISA的簡(jiǎn)單性。雖然難以量化,但這里有兩個(gè)與ARM公司同期開發(fā)的ARMv8架構(gòu)的比較:

更少的指令。RISC-V的指令要少得多。在基礎(chǔ)版本中只有50個(gè),在數(shù)量和性質(zhì)上與最初的RIS-i驚人地相似。剩下的標(biāo)準(zhǔn)擴(kuò)展(M,A,F(xiàn)和D)添加了53條指令,再加上C又增加了34條,共計(jì)137條。而ARMv8有500多條。

更少的指令格式。 RISC-V的指令格式少了六個(gè),而ARMv8至少有14個(gè)。

簡(jiǎn)單性減少了設(shè)計(jì)處理器和驗(yàn)證硬件正確性的工作量。 由于RISC-V的目標(biāo)范圍從數(shù)據(jù)中心芯片到物聯(lián)網(wǎng)設(shè)備,因此設(shè)計(jì)驗(yàn)證可能是開發(fā)成本的重要組成部分。

第四,RISC-V是一個(gè)全新的設(shè)計(jì)。與第一代RISC架構(gòu)不同,它避免了微架構(gòu)或依賴技術(shù)的特性(如延遲分支和延遲加載),也避免了被編譯器技術(shù)的進(jìn)步所取代的創(chuàng)新(如注冊(cè)窗口)。

最后,RISC-V通過(guò)為自定義加速器保留大量的操作碼空間來(lái)支持DSA。

除了RISC-V之外,英偉達(dá)還(在2017年)宣布了一種名為NVDLA的免費(fèi)開放架構(gòu),這是一種可伸縮、可配置的機(jī)器學(xué)習(xí)推斷DSA。配置選項(xiàng)包括數(shù)據(jù)類型(int8、int16或fp16)和二維乘法矩陣的大小。模具尺寸從0.5mm2到3mm2不等,功率從20毫瓦到300毫瓦不等。ISA、軟件堆棧和實(shí)現(xiàn)都是開放的。

開放的簡(jiǎn)單體系結(jié)構(gòu)與安全性是協(xié)同的。

首先,安全專家不相信通過(guò)“隱藏”實(shí)現(xiàn)的安全性,因此實(shí)現(xiàn)開源很有吸引力,而開源的實(shí)現(xiàn)需要開放的體系結(jié)構(gòu)。

同樣重要的是,增加能夠圍繞安全架構(gòu)進(jìn)行創(chuàng)新的人員和組織的數(shù)量。專有架構(gòu)限制了員工的參與,但是開放架構(gòu)允許學(xué)術(shù)界和業(yè)界所有最優(yōu)秀的“頭腦”來(lái)幫助共同實(shí)現(xiàn)安全性。

最后,RISC-V的簡(jiǎn)單性使得它的實(shí)現(xiàn)更容易檢查。

此外,開放的架構(gòu)、實(shí)現(xiàn)和軟件棧,加上FPGA的可塑性,意味著架構(gòu)師可以在線部署和評(píng)估新的解決方案,并每周迭代它們,而不是每年迭代一次。雖然FPGA比定制芯片慢10倍,但這種性能仍然足以支持在線用戶。

我們希望開放式架構(gòu)成為架構(gòu)師和安全專家進(jìn)行硬件/軟件協(xié)同設(shè)計(jì)的典范。

輕量級(jí)硬件開發(fā)

由Beck等人撰寫的《輕量級(jí)軟件開發(fā)》(The Manifesto for Agile Software Development,2011)徹底改變了軟件開發(fā)方式,克服了瀑布式開發(fā)中傳統(tǒng)的詳細(xì)計(jì)劃和文檔的頻繁失敗。小型編程團(tuán)隊(duì)在開始下一次迭代之前快速開發(fā)工作原型(但不完整)并獲得了客戶反饋。輕量級(jí)開發(fā)的scrum版本匯集了5到10個(gè)程序員的團(tuán)隊(duì),每次迭代執(zhí)行需兩到四周的沖刺。

再次受到軟件成功的啟發(fā),第三個(gè)機(jī)遇是輕量級(jí)硬件開發(fā)。對(duì)于架構(gòu)師來(lái)說(shuō),好消息是現(xiàn)代電子計(jì)算機(jī)輔助設(shè)計(jì)(ECAD)工具提高了抽象級(jí)別,從而支持輕量級(jí)開發(fā),而這種更高的抽象級(jí)別增加了設(shè)計(jì)之間的重用。

但從設(shè)計(jì)芯片到得到用戶反饋的幾個(gè)月之間,像輕量級(jí)軟件開發(fā)那樣申請(qǐng)“硬件四周的沖刺”似乎是不合理的。

下圖概述了輕量級(jí)開發(fā)方法如何通過(guò)在適當(dāng)?shù)募?jí)別上更改原型來(lái)工作。

最內(nèi)層是一個(gè)軟件模擬器,如果模擬器能夠滿足迭代,那么這一環(huán)節(jié)是進(jìn)行更改最容易和最快的地方。

下一級(jí)是FPGA,它的運(yùn)行速度比一個(gè)詳細(xì)的軟件模擬器快數(shù)百倍。FPGA可以運(yùn)行像SPEC那樣的操作系統(tǒng)和完整的基準(zhǔn)測(cè)試,從而可以對(duì)原型進(jìn)行更精確的評(píng)估。Amazon Web Services在云中提供FPGA,因此架構(gòu)師可以使用FPGA,而不需要先購(gòu)買硬件并建立實(shí)驗(yàn)室。

為了記錄芯片面積和功率的數(shù)字,下一個(gè)外層使用ECAD工具生成芯片的布局。

即使在工具運(yùn)行之后,在準(zhǔn)備生產(chǎn)新的處理器之前,仍然需要一些手動(dòng)步驟來(lái)細(xì)化結(jié)果。處理器設(shè)計(jì)人員將此級(jí)別稱為“Tape-In”。

前四個(gè)級(jí)別都支持為期四周的沖刺。

出于研究目的,當(dāng)面積、能量和性能評(píng)估是非常準(zhǔn)確的時(shí)候,我們可以停在Tape-In這個(gè)級(jí)別上。然而,這就像跑一場(chǎng)長(zhǎng)跑,在終點(diǎn)前100碼停了下來(lái),盡管在比賽前做了大量的準(zhǔn)備工作,運(yùn)動(dòng)員還是會(huì)錯(cuò)過(guò)真正跨越終點(diǎn)線的興奮和滿足。硬件工程師與軟件工程師相比,其中一個(gè)優(yōu)勢(shì)是他們可以構(gòu)建物理的東西。讓芯片重新測(cè)量、運(yùn)行真實(shí)的程序并顯示給朋友和家人,這是硬件設(shè)計(jì)的一大樂(lè)趣。

許多研究人員認(rèn)為他們必須在此環(huán)節(jié)停下來(lái),因?yàn)橹圃煲粋€(gè)芯片的成本著實(shí)太高了。當(dāng)設(shè)計(jì)規(guī)模較小的時(shí)候,它們出奇的便宜:只需14,000美元即可訂購(gòu)100個(gè)1-mm2芯片。在28nm的規(guī)格下,1mm2的面積包含數(shù)百萬(wàn)個(gè)晶體管,足夠容納一個(gè)RISC-V處理器和一個(gè)NVLDA加速器。如果設(shè)計(jì)者的目標(biāo)是構(gòu)建一個(gè)大型芯片,那么最外層的成本是極其昂貴的,但是架構(gòu)師可以用小型芯片演示許多新穎的想法。

總結(jié)

“黎明前最黑暗?!?/p>

——托馬斯·富勒,1650

為了從歷史的教訓(xùn)中獲益,架構(gòu)師必須意識(shí)到軟件創(chuàng)新也可以激發(fā)架構(gòu)師的興趣,提高硬件/軟件界面的抽象層次可以帶來(lái)創(chuàng)新機(jī)會(huì),并且市場(chǎng)最終會(huì)解決計(jì)算機(jī)架構(gòu)的爭(zhēng)論。 iAPX-432和Itanium說(shuō)明了架構(gòu)投資如何超過(guò)回報(bào),而S/360,8086和ARM提供了長(zhǎng)達(dá)數(shù)十年的高年度回報(bào),并且看不到盡頭。

登納德縮放比例定律和摩爾定律的終結(jié),以及標(biāo)準(zhǔn)微處理器性能增長(zhǎng)的減速,這些都不是必須解決的問(wèn)題,而是公認(rèn)的事實(shí),并且提供了讓人驚嘆的機(jī)遇。

高級(jí)、特定于領(lǐng)域的語(yǔ)言和體系結(jié)構(gòu),將架構(gòu)師從專有指令集的鏈中解放出來(lái),以及公眾對(duì)改進(jìn)安全性的需求,將為計(jì)算機(jī)架構(gòu)師帶來(lái)一個(gè)新的黃金時(shí)代。

在開源生態(tài)系統(tǒng)的幫助下,輕量級(jí)開發(fā)的芯片將會(huì)令人信服,從而加速商業(yè)應(yīng)用。這些芯片中通用處理器的ISA理念很可能是RISC,它經(jīng)受住了時(shí)間的考驗(yàn)??梢云诖c上一個(gè)黃金時(shí)代相同的快速改善,但這一次是在成本、能源、安全以及性能方面。

下一個(gè)十年將會(huì)是一個(gè)全新計(jì)算機(jī)架構(gòu)的“寒武紀(jì)”大爆發(fā),這意味著計(jì)算機(jī)架構(gòu)師在學(xué)術(shù)界和工業(yè)界將迎來(lái)一個(gè)激動(dòng)人心的時(shí)代。

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

    關(guān)注

    19

    文章

    7174

    瀏覽量

    87158
  • 圖靈
    +關(guān)注

    關(guān)注

    1

    文章

    37

    瀏覽量

    9664
  • AI芯片
    +關(guān)注

    關(guān)注

    17

    文章

    1828

    瀏覽量

    34666

原文標(biāo)題:兩位圖靈獎(jiǎng)得主萬(wàn)字長(zhǎng)文:新計(jì)算機(jī)架構(gòu),黃金十年爆發(fā)!

文章出處:【微信號(hào):AI_era,微信公眾號(hào):新智元】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    內(nèi)存緩沖區(qū)和內(nèi)存的關(guān)系

    內(nèi)存緩沖區(qū)和內(nèi)存之間的關(guān)系是計(jì)算機(jī)體系結(jié)構(gòu)個(gè)至關(guān)重要的方面,它們共同協(xié)作以提高數(shù)據(jù)處理的效率和系統(tǒng)的整體性能。
    的頭像 發(fā)表于 09-10 14:38 ?146次閱讀

    數(shù)字寄存器的原理和使用

    數(shù)字寄存器是計(jì)算機(jī)體系結(jié)構(gòu)中至關(guān)重要的組成部分,其原理和使用對(duì)于理解計(jì)算機(jī)的工作原理和數(shù)據(jù)存儲(chǔ)方式具有重要意義。
    的頭像 發(fā)表于 09-05 14:08 ?144次閱讀

    寄存器是什么意思?寄存器是如何構(gòu)成的?

    計(jì)算機(jī)科學(xué)中,寄存器(Register)是個(gè)高速存儲(chǔ)單元,它位于中央處理器(CPU)內(nèi)部,用于存儲(chǔ)計(jì)算機(jī)程序執(zhí)行過(guò)程中所需要的數(shù)據(jù)、指令地址或狀態(tài)信息。寄存器是
    的頭像 發(fā)表于 08-02 18:23 ?1509次閱讀
    寄存器是什么意思?寄存器是如何構(gòu)成的?

    龍芯CPU統(tǒng)系統(tǒng)架構(gòu)規(guī)范及參考設(shè)計(jì)下載

    系統(tǒng)架構(gòu)規(guī)范(LA架構(gòu)嵌入式系列)-v1.0.pdf *附件:龍芯架構(gòu) ELF psABI 規(guī)范-v2.01.pdf *附件:計(jì)算機(jī)體系結(jié)構(gòu)基礎(chǔ)(LoongArch)-3rd.pdf *附件:龍芯架構(gòu)
    發(fā)表于 06-20 14:42

    工業(yè)控制計(jì)算機(jī)體系結(jié)構(gòu)是什么

    工業(yè)控制計(jì)算機(jī)種專門為工業(yè)自動(dòng)化控制領(lǐng)域設(shè)計(jì)的計(jì)算機(jī)系統(tǒng),具有高性能、高可靠性、實(shí)時(shí)性、可擴(kuò)展性等特點(diǎn)。本文詳細(xì)介紹工業(yè)控制計(jì)算機(jī)
    的頭像 發(fā)表于 06-16 11:38 ?670次閱讀

    寄存器和內(nèi)存的區(qū)別

    計(jì)算機(jī)體系結(jié)構(gòu)中,寄存器和內(nèi)存是兩個(gè)至關(guān)重要的組成部分。它們各自承擔(dān)著不同的角色,共同確保計(jì)算機(jī)系統(tǒng)的正常運(yùn)行。本文將對(duì)寄存器和內(nèi)存進(jìn)行詳細(xì)的介紹,包括它們的定義、功能以及二者之間的主要區(qū)別。
    的頭像 發(fā)表于 05-12 17:11 ?1094次閱讀

    昉·星光2 RISC-V單板計(jì)算機(jī)體驗(yàn)() - 開箱

    昉·星光2 RISC-V單板計(jì)算機(jī)體驗(yàn)() - 開箱 、開箱 昉·星光2( VisionFive 2 )的包裝盒設(shè)計(jì)的很有科技感?!皳肀ё兏? 擁有未來(lái)”這句話太適合當(dāng)下環(huán)境了。 正面: 反面
    的頭像 發(fā)表于 02-21 10:10 ?531次閱讀
    昉·星光2 RISC-V單板<b class='flag-5'>計(jì)算機(jī)體</b>驗(yàn)(<b class='flag-5'>一</b>) - 開箱

    【RISC-V開放架構(gòu)設(shè)計(jì)之道|閱讀體驗(yàn)】學(xué)習(xí)處理器體系架構(gòu)的本好書

    Patterson是圖靈獎(jiǎng)得主,在計(jì)算機(jī)行業(yè)中極具影響力,他參與主編的多本教材是計(jì)算機(jī)體系結(jié)構(gòu)、計(jì)算機(jī)組成原理等相關(guān)課程的知名教材,我在日常教學(xué)中經(jīng)常推薦給學(xué)生閱讀。該書的另位作者
    發(fā)表于 01-23 20:08

    智能化的計(jì)算機(jī)體系結(jié)構(gòu)設(shè)計(jì)方案

    未來(lái)計(jì)算機(jī)體系結(jié)構(gòu)趨向于智能化和自適應(yīng)性。智能化的計(jì)算機(jī)體系結(jié)構(gòu)可以根據(jù)不同的任務(wù)和場(chǎng)景進(jìn)行智能調(diào)整,提高計(jì)算機(jī)的性能和效率。
    發(fā)表于 01-22 11:05 ?331次閱讀
    智能化的<b class='flag-5'>計(jì)算機(jī)體系結(jié)構(gòu)</b>設(shè)計(jì)方案

    《RVfpga:理解計(jì)算機(jī)體系結(jié)構(gòu)》3.0 版本更新上線

    計(jì)算機(jī)體系結(jié)構(gòu)課程,該課程針對(duì)本科教學(xué)設(shè)計(jì),包含整套豐富的教學(xué)資料和實(shí)踐練習(xí),可幫助學(xué)生了解處理器架構(gòu)中的關(guān)鍵要素,包括多個(gè)IP內(nèi)核,修改RISC-V內(nèi)核的方法,
    的頭像 發(fā)表于 01-18 08:27 ?558次閱讀
    《RVfpga:理解<b class='flag-5'>計(jì)算機(jī)體系結(jié)構(gòu)</b>》3.0 版本更新上線

    【2023電子工程師大會(huì)】開源硬件的黃金時(shí)代ppt

    【2023電子工程師大會(huì)】開源硬件的黃金時(shí)代ppt
    發(fā)表于 01-03 16:31 ?59次下載

    微機(jī)原理接口地址范圍怎么算

    微機(jī)原理中,接口地址范圍是指CPU與外部設(shè)備進(jìn)行數(shù)據(jù)傳輸和通信時(shí)的地址范圍。接口地址范圍的計(jì)算涉及到計(jì)算機(jī)體系結(jié)構(gòu)、地址編碼方式等知識(shí),本文詳細(xì)介紹微機(jī)原理中接口地址范圍的計(jì)算方法。
    的頭像 發(fā)表于 12-28 17:30 ?1128次閱讀

    馮諾依曼架構(gòu)和哈佛架構(gòu)有何不同

    馮諾依曼架構(gòu)是最常見的計(jì)算機(jī)體系結(jié)構(gòu),最早由馮·諾依曼于1945年提出,又稱普林斯頓結(jié)構(gòu)。這種架構(gòu)中,指令和數(shù)據(jù)存儲(chǔ)在同一個(gè)存儲(chǔ)器中,使用同
    的頭像 發(fā)表于 12-10 14:10 ?1026次閱讀
    馮諾依曼架構(gòu)和哈佛架構(gòu)有何不同

    異構(gòu)專用AI芯片的黃金時(shí)代

    異構(gòu)專用AI芯片的黃金時(shí)代
    的頭像 發(fā)表于 12-04 16:42 ?499次閱讀
    異構(gòu)專用AI芯片的<b class='flag-5'>黃金時(shí)代</b>

    報(bào)名即將截止!Imagination聯(lián)合浙江大學(xué)舉辦2023國(guó)內(nèi)首場(chǎng)RVfpga課程線下Workshop

    10月28日-29日,Imagination與浙江大學(xué)信息與電子工程學(xué)院聯(lián)合舉辦《RVfpga:深入理解計(jì)算機(jī)體系結(jié)構(gòu)》課程培訓(xùn)活動(dòng)。
    的頭像 發(fā)表于 10-25 08:28 ?517次閱讀
    報(bào)名即將截止!Imagination聯(lián)合浙江大學(xué)舉辦2023國(guó)內(nèi)首場(chǎng)RVfpga課程線下Workshop