基於RISC-V架構的開源處理器及SoC研究綜述(一)

CopperDong發表於2017-11-21

  http://blog.csdn.net/leishangwen/article/details/55006662

 RISC-V是加州大學伯克利分校(University of California at Berkeley,以下簡稱UCB)設計併發布的一種開源指令集架構,其目標是成為指令集架構領域的Linux,應用覆蓋IoT(Internet of Things)裝置、桌面計算機、高效能運算機等眾多領域。其產生是因為UCB的研究人員在研究指令集架構的過程中,發現當前指令集架構存在如下問題[1]。

   (1)絕大多數指令集架構都是受專利保護的,比如:x86、MIPS、Alpha,使用這些架構需要授權,限制了競爭的同時也扼制了創新。
   (2)當前的指令集架構都比較複雜,不適合學術研究,而且很多複雜性是因為一些糟糕的設計或者揹負歷史包袱所帶來的。
   (3)當前的指令集架構都是針對某一領域的,比如:x86主要是面向伺服器、ARM主要是面向移動終端,為此對應的指令集架構針對該領域做了大量的領域特定優化,缺乏一個統一的架構可以適用多個領域。
   (4)商業的指令集架構容易受企業發展狀況的影響,比如:Alpha架構就隨著DEC公司的被收購而幾近消失。
   (5)當前已有的各種指令集架構不便於針對特定的應用進行自定義擴充套件。
   為此,UCB的研究人員Krste Asanovic、Andrew Waterman、Yunsup Lee決定設計一種新的指令級架構,並決定以BSD授權的方式開源,希望藉此可以有更多創新的處理器產生、有更多的處理器開源,並以此降低電子產品成本[2]。

   RISC-V自2014年正式釋出以來,受到了包括谷歌、IBM、Oracle等在內的眾多企業以及包括劍橋大學、蘇黎世聯邦理工大學、印度理工學院、中國科學院在內的眾多知名學府與研究機構的關注和參與,圍繞RISC-V的生態環境逐漸完善,並湧現了眾多開源處理器及SoC採用RISC-V架構,這些處理器既有標量處理器,也有超標量處理器,既有單核處理器,也有多核處理器,本文接下來將簡單介紹RISC-V架構的基本設計,隨後將詳細描述目前採用RISC-V架構的開源處理器與SoC。

1 RISC-V簡介

1.1 RISC-V基本設計

   RISC-V是一個典型三運算元、載入-儲存形式的RISC架構,包括三個基本指令集和6個擴充套件指令集,如表1所示,其中RV32ERV32I的子集,不單獨計算。


   基本指令集的名稱字尾都是I,表示Integer,任何一款採用RISC-V架構的處理器都要實現一個基本指令集,根據需要,可以實現多種擴充套件指令集,例如:如果實現了RV32IM,表示實現了32位基本指令集和乘法除法擴充套件指令集。如果實現了RV32IMAFD,那麼可以使用RV32G來表示,表示實現了通用標量處理器指令集。本文只介紹RV32I的基本情況。

   RV32I指令集有47條指令,能夠滿足現代作業系統執行的基本要求,47條指令按照功能可以分為如下幾類。

   (1)整數運算指令:實現算術、邏輯、比較等運算。

   (2)分支轉移指令:實現條件轉移、無條件轉移等運算,並且沒有延遲槽。

   (3)載入儲存指令:實現位元組、半字、字的載入、儲存操作,採用的都是暫存器相對定址方式。

   (4)控制與狀態暫存器訪問指令:實現系統控制與狀態暫存器原子讀-寫、原子讀-修改、原子讀-清零等操作

   (5)系統呼叫指令:實現系統呼叫、除錯等功能。

1.2 RISC-V的優勢

1.2.1 與開源指令集架構比較

   在RISC-V釋出之前,實際上已經有幾種開源指令級架構,包括SPARC V8OpenRISC,其中SUN釋出的開源多核多執行緒處理器OpenSparcT1OpenSparcT2,以及歐空局的LEON3採用的就是SPARC V8OpenRISC也有同名的開源處理器,在[2]中介紹了RISC-V與前兩者的比較,如表2所示。此外,OpenRISC的許可證為GPL,這意味著所有的指令集改動都必須開源。而RISC-V的許可證是較為寬鬆的BSD License授權。


1.2.2 與商業指令集架構比較
   UCB的研究人員設計了一款採用RISC-V指令集架構的開源處理器Rocket,並且已經成功流片了11次,其中採用臺積電40nm工藝時的效能與採用同樣工藝的,都是標量處理器的ARM Cortex-A5的效能對比如表3所示。可見Rocket佔用更小的面積,使用更小的功耗,但是效能卻更優。



(未完待續)

相關文章