Nios® II 高速化手法シリーズ
このシリーズでは Nios® II プロセッサーの高速化に役に立つ情報について紹介します。
Dhrystone 2.1
Dhrystone 2.1 は、Nios® II の性能指標にも使われる CPU のベンチマークソフトの1つです。ここでは Dhrystone の詳細については説明しませんが、割り込みや浮動小数演算を使用していないのが特徴です。
計測方法
計測対象は Cyclone® V を使用し、ツールはインテル® Quartus® Prime 開発ソフトウェア・スタンダード・エディション v18.1 、 Nios® II Software Build Tools (SBT) for Eclipse を使用しています。
なお、計測結果の数値につきましては、ハードウェアの構成だけでなく、コンパイラーやコンパイラーのバージョンによっても大幅に変わりますので、傾向を示す参考数値として理解してください。
デザインやソフトウェアは Nios® II を動作させる最小のものとし、下記の条件で作成しています。
基本条件
- Nios® II コアは Gen2 Nios II/f を使用
- クロックは 100MHz
- Cache は Instruction / Data 共に 4KB、Burst や Tightly Coupled Memor (TCM) は Disable
- 演算命令のハードウェア実装は全て
- Onchip-RAM 196MB のプログラムメモリー
- ペリフェラルは、JTAG UART、PIO x 2、Time Stamp Timer 用 Interval Timer のみとし、IRQ は Timer = 0、JTAG UART = 31 とする
- プラットフォーム・デザイナーの Pipeline Stage は 0 とし、Clock Crossing Adapter Type は Auto とする
[ Nios® II Caches and Memory Interfaces ]
[ Nios® II Arithmetic Instructions ]
[ Platform Designer ]
[ Interconnect Requirements ]
ソフトウェアの設定
ソフトウェアは Dhrystone 2.1 のみとして、計測中に割り込みが入らない設定としています。
- sys_clk_timer は実装せず、timestamp_timer を計測用タイマーとして実装
- ライブラリーやドライバー標準のものを使用(reduse device driver でない)
- オプティマイズ・レベルはアプリケーションおよびライブラリー共に -O3
- ツールチェーンは MinGW Nios® II GCC4 を使用
- 実行回数は 1,000,000 回
[ BSP Editor ]
[ Nios® II Application Properties ]
計測バリエーション
基本条件に対し下記の変更を加え計測しました。
- 基本条件のまま
- Cache を None に設定
- Tightly Coupled Memory (TCM) を Enable、Onchip-RAM を I:128KB、D:64KB に分割
- TCM を使用して Cache を None に設定
- Burst を Enable にして、Onchip-RAM との間に Pipeline Bridge (Burst 長 = 8) を挿入
- Onchip-RAM のクロックを 200MHz とし、Onchip-RAM との間に Clock Crossing Bridge (Burst 長 = 8) を挿入
- Platform Designer の Pipeline Stage のみを 1 に設定
- Platform Designer の Pipeline Stage のみを 2 に設定
- Platform Designer の Pipeline Stage のみを 3 に設定
- Platform Designer の Pipeline Stage のみを 4 に設定
計測結果
評価方法 | Dhrystones per Second | DMIPS | 備考 |
1. | 158478.5 | 90.2 | |
2. | 41511.0 | 23.6 | 100,000回で計測 |
3. | 162337.6 | 92.4 | TCM + Cache |
4. | 114810.5 | 65.3 | TCM + no Cache |
5. | 156985.7 | 89.3 | Pipeline Bridge 使用 |
6. | 156985.8 | 89.3 | Clock Crossing Bridge 使用 |
7. | 157977.8 | 89.9 | Pipeline Stage = 1 |
8. | 156985.7 | 89.3 | Pipeline Stage = 2 |
9. | 156006.1 | 88.8 | Pipeline Stage = 3 |
10. | 155038.6 | 88.2 | Pipeline Stage = 4 |
評価
- TCM の使用が最も有効
- Cache の使用 / 不使用は性能に大きな影響を及ぼす(TCM使用時も同様)
- メモリーが高速でも大幅な性能改善は見込めない。逆に、Bridge による遅延の影響がある
- Pipeline Stage の長さにより若干の性能低下が認められる
おすすめページ
弊社では Nios® II に関する各種情報とまとめた「Nios® II まとめページ」をご用意しております。本記事以外にも有用な情報が満載ですのでこちらも併せてご確認ください。