それらは補完的です。
新しい命令セット拡張ごとに新しい命令が追加され、最終的には新しいプログラミング モデル (新しいレジスタなど) が追加されます。
非推奨の命令はありません。互換性の理由から、命令を非推奨にすることはほとんど不可能です。ただし、一部のオプションの拡張機能は、新しいモデル (AMD の FMA4 など) には存在しないか、削除されている可能性があります。
一部は痕跡ですが、たとえば FPU と MMX で実行できることはすべて、SSE+ でより効率的に実行できます。
どちらか一方を使用できるという意味で、それらは相互に排他的ではありません。結局のところ、それらは操作モードではなく命令です(たとえば、リアルモードと保護モードなど)。
唯一の可能な「競合」は、MMX と FPU の間です。これらは同じレジスタ セットの下位部分を共有していますが、プログラミング モデルが異なるためです。
以前のレジスタが新しいレジスタの下位部分になるたびに、新しいベクトル レジスタは 128 ビットから 256 ビット、512 ビットに拡張されました。
これらはすべて一緒に使用でき、単純な操作を実装する特定のハードウェア サポートを提供します。
それらはレゴ ブロックのようなもので、あなたの想像力 (またはデザイナーの想像力) によってのみ制限されます。
この命令セットの拡張機能の簡単なリストを次に示します。
一部の機能のみがリストされています。完全なリファレンスについては、Intel マニュアル Vol1の第 9 章から第 14 章を参照してください。
Intel のボリューム 2 (命令セット リファレンス) マニュアルの目次については、https://hjlebbink.github.io/x86doc/も参照してください。そのマニュアル エントリに命令を追加した拡張機能のリストも含まれています。
MMX
8 つの 64 ビット レジスタ (MM0 ~ MM7) と、8 つの符号付き/符号なしバイト、4 つの符号付き/符号なしワード、2 つの符号付き/符号なし dword を操作する命令を導入します。
3Dナウ!
単精度浮動小数点オペランドのサポートを MMX に追加します。加算、減算、乗算など、サポートされている演算はほとんどありません。
SSE
8/16 の 128 ビット レジスタ (XMM0 ~ XMM7/15) と、4 つの単精度浮動小数点オペランドを操作する命令を導入します。MMX レジスタにも整数演算を追加します。(SSE の MMX 整数部分は MMXEXT と呼ばれることもあり、xmm レジスターと SSE の浮動小数点部分を持たないいくつかの非 Intel CPU に実装されていました。)
SSE2
2 つの倍精度浮動小数点オペランド、および 128 ビット xmm レジスター内のパックされたバイト/ワード/dword/qword 整数を処理する命令が導入されました。
SSE3 Pentium 4、同期命令、水平加算/減算でより優れ
た特別な種類の非整列ロード ( ) を含む、いくつかのさまざまな命令 (主に浮動小数点) を追加します。lddqu
SSSE3
再びさまざまな命令セットで、ほとんどが整数です。ハードコード ( ) ではなく、レジスタから制御オペランドを取得する最初のシャッフルpshufb
。水平方向の処理、シャッフル、パッキング/アンパッキング、バイトの mul+add、特殊な整数の add/mul など。
SSE4 (SSE4.1、SSE4.2)
多くの命令を追加: すべての整数データ型 (特に 32 ビット整数が不足していた) に対して最小値と最大値およびその他の操作を提供することで、多くのギャップを埋めます。 min は、符号なしバイトと符号付き 16 ビットでのみ使用できました。また、スケーリング、FP 丸め、ブレンディング、線形代数演算、テキスト処理、比較。また、ビデオ メモリを読み取ったり、メイン メモリにコピーしたりするための非一時的な負荷。(以前はNTストアのみ利用可能でした。)
AESNI
AES 対称暗号化/復号化を高速化するためのサポートを追加します。
AVX
8/16 の 256 ビット レジスタ (YMM0-YMM7/15) を追加します。
以前のすべての浮動小数点データ型をサポートします。3 つのオペランド命令。
FMA
Add Fused Multiply Add および相関命令。
AVX2
整数データ型のサポートを追加します。
AVX512F 8/32
の 512 ビット レジスタ (ZMM0-ZMM7/31) と 8 つの 64 ビット マスク レジスタ (k0-k7) を追加します。以前のほとんどの命令を 512 ビット幅にプロモートします。AVX512 のオプション部分は、指数と逆数 (AVX512ER)、スキャッター/ギャザー プリフェッチ (AVX512PF)、スキャッター コンフリクト検出 (AVX512CD)、圧縮、展開の命令を追加します。
IMCI (インテル Xeon Phi)
第 1 世代インテル Xeon Phi (Knight's Corner) コプロセッサー用の AVX512 の早期開発。