基於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.
相關文章
- 基於RISC-V架構的開源處理器及SoC研究綜述(一)架構
- 基於RISC-V架構的開源處理器及SoC研究綜述(二)架構
- 處理器架構資源整理架構
- 指令集架構、arm核心、SoC、處理器、CPU、GPU等的關係架構GPU
- 分散式快取架構綜述分散式快取架構
- 文章綜述:基於結構法分析的故障檢測
- 神經架構搜尋在視訊理解中研究進展的綜述架構
- 讀“基於深度學習的影像風格遷移研究綜述”有感深度學習
- CPU處理器架構架構
- 網路廣告研究綜述
- 處理器架構和配置架構
- 處理器架構劃分架構
- 7大類深度CNN架構創新綜述CNN架構
- 基於AWS雲服務的批處理系統架構架構
- 綜述 | 水稻株型的遺傳基礎與分子調控機理研究進展
- 基於.NET的LINQ to SQL 三層架構開發之架構建立SQL架構
- Action Recognition——基於表示的動作識別綜述
- 基於 Serverless 架構的頭像漫畫風處理小程式Server架構
- 【智慧駕駛】基於計算機視覺的自動駕駛演算法研究綜述計算機視覺自動駕駛演算法
- 盤點.NET支援的 處理器架構架構
- 阿里架構師,講述基於微服務的軟體架構模式(附資料)阿里架構微服務模式
- 計算廣告系統演算法與架構綜述演算法架構
- RISC-V,微處理器中的 Linux :它會開啟一個開源硬體的文藝復興麼?Linux
- MIPS 架構流水線處理器架構
- GPU 架構是圖形處理器GPU架構
- 處理器指令集架構的位數架構
- OnionArch 2.0 - 基於DDD的洋蔥架構改進版開源架構
- JVM篇1:[-結構綜述-]JVM
- 自動機器學習:最近進展研究綜述機器學習
- 嘉楠基於RISC-V的端側AIoT SoC採用了芯原的ISP IP和GPU IPAIGPU
- Action Recognition——基於深度學習的動作識別綜述深度學習
- 生成對抗網路綜述:從架構到訓練技巧架構
- 敏捷開發方法綜述敏捷
- nlp文字處理開源工具,及聊天機器人實現開源工具機器人
- 如何基於開源構架設計一個影片平臺?
- 開源新聞綜述:五角大樓、好萊塢和 Sandboxie 的開源
- 【讀論文】 -- 推薦系統研究綜述
- ARM太貴,80多家科技巨頭悄然站隊開源晶片架構RISC-V晶片架構