intel64アーキテクチャとamd64アーキテクチャに違いがある場合、誰かが説明できますか?
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 GiBを超えるメモリにDMAできるようにします。EM64Tシステムでは、バウンスバッファーを使用する必要がありますが、遅いです。
SYSCALLおよびSYSRETは、EM64TのIA-32eモードでのみサポートされます(互換モードではサポートされません)。SYSENTERとSYSEXITは両方のモードでサポートされています。
プレフィックスが0x66(オペランドサイズ)のニアブランチの動作は異なります。1つのタイプのCPUは上位32ビットのみをクリアし、もう1つのタイプは上位48ビットをクリアします。
で、Wikipediaのx86のページあなたが読むことができます
1999年から2003年にかけて、AMDはこの32ビットアーキテクチャを64ビットに拡張し、初期のドキュメントではx86-64、後にAMD64と呼びました。IntelはまもなくIA-32eという名前でAMDのアーキテクチャ拡張を採用しましたが、後にEM64T、最後にIntel 64と名前が変更されました。
つまり、差別化要因は主にマーケティングです。命令セットにはIntelおよびAMD固有の拡張機能がありますが、ユーザー空間でプログラムを作成している限り、一般的に違いを知る必要はありません。
you don't generally need to know the difference
間違った:一般的な指示のわずかな違いでさえ非常に重要なバグです。chromium.org