インテル® Pentium® 4 プロセッサおよびその他のプロセッサには、最適化されたマルチメディア・アプリケーションの開発用の命令を用意しています。これらの命令は、以前に実装した命令を拡張したものです。これらの命令は、SIMD (Single Instruction, Multiple Data) テクノロジを使用します。SIMD 命令を使用してデータ要素を並列処理すると、大量のマルチメディア・データ・ストリームを処理するアプリケーションのパフォーマンスが大きく向上します。インテル® Itanium® プロセッサもまた、そうした命令をサポートします。
これらの命令を使用する最も直接的な方法は、ソースコード内でインライン・アセンブリ言語命令を使用することです。しかし、これは時間のかかる作業です。また、一部のコンパイラは、アセンブリ言語のインライン・プログラミングに対応していません。そこで、インテルでは、組込み関数と呼ばれる API 拡張機能セットを使用する方法を用意しました。
組込み関数は、ハードウェア・レジスタを直接操作するのではなく、C の関数呼び出しと C の変数の構文を使用できる、コーディング用の拡張機能です。組込み関数によって、プログラマは、アセンブリ言語のプログラミングとレジスタの管理を行う必要がなくなります。また、コンパイラは、命令のスケジューリングを最適化して、実行ファイルの処理速度を上げられます。
さらに、プログラマは、Itanium プロセッサ向けのネイティブ組込み関数を使用して、C および C++ 言語の標準的な構文では生成できない Itanium 命令を利用できます。また、インテル® C++ コンパイラは、すべての IA-32 プラットフォームおよび Itanium ベースのプラットフォーム上で動作する汎用組込み関数もサポートします。
組込み関数の詳細については、次の参考資料を参照してください:
『IA-32 インテル® アーキテクチャ・ソフトウェア・デべロッパーズ・マニュアル、中巻:命令セット・リファレンス』インテル社、資料番号245471J
プロセッサ: | MMX® テクノロジの組込み関数 | ストリーミング SIMD 拡張命令 | ストリーミング SIMD 拡張命令 2 | Itanium プロセッサ命令 |
---|---|---|---|---|
Itanium プロセッサ | X | X | N/A | X |
Pentium 4 プロセッサ | X | X | X | N/A |
Pentium III プロセッサ | X | X | N/A | N/A |
Pentium II プロセッサ | X | N/A | N/A | N/A |
MMX テクノロジ Pentium プロセッサ | X | N/A | N/A | N/A |
Pentium Pro プロセッサ | N/A | N/A | N/A | N/A |
Pentium プロセッサ | N/A | N/A | N/A | N/A |