Intel 64とAMD64の違いは何ですか?


29

intel64アーキテクチャとamd64アーキテクチャに違いがある場合、誰かが説明できますか?


3
IA64 = Intel / HP Itanium VLIWアーキテクチャ。AMD64は、AMDが開発した標準のx86命令セットの拡張です。

6
マーケティング。AMDが開発し、Intelにライセンス供与しました。AMDはIntelからx86のライセンスを取得しており、IntelはAMDからx64のライセンスを取得しています。これにより、彼らは自分たちの足元を撃っているので、どちらも彼らのCPUラインナップ全体を売る権利を失うことなく相手を訴えることができません。

1
x86-64またはIA64のことですか?前のものはAMD64と同じです(文字通りまったく同じ命令セット、または1つのCPUまたは他のすべてのアプリケーションを再コンパイルする必要があります)。後者は 完全に異なるCPUアーキテクチャです。
ブレークスルー

2
x86-64を意味します。Intelは、IA-32eおよびEM64Tという名前を最初に使用してから、最終的にIntel 64で実装に着手しました。
メイヘム

回答:


26

私が読んだ拡張メモリ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ビットをクリアします。


どこからそのテキストを読みましたか?
タマラウィスマン

4
まあ、いくつかのフォーラム/ブログ+ウィキペディア(en.wikipedia.org/wiki/EMT64#Intel_64)。また、IntelとAMDのマニュアルをいくつか調べました。
メイヘム

@Nubok:via technologyのアーキテクチャの実装(もちろん64ビットバージョン)に違いを追加してください !
user2284570 16

IO-MMUは大したことではありません-それが欠けていると、バッファリングのために重要な量の低メモリを吸収する必要があります(Linuxの現在のデフォルトは64MBです)。Intelは後にVT-dに似たものを導入し、迷惑なレベルの製品セグメンテーションに使用しましたが、コード(および場合によってはシリコン)の信頼性により、元のLinuxでデフォルトで使用されない傾向がありました目的。
GreenReaper

8

で、Wikipediaのx86のページあなたが読むことができます

1999年から2003年にかけて、AMDはこの32ビットアーキテクチャを64ビットに拡張し、初期のドキュメントではx86-64、後にAMD64と呼びました。IntelはまもなくIA-32eという名前でAMDのアーキテクチャ拡張を採用しましたが、後にEM64T、最後にIntel 64と名前が変更されました。

つまり、差別化要因は主にマーケティングです。命令セットにはIntelおよびAMD固有の拡張機能がありますが、ユーザー空間でプログラムを作成している限り、一般的に違いを知る必要はありません。


3
you don't generally need to know the difference間違った:一般的な指示のわずかな違いでさえ非常に重要なバグです。chromium.org
p /

4
間違った:一般的な指示でさえマイナーな差は非常に重要である(1)、公平に、彼はあなたがいないと述べ、一般的にこれらの違いを知っておく必要があります。明らかに、それが問題になる特定のケースがあります。(2)私たちのほとんどは、使用可能なすべての命令パスを保護する必要がある強化されたサンドボックスを作成していません。
エリックW
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.