HDL500行!ミニRISCマイコンの実力
処理速度DMIPS/MHzを測ってみる
Dhrystoneベンチマークの実行方法
![]() |
---|
図1 HDL500行で構築した自作RISCマイコンを処理速度をDhrystoneベンチマークで評価.対象はRV32Iアーキテクチャで,命令数は非常に限定され,整数演算だけを実装.画像クリックで動画を見る.または記事を読む.[著]圓山 宗智 詳細:[VOD]新人技術者のためのRISC-V CPU設計初めの一歩~C言語完全対応!HDLソース500行のミニCPUを一緒に作る~ |
本プロジェクトでは,HDL500行で構築したミニRISCマイコンを対象に,処理速度をDhrystoneベンチマークで評価しました.対象のCPUはRV32Iアーキテクチャで,命令数は非常に限定され,整数演算だけを実装しています.メモリ構成はROM,RAM,SDRAMを備え,クロック周波数は20MHzです.
Dhrystoneベンチマークの実行方法
Dhrystone 2.1を用いて,メイン・ループを500回実行した時間を計測します.これにより,1秒間に回る換算回数を算出し,基準機VAX11/780の性能1DMIPSをもとに,マイコンのDhrystone MIPS値を計算します.計測ではインシステム・メモリ上で実行し,Cコンパイラは最適化オプション-O3を使用しました.
- 500ループを実行する時間を計測
- 1秒間の換算回数を算出
- VAX11/780基準値1757で割ってDMIPSを算出
- DMIPSを動作周波数で割り,DMIPS/MHzを算出
計測結果と評価
今回のミニRISCマイコンでは,1秒あたりのDhrystoneループ回数は67318で,DMIPS値は38.3DMIPSです.これを動作周波数20MHzで割ると,1.29DMIPS/MHzになります.比較として,講師作成のRV32IMAFC 5段パイプCPUでは1.57DMIPS/MHz,ARM Cortex-A5では1.57DMIPS/MHz,64bit RISC-V Rocketコアでは1.72DMIPS/MHzです.
CPUの命令数が少なく単純であるにもかかわらず,ミニRISCマイコンはこの程度の性能を示しています.整数演算だけの実装であり,除算命令も含まれていません.したがって,限られた命令セットでも実用レベルの処理性能が得られることが確認できました.
ベンチマークにおける注意点
DhrystoneやCoremarkの測定結果は,Cコンパイラの最適化やメモリ性能に大きく依存します.単純なベンチマーク値だけでCPUの性能を判断せず,用途や実行環境を考慮する必要があります.今回の測定でも最適化オプションを最大に設定し,整数演算性能を重点的に評価しています.
〈著:ZEPマガジン〉参考文献
- Lチカ入門!ソフトウェア屋のためのHDL事はじめ,ZEPエンジニアリング株式会社.
- Zynqで作るカスタム・コンピュータ・チップ,ZEPエンジニアリング株式会社.
- [VOD/KIT]一緒に動かそう!Lチカから始めるFPGA開発【基礎編&実践編】,ZEPエンジニアリング株式会社.
- [VOD/KIT]Xilinx製FPGAで始めるHDL回路設計入門,ZEPエンジニアリング株式会社.
- [VOD/KIT]Zynqで初めてのFPGA×Linux I/O搭載カスタムSoC製作,ZEPエンジニアリング株式会社.
- [VOD]カメラ×ラズパイで一緒に!初めての画像処理プログラミング
- [VOD/KIT] 実習キットで一緒に作る!オープンソースCPU RISC-V入門,ZEPエンジニアリング株式会社.
- [VOD/KIT]ARM Cortex-A9&FPGA内蔵SoC Zynqで初体験!オリジナル・プロセッサ開発入門,ZEPエンジニアリング株式会社.