読者です 読者をやめる 読者になる 読者になる

FPGA開発日記

FPGAというより、コンピュータアーキテクチャかもね! カテゴリ別記事インデックス https://sites.google.com/site/fpgadevelopindex/

RISC-Vで実機動作可能な実装まとめ

RISC-V

RISC-Vは、様々なグループ、団体がその実装を行っており、RISC-V Workshopではいくつかの実装の発表も行われている。

そこで、現時点で一般ユーザが入手可能なRISC-Vとしてはどのようなものがあるか、ここでまとめておきたい。

この記事は情報がアップデートされる度に少しずつ更新できたらしいな。

University of California Berkeley による実装

Rocket Chip BOOM 2-wide BOOM 4-wide Z-scale
UCB UCB UCB UCB
ISA 64-bit RISC-V v2 64-bit RISC-V 64-bit RISC-V 32-bit RISC-V
RV32IM
Pipeline Single-Issue
In-Order
5-stage
2-wide, 3-Issue
Out-of-Order
6-stage
4-wide, 4-issue
Out-of-Order
6-stage
Single-Issue
In-order
3-stage
L1 cache Configurable Configurable Configurable -
L2 cache Configurable Configurable Configurable -
Performance[DMIPS/MHz] 1.72 - - 1.35
IPC 0.76 1.25 1.5 -
Max Frequency[MHz] 1500 1500 1500 500
CoreMark[CMK/MHz] 2.32 3.91 4.7 -
Area [mm2] 0.39 (with 16k cache) 1.1 (with 32k cache) 1.4 (with 32k cache) 0.0098
Area Efficiency[DMIPS/MHz/mm2] 4.41 - - 138

Berkeleyからは大きく三種類のRISC-Vの実装が発表されている。

一つは最も標準的なコアのRocket Core, もう一つが性能を重視したBOOM, そしてコアのサイズを小さくしてパイプライン段数を抑えたZ-scaleだ。

Rocket Core

最も一般的なRISC-V実装。シングル命令発行で5パイプラインステージを持つ。またコアの実装自体はChiselというハードウェア記述言語で実装されている。

github.com

XilinxFPGA向けに、Zybo, Zedboard, ZC706 向けの実装パッケージが提供されている。

github.com

BOOM

性能を重視したコア。2-wide版と4-wide版が存在する。またコアの実装自体はChiselというハードウェア記述言語で実装されている。

github.com

  • The Berkeley Out-of-Order Machine (BOOM): An IndustryCompetitive, Synthesizable, Parameterized RISC-V Processor

http://digitalassets.lib.berkeley.edu/techreports/ucb/text/EECS-2015-167.pdf

  • The Berkeley Out-of-Order Machine (BOOM!): An Open-source Industry-CompeEEve, Synthesizable, Parameterized RISC-V Processor

https://riscv.org/wp-content/uploads/2016/01/Wed1345-RISCV-Workshop-3-BOOM.pdf

Z-scale

32-bitのコア。パイプライン段数は短かく、最も面積性能を重視したコア。

github.com

github.com

  • Z-scale: Tiny 32-bit RISC-V Systems With Updates to the Rocket Chip Generator

https://riscv.org/wp-content/uploads/2015/06/riscv-zscale-workshop-june2015.pdf

各実装の比較

各実装の情報をかき集めて比較してみたのだが、どうも性能と面積のあたりで公平な比較をするためのデータが見付からない。

Z-scaleおよびRocket-chipはDMIPSが公表されているものの、BOOMではCoremark値のみが公表されており、公平な比較が出来ない。また、このため面積性能の比較もできない。

さらに、キャッシュサイズも各実装で異なっており、Z-scaleについてはおそらくキャッシュが搭載されていないこともあり、公平な比較というのがちょっと難しい状態だ。