MMX †
MMX は、Intel 社が開発したマルチメディアに特化した新しい命令群です。
特徴としては以下の通り。
- 64-bit レジスタによる SIND 整数演算
MMX は 64-bit のレジスタを使用します。この 64-bit を 8-bit/16-bit/32-bit に分割し、各々演算させることで 1 命令辺りの処理数を増やします。例えば 32-bit レジスタの場合、1 命令に対し 2 処理をこなす事が出来ますし、8-bit の場合、1 命令に対し 8 処理分こなす事が出来ます。
一度の演算に対し、複数の処理をこなす手法を SIMD(Single Instruction Multiple Data)と言います。マルチメディア系の演算は同じ命令を多用することが多いので SIMD によるパフォーマンス向上が期待されます。元々この技術は DSP で多用されていた手法だそうです。
- 新たに 57 個の命令を追加
x86 系の命令に対し、新たに 57 個の命令を追加しています。MMX をサポートしていない CPU で MMX 命令を実行した場合、一般保護エラーが発生しますので、MMX 命令を実行する前に、CPU が MMX をサポートしているか確認する必要があります。
- 浮動小数点演算用のレジスタを流用
MMX のレジスタは浮動小数点演算のレジスタを流用しています。よって、MMX 演算と浮動小数点演算を併用する場合、タスク切り替え等によるパフォーマンス低下が指摘されています。
この辺の実装は AMD 社の CPU では状況が少し違うようです。
- MMX Pentium/Pentium II より採用
Pentium II 以降の Intel 社 CPU では MMX を実装しつづけています。
関連情報 †
用語 †