最近では、マイコンなのにDSPの特徴である高速演算能力を備えたものが出てきました。ARM社のCortex-M4とCortex-M7です。Cortex-MシリーズのMはMicrocontrollerの頭文字です。その名の通りマイコンとしてデビューしましたが、Cortex-M4シリーズからDSP命令をサポートするようになり、DSPとしても使えるようになりました。
DSP命令は、従来製品Cortex-M3のマイコンの命令セットに新しく付加されたものなので、Cortex-M4とCortex-M7はマイコンとしてもDSPとしても使用することができます。図2にCortex-M4の命令セットを示します。Cortex-M3マイコンの命令セットを包括するようにDSP命令セットが追加されています。参考ですが、Cortex-M4は浮動少数点演算命令(IEEE 754準拠)もサポートしています。
Cortex-M3とCortex-M4でDSP命令を使用したときの差を、センサーレスモータ用のコードを例にして説明します。
図3の表の左側がCortex-M3の命令セットで構成されたコードの一部です。右側にCortex-M4のDSP命令に置き換えた場合を示します。
1行目と2行目の命令と4行目と6行目がそれぞれ1つの命令に置き換え可能で、それぞれ1サイクルで実行されますので、各3サイクル短縮することができます。
マイコンと、一般的なDSPと、Cortex-M4と、オーディオ専用のDSPを使ってMP3オーディオ再生を行った場合の性能比較を図4に示します。
横軸はMP3デコードを行う場合に必要な動作周波数を示したしたものです。従って、数値が小さい方が性能が高いことになります。オーディオ専用のDSPの性能が一番高いのは当然ですが、次にCortex-M4(推定値ですが)が高性能です。一般的なディスクリートDSPがその次になります。汎用マイコンは1番性能が低くなりますが、そもそもターゲットアプリケーションが異なりますので当然の結果といえます。
一般的なディスクリートDSPでさえ、汎用マイコンの約2倍のパフォーマンスです。このことから、いかにDSPが複雑な高速演算に向いているかが分かります。
Copyright © ITmedia, Inc. All Rights Reserved.