Intel64とAMD64のアーキテクチャに違いがあるかどうか誰かが説明できますか?
私が読んだ拡張メモリ64ビットテクノロジ(EM64T)から、IntelのAMDのAMD64の実装であり、Intel64とAMD64の違いは次のとおりです。
EM64TのBSFおよびBSR命令は、ソースが0でオペランドサイズが32ビットの場合、動作が異なります。プロセッサはゼロフラグを設定し、宛先の上位32ビットを未定義のままにします。
AMD64は3DNowをサポートしています!指示。これには、メモリレイテンシを隠すのに役立つ、オペコード0x0F 0x0DおよびPREFETCHWによるプリフェッチが含まれます。
EM64Tには、(FXSAVEおよびFXRSTOR命令を含む)浮動小数点状態の縮小(したがって高速)バージョンを保存および復元する機能がありません。
EM64Tには、AMD64のアーキテクチャと見なされるいくつかのモデル固有のレジスタがありません。これらには、SYSCFG、TOP_MEM、およびTOP_MEM2が含まれます。
EM64Tは32ビットモードと同様にマイクロコード更新をサポートしますが、AMD64プロセッサは異なるマイクロコード更新形式を使用してMSRを制御します。
EM64TのCPUID命令は、x86スタイルのプロセッサでは通常のように、非常にベンダー固有です。
EM64Tは、ハイパースレッディングをより適切に処理するためにオペレーティングシステムで使用されるMONITORおよびMWAIT命令をサポートします。
AMD64システムでは、AGPアパーチャをIO-MMUとして使用できます。オペレーティングシステムはこれを利用して、通常のPCIデバイスを4以上のメモリにDMA GiB。EM64Tシステムでは、低速のバウンスバッファーを使用する必要があります。
SYSCALLおよびSYSRETも、EM64TのIA-32eモード(互換モードではなく)でのみサポートされます。 SYSENTERとSYSEXITは両方のモードでサポートされています。
プレフィックス0x66(オペランドサイズ)の近くの分岐は、異なる動作をします。 CPUの1つのタイプは上位32ビットのみをクリアし、もう1つのタイプは上位48ビットをクリアします。
Wikipediaのx86ページ で読むことができます
1999〜2003年に、AMDはこの32ビットアーキテクチャを64ビットに拡張し、初期のドキュメントではそれをx86-64と呼び、後にAMD64と呼びました。 IntelはすぐにAMDのアーキテクチャ上の拡張機能をIA-32eという名前で採用しました。これは後にEM64T、最後にIntel 64と改名されました。
つまり、差別化要因は主にマーケティングです。命令セットにはIntelおよびAMD固有の拡張機能がありますが、ユーザー空間でプログラムを作成している限り、通常は違いを知る必要はありません。