ウィキペディア |
AMD64
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2012/02/08 04:12 UTC 版)
AMD64は、x86アーキテクチャをAMD が拡張して64ビット化した、命令セットアーキテクチャ。
インテルがAMD64と互換性を持つ命令セットをIntel 64の名称で採用しており、総称としてx86-64、x64などが用いられている。
AMD64は、AMDのOpteron、Athlon 64、Turion 64など最初に実装されたK8マイクロアーキテクチャとその後継製品に実装されている。
目次 |
経緯
PC用アーキテクチャとして広く普及したx86は、半導体の製造技術とマイクロアーキテクチャの革新とともに性能の向上を続け、サーバやワークステーションといったエントリークラスのエンタープライズ市場でも広く受け入れられるに至った。しかし、IA-32の性能向上によって自社開発の64ビットアーキテクチャであるIA-64との競合を懸念したインテルは、x86の拡張を32ビットアーキテクチャの範囲に留めてIA-64との棲み分けを図った。これに対し、市場からは広く普及したIA-32アーキテクチャと互換性を保ちつつ64ビットに拡張した、よりコストパフォーマンスに優れたエンタープライズ製品の登場が待ち望まれていた。高収益を望めるエンタープライズ市場への進出を図っていたAMDはそうした需要に応えて、x86の64ビット拡張アーキテクチャとして、従来のIA-32のソフトウェアも利用が可能な命令セットとしてx86-64を発表した。その後の実際の製品発表でAMD64と改称された。この計画は、2000年8月に発表され、最初のプロセッサは2003年4月に出荷された。
インテルはIA-64を実装したItaniumで32ビットのx86アーキテクチャに対する明確な利点を示せず市場では苦戦を強いられていたため、AMDの64ビット拡張とは別個に社内でIA-32アーキテクチャを64ビットに拡張する計画[1]を持っていたが、これはAMD64とは互換性がなかった。OS市場を事実上掌握していたマイクロソフトは64ビット拡張の命令体系の一本化を要請し、その命令セットとしてAMDのx86-64を採用することを決定した。これによりintelは、自社開発のx86の64bit拡張アーキテクチャを断念し、AMD64を後にEM64Tとして採用するに至った。その後、Intel 64に改称されている。
Windows以外にも、Mac OS XやLinux、BSD系OSなどがAMD64に対応している。AMD64、Intel 64 の総称としてx86_64 ( Windowsでは x64 ) が用いられている。
アーキテクチャ概要
AMD64命令セットには、インテルのIA-32アーキテクチャに指摘されるアンバランスで特異な部分を、きれいで使いやすいものにするという目論見があった。また、同時に先行している 64ビットRISC環境に似せたアーキテクチャにしようと考えて設計された。DEC Alpha の設計者の一人 ダーク・メイヤー が AMD64仕様の作成に関わり、彼をはじめとするDEC出身者の経験がこのプロジェクトに活かされた。特筆すべき点は以下のようなものである。
- レジスタの追加と拡張
- 汎用レジスタ (GPR) 数はIA-32の8本 (EAX,EBX,ECX,EDX,ESI,EDI,EBP,ESP) に更にR8〜R15の8本を追加して16本に増やされ、各レジスタのビット幅も32ビットから64ビットに拡張された。IA-32は汎用レジスタが少ないことからコンパイラによる最適化に限界があり、これが最も大きな欠点とされた。AMD64に最適化されたアプリケーションでは、レジスタ本数の増加によって性能向上が見込まれ、特に深いループを持った演算主体のソフトウェアでその傾向が強いと見込まれる。さらに128ビットのXMMレジスタの本数も8本から16本に増やされた(Streaming SIMD命令で使われる)。
- アドレス空間の拡張
- AMD64アーキテクチャでは、現状の実装で48ビットのアドレス空間を持ち、256テラバイトまでのメモリを扱うことが出来る。IA-32アーキテクチャにおいて初期のプロセッサでは、アドレス空間は32ビットで表現できる4GiBに制約され、Pentium Pro以降の実装で追加された物理アドレス拡張機能を使用することで64GiBのメモリを接続できるが、1プロセスで利用可能なメモリ空間はやはり4GiBに制約された。32bit版Windowsシリーズにおいては、OSの仕様でアプリケーションが利用可能なメモリはおよそ3GiBに制約される[2]。これに対しAMD64のLongモードでは、IA-32の物理アドレス拡張をベースに、論理アドレス空間を48ビットへ拡張し(現状物理アドレス空間は52ビット)、将来の拡張で4エクサバイトまでの仮想空間をサポートできるようになっている。
- 関連:2進接頭辞
- RIP相対データアクセス
- プログラムカウンタ (RIP) 相対でデータにアクセスすることができ、リロケータブルな共有ライブラリのコードを作成できる。また、共有ライブラリを仮想アドレス空間のどこにでも配置することができる。
- SSE 命令
- AMD64アーキテクチャでは明確にインテルのSSEとSSE2を基本命令セットに組み込んでいる。SSE2はx87の80ビット浮動小数点数から 32ビット/64ビットの浮動小数点数に置き換えたものである。SSE/SSE2命令セットは追加の8本のXMMレジスタを扱えるように拡張された。SSEとSSE2がAMD64命令セットに組み込まれており、それが従来のx87 FPUやMMXや3DNow!の機能をカバーする。x64版Windowsでの64ビットプログラムでは、FPU/MMXレジスタをコンテキストスイッチの際に保存しないようにすると噂されたが、実際には保存されるようになっている[1]。
|
||||||||
- ^ Yamhill、後にClakamas Technologyのコード名で呼ばれた。詳細はIntel 64を参照のこと。
- ^ 詳細についてはWindows NT系の表を参照のこと。
固有名詞の分類
AMD64に関連した本
- Microprocesseur X86 AMD: AMD Phenom II, AMD K10, Liste Des Microprocesseurs AMD Athlon 64, AMD Athlon II, AMD Opteron, Athlon 64 X2 Books LLC
- Microprocesseur: Zilog Z80, SPARC, Chronologie Des Microprocesseurs, Rflags, Amd64, Traitement Numrique, Processeur Double Cur Books LLC
- Microprocesseur X86 AMD: AMD Phenom II, AMD K10, Liste Des Microprocesseurs AMD Athlon 64, AMD Athlon II, AMD Opteron, Athlon 64 X2 Books LLC
AMD64に関係した商品
- NAG Fortran Library Mark23 FLL6A23DFL (Linux64 (Intel64/AMD64)、GNU gfortran、Double Precision) PC-NL 官公庁 PN-FLL6A23DFL-G【新品】【取寄Outlet Plaza
- NAG Fortran Library Mark23 FLL6A23DFL (Linux64 (Intel64/AMD64)、GNU gfortran、Double Precision) PC-NL アカデミック PN-FLL6A23DFL-A【新品】Outlet Plaza
- 【中古】AMDSempron 2800+ (Socket 754/AMD64) (クーラー無し)【291-ud】ソフマップ楽天市場店