64bit版windows(1) - 64bit CPU

《 初回公開:2019/11/09 , 最終更新:2020/01/11 》

【 目次 】

64bit版Windowsで使われている64bitCPUはいろいろな名称で呼ばれていて

  • x64,x86-64
  • AMD64
  • IA-64
  • Intel 64,IA-32e,EM64T

以下は32bitCPUと呼ぶべきか

  • x86,IA-32

それぞれの名称はどういうものを指しているのか

  • x64 - Wikipedia

    x64またはx86-64とは、x86アーキテクチャを64ビットに拡張した命令セットアーキテクチャ。
    実際には、AMDが発表したAMD64命令セット、続けてインテルが採用したIntel 64命令セット(かつてIA-32eまたはEM64Tと呼ばれていた)などを含む、各社のAMD64互換命令セットの総称である。x86命令セットと互換性を持っていることから、広義にはx86にx64を含む場合がある。
    なお、インテルはIntel 64の他にIA-64の名前で64ビット命令セットアーキテクチャを開発・展開しているが、これはx64命令セット、x86命令セットのいずれとも互換性がない。
    ...
    この命令セットアーキテクチャは、AMDがx86-64の名前で仕様を発表したものが元になっている。AMDは2003年にAMD64と名前を改めて実装しており[1]、インテルもAMD64互換命令セットをEM64T(後にIntel 64と改称)として実装した。
    ...
    このような経緯もあり、ソフトウェアの対応命令セットの表記には、採用時期またはマイクロプロセッサベンダーとの立場などから、x86-64, x86_64, x64, AMD64, IA-32e, EM64T, Intel 64など複数の名称が用いられている。実際には、これらは全てAMD64(x86-64)を源流とする互換命令セットを指している。
    特に「x64」の名称はマイクロプロセッサベンダーに対して中立的な用語として用いられる傾向がある。
    ...
    Intel 64は、IA-32アーキテクチャの64ビット拡張であり、インテルによるAMD64の実装である。
    ...
    従来、AMDはインテルがオリジナルであるx86の互換プロセッサを開発・生産していた。しかし、x64では立場が逆転し、インテルはAMDが開発したAMD64アーキテクチャ(x86プロセッサの64ビット拡張アーキテクチャ)を採用した。
    ...
    インテルは、AMD64互換命令セットの名称を数回 変更した。IDFで用いられた名前はCT(Clackamas Technology[11])、その数週間後にIA-32e(IA-32 extensions)と呼称を変更し、2004年4月にはこれを EM64T(Extended Memory 64 Technology)という名前で公式に発表した。製品リリース後の2006年7月27日には、インテルはEM64TをIntel 64と改称している[12]。
    ...
    AMD64とIntel 64は、ほとんど同じであるが、僅かながら違いはある。これらの違いはオペレーティングシステム、コンパイラなどの開発者のみが意識しなければならない。アプリケーションプログラムの開発者がこれらの違いを意識する必要は、ほぼない。
    ...
    16ビットWindows(Win16)アプリケーションとDOSアプリケーションは64ビット版Windowsでは動作しない。これは、64ビットモードに仮想86モードがないため、64ビット版Windowsから仮想DOSマシンサブシステム(NTVDM)を削除したためである。
    ...
    Microsoft Visual Studio 2005以降では、64ビット版Windowsのみで動作する64ビットアプリケーション、32ビット版Windowsと64ビット版WindowsのWOW64上の両方で動作する32ビットアプリケーションの開発が可能である。

  • 言えないと恥ずかしいAMD64とEM64Tの違い (1/3) - ITmedia エンタープライズ

    「x64」とは32ビットアーキテクチャ(IA-32)を64ビットに拡張したアーキテクチャ、およびそれと互換性のある技術の総称です。
    ...
    すなわち、x64は、新しい64ビットのソリューションを導入できるようにすると同時に、既存の32ビットのソリューションに対して行われてきたこれまでの投資もムダにしなくて済むようにするという、非常に優れた理念から誕生した新しいタイプのテクノロジです。

  • ASCII.jp:MSのプッシュでAMD64が勝者になったx86の64bit拡張 (1/4)|ロードマップでわかる!当世プロセッサー事情
  • x86 x64 IA64 って? - CPUのx86 x64 IA64 ってのは、どうい... - Yahoo!知恵袋
  • x64,x86の違いは知っているのですが、(x64は64bit版,x86は32... - Yahoo!知恵袋
  • Assembly Programming on x86-64 Linux

x86

  • x86 - Wikipedia

    x86(エックスはちろく[1])は、Intel 8086、およびその後方互換性を持つマイクロプロセッサの命令セットアーキテクチャの総称。16ビットの8086で登場し、32ビット拡張の80386(後にIA-32と命名)、64ビット拡張のx64、広義には更にAMDなどの互換プロセッサを含む。
    なおインテルのIA-64は全く異なる。
    ...
    初期のプロセッサの型番が「8086」「80186」「80286」「80386」「80486」と続いたため、総称して「80x86」、更に型番の下2桁が共通するところから「x86」(エックスはちろく、ペケはちろく)や「86系」などと呼ばれるようになった。これらは初期の8086から80286までの16ビットのプロセッサの俗称として始まって主にユーザーや互換チップメーカーによって使用された。
    ...
    32ビットアーキテクチャに範囲を限れば、「x86」と「IA-32」はほぼ同義である。

x86とは8086やその後方互換性を持つマイクロプロセッサの命令セットをもつCPUの総称。
という事で、広義の意味では8086と互換の命令セットを持っていれば16bitCPUの8086から32bitCPUの80386そして64bitCPUのAMD64やIntel 64およびその互換CPUまでをも含む広範囲のCPUを指しているという事なのだろうか。
そして、IA-64はx86命令セットと互換性を持たないのでこれに含まれない。

ただし多くの場合、IA-32と呼ばれるインテルの32bitCPU(16bitCPUや64bitCPUを除いた)とその互換CPUのみを指す事も。

IA-64

x64命令セット、x86命令セットのいずれとも互換性がない。
Itaniumなどのインテルのサーバー分野への進出を目指してのCPUだったのだが、x86との互換性がないため消えゆくCPUとなってしまった。

AMD64

AMDが開発したx86プロセッサの64ビット拡張アーキテクチャ。
x86命令セットと互換性を持つため、64ビットでは本家のインテルよりも主流になってしまった。

Intel 64(かつてIA-32eまたはEM64Tと呼ばれていた)

インテルによるAMD64の実装
インテルのAMD64互換命令セット

x64(x86-64)

x86を拡張した64ビットCPU・AMD64互換命令セットの総称
AMD64とIntel 64およびその互換CPUを含む


大さっばに言えば、インテル系のCPUでは
x86は32bit,x64は64bitを指すと思っていればいいのかな。

ページのトップへ戻る