開発のヒント

CPU

マイコンの演算速度を測る

関連モジュール:サイクル・カウンタ

マイコンの性能評価の指数にDMIPSやCoreMarkなどがありますが、これらは決められたルーティーン・コードを実行する速度なので、ユーザ個々のプログラム・コードに直接適用はできません。そのため、自分の作ったプログラムの実際の処理速度を知る便利な方法として「サイクル・カウンタ」があります。

     

サイクル・カウンタは、Cortex-M3/M4などに搭載されているプログラムの2点間処理速度を計測するためのツールです。CPUレジスタの中に「CYCLECOUNTER」というカウンタがあります。これは、プログラムを停止した時点までに実行した総サイクル数を示します。

       

また「CCSTEP」というカウンタもあり、これは前回表示(ブレーク)時からの経過サイクル数を示します。処理速度を計測したい2点にブレーク・ポイントを張り、順次実行し、ブレークさせて、「CYCLECOUNTER」と「CCSTEP」をチェックすれば、演算サイクル数を知ることができます。マイコンの動作周波数から、1サイクルの周期を求め、処理サイクル数を掛ければ、処理速度が求まります。

       

また、もっと原始的な方法として、測定したいプログラムの前後でGPIOをトグルさせて時間を測定する方法もありますが、未使用のGPIOが必要なことに加え、GPIOをトグルする冗長サイクルを引き算する必要があります。

過去の開発のヒントはこちら