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

CopperDong發表於2017-11-21

基於RISC-V的開源處理器研究現狀

  目前基於RISC-V架構的開源處理器有很多,有標量處理器Rocket,也有超標量處理器BOOM,還有面向嵌入式領域的Z-scalePicoRV32等。

2.1 標量處理器——Rocket

  RocketUCB設計的一款64位、5級流水線、單發射順序執行處理器,主要特點有:

  •  支援MMU,支援分頁虛擬記憶體,所以可以移植Linux作業系統
  •  具有相容IEEE 754-2008標準的FPU
  •  具有分支預測功能,具有BTBBranch Prediction Buff)、BHTBranch History Table)、RASReturn Address Stack

  Rocket是採用ChiselConstructing Hardware in an Scala Embedded Language)編寫的,這也是UCB設計的一種開源的硬體程式語言,是Scala語言的領域特定應用,可以充分利用Scala的優勢,將物件導向(object orientation)、函數語言程式設計(functional programming)、型別引數化(parameterized types)、型別推斷(type inference)等概念引入硬體程式語言,從而提供更加強大的硬體開發能力。Chisel除了開源之外,還有一個優勢就是使用Chisel編寫的硬體電路,可以通過編譯得到對應的Verilog設計,還可以得到對應的C++模擬器。Rocket使用Chisel編寫,就可以很容易得到對應的軟體模擬器。同時,因為Chisel是物件導向的,所以Rocket的很多類可以被其他開源處理器、開源SoC直接使用。

  Rocket已經被流片11次之多,其效能比較參考前文3

2.2 超標量亂序執行處理器——BOOM

  BOOMBerkeley Out-of-Order Machine)是UCB設計的一款64位超標量、亂序執行處理器,支援RV64G,也是採用Chisel編寫,利用Chisel的優勢,只使用了9000行程式碼,流水線可以劃分為六個階段:取指、譯碼/重新命名/指令分配、發射/讀暫存器、執行、訪存、回寫。

 藉助於ChiselBOOM是可引數化配置的超標量處理器,可配置的引數包括:

  •  取指、譯碼、提交、指令發射的寬度
  •  重排序快取ROBRe-Order Buffer)、物理暫存器的大小
  •  取指令快取、RASBTB、載入、儲存佇列的深度
  •  有序發射還是無序發射
  •  L1 cache的路數
  •  MSHRsMiss Status Handling Registers)的大小
  •  是否使能L2 Cache

  UCB已經在40nm工藝上對BOOM進行了流片,測試結果如表4所示。可見BOOM與商業產品ARM Cortex-A9的效能要略優,體現在面積小、功耗低。


2.3 處理器家族——SHAKTI

  SHAKTI[4]是印度理工學院的一個計劃,目標是設計一系列適合不同應用環境的、基於RISC-V的開源處理器,以及一些IP核,以便搭建SoC。這些處理器是E-ClassC-ClassI-ClassM-ClassS-ClassH-ClassT-ClassN-Class目前已經開源的是前三,使用Bluespec System Verilog編寫。

  •  E-Class:32位標量處理器,3級流水線,支援RISC-VCCompress)擴充套件,目標是超低功耗處理器。
  •  C-Class:32位或者64位標量處理器,3-8級流水線,支援MMU、具有容錯功能、支援RISC-VC擴充套件,目標也是超低功耗處理器。
  •  I-Class:64位、1-8核,亂序執行處理器,共享L2 Cache、支援雙執行緒、SIMD/VPU,目標是通用處理器。
  •  M-Class:I-Class的增強版,增加了指令發射大小、支援四執行緒、最高支援16核,目標是通用處理器、低端伺服器和移動應用。
  •  S-Class:64位、超標量多執行緒處理器,支援L3 CacheRapidIOHMCHybrid Memory Cube)、向量處理單元,還有協處理器用於資料庫訪問、加密演算法、機器學習,最高支援64核,目標是通用處理器、伺服器。
  •  H-Class:64位、32-128核、支援多執行緒、順序或者亂序執行處理器,具有向量處理單元,目標是高效能運算。
  •  T-Class:64或者128位處理器,其中通過為儲存器引入Tag,從而增強其安全性。
  •  N-Class:目標是通過自定義的擴充套件進行網路資料處理。

 

2.4 嵌入式應用處理器——ORCA

  PicoRV32是由VectorBlox公司設計的一款32位標量處理器,目標是應用於嵌入式領域,採用VHDL編寫,實現了RV32IM,也可以移除其中的M擴充套件,也就是移除乘法除法擴充套件,從而減少晶片佔用資源,甚至可以移除與定時器有關的指令,從而僅僅實現RV32E。當將ORCA作為一個軟核下載到FPGA上的時候,其資源佔用與主頻如表5所示。


2.5 其他開源處理器

1RI5CY

  RI5CY是由蘇黎世聯邦理工大學和波羅尼亞大學聯合設計的一款小巧的4級流水線開源處理器,實現了RV32IC,以及RV32M中乘法指令mul,其目標是作為並行超低功耗處理器專案PULPParallel Ultra Low Power)的處理器核,所以RI5CYRISC-V的基礎上增加了許多擴充套件,包括硬體迴圈、乘累加、高階算術指令等。採用UMC65nm工藝進行流片,RI5CY主頻可以達到654MHz,動態功耗是17.5uW/MHz[6]。採用SystemVerilog編寫。

2RIDECORE

  RIDECORE (RIsc-v Dynamic Execution CORE) 是由東京工業大學設計釋出的一款超標量亂序執行處理器,實現了RV32IM6級流水線,分別是取指、譯碼、指令分配、發射、執行、提交,可以同時取兩條指令、對兩條指令譯碼、提交兩條指令。採用的是Gshare分支預測機制。

3Hwacha

  Hwacha是由UCB開發的一款向量處理器,UCBHwacha作為RISC-V的一個非標準擴充套件Xhwacha,已經以28nm45nm的工藝流片多次,主頻在1.5GHz以上,目前還在研發中,正在修改OpenCL的編譯器,以適合HwachaUCB計劃以開源的形式釋出其程式碼。

4f32c

f32c是由薩格勒布大學設計釋出的32位、5級流水線、標量處理器,原本實現的是MIPS指令集,後來新增實現了RISC-V指令集,處理器包括分支預測、直接對映快取,同時釋出的還有SDRAM控制器、SRAM控制器、視訊FrameBufferSPI控制器、UARTGPIOIP,使用VHDL編寫程式碼。使用f32c處理器核,薩格勒布大學釋出了FPGArduino專案,該專案將一塊FPGA開發板變為一個Arduino板,並且可以使用Arduino IDE進行程式編譯下載。

5Z-scale/V-scale

  Z-scaleUCB釋出的針對嵌入式環境的32位、3級流水線、單發射標量處理器,實現了RV32IM,指令匯流排和資料匯流排都是AHB-LiteZ-scale採用是Chisel編寫程式碼,利用Rocket中的程式碼,僅增加了604行程式碼就實現了Z-scaleV-scaleZ-scale對應的Verilog版本。

6sodor

  sodorUCB釋出的針對教學的32位開源處理器系列,採用Chisel編碼實現,可以很容易的得到對應的C++模擬器。sodor系列有五種處理器,分別是單週期處理器、2級流水線處理器、3級流水線處理器、5級流水線處理器、可執行微碼的處理器。

7PicoRV32

  PicoRV32是由RISC-V開發者Clifford Wolf設計釋出的一款大小經過優化的開源處理器,實現了RV32IMC,並且根據不同環境可配置為實現RV32ERV32IRV32ICRV32IMRV32IMC。內建一個可選擇的中斷控制器。其特點是小巧,在Xilinx7系列晶片上佔用750-2000LUT,速度可以達到250-400MHzPicoRV32採用Verilog編寫程式碼。

8Tom Thumb

  Tom Thumb是由RISC-V開發者maikmerten設計釋出的一款32位、6級流水線開源處理器,實現了RV32I,目標是儘量減少FPGA的資源佔用,在Cyclone IV系列FPGA大約佔用資源1200 LEs。採用VHDL編寫程式碼。

9FlexPRET

  FlexPRET[7]是由UCB設計釋出的5級流水線、多執行緒處理器,目標使用在實時嵌入式應用中,執行緒數量可配置為1-8。為了提高嵌入式處理器的資源利用率,每個硬體執行緒被標記為硬實時(hard real-time thread)或者軟實時(soft real-time thread),硬實時執行緒按照固定的頻率被排程,如果當前沒有硬實時執行緒可排程,再排程軟實時執行緒。使用Chisel編寫程式碼。

10YARVI

  YARVIYet Another RISC-V Implementation)是由RISC-V開發者Tommy Thorn設計釋出的一款簡單的、32位開源處理器,實現了RV32I,使用Verilog作為開發語言。其出發點不在於效能,而是要能夠清晰、準確的實現RV32I

(未完待續)

相關文章