RISC-V与DSA计算机架构
RISC-V與DSA計算機架構(gòu)
相信所有和計算機體系結(jié)構(gòu)打過交道的朋友們都看過David Patterson與John Hennessy的煌煌巨作,《計算機體系架構(gòu):量化研究方法》。兩位在計算機架構(gòu)領(lǐng)域鼎鼎大名的教授,一個來自加州大學(xué)伯克利分校,另一個來自斯坦福。
首先上場的是David Patterson,為我們帶來了關(guān)于指令集架構(gòu)(ISA)的回顧以及RISC-V項目的展望。
(Patterson教授在演講中)
Patterson教授的演講主題是50年來計算機體系架構(gòu)(ISA為主)的回顧以及RISC-V架構(gòu)。
Patterson教授首先回顧了ISA的發(fā)展史。在計算機發(fā)展之初,ROM比起RAM來說更便宜而且更快,所以并不存在片上緩存(cache)這個東西。在那個時候,復(fù)雜指令集(CISC)是主流的指令集架構(gòu)。然而,隨著RAM技術(shù)的發(fā)展,RAM速度越來越快,成本越來越低,因此在處理器上集成指令緩存成為可能。RISC的出現(xiàn)可謂水到渠成。研究發(fā)現(xiàn)計算機執(zhí)行大多數(shù)程序時CISC指令集中絕大多數(shù)指令都只在極少的時間才被用到,因此專門為這些指令設(shè)計硬件并不劃算。相反,使用精簡指令集(RISC)可以大大簡化硬件的設(shè)計,從而使流水線設(shè)計變得簡化,同時也讓流水線可以運行更快。
Patterson教授再次重申了評估處理器性能的指標(biāo),即程序運行時間。程序運行時間由幾個因素決定,即程序指令數(shù),平均指令執(zhí)行周期數(shù)(CPI)以及時鐘周期。程序指令數(shù)由程序代碼,編譯器以及ISA決定,CPI由ISA以及微架構(gòu)決定,時鐘周期由微架構(gòu)以及半導(dǎo)體制造工藝決定。對于RISC,程序指令數(shù)較多,但是CPI遠好于CISC,因此RISC比CISC更快。
除了CISC和RISC之外,另一種流行(過)的ISA是超長指令字(VLIW)。VLIW把多個操作放在一條指令里,因此需要一條指令中的多個操作能夠并行執(zhí)行。
VLIW的代表是Intel Itanium(安騰),使用的架構(gòu)代號是EPIC,開發(fā)的合作伙伴是惠普。安騰第一代Merced預(yù)期出貨日期是1997年,實際出貨時期為2001年;第二代McKinley使用180nm工藝,出貨時間為2002年;第三代Poulson,也是最近的一代,8核心使用32nm工藝,2012年出貨。
然而,VLIW架構(gòu)遇到了巨大的失敗。VLIW的問題,包括分支預(yù)測困難,Cache miss無法解決,代碼爆炸以及最關(guān)鍵的,編譯器過于復(fù)雜以至于無法實現(xiàn)。斯坦福的Donald Knuth(計算機科學(xué)領(lǐng)域又一位傳奇人物)表示,“安騰看上去很棒,但是編譯器根本沒法寫!”
目前處理器的ISA,已經(jīng)30多年沒有新的CISC ISA出現(xiàn)(Intel x86表面用的是CISC但是內(nèi)部有硬件把CISC轉(zhuǎn)換成RISC再真正執(zhí)行)。VLIW在一些嵌入式DSP市場獲得應(yīng)用,但是在其他的市場都沒有獲得成功。考慮到處理器的數(shù)量,目前最主流的通用ISA還是RISC。
回顧完ISA的歷史,再來看看目前ISA的生態(tài)。這里把ISA和網(wǎng)絡(luò),操作系統(tǒng),數(shù)據(jù)庫,圖像標(biāo)準庫作了比較,可以看到網(wǎng)絡(luò),操作系統(tǒng),編譯器等等領(lǐng)域都有主流的標(biāo)準,基于該標(biāo)準同時有開源免費的版本,以及商用的收費標(biāo)準。然而,在ISA領(lǐng)域,之前并沒有公認的標(biāo)準,也沒有開源免費的ISA,僅有商用的ISA,這讓整個ISA領(lǐng)域的生態(tài)顯得死氣沉沉。
于是,RISC-V應(yīng)運而生。要做開源的ISA,基于x86和ARM都幾乎不可能,因為它們都太復(fù)雜,而且還存在IP的問題。在2010年夏天,Patterson教授帶領(lǐng)團隊開始從頭開始設(shè)計一個干凈的ISA。經(jīng)歷了很多年,經(jīng)過多次流片驗證,終于在2014年發(fā)布了最終版spec,就是RISC-V(V是第五代的意思)。
RISC-V作為一個開源ISA,首先要滿足對ISA的一般要求。首先,它必須與現(xiàn)存的主流編程語言和軟件兼容。第二,它必須有直接硬件實現(xiàn),而不是一個虛擬機。第三,它必須有很好的彈性,能滿足小至微控制器(MCU)大到超級計算機的需求。第四,能與各種實現(xiàn)方式兼容,包括FPGA,ASIC,全定制CPU,以及未來的其他實現(xiàn)。第四,需要與各種微架構(gòu)配適,包括有序執(zhí)行,無序執(zhí)行,單發(fā)射,超標(biāo)量等等。最后,還需要滿足可擴展性(可以作為基礎(chǔ)ISA,在特殊用途中加上額外的增強ISA),以及穩(wěn)定性(不會一直變化,不會突然消失等等)。
除了滿足一般的需求外,RISC-V還有自己的特色。首先,它很簡單,比其他的商用ISA規(guī)模都要小很多。第二,它很干凈,例如在用戶與特權(quán)ISA之間涇渭分明,有非常清晰的界限。另外,RISC-V中沒有與微架構(gòu)或?qū)崿F(xiàn)方式有關(guān)的特性,因此具有普適性。第三,RISC-V是模塊化的ISA,它的基礎(chǔ)ISA集很小,但是可以根據(jù)用戶需求去加載擴展集。最后,RISC-V特別為了可擴展性和專精化做了優(yōu)化,使用了可變長度的指令編碼,并且有許多空間以供指令集擴展。
最特別的一點是,RISC-V支撐了一個開源的社區(qū),包含了非盈利基金會以及開源代碼庫。RISC-V的愿景是未來各種靈活而低價處理器芯片的基礎(chǔ)。RISC-V一開始的貢獻者包括伯克利和SiFive(一家初創(chuàng)公司),目前在征求各類設(shè)計者加入開源社區(qū),需要代碼以及其他硬件IP(如PLL,PHY等等)。
最后,總結(jié)一下幾大使用RISC-V的理由。第一,RISC-V是免費開源架構(gòu),無須付費。第二,它的ISA比起其他ISA來說簡單許多,因此驗證起來也方便許多。第三,RISC-V很穩(wěn)定,不用擔(dān)心突然發(fā)生很大變化或者直接就消失。第四,RISC-V可以在各種設(shè)計中比起其他ISA更高效,面積、功耗和性能都更好。第五,RISC-V可以作為各種SoC核的基礎(chǔ)ISA,而且第六,RISC-V具有很好的擴展性,可以隨意按照需求擴展。現(xiàn)在RISC-V的小目標(biāo),是成為一種適合各種計算設(shè)備的業(yè)界標(biāo)準ISA。
John Hennessy的演講緊隨其后。Hennessy教授的演講在回顧了摩爾定律的發(fā)展之后,一針見血地指出了目前常規(guī)處理器演進遇到的瓶頸在于功耗,并且提出了目前處理器的新希望在于Domain Specific Architecture(DSA,即針對應(yīng)用領(lǐng)域做優(yōu)化的處理器架構(gòu),區(qū)別于通用架構(gòu))。
Hennessy教授首先回顧了四十年來處理器的高速發(fā)展史。四十年間,處理器性能以每年1.4倍的速度指數(shù)上升,目前性能相比于四十年前改進了約一百萬倍。在處理器架構(gòu)角度,較大的進步包括位寬(由八位進化到了六十四位),指令級并行度(從最初每條指令需要4-10個時鐘周期執(zhí)行到現(xiàn)在每周期可以同時執(zhí)行超過4條指令,這是10-20倍的改善),以及多核架構(gòu)(由單核演化到32核)。從性能角度,時鐘頻率從3MHz進化到4GHz。這一切都是因為集成電路生產(chǎn)工藝進化為基礎(chǔ)的。摩爾定律使得處理器晶體管數(shù)持續(xù)上升,但是因為晶體管功耗和晶體管面積縮小的速度基本相同,因此在前40年間芯片單位面積的功耗基本不變。
目前,三種技術(shù)趨勢讓傳統(tǒng)的通用處理器演進遇到了瓶頸。半導(dǎo)體工藝角度,Dennard Scaling規(guī)律結(jié)束,芯片功耗急劇上升,同時摩爾定律減緩,晶體管成本不降反升。從架構(gòu)角度,指令級并行已經(jīng)到達極限,單核時代已告結(jié)束;而Amadahl’s Law提示多核架構(gòu)的速度提升取決于程序中有多少部分無法并行執(zhí)行,多核架構(gòu)目前的速度提升也變得越來越慢。從應(yīng)用角度,處理器的應(yīng)用場景從原來的桌面電腦變成了個人移動設(shè)備和云端超大規(guī)模服務(wù)器,這也帶來了新的設(shè)計約束。
從單核處理器的速度進化趨勢也可以印證之前的觀點。從上世紀90年代到本世紀前五年,單核處理器的性能以每年50%以上的速度提升,而到了2005年后,但和處理器性能的提升速度降到了每年20%左右。
從單核處理器的速度進化趨勢也可以印證之前的觀點。從上世紀90年代到本世紀前五年,單核處理器的性能以每年50%以上的速度提升,而到了2005年后,但和處理器性能的提升速度降到了每年20%左右。
隨著市場份額的變化,處理器的設(shè)計需求也發(fā)生了變化。能效比正在成為目前最重要的指標(biāo)。在移動領(lǐng)域,由于電池容量的限制,必須注重能效比。目前,處理器在移動設(shè)備中已經(jīng)成為繼屏幕之后能量消耗較大的元件,因此移動設(shè)備中處理器能效比是最關(guān)鍵的問題。
在另一個未來處理器較大市場——云端服務(wù)器市場,能效比也是最關(guān)鍵的指標(biāo)。目前數(shù)據(jù)中心的成本中,散熱已經(jīng)成了較大的成本之一,為了減少成本必須考慮處理器能效比。
半導(dǎo)體工藝進化趨勢的變化也很重要。摩爾定律遇到瓶頸是近年來半導(dǎo)體業(yè)最深刻的變化。DRAM密度變化在1977-1997年是每年1.46倍,1997-2017年平均密度變化是每年1.34倍,而在過去五年平均密度變化是每年1.1倍。一個更令人驚訝的事實是,DDR4標(biāo)準DRAM的帶寬雖然比DDR3大很多,但是DDR4內(nèi)存的內(nèi)部速度實際上比DDR3慢!這在過去半導(dǎo)體產(chǎn)業(yè)按摩爾定律蒸蒸日上的時代是難以想象的。
另一個關(guān)鍵的半導(dǎo)體工藝趨勢變化是Dennard Scaling不再有效。Dennard Scaling是早期半導(dǎo)體工藝變化的規(guī)律,即將晶體管尺寸和電源電壓一起變化,單位面積晶體管的總電容上升,但是電源電壓在相應(yīng)變小于是總體的單位面積能量消耗基本保持不變。Dennard Scaling規(guī)律從1977年保持到了1997年,在這之后慢慢失效,例如從2007年到2017年(晶體管特征尺寸由45nm縮小到16nm),每塊芯片的總能耗變大了3倍。
Dennard Scaling的結(jié)束對于傳統(tǒng)處理器設(shè)計方法來說是一個危機。能量消耗對用戶來說越來越重要(無論是對移動設(shè)備還是云端服務(wù)器),而且處理器散熱已經(jīng)接近了極限。處理器架構(gòu)必須改善能效比,但是傳統(tǒng)通用架構(gòu)設(shè)計方法的能效比已經(jīng)到極限了。
Dennard Scaling的結(jié)束也意味著在能效比約束下,堆核數(shù)已經(jīng)很難增加性能。再增加核數(shù)就會導(dǎo)致Dark Silicon,即芯片的許多核會很多時間處于待機狀態(tài),從而導(dǎo)致很高的成本(編注:例如目前移動處理器流行的大小核架構(gòu),通常同時只會打開高性能大核或者低功耗小核)。所有核打開時,處理器功耗非常大,會導(dǎo)致散熱問題。舉例來說,目前22nm工藝制造的較大多核處理器是Intel E7-8890,有24顆核心,運行在2.2GHz,較大功耗為165W。在2021/2022年,假設(shè)可以使用11nm工藝,96核心處理器運行在4.9 GHz,那么在165W功耗的限制下,只能打開54個核心,功耗限制放松到180W可以打開59個核,限制放松到200W可以打開65個核。但是要同時打開96個核,則功耗實在太大,很難實用。
為了提高能效比,一種很有希望的架構(gòu)是針對應(yīng)用領(lǐng)域做優(yōu)化的專用領(lǐng)域處理器架構(gòu)(DSA)。DSA的優(yōu)點在于,可以為特定的一類應(yīng)用(注意不是一種應(yīng)用,而是一類)做架構(gòu)優(yōu)化從而實現(xiàn)更好的能效比。相對于通用(general purpose)處理器,DSA需要設(shè)計時考慮專用領(lǐng)域的特殊需求,也需要設(shè)計者能對該領(lǐng)域有深入的理解。DSA的例子包括為機器學(xué)習(xí)設(shè)計的神經(jīng)網(wǎng)絡(luò)處理器,以及為圖像和虛擬現(xiàn)實設(shè)計的GPU。DSA設(shè)計將會成為處理器架構(gòu)的新趨勢。
Q & A
Q:請問除了之前演講中提到的以外,還有哪些處理器領(lǐng)域的未來趨勢是值得關(guān)注的?
A(Patterson):我認為未來之星是深度學(xué)習(xí)領(lǐng)域的DSA處理器。深度學(xué)習(xí)的重要性我想在座的都很清楚。另外,使用更高級的設(shè)計描述語言,例如Chisel,來加速設(shè)計,也會成為趨勢。
Q:摩爾定律的終結(jié)對于整個計算機領(lǐng)域的人來說,意味著什么?
A(Hennessy):The easy ride of software is over. 這意味著軟件行業(yè)的從業(yè)人員未來需要更多對硬件的理解。在之前,軟件行業(yè)可以不用太關(guān)心硬件,只要把程序功能實現(xiàn),就算現(xiàn)在的硬件不能跑,過一陣新的更強的硬件出現(xiàn)了一定可以跑。現(xiàn)在,軟件必須認真考慮如何在硬件上高效執(zhí)行的問題。會有更多domain-specific編程語言出現(xiàn),例如CUDA。
Q:如何看待量子計算?
A(Hennessy):量子計算就是計算機領(lǐng)域的核聚變(觀眾大笑,“核聚變”的比方是指潛力無窮但是不知道哪一天真的能用上)。目前,量子計算的問題在于規(guī)模化,一方面需要制備更多的量子位,另一方面需要在質(zhì)因數(shù)分解之類問題以外找到更多應(yīng)用。
Q:如何看到FPGA?
A(Hennessy):FPGA是一個很好的技術(shù)。對于對成本不敏感的云端應(yīng)用,因為FPGA芯片已經(jīng)規(guī)模足夠大可以裝下一些處理器,因此得到了很多關(guān)注。微軟在云端大規(guī)模部署FPGA,顯然是在賭FPGA的可配置性在未來會有很多應(yīng)用。Google則是把賭注押在了ASIC上(指TPU)。在客戶端,FPGA由于功耗過大,目前仍然很難得到大規(guī)模應(yīng)用。
Q:對于學(xué)生們有沒有關(guān)于職業(yè)規(guī)劃的建議?
A(Patterson):在座的學(xué)生都很優(yōu)秀,我想大家除了學(xué)習(xí)以外還要關(guān)注一些其他方面的能力,比如如何影響他人,如何寫作表達自己,如何與家人朋友一起享受生活等等。這些都非常重要。如果你一定要問我技術(shù)有關(guān)的建議,我要說的是,你在這里(斯坦福)一定要上機器學(xué)習(xí)的課程。我感覺現(xiàn)在的人工智能就像之前的微處理器和互聯(lián)網(wǎng)一樣,一定會深刻地改變我們的社會。
總結(jié)
以上是生活随笔為你收集整理的RISC-V与DSA计算机架构的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 开源软硬一体OpenCV AI Kit(
- 下一篇: 3D Cube计算引擎加速运算