連載
FPGAソフトコアCPUにおける最適化を検証する:MAX 10 FPGAで学ぶFPGA開発入門(14)(6/7 ページ)
MAX10搭載開発ボード「MAX 10 NEEK」でソフトコアCPU「NIOS II」を利用する際、最適化しないことを推奨されるが、設定自体は施せる。では最適化すると速くなるのか?有償版も含めて検証する。
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を上げるのはいろいろ副作用がある様だが、それでも性能が倍というのはなかなか無視出来ない数字である。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- FPGAの内蔵温度センサーから値を得る
アルテラのFPGA「MAX 10」には温度センサーが内蔵されており、自身の温度を測定可能だ。メガファンクション「ALTPLL」を使い、内蔵センサーからの値を得るまでを試みる。 - オンボードされた温湿度センサーからFPGAで値を得る
FPGA「MAX 10」搭載開発ボード「MAX 10 NEEK」には各周辺機器が備えられており、そこにはTI製の温湿度センサーも含まれる。サンプルプログラムを元に、オンボードされたデバイスの制御を試みる。 - 「MAX 10 NEEK」でストップウォッチを開発し、内蔵メモリから起動する
アルテラのFPGA「MAX 10」を搭載した開発ボード「MAX 10 NEEK」にはLEDやフラッシュメモリなどの各周辺機器が備えられている。今回はLEDを使ったストップウォッチを開発し、内蔵メモリから起動する。 - 「MAX 10 NEEK」に搭載されたDDR3メモリを使う
MAX10搭載開発ボード「MAX 10 NEEK」には各周辺機器が備えられており、その中にはDDR3メモリも含まれる。ソフトコアCPU「Nios II」からの利用も含めて手順を紹介する。 - 「MAX 10 NEEK」へソフトコアCPUを組み込む
周辺機器の充実したMAX10搭載開発ボード「MAX 10 NEEK」に、ソフトコアCPU「NIOS II」を組み込み、ソフトコアCPUからボード搭載LEDの制御までを紹介する。