那曲檬骨新材料有限公司

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

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

3天內不再提示

RISC架構的興起

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

編者按

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

1從歷史中汲取靈感

1.1 RISC架構的興起

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

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

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

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

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

中間件層服務,如負載均衡、數據庫、文件系統、訪問控制、消息隊列、物聯網接入平臺等。

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

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

1.3 結論:“二八定律”在發生作用

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

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

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

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

等等。

2 分析一下各類處理引擎

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

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

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

2.2 從處理器引擎類型數量的視角

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3.1 當前的處理器芯片基本都是“單兵作戰”

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3.4 超越傳統SOC

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

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

審核編輯 :李倩

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

    關注

    68

    文章

    19407

    瀏覽量

    231172
  • RISC
    +關注

    關注

    6

    文章

    465

    瀏覽量

    83870

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

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

收藏 人收藏

    評論

    相關推薦

    Arm與RISC-V架構的優劣勢比較

    關于Arm與RISC-V的討論涉及多個層面。雖然多種因素共同作用于這些架構的整體性能,但每種架構都有其最適合的幾類主要應用場景。 Arm 長期以來,專有技術往往意味著高昂的許可費用,Arm架構
    發表于 02-01 22:30

    RISC-V架構及MRS開發環境回顧

    一、RISC-V架構介紹 1. RISC 架構的起源 1981年,在David Patterson(大衛·帕特森)的帶領下,美國加州大學伯克利分校的一個研究團隊起 草了
    發表于 12-16 23:08

    RISC-V 與 ARM 架構的區別 RISC-V與機器學習的關系

    在現代計算機架構中,RISC-V和ARM是兩種流行的處理器架構。它們各自具有獨特的特點和優勢,適用于不同的應用場景。 1. RISC-V架構
    的頭像 發表于 12-11 17:50 ?1227次閱讀

    基于risc-v架構的芯片與linux系統兼容性討論

    一直對基于RISC-V架構的芯片與Linux系統的兼容性比較感興趣,查了各種資料,眾說紛紜,在此整理一下學習內容,以備后用。這個復雜而重要的話題,涉及多個方面的考量。下面談談我的學習總結
    發表于 11-30 17:20

    RISC-V,即將進入應用的爆發期

    RISC-V是一種開放標準指令集架構 (ISA),最初由加州大學伯克利分校的研究人員于2010年開發。業界稱,這種開源特性為芯片設計者提供了極大的靈活性,可以根據具體需求定制AI加速器。 而AI
    發表于 10-31 16:06

    RISC-V架構在物聯網中有什么特別的優勢嗎?

    RISC-V架構在物聯網中有什么特別的優勢嗎?想咨詢一下使用做個實際項目的壇友,講解一下。
    發表于 10-12 22:17

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

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

    risc-v與esp32架構對比分析

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

    思爾芯亮相RISC-V中國峰會,展示架構建模與混合仿真驗證方法

    NEWS2024RISC-V中國峰會2024年8月21-23日,思爾芯亮相第四屆RISC-V中國峰會,與全球RISC-V生態伙伴共同探討了AI時代RISC-V
    的頭像 發表于 08-30 12:44 ?305次閱讀
    思爾芯亮相<b class='flag-5'>RISC</b>-V中國峰會,展示<b class='flag-5'>架構</b>建模與混合仿真驗證方法

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

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

    risc-v的發展歷史

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

    rIsc-v的缺的是什么?

    RISC-V作為一種開源的指令集架構(ISA),自其誕生以來就受到廣泛關注和應用,但它也存在一些不足之處。以下是RISC-V架構目前存在的主要缺點: 1. 性能問題 相對于專用ISA的
    發表于 07-29 17:18

    為什么要有RISC-V

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

    RISC--V架構的特點

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

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

    本人沒有芯片設計,或者指令集方面較深的基礎知識,不過認真看這本書也令我學到了不少。 書中一開始便提到RISC-V的目標是稱為一款通用的指令集架構:需要適合設計各種規模的處理器,能兼容各種流行的軟件棧
    發表于 03-05 22:01
    百家乐庄和闲的赌法| 玩百家乐官网高手支招篇| 六合彩走势图| 香港六合彩开奖历史记录| k7娱乐城| 南郑县| 亚洲赌博网站| 大田县| 高手百家乐官网赢钱法| 百家乐官网视频金币| 百家乐官网傻瓜式投注法| 真人百家乐官网赢钱| 网上玩百家乐官网的玩法技巧和规则| 新世纪百家乐官网的玩法技巧和规则 | 水果机技巧规律| 大发888游戏代冲省钱技巧| 博盈注册| 百家乐官网有哪几种| 百家乐官网包台| 百家乐官网天下| 哪个百家乐投注比较好| 巨星百家乐的玩法技巧和规则 | 百家乐专用| 大发888娱乐游戏平台| 淘金盈赌场有假吗| 百家乐官网算牌e世博| 利澳百家乐官网娱乐城| 百家乐官网平注常赢玩法| 百家乐看大路| 棋牌游戏大厅下载| 百家乐官网庄家提成| 百家乐官网网上真钱娱乐场开户注册 | 摩纳哥百家乐的玩法技巧和规则 | 太阳城百家乐官网外挂| 高楼24层风水好吗| 百家乐洗码软件| 网上百家乐真钱游戏| 东方夏威夷网站| 百家乐官网龙虎台布| 百家乐最好投注| 顶级赌场dj|