信号処理や組み込みの分野では、アルゴリズムを提供するソフトウェア(ファームウェア)が、どれくらいの処理量(演算量)が必要なのか問われます。信号処理の性能を示すものには、処理された結果の品質があると思います。良い品質が提供できるとした時、もう一つ重要な指標に演算量があります。高品質な結果を提供するソフトウェアでも、スーパーコンピューターが必要では非現実的になってしまいます。信号処理のソフトウェアの演算量を示す指標として、MIPSが良く使われています。MIPSコンピューターの処理能力を表す単位。コンピューターが1秒間に何百万回命令を実行できるかを示す。MIPSとは、このように説明されていることが多いです。確かにこの通りなのですが、ハードウェアの性能を示すものとして説明されている場合がほとんどです。書かれていた場合は、CPUの処理性能を示しています。100MIPS一般的には、1サイクルで1命令の場合が多く、開発現場では動作クロック100MHzのCPUの処理能力を、おおざっぱに100MIPSと言ったりします。いうハードウェアスペックがあったとします。200MIPS動作クロック100MHzで、200MIPSとは、1サイクルで1命令を実行できるCPUに比べて、2倍の処理性能を示しています。Processor】こうしたケース(動作クロックより大きいMIPS)は、DSPという信号処理に特化したプロセッサに多いです。(FFT)など、演算量が大きい処理を高速に行う命令があります。Multiply-Accumulate)で行われ、DSPはこのMACが得意なプロセッサーです。ALU(算術論理演算)とMACを同時に行うなどの命令並列もあります。MACは次のイメージです。MACの組み合わせ命令を、ALUが加算(ADD)の例で説明すると次のイメージです。1サイクルで加算と積和を並列処理この様に演算を並列にできる場合、CPUの最大MIPSが、動作クロックより大きいMIPSとして示される場合があります。Data】データ並列処理では、SIMDも似たような性能表記があり、SIMDの場合はさらに4並列、8並列のデータ処理が可能なプロセッサもあります。代表的なものでは、ARM社の「NEON」ですね。16bitで4並列が出来る場合が多いです(8bitなら8並列も)。4並列MIPSの説明としては・・・ここで紹介した並列処理は、1サイクルで2演算以上を実行するので、並列する演算に依存関係がない事が条件になり、これらはコンパイラ任せではあまり最適化が期待できないことがあるので、ソフトウェア開発者から見ると、ちょっとオーバーなカタログスペックに見えます。このような性能表記では、条件分岐などを考えず、最大スペックの性能が書かれているようです。MIPSの用語説明では、このようなハードウェアの性能を示すものが多い気がします。次回は、本題のソフトウェア開発の指標としてのMIPSについて書きたいと思います。Code思考のサルベージ(その6)月別アーカイブはてなブログをはじめよう!jspnetさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。