电竞比分网-中国电竞赛事及体育赛事平台

分享

2020

 雷神2025 2022-06-20 發(fā)布于山西

新計(jì)算機(jī)架構(gòu),黃金時(shí)代爆發(fā)!兩位圖靈獎得主最新力作

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

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

當(dāng)時(shí),由GPU推動的深度學(xué)習(xí)浪潮已然興起,谷歌推出了TPU,AI芯片創(chuàng)業(yè)公司林立,芯片市場群雄并起,連做軟件的人都能感到從硬件行業(yè)迸發(fā)出的熱氣。很快,一年后,已經(jīng)出任谷歌母公司Alphabet董事長的Hennessy和已經(jīng)加入谷歌TPU團(tuán)隊(duì)的Patterson又站在了一起,這次是為了紀(jì)念他們共同榮獲2017年的圖靈獎。

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

在那次的圖靈演講中,DavidPatterson與John Hennessy還提到了軟件設(shè)計(jì)也能為計(jì)算機(jī)硬件架構(gòu)帶來靈感,改善軟硬件接口能為架構(gòu)創(chuàng)新帶來機(jī)遇。2019年2月出版的Communicationsof the ACM,刊登了兩人的署名文章“A New Golden Age for computerArchitecture”,在圖靈演講的基礎(chǔ)之上進(jìn)一步完善思想,并用文字將他們的洞見更加清晰地呈現(xiàn)。

PC的發(fā)展過程

集成電路,CISC,432,8086,IBM PC。當(dāng)計(jì)算機(jī)開始使用集成電路時(shí),摩爾定律意味著控制存儲可能變得更大。更大的內(nèi)存可以運(yùn)行更復(fù)雜的ISA。1977年,數(shù)字設(shè)備公司(DigitalEquipment)發(fā)布的VAX-11/780機(jī)型的控制存儲大小達(dá)到5120 word×96 bit,而其之前的型號僅為256 word×56 bit。

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

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

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

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

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

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

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

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

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

Patterson就此問題寫了一篇論文,但被《計(jì)算機(jī)》期刊拒稿。審稿人認(rèn)為,構(gòu)建具有ISA的微處理器是一個糟糕的想法,因?yàn)檫@需要在現(xiàn)場進(jìn)行修復(fù)。即復(fù)雜度較低的指令集架構(gòu),以及使用精簡指令集的計(jì)算機(jī)(RISC)。 以及由匯編語言向高級語言的轉(zhuǎn)變,為CISC向RISC的過渡創(chuàng)造了條件。首先,RISC指令經(jīng)過簡化,因此不再需要微代碼解釋器。 RISC指令通常與微指令一樣簡單,硬件能夠直接執(zhí)行。其次,以前用于CISC 指令集的微代碼解釋器的快速存儲器被重新用作RISC指令的高速緩存。第三,基于Gregory Chaitin的圖著色方案的寄存器分配器,使編譯器能夠更簡易、高效地使用寄存器,最后,摩爾定律意味著在20世紀(jì)80年代能夠誕生有足夠數(shù)量的晶體管的芯片,可以容納一個完整的32位數(shù)據(jù)路徑、指令集和數(shù)據(jù)高速緩存。

在今天的“后PC時(shí)代”,x86芯片的出貨量自2011年達(dá)到峰值以來,每年下降近10%,而采用RISC處理器的芯片出貨量則飆升至200億。下圖分別對其優(yōu)點(diǎn)進(jìn)行了分析,經(jīng)過對比可以說比行業(yè)內(nèi)的產(chǎn)品更優(yōu)秀。

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

后PC時(shí)代的RISC

Apple公司在2007年推出了iPhone,開創(chuàng)了后PC時(shí)代。智能手機(jī)公司不再購買微處理器,而是使用其他公司的設(shè)計(jì)(包括ARM的RISC處理器),在芯片上構(gòu)建自己的系統(tǒng)(SoC)。在今天的后PC時(shí)代,x86的出貨量自2011年達(dá)到峰值以來每年下降近10%,而采用RISC處理器的芯片的出貨量則飆升至200億。今天,99%的32位和64位處理器都是RISC。

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

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

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

        “我們面前的一些令人嘆為觀止的機(jī)會被偽裝成不可解決的問題。

                                                                                                                      ——John Gardner,1965

領(lǐng)域特定結(jié)構(gòu)(DAS)。一個更加以硬件為中心的方法,是設(shè)計(jì)針對特定問題域定制的體系結(jié)構(gòu),并為該領(lǐng)域提供顯著的性能(和能效)增益,被稱為DSA,是一種為特定領(lǐng)域可編程且通常是圖靈完整的,但針對特定應(yīng)用程序類別進(jìn)行了定制。從這個意義上說,DSA與專用集成電路(ASIC)不同,后者通常用于單一功能,代碼很少發(fā)生變化。DSA通常稱為加速器,因?yàn)榕c在通用CPU上執(zhí)行整個應(yīng)用程序相比,它們只會加速某些應(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)更好的性能和更高的能效,主要有以下四個原因:

首先也是最重要的一點(diǎn),DSA利用了特定領(lǐng)域中更有效的并行形式;其次,DSA可以更高效地利用內(nèi)存層次結(jié)構(gòu);第三,DSA可以適度使用較低的精度;最后,DSA受益于以領(lǐng)域特定語言(DSL)編寫的目標(biāo)程序。

領(lǐng)域特定語言

DSA要求將高級運(yùn)算融入到體系結(jié)構(gòu)里,但嘗試從Python,JavaCFortran等通用語言中提取此類結(jié)構(gòu)和信息實(shí)在太難了。領(lǐng)域特定語言(DSL)支持這一過程,并能有效地對DSA進(jìn)行編程。例如,DSL可以使向量、密集矩陣和稀疏矩陣運(yùn)算顯式化,使DSL編譯器能夠有效地將將運(yùn)算映射到處理器。常見的DSL包括矩陣運(yùn)算語言Matlab,編程DNN的數(shù)據(jù)流語言TensorFlow,編程SDN的語言P4,以及用于指定高級變換的圖像處理語言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的可移植性以及效率是語言設(shè)計(jì)人員、編譯器創(chuàng)建者和DSA架構(gòu)師面臨的一項(xiàng)有趣的研究挑戰(zhàn)。

開放式架構(gòu)

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

輕量級硬件開發(fā)

由Beck等人撰寫的《輕量級軟件開發(fā)》(The Manifesto for Agile Software Development,2011)徹底改變了軟件開發(fā)方式,克服了瀑布式開發(fā)中傳統(tǒng)的詳細(xì)計(jì)劃和文檔的頻繁失敗。再次受到軟件成功的啟發(fā),第三個機(jī)遇是輕量級硬件開發(fā)。對于架構(gòu)師來說,好消息是現(xiàn)代電子計(jì)算機(jī)輔助設(shè)計(jì)(ECAD)工具提高了抽象級別,從而支持輕量級開發(fā),而這種更高的抽象級別增加了設(shè)計(jì)之間的重用。

總結(jié)

       “黎明前最黑暗?!?nbsp;

                                    ——托馬斯·富勒,1650

為了從歷史的教訓(xùn)中獲益,架構(gòu)師必須意識到軟件創(chuàng)新也可以激發(fā)架構(gòu)師的興趣,提高硬件/軟件界面的抽象層次可以帶來創(chuàng)新機(jī)會。iAPX-432和Itanium說明了架構(gòu)投資如何超過回報(bào)。

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

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

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多