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

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

3天內不再提示

RISC架構的興起

中科院半導體所 ? 來源:軟硬件融合 ? 作者:Chaobowx ? 2022-04-06 09:33 ? 次閱讀

編者按

John Hennessy和David Patterson是體系結構領域的權威,兩人在其2017年圖靈獎獲獎演講時說,未來十年是體系機構的黃金年代,在CPU性能達到瓶頸的情況下,需要針對特定的領域定制專用處理器,這也就是當前大家熟悉的DSA(Domain Specific Architecture,特定領域架構)。隨后,還專門寫了專業(yè)的論文詳細論證此事(見參考文獻)。 那么,反向的思考,是否存在足夠“通用”的處理器,能夠按照摩爾定律,在性能快速提升的同時,依然能夠“包治百病”,盡可能滿足眾多客戶的當前和未來一定時期的需求?

1從歷史中汲取靈感

1.1 RISC架構的興起

在上世紀七十年代到八十年代初,因為流水線等技術的應用,CPU速度提升非常之快,而內存的容量和速度相對落后。通過不定長的指令格式能夠提供更高的代碼密度,同樣大小內存空間能裝載更多指令,從而間接的提高運行速度。并且,這時候的編譯器能力比較有限,編譯器很難做到CPU寄存器的合理利用,也無法針對微架構的具體特征進行深層次的性能優(yōu)化,這就使得CPU的設計師們偏愛直接內存-內存以及寄存器-內存風格的指令執(zhí)行模式。這些都是典型的復雜指令集(CISC)的特征。 這一時期,幾乎所有的處理器設計都在按照CISC的路線發(fā)展,并且走向一個極端:不斷加入新的指令,試圖在指令集架構層面對高層編程語言提供更直接有效的支持,等等。這種發(fā)展路線使得硬件復雜度快速飛升,研發(fā)成本不斷提高,研發(fā)周期變長,而編譯器也難以利用這越來越復雜的指令集。 隨后,RISC架構興起。來自IBM的John Cocke認為,更加精簡清爽的指令集設計將有助于減少硬件開發(fā)難度和成本,同時也有利于編譯器進行代碼優(yōu)化工作。當時在在伯克利任教的David Patterson,與其學生們的成果在1983年國際固態(tài)電子電路大會(ISSCC)進行展示。盡管制造工藝老舊,主頻比DEC、摩托羅拉、Intel等競爭對手同期制造的處理器慢上幾乎一半,晶體管數(shù)量也只有幾分之一,但是更加清爽的新式設計在編譯器等其他工具的輔助下竟然將來自工業(yè)界的競爭對手們盡數(shù)擊敗。 RISC架構處理器提倡簡化指令集設計、固定指令長度、統(tǒng)一指令編碼格式、加速常用指令。這在當時來看,與占據(jù)主流的CISC設計風格背道而馳。但RISC陣營的David Patterson有了流片成功的芯片與硬件測試結果在手,加之1983年的ISSCC大會上聚集了幾位與David Patterson觀點相同的支持者,RISC流派開始逐步占據(jù)上風。 CISC ISA呈現(xiàn)出符合“二八定律”的特征:80%的指令很少被使用,只有20%的指令經(jīng)常用到。RISC針對這20%的指令集,進行重組、優(yōu)化和加速,另外80%指令通過這20%簡單指令的組合來完成,性能反而高于CISC。 我們無意于介紹CISC和RISC的歷史恩怨,之后的情況是:兩種理念的ISA也是相互借鑒相互融合,逐步形成了現(xiàn)在的x86、ARMRISC-v三強競爭的局面。

1.2 從微服務到云計算服務分層

42aefbdc-b010-11ec-aa7f-dac502259ad0.png

最開始,所有的應用都是單塊“巨”應用系統(tǒng)。企業(yè)應用系統(tǒng)經(jīng)常包含三個主要部分:客戶端用戶界面、數(shù)據(jù)庫和服務端應用系統(tǒng)。漸漸地,特別是隨著越來越多的應用系統(tǒng)正被部署到云端,軟件變更受到了很大的限制:應用系統(tǒng)中一個很小部分的一處變更,也需要將整個單塊應用系統(tǒng)進行重新構建和部署;單塊應用逐漸難以保持一個良好的模塊化結構,當對系統(tǒng)進行擴展時,不得不擴展整個應用系統(tǒng),而不能僅擴展該系統(tǒng)中需要更多資源的那些部分。 這些問題催生出了微服務架構風格:以構建一組小型服務的方式來構建應用系統(tǒng)。除了這些服務能被獨立地部署和擴展之外,每一個服務還能提供一個穩(wěn)固的模塊邊界,甚至能允許使用不同的編程語言來編寫不同的服務。并且,這些服務也能被不同的團隊來管理。 微服務的方式,很好地把一個完整的應用系統(tǒng)拆分成用戶關心的應用核心本身,以及其他一些輔助的服務,如:

基礎設施服務,比如VM、容器、網(wǎng)絡、存儲、安全等;

中間件層服務,如負載均衡、數(shù)據(jù)庫、文件系統(tǒng)、訪問控制、消息隊列、物聯(lián)網(wǎng)接入平臺等。

42cd1f7c-b010-11ec-aa7f-dac502259ad0.png

“一切皆服務”,當從微服務的視角,云計算是由不同的服務組成的分層服務體系:每一層就是一個服務族,然后不同層次的服務族組成整個云計算服務體系,這就是我們所熟悉的云計算三層服務IaaS、PaaS和SaaS。更詳細的軟件堆棧如上圖所示,從非云系統(tǒng)所有的“服務”堆棧都需要用戶自己擁有并維護,經(jīng)過IaaS、CaaS、PaaS、FaaS,再到最后的SaaS,一切都由供應商運營維護。從左到右的過程,就是“服務”堆棧的下層layer不斷的由云運營商接管的過程。 這也是一個鮮明的“二八定律”案例:80%的任務由云運營商負責,20%的任務由用戶負責;站在用戶的角度,20%自己負責的任務價值占到80%,而運營商負責的部分只占到到20%的價值。

1.3 結論:“二八定律”在發(fā)生作用

二八定律(也稱80/20法則、關鍵少數(shù)法則、帕累托法則),起源于意大利經(jīng)濟學家維弗雷多·帕累托在洛桑大學注意到了80/20的聯(lián)系,于他的文章《政治經(jīng)濟學》中說明了該現(xiàn)象,例如:意大利約有80%的土地由20%的人口所有、80%的豌豆產量來自20%的植株等等。該原則在現(xiàn)今企業(yè)管理中廣泛運用。 回到計算機領域,二八定律也是一個常見的規(guī)律:

CISC指令太過冗繁,只有20%的指令經(jīng)常用到,而另外80%的指令則較少用到。所以,RISC就只保留常見的20%的簡單指令。

一個應用系統(tǒng),完全不同的只是應用的核心部分(大約占20%),其他的如網(wǎng)絡訪問、存儲盤、文件系統(tǒng),也包括數(shù)據(jù)庫、負載均衡、消息隊列等(大約占80%)其實都是用戶相對不關心,并且是眾多應用系統(tǒng)都會用到的組件。

云計算,是一個由眾多服務組成服務分層體系,隨著不斷的抽象封裝,云運營商不斷接管了80%的眾多服務分層,而用戶只需要關注20%的應用和函數(shù)即可。

等等。

2 分析一下各類處理引擎

2.1 從單位計算復雜度的視角

42e6b5ea-b010-11ec-aa7f-dac502259ad0.png

指令是軟件和硬件的媒介,指令的復雜度(單位計算密度)決定了系統(tǒng)的軟硬件解耦程度。按照指令的復雜度,典型的處理器引擎大致分為CPU、協(xié)處理器、GPU、FPGA、DSA、ASIC。任務在CPU運行,則定義為軟件運行;任務在協(xié)處理器、GPU、FPGA、DSA或ASIC運行,則定義為硬件加速運行。 魚和熊掌不可兼得,指令復雜度和編程靈活性是兩個互反的特征:指令越簡單,編程靈活性越高,因此我們才說軟件有更高的靈活性;指令越復雜,性能越高,因此而受到的限制越多,只能用于特定領域或場景的應用,其軟件靈活性越差。

2.2 從處理器引擎類型數(shù)量的視角

43000cb6-b010-11ec-aa7f-dac502259ad0.png

常見有六個主要的處理器引擎類型,依據(jù)不同類型處理引擎的數(shù)量不同,形成了金字塔形的處理器層次結構(Hierarchy):

CPU,是最通用的處理器引擎,CPU指令是最基礎的,因此具有最好的靈活性。這一層級的只有CPU一個形態(tài)的處理器。

Coprocessor,是基于CPU的擴展指令集的運行引擎,如ARM的NEON、Intel的AVX、AMX擴展指令集和相應的協(xié)處理器。

GPU,本質上是很多小CPU核的并行,因此NP、Graphcore的IPU等都和GPU處于同一層次的處理器類型。

FPGA,從架構上來說,可以用來實現(xiàn)定制的ASIC引擎,但因為硬件可編程的能力,可以切換到其他ASIC引擎,具有一定的彈性可編程能力。

DSA,是接近于ASIC的設計,但具有一定程度上的可編程。覆蓋的領域和場景比ASIC要大,但依然存在太多的領域需要特定的DSA去覆蓋。

ASIC,是完全不可編程的定制處理引擎,理論上最復雜的“指令”以及最高的性能效率。因為覆蓋的場景非常小,因此需要數(shù)量眾多的ASIC處理引擎,才能覆蓋各類場景。

4323fac2-b010-11ec-aa7f-dac502259ad0.png

為了更加簡潔的理解六類常見的處理引擎的定位和作用,我們兩兩合并,定義三大類處理引擎類型:

基礎設施層任務?;A設施層的任務都相對確定,適合DSA和ASIC處理引擎處理。

應用層可加速部分任務?;A設施層是Vendor負責提供,而應用層則是給到用戶應用。用戶的應用多種多樣,因此應用層的加速也需要一定程度的彈性。這樣,GPU和FPGA就相對比較合適。

應用層的不可加速部分。主要是一些通用的處理,如控制以及一些細粒度的計算。協(xié)處理器在具體實現(xiàn)上,是CPU的一部分。因此,CPU(包含協(xié)處理器)可以兼顧常規(guī)的控制處理以及一些計算任務。

2.3 從處理器覆蓋場景的視角

4333fb8e-b010-11ec-aa7f-dac502259ad0.png

“尺有所長,寸有所短”,每個類型的處理器都有自己的優(yōu)勢,也都有自己的劣勢:

CPU及協(xié)處理器,最好的靈活可編程性,可以用在任何領域和場景。但性能卻是最低。

GPU及FPGA,較好的軟件或硬件編程能力,覆蓋領域和場景較多,但性能居中無法極致。

DSA及ASIC,性能最好。但DSA的可編程性較少,可以覆蓋特定領域;ASIC完全不可編程,只能覆蓋特定領域里的某個具體場景。

43454150-b010-11ec-aa7f-dac502259ad0.png

“專業(yè)的人做專業(yè)的事”,通過CPU + Coprocessor + GPU + FPGA + DSA + ASIC等各種類型處理引擎的混合架構,能夠兼顧性能和靈活性:

從宏觀的看,絕大部分計算是通過加速完成的,性能有顯著的提升;

而從用戶應用的角度,應用依然是運行在CPU上,跟之前沒有變化,依然是自己“掌控一切”。

3 設計一個理想的宏處理器

因為二八定律的存在,在整個系統(tǒng)堆棧里,用戶關心的那20%的相對不確定的任務,仍然需要用戶通過軟件編程實現(xiàn);而用戶不關心的、每個用戶應用系統(tǒng)都會存在的、占80%的這些相對確定的任務,則適合通過硬件加速的方式來實現(xiàn)。

3.1 當前的處理器芯片基本都是“單兵作戰(zhàn)”

處理器芯片是由各類處理器引擎組成的,在云計算數(shù)據(jù)中心,主要有三類同構處理器芯片。分析如下表所示。

4352edb4-b010-11ec-aa7f-dac502259ad0.png

這里我們對三類引擎組成的同構處理器進行分析:

CPU是數(shù)據(jù)中心最常見的處理器,但受限于性能瓶頸的原因,目前大家都在“八仙過海,各顯神通”,通過各種各樣的優(yōu)化手段,來努力提升整個服務器和數(shù)據(jù)中心的算力。

GPU在HPC、圖形圖形等領域,有非常大的優(yōu)勢。近些年,隨著AI的興起,與此同時AI算法更新很快,這就使得GPU成為AI最合適的處理器,GPU因此大放光彩。

DSA目前最主要的領域也是在AI,第一款經(jīng)典的DSA處理器是谷歌TPU。目前,受限于AI算法的快速迭代,仍然沒有DSA處理器的大范圍落地的案例。即使強大如谷歌能從芯片、框架到服務統(tǒng)統(tǒng)協(xié)同優(yōu)化,但嚴格來說,TPU也仍然沒有大范圍落地。

3.2 CPU+xPU的異構處理仍然不夠

另外,對單個處理器引擎來說,性能和靈活性是一對矛盾,如果只考慮同構計算,則很難達到方方面面兼顧??梢酝ㄟ^板級集成或者芯片內集成異構的方式,實現(xiàn)CPU+GPU/FPGA/DSA的架構,但也是存在一些問題。

43722b66-b010-11ec-aa7f-dac502259ad0.png

傳統(tǒng)異構計算的架構,是以CPU為中心,這種架構本身就存在一些問題:

IO路徑。CPU+xPU架構IO路徑太長,IO成為整個算力的瓶頸。

輸入輸出損耗。CPU+xPU加速增加了額外的CPU和xPU之間的數(shù)據(jù)輸入輸出損耗。

系統(tǒng)復雜度。異構計算是顯式的,CPU側軟件知道在做加速,CPU側需要處理與加速器側的數(shù)據(jù)和消息交互。

438babe0-b010-11ec-aa7f-dac502259ad0.png

仍然受限于硬件加速處理器的特點,異構計算仍無法兼顧性能和靈活性:

GPU異構加速架構。雖然GPU具有非常好的彈性加速能力,覆蓋非常多的領域,但受限于GPU的性能效率,無法做到極致性能的加速。

FPGA異構加速架構。FPGA可以做到硬件可編程,可以通過FaaS(此處FaaS為FPGA as a Service)機制實現(xiàn)彈性加速。FPGA的問題在于成本和功耗過高,以及設計規(guī)模的約束,只能做非常少量并且規(guī)模較小的加速引擎。

DSA異構加速架構。DSA可以做到極致的性能加速能力,但受限于其只針對某個特定領域,所以使用范圍受限。

3.3 團隊協(xié)作成就通用的超異構處理器

43a6e28e-b010-11ec-aa7f-dac502259ad0.png

隨著CPU、GPU等常見處理引擎的成熟,也隨著工藝和Chiplet技術的進步,我們可以在單個芯片集成更多的處理器引擎,使得在單芯片超越2個形態(tài)處理引擎成為了可能,超異構處理器(Hyper-heterogeneous Processing Unit,HPU)開始逐步成為現(xiàn)實。

43ba004e-b010-11ec-aa7f-dac502259ad0.png

如上圖所示,有點像塔防游戲,我們設置了三層“防御”,然后待處理的任務就像是“需要消滅的敵人”:

我們假設,待處理的有100個單位任務;

第一層“防御”,DSA+ASIC能夠覆蓋80%的任務(即80個任務)的性能加速,可以很快“消滅”。但受限于覆蓋的領域和場景,會有20%(即20個任務)的“漏網(wǎng)之魚”;

第二層“防御”,GPU+FPGA能夠覆蓋接下來任務的80%,性能依然強勁,可以搞定剩下任務的80%(即16個任務)。但仍然有一些不是那么適合硬件加速的“頑固敵人”(剩余的4個任務)。

第三層“防御”,CPU和協(xié)處理器作為“定海神針”,能夠覆蓋所有場景。由它們負責“消滅”最后的“頑固敵人”(即處理最后4個任務)。

在沒有硬件加速的情況下,所有的100個任務都需要CPU來處理;而有了加速之后,CPU只需要處理4個任務。當整個設計足夠均衡(各類加速引擎不成為性能的瓶頸)的時候,反過來我們可以說,通過超異構處理器HPU可以實現(xiàn)25倍的性能提升。 受宏觀超大規(guī)模數(shù)據(jù)中心的影響,也受軟硬件深度融合的加持,可以繼續(xù)優(yōu)化這里的“二八定律”,假設我們可以把不同層次處理引擎可處理的任務比例再增強10%。這樣:DSA+ASIC完成90個任務,GPU+FPGA完成9個任務,最終CPU只需要完成1個任務?;蛘叻催^來說,可以通過軟硬件融合,實現(xiàn)通用的超異構處理器GP-HPU,實現(xiàn)100倍的性能提升。

3.4 超越傳統(tǒng)SOC

通用超異構處理器GP-HPU,可以算是SOC,但又跟傳統(tǒng)的SOC有很大的不同。如果無法認識到這些不同,就無法理解到HPU的本質。下表是一些典型的區(qū)別對比。

43d3f062-b010-11ec-aa7f-dac502259ad0.png

審核編輯 :李倩

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

    關注

    68

    文章

    19038

    瀏覽量

    228482
  • RISC
    +關注

    關注

    6

    文章

    461

    瀏覽量

    83614

原文標題:是否存在足夠“通用”的處理器,在性能快速提升的同時,還能夠“包治百病”?

文章出處:【微信號:bdtdsj,微信公眾號:中科院半導體所】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    RISC-V架構在物聯(lián)網(wǎng)中有什么特別的優(yōu)勢嗎?

    RISC-V架構在物聯(lián)網(wǎng)中有什么特別的優(yōu)勢嗎?想咨詢一下使用做個實際項目的壇友,講解一下。
    發(fā)表于 10-12 22:17

    國產主流8位單片機-RISC架構精簡指令集單片機

    在當前的電子產品開發(fā)領域,8位單片機仍然占據(jù)著重要的地位,尤其是在嵌入式系統(tǒng)和低功耗應用中。RISC(簡化指令集計算)架構以其高效性和簡單性,成為了國產主流8位單片機。RISC架構通過
    發(fā)表于 09-27 10:15

    risc-v與esp32架構對比分析

    RISC-V與ESP32在架構上存在顯著的差異,這些差異主要體現(xiàn)在處理器類型、設計原則、功能特性以及應用場景等方面。以下是對兩者架構的詳細對比分析: 一、處理器類型與設計原則 RISC
    發(fā)表于 09-26 08:40

    RISC--V架構的目標和特點

    RISC--V架構的目標 RISC--V架構的目標如下 成為一種完全開放的指令集,可以被任何學術機構或商業(yè)組織所自由使用 成為一種真正適合硬件實現(xiàn)且穩(wěn)定的標準指令集
    發(fā)表于 08-23 00:42

    risc-v的發(fā)展歷史

    RISC-V的發(fā)展歷史可以追溯到2006年左右,當時David Patterson和其他研究者開始探索創(chuàng)建一個開放和可擴展的指令集架構(ISA)。以下是RISC-V發(fā)展的主要里程碑: 一、起源與初步
    發(fā)表于 07-29 17:20

    為什么要有RISC-V

    在于它是一個開源的指令集架構。與幾乎所有的舊架構不同,它的未來不受任何單一公司的浮沉或一時興起的決定的影響(這一點讓許多過去的指令集架構都遭了殃)。它屬于一個開放的,非營利性質的基金會
    發(fā)表于 07-27 15:05

    RISC--V架構的特點

    RISC--V架構的特點 RISC-V架構RISC-V 架構是基于 精簡指令集計算(
    發(fā)表于 05-24 08:01

    RISC-V開放架構設計之道|閱讀體驗】+ 閱讀深體驗

    本人沒有芯片設計,或者指令集方面較深的基礎知識,不過認真看這本書也令我學到了不少。 書中一開始便提到RISC-V的目標是稱為一款通用的指令集架構:需要適合設計各種規(guī)模的處理器,能兼容各種流行的軟件棧
    發(fā)表于 03-05 22:01

    RISC-V開放架構設計之道|閱讀體驗】一本別出心裁的RISC-V架構之書(第一章)

    RISC-V開放架構設計之道|閱讀體驗】一本別出心裁的RISC-V架構之書(第一章) 申請這本書的時候就看到了書評中有幾點吸引我,讓我希望拜讀一下: 本書的作者是
    發(fā)表于 01-24 19:06

    RISC-V開放架構設計之道|閱讀體驗】學習處理器體系架構的一本好書

    感謝電子發(fā)燒友論壇和電子工業(yè)出版社提供的試讀機會。 《RISC-V開放架構設計之道》由RISC-V架構的作者、著名的計算機體系架構專家Dav
    發(fā)表于 01-23 20:08

    RISC-V開放架構設計之道|閱讀體驗】 RISC-V設計必備之案頭小冊

    有幸參加發(fā)燒友電子的論壇評測,這兩天收到了這本需要評測的書籍《RISC-V開放架構設計之道》,全書簡單講了RISC-V指令集中目前已經(jīng)完善的幾個指令集部分,并展望了未來可能會在指令集
    發(fā)表于 01-22 16:24

    名單公布!【書籍評測活動NO.26】圖靈獎得主親自撰寫!RISC-V開放架構設計之道

    信:elecfans123)領取書籍進行評測,如在5個工作日內未聯(lián)系,視為放棄本次試用評測資格! 圖靈獎得主David Pat terson親自撰寫:《RISC-V開放架構設計之道》 RISC-V
    發(fā)表于 12-13 17:25

    RISC-V架構芯片出貨超過10億顆

    RISC-V 開放式架構自2014 年8 月推出以來,已獲顯著進步。采RISC-V 架構的芯片出貨超過10 億顆,預估到2030 年有160 億顆R
    的頭像 發(fā)表于 11-16 15:10 ?824次閱讀
    <b class='flag-5'>RISC</b>-V<b class='flag-5'>架構</b>芯片出貨超過10億顆

    賽昉科技RISC-V架構7110

      FET7110-C核心板基于賽昉科技昉·驚鴻7110處理器設計開發(fā),采用開源RISC-V架構,主頻1.5GHz,集成4個RISC-V核,跑分達5.09 CoreMark/MHz,性能優(yōu)于
    發(fā)表于 10-30 08:49

    RISC-V開源架構和ARM架構什么區(qū)別?

    很多公司覺得ARM收費太高,決定一起搞RISC-V架構,是不是這種開源的是不是不收費的;那和ARM有啥區(qū)別,能發(fā)展起來嗎
    發(fā)表于 10-30 06:38