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というハードウェア記述言語で実装されている。
XilinxのFPGA向けに、Zybo, Zedboard, ZC706 向けの実装パッケージが提供されている。
BOOM
性能を重視したコア。2-wide版と4-wide版が存在する。またコアの実装自体はChiselというハードウェア記述言語で実装されている。
- 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のコア。パイプライン段数は短かく、最も面積性能を重視したコア。
- 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についてはおそらくキャッシュが搭載されていないこともあり、公平な比較というのがちょっと難しい状態だ。