天天看點

基于RISC-V架構的開源處理器及SoC研究綜述(三)3 基于RISC-V的開源SoC研究現狀結語參考文獻

3 基于RISC-V的開源SoC研究現狀

3.1 Rocket-Chip

  UCB為了友善使用者學習,同時也為了便于重複使用已設計好的硬體子產品,在GitHub上建立了Rocket-Chip Generator的項目,其中包括了Chisel、GCC、Rocket處理器,以及圍繞Rocket的一系列總線單元、外設、緩存等,并且采用了參數化的配置方法,進而可以友善的建立不同性能要求的基于Rocket處理器的SoC。采用Chisel編寫,主要的子子產品如下。

  •  Chisel:UCB設計的開源硬體程式設計語言。
  •  Hardfloat:參數可配置的、相容IEEE 754-2008标準的浮點單元。
  •  Riscv-tools:開發工具,包括GCC、Newlib,以及移植的Linux。
  •  Rocket:Rocket處理器,包括L1 Cache。
  •  Uncore:實作了需要與Rocket緊密連接配接的功能單元,比如L2 Cache、L1 Coherence Hub等。
  •  Juntions:實作了不同協定的接口之間的轉換。
  •  Rocketchip:頂層子產品,同時也實作了内部總線TileLink向外部總線AXI或者AHB的轉換。

  前文介紹的BOOM、Z-scale都可以通過配置Rocket-Chip的不同參數得到。

3.2 LowRISC

  LowRISC是由劍橋大學為主的一些研發人員成立的非營利性組織,主要是設計釋出基于RISC-V指令集的64位開源SoC,其成員有樹莓派的合作者,是以其目标是希望将設計的SoC做成類似于樹莓派那樣價格便宜、功能豐富、擁有大量使用者的開源硬體。LowRISC釋出的SoC的名稱也是LowRISC,是在Rocket-Chip的基礎上改進開發的,采用System Verilog編寫改進部分的代碼。主要特點是:

  (1)Tagged Memory:給每一個存儲位置都增加了一個Tag,目前是雙字(64bit)對應一個Tag(4bit),目的是防止控制流劫持攻擊,同時也有其他的一些用處,比如:垃圾回收、設定watchpoint等。為了實作Tagged Memory,LowRISC為RISC-V增加了兩條指令用來讀寫Tag。2015年4月釋出的0.1版本中具有該功能。

  (2)Untethered:早期的Rocket-Chip需要依賴于一個通用處理器的協助才能夠啟動,才能夠通路序列槽、網口、SD卡等外設,Untethered LowRISC通過實作(Memory mapping I/O)、片上NASTI interconnect等功能,解決了上述問題。2015年11月釋出的0.2版本中具有該功能。

  (3)Trace Debugging:引入了Open SoC Debug,支援Trace Debugging,可以收集指令執行記錄,便于離線或者線上分析。2016年7月釋出的0.3版本中具有該功能。

3.3 PULPino

  PULPino是蘇黎世聯邦理工大學和波羅尼亞大學聯合釋出的基于RISC-V的開源處理器,其處理器核RI5CY在前文已述,蘇黎世聯邦理工大學和波羅尼亞大學本來設計的項目是PULP,這是一個多核SoC項目,考慮到這個項目太複雜,有許多IP、自定義工具集,不友善開源,是以開發者決定先開源一個單核SoC項目,即PULPino。PULPino直接使用了PULP項目的許多IP。

  PULPino具有一個AXI互連總線,另外還有一個APB總線,用來連接配接低速外設,比如:GPIO、UART、I2C控制器、SPI Master控制器等。調試子產品支援Advanced Debug Unit。PULPino包括一個Boot ROM,其中可以寫入BootLoader,進而實作在啟動的時候從外部Flash讀入程式并執行。

3.4 RISC-V VHDL

  RISC-V VHDL是俄羅斯的GNSS Sensor公司釋出的基于Rocket的開源SoC,其前身是莫斯科實體技術學院的一個項目。該項目的處理器核直接就用的是Rocket,可以配置為隻有L1Cache,也可以配置為包括L2Cache,在此基礎上,提供了大量的IP核,采用類似LEON3的GRLIB庫的方式,所有的IP核都是即插即用,RISC-V VHDL提供了一個AXI總線,IP核都挂載在該總線上。IP核包括:UART、GPIO、中斷控制器、以太網控制器,此外還支援DSU(Debug Support Unit),均采用VHDL編寫代碼。

  RISC-V VHDL中大多數IP核都是開源的,唯一商業的是GNSSLIB,這是一個與定位導航有關的庫,也是RISC-V VHDL的特色。

結語

  RISC-V的發展十分迅速,除了前文已述的基于RISC-V的開源處理器、開源SoC大量湧現,還有很多的商用處理器也計劃采用RISC-V指令集架構,比如PulSAR[8],采用的是一個異構多處理器結構,其中包括2個标量處理器Rocket,還包括兩個超标量亂序執行處理器BOOM。

  RISC-V的發展一方面得益于自身設計吸取了RISC接近40年的經驗教訓,使得架構設計更加合理,另一方面得益于日漸成熟的軟體生态,UCB提供了針對RISC-V的開源編譯器GCC、LLVM,還提供了開源仿真器Spike、QEMU,社群還移植了FreeBSD、Debian、Gentoo、Yocto、Genode等作業系統。

  在第4屆RISC-V專題研讨會上宣布成立了RISC-V基金會,吸納了衆多實力雄厚的商業公司和知名研究機構,其中包括中國科學院,可以預見RISC-V即将進入一個快速發展的階段,應該會在以下幾個方面有突破進展。

  (1)有若幹成熟的、可商業化的、采用RISC-V架構的晶片問世,并得到大規模應用。

  (2)性能逼近主流桌面處理器。

  (3)主流處理器與采用RISC-V架構的開源處理器組成的異構系統。

  (4)移植到RISC-V架構的作業系統更加穩定可靠。

  (5)采用上百個簡單RISC-V核的多核并行計算。

  (6)計算機教學中采用RISC-V作為範例教學。

  (7)調試功能得到進一步加強。

  對于國内而言,RISC-V提供了一個很好的參考,也是一個很好地機遇,有很多可借鑒的地方,用來實作自主可控的處理器。

參考文獻

[1]Waterman, A. et al. The RISC-V Instruction Set Manual, Volume I: User-Level ISA, Version 2.1[S], 2016

[2]Krste Asanovic, David Patterson, The Case for Open Instruction Sets[J], MICROPROCESSOR report, 2014, 8: 1-7 .

[3]Celio, Christopher and Patterson, David A. and Asanović, Krste, The Berkeley Out-of-Order Machine (BOOM): An Industry-Competitive, Synthesizable, Parameterized RISC-V Processor[R], EECS Department, University of California, Berkeley, June 2015.

[4]N. Gala, A. Menon, R. Bodduna, G. S. Madhusudan, V. Kamakoti, SHAKTI Processors: An Open-Source Hardware Initiative[C], 29th International Conference on VLSI Design and 2016 15th International Conference on Embedded Systems (VLSID), Kolkata, India, January, 2016

[5]PULPino User Manul[EB/OL], http://www.pulp-platform.org/documentation/, 2016-8

[6]Michael Zimmer, David Broman, Chris Shaver, Edward A. Lee, FlexPRET: A Processor Platform for Mixed-Criticality Systems[C], Proceedings of the 20th IEEE Real-Time and Embedded Technology and Application Symposium (RTAS), April, 2014.

[7]PEYRET Thomas, VENTROUX Nicolas, OLIVIER Thomas, HETEROGENEOUS MULTICORE BASED ON RISC-V PROCESSORS AND FD-SOI SILICON PLATFORM[C], 4th RISC-V Workshop Proceedings, July, 2016.

繼續閱讀