[論文レビュー] RVCoreP-32IM: An effective architecture to implement mul/div instructions for five stage RISC-V soft processors
本稿では、5段階の順序実行RISC-Vソフトプロセッサ拡張であるRVCoreP-32IMを提案する。この設計は、単純なフォークジョインマイクロアーキテクチャ構造を用いて、ハードウェア乗算・除算(M拡張)を効率的に統合している。radix-4およびDSPベースの乗算器ベンチマークにおいて、それぞれ1.87倍および3.13倍の性能向上を達成しており、VexRiscvよりも13%高い性能を発揮する。面積オーバーヘッドはわずか1.5倍にとどまる。
RISC-V, an open instruction set architecture, is getting the attention of soft processor developers. Implementing only a basic 32-bit integer instruction set of RISC-V, which is defined as RV32I, might be satisfactory for embedded systems. However, multiplication and division instructions are not present in RV32I, rather than defined as M-extension. Several research projects have proposed both RV32I and RV32IM processor. However, there is no indication of how much performance can be improved by adding M-extension to RV32I. In other words, when we should consider adding M-extension into the soft processor and how much hardware resource requirements will increase. In this paper, we propose an extension of the RVCoreP soft processor (which implements RV32I instruction set only) to support RISC-V M-extension instructions. A simple fork-join method is used to expand the execution capability to support M-extension instructions as well as a possible future enhancement. We then perform the benchmark using Dhrystone, Coremark, and Embench programs. We found that RV32IM is 1.87 and 3.13 times better in performance for radix-4 and DSP multiplier, respectively. In addition to that, our RV32IM implementation is 13\% better than the equivalent RISC-V processor.
研究の動機と目的
- 5段階の順序実行ソフトプロセッサにRISC-V M拡張(mul/div)を追加した際の性能とリソースコストを評価すること。
- 実行ステージにフォークジョイン構造を用いた、効率的で低オーバーヘッドなマイクロアーキテクチャ拡張をM拡張命令用に設計すること。
- 標準ベンチマークを用いて、radix-4とDSPベースの乗算器を比較し、RVCoreP-32IMの性能を、ハードウェア乗算器を搭載した場合と搭載しない場合で評価すること。
- コンパイラ最適化および命令ミックスが、M拡張サポートによる性能向上に与える影響を評価すること。
- 将来のカスタム命令を含む、RISC-V拡張をソフトプロセッサに拡張可能な再利用可能で設定可能なフレームワークを提供すること。
提案手法
- 既存のRVCoreP-32Iソフトプロセッサ(RV32Iのみ)に、実行ステージにおけるフォークジョイン構造を用いた、マルチサイクル実行ユニットを追加してM拡張命令を拡張する。
- 2種類の乗算器実装を実装:逐次的radix-4ブース乗算器と、より高い性能を求めるDSPブロックベース乗算器。
- 除算には、単純さとLUT効率を最優先するデジット再帰的除算法を採用。
- Verilog HDLでプロセッサを設定し、RV32IおよびRV32IM命令セットをサポートするようにし、実行時における命令セット選択を可能にする。
- Artix-7 FPGA上で、Dhrystone、Coremark、Embenchなどの標準ベンチマークを用いて、性能およびリソース使用量を測定する。
- VexRiscvおよび他の実装と比較し、実行時間、DMIPS/MHz、Coremark/MHzの指標を用いて性能向上を定量的に評価する。
実験結果
リサーチクエスチョン
- RQ15段階の順序実行RISC-Vソフトプロセッサにおいて、M拡張(mul/div)を追加することで、RV32Iに比べてどの程度の性能向上が得られるか?
- RQ2ソフトプロセッサにM拡張命令を統合する際のハードウェア面積オーバーヘッドはどの程度か?
- RQ3異なる乗算器実装(radix-4対DSPベース)は、性能およびリソース使用量にどのように影響するか?
- RQ4コンパイラ最適化および命令ミックスは、ハードウェア乗算・除算による性能向上にどの程度の影響を及ぼすか?
- RQ5単純なフォークジョインマイクロアーキテクチャ拡張は、最小限の面積およびタイミングオーバーヘッドでM拡張を効果的にサポートできるか?
主な発見
- radix-4ブース乗算器を用いた場合、RVCoreP-32IMはRV32Iに比べて平均1.87倍の性能向上を達成した。
- DSPベース乗算器を用いた場合、RV32Iに比べて3.13倍の性能向上が得られ、高スループットのハードウェア乗算器の恩恵が顕著に表れた。
- すべてのベンチマークプログラムにおいて、RVCoreP-32IMはVexRiscvに比べて13%低い合計実行時間を記録した。
- DMIPS/MHzは、RV32Iの1.03から、DSP乗算器搭載のRV32IMでは1.40に上昇し、Coremark/MHzは0.84から2.33に上昇した。
- FPGAリソース使用量は、RV32IMがRV32Iの約1.5倍であり、顕著な性能向上に対して中程度の面積コストに抑えられた。
- M拡張命令の使用率が高い計算集約型ワークロード(cubicおよびmatmult-int)において、性能向上が最も顕著に現れた。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。