FPGAソフトコアCPUにおける最適化を検証するMAX 10 FPGAで学ぶFPGA開発入門(14)(6/7 ページ)

» 2016年09月16日 12時00分 公開
[大原 雄介ITmedia]

 NIOS IIを使う場合、OptimizingをOffにするとどうなるか。結果から言うと

  • Optimize Off : 稼働
  • Optimize Level 1 : 稼働
  • Optimize Level 2 : 稼働するが異常
  • Optimize Level 3 : 稼働するが異常

 となった。

 稼働状態はMovie01の様に、右端のボタンを押すとLEDが点灯して稼働状態に入り、一定時間(この場合は10000回ループだったので約2秒)後に結果が7セグメントLEDに表示されるという動作になるのだが、「稼働するが異常」ではそもそもボタンを押してもDhrystoneが開始されなかった。

Movie1

 少なくともIORD_ALTERA_AVALON_PIO_DATA()が正常に実行できない(他にもあるかもしれないが不明)ようで、まぁ仕方が無いところだ。では、Level 1のOptimizeをかけるとどの程度高速になるか?ということで、今度はもう少し精度を上げるべく100万回ループで実施してみたところ

  • Off : 200639 ms (4984.1 Dhrystone/sec : 2.84 DMIPS)
  • Level 1 : 111773 ms (8946.7 Dhrystone/sec : 5.09 DMIPS)

 ということで軽く倍近い性能になった。確かにOptimizing Levelを上げるのはいろいろ副作用がある様だが、それでも性能が倍というのはなかなか無視出来ない数字である。

関連キーワード

アルテラ | FPGA関連 | FPGA


Copyright © ITmedia, Inc. All Rights Reserved.