さてプログラムの説明はこのあたりにして、ビルドして動かしてみたい。ビルドのためにはまずdhry.hをプロジェクトに追加(Photo05)し、さらにEclipseからBSP Editorを呼び出して(Photo06)、sys_clk_timerにTimer_1msが指定されている事を確認しておく(Photo07)。このあたりの話は以前こちらで説明した通りだ。
さて、ここまで完了したらビルドして実行する。ちなみにNUMBER_OF_RUNSにリスト通りの数値(100万)を指定すると30分以上帰ってこないので、まずデバッグがてらこれを10000に書き換えて実行してみる。結果はPhoto08の様に、1万回で2006〜2007msという結果になった。
前にも書いた通り、VAX 11/780の数字が1757.0 Dhrystone/secで、今回はおおむね4982.6 Dhrystone/secだから2.84 DMIPSという計算になる。MAX10 Evaluation Boardで試した時には3.34 DMIPSという数値だったが、今回は1ms毎に(Alarm_Int()内で)IORD_ALTERA_AVALON_PIO_DATA()を呼び出してキー押下を確認しているので、このオーバーヘッドの分遅くなったと思えば、まぁ納得できる数字である。
さて今回の本題はここから。以前こちらで紹介したが、NIOS IIを使う場合、OptimizingをOffにする事が推奨というか指示されている。理由は“compiler optimization may cause some problems while running the program”ということであるが、これをOffにしていたらそれは性能が出ないのも当然である(Photo09)。
ではこれをOnにするとどうなるか?
Copyright © ITmedia, Inc. All Rights Reserved.