x86-64(x64)とは:64ビット命令セットとAMD64・Intel64の概要
x86-64(x64)とは何かをわかりやすく解説:64ビット命令セットの仕組み、AMD64・Intel64・VIA対応、互換性やPC・ゲーム機での採用例を紹介。
x86-64は、64ビットプロセッサーのシリーズと、それに関連する命令セットアーキテクチャの総称です。これらのプロセッサは、レガシーx86ソフトウェアと互換性があり、従来の32ビット環境からの移行を容易にします。
AMDとIntelが主要メーカーで、VIAもVIA Nanoプロセッサで対応しました。それぞれ、自社の64ビットプロセッサをAMD64、Intel64、VIA x86-64プロセッサと呼んでいます。Microsoft Xbox OneやSony PlayStation 4などのゲーム機では、AMD64ベースの自社製セミカスタムAPUをメインプロセッサとして採用しています。
x64は、この種のプロセッサをベースとした64ビット拡張システムを指すのに使われる別の名前です。x64は、それに関連する命令セット・アーキテクチャやプロセッサを指して使われることが多いです。
歴史と背景(簡潔)
1990年代末から2000年代初頭、AMDは既存のx86互換性を保ちながら64ビット拡張を実現する設計を提案し、これが広く採用されました。Intelは独自の64ビット設計(Itanium / IA-64)を持っていましたが、x86との互換性という点でAMDのアプローチが主流となり、Intelも追随して自社製品に互換拡張を導入しました。これが現在のx86-64(x64)系統の成立過程です。
主な特徴
- 64ビット汎用レジスタ:レジスタ幅が64ビットになり、汎用レジスタ数が増加(R8–R15 など)して性能向上に寄与します。
- 大きなアドレス空間:理論上は64ビットアドレスを扱えますが、実装上は段階的に制限(例:48ビットなど)を設けており、CPU世代ごとに有効な物理/仮想アドレス幅が異なります。
- ロングモード(long mode):64ビット動作モードで、さらに「64ビットモード」と「互換モード(compatibility mode)」に分かれます。互換モードでは64ビットOS上で32ビットアプリを動かせます。
- 命令セットの拡張:RIP相対アドレッシング、拡張レジスタ、SSE/AVXといったSIMD命令のサポートや、ページ保護を強化するNXビットなどのセキュリティ機能が組み込まれています。
- ソフトウェア互換性:多くのx86命令をそのまま実行可能にすることで、既存の32ビットアプリケーション資産を活かせます。ただし、16ビットレガシーコードは64ビットOS上で直接動作しない場合があります。
互換性と動作モード
ロングモードにはソフトウェア互換性のための仕組みがあり、64ビットOS上で32ビットアプリを動かす際には各OSが提供する互換レイヤ(例:WindowsのWoW64)が使われます。一方で、古い16ビットソフトやBIOS(実行環境)への依存があるソフトは、UEFI/64ビット環境では直接動かないことが増えています。
OSとABI(呼び出し規約)
一般的なOSでの採用状況と呼び名は次のとおりです。
- Linux等ではアーキテクチャ名としてしばしば「x86_64」と表記されます。
- Windowsではインストーラーや設定で「x64」や「AMD64」と表記されることが多く、内部的にもAMD64互換として扱われます。
- macOS(過去のIntel世代)は「x86_64」を使っていました(現在はApple Siliconへ移行)。
- ABI(アプリケーションバイナリインタフェース)はプラットフォームごとに異なり、代表的なものにSystem V AMD64 ABI(Unix系)やMicrosoft x64 calling convention(Windows)があります。これらは関数の引数の渡し方やスタックの使い方で違いがあります。
実装上の注意点・制限
- 「64ビット対応」と言っても、CPUやチップセット、OS、ドライバ、アプリケーションの全てが対応している必要があります。
- 実際の物理アドレス幅はCPU世代ごとに異なり、完全な64ビットアドレス空間を利用できるわけではありません(多くは48ビットやそれに近い幅で運用)。
- セキュリティ機能や仮想化支援など、ベンダーや世代による追加機能があるため、同じ「x86-64」でも細部で差があります。
まとめ
x86-64(x64)は、既存のx86互換性を維持しつつ64ビット化を図った命令セットアーキテクチャの総称です。AMDが提案したAMD64を始め、IntelやVIAなど複数のメーカーが対応製品を出しており、デスクトップ、サーバー、ゲーム機まで幅広く採用されています。実際の利用にあたってはOSやソフトウェアの対応状況、アドレス幅やABIの違いなどを確認することが重要です。
デスクトップ・プロセッサー
エーエムディーろくじゅうよん
- AMD Athlon 64
- AMD Athlon X2
- AMD Athlon II
- AMD Sempron
- AMD Sempron X2
- AMD Phenom
- AMD Phenom II
- AMD FX
- AMD APU A4/A6/A8/A9/A10/A12
- AMD APU Athlon
- AMD APU Sempron
- AMD Ryzen
インテル64(EM64T)
- インテル® Pentium® 4
- インテル® Pentium D
- インテル Celeron D
- インテル® Pentium® デュアルコア
- インテルCeleron
- インテルCore 2
- インテル Core i3/i5/i7/i9
- インテル® Atom
VIA x86-64
VIAナノ
デスクトップOS
Windows XP Professional x64
Windows Vista/7/8/8.1/10 x64
Mac OS X 10.4.7以降
Solaris 10 以降
Linux 2.4.x以降
百科事典を検索する