x86

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索
x86 (80x86)
開発者 インテル
ビット数 16ビット/32ビット/64ビット
発表 1978年
デザイン CISC
タイプ Register-Memory
エンコード Variable (1 to 16 bytes)
ブランチ Condition code
エンディアン性 Little
ページサイズ 4 KiB
拡張 x87, IA-32, P6, MMX, SSE, SSE2, 64, SSE3, SSSE3, SSE4, SSE5, AVX
オープン No
レジスタ
汎用 16 bit: 6 semi-dedicated registers + bp and sp;
32 bit: 6 GPRs + bp and sp;
64 bit: 14 GPRs + bp and sp.

x86または80x86は、インテルが開発したマイクロプロセッサアーキテクチャであり、更にはこれをベースとしたAMDなどの互換メーカーを含む各社のマイクロプロセッサ製品の総称(プラットフォーム)である。

16ビット8086で登場し、32ビット拡張の80386を経て、64ビット拡張であるx64XeonIntel Core i7などに至るが、基本的な命令セット上位互換を保っている。ただし同じ64ビットでもインテル独自のIA-64は別規格である。

目次

名称 [編集]

初期のプロセッサの名称が「8086」「80186」「80286」「80386」「80486」と続いたため、総称して「80x86」、更に短縮して「x86」(エックスはちろく、ペケはちろく)や「86系」などと呼ばれるようになった。これらは初期の8086から80286までの16ビットのプロセッサの俗称として始まって主にユーザーや互換チップメーカーによって使用され、80386以後の32ビットのアーキテクチャ拡張を経て、64ビットに拡張された「x64」まで、命令セット上位互換性のあるアーキテクチャや製品のシリーズを広範に含んだ呼称として使用されている。またオリジナルのインテルの製品以外にも、AMDVIAなどの互換プロセッサも含まれる。

パーソナルコンピュータ (PC) から、スーパーコンピュータサーバ組み込みシステムまで広く使われていることから、従来「PCサーバ」や「IAサーバ」と呼んでいたカテゴリーを、「x86サーバ」「x86システム」と呼ぶベンダーが増えている。

32ビットプロセッサの範囲では、x86とIA-32はほぼ同義語だが、「IA-32」は独自の64ビットアーキテクチャであるIA-64との対比でインテルが使用した語のため、インテル社製の32ビットプロセッサのみを指す場合が多い。

概要 [編集]

1978年に発売された、16ビットのマイクロプロセッサである8086で初めて採用された。マイクロコントローラとして設計され、セグメント方式によるアドレッシングでプログラミング上は不便な面があるものの、1MiBと当時としては広大なメインメモリ空間をサポートし、それとは別にI/O空間も設けられた。

1982年IBMから8086の外部データバスを16ビットから8ビットに削減した8088を採用したIBM PCが発売される。IBM PCの後継となったIBM PC/ATの互換機(PC/AT互換機)は後年には単にPCと呼ばれるようになり、x86はPCの為のプロセッサと認知されているが、当時はIBM PCを1年間で開発するうえで使用可能な既存の製品という点などから選定されたに過ぎない。

1985年には32ビットの対応への拡張が行われ、80386に採用された。

32ビット化の際マイクロプロセッサとして設計が見直された。16ビットで8086互換のリアルモードと、32ビットのプロテクトモード(ネイティブモード)を持つ。プロテクトモード中にも、仮想8086モードを持つため、複数の8086をエミュレートすることができる。また階層化された特権レベル(特権リング、4つの階層で構成される)は80286ではスケールダウンしたエミュレーターには使えたが、80386ではこれに加えて割り込みサポートを強化した結果、従来メインフレームクラスのコンピュータでしか利用できなかった仮想マシンモニタの実装を可能とし、後年になってVMwareを筆頭に仮想マシン環境をパソコンレベルで実現に至らしめた。後にIA-64命令セットが開発されたことで、32ビット拡張のx86アーキテクチャにはIA-32の名称が与えられた。なお、i80286以前の16ビットの命令セットに対しては現在でも公式の名称は与えられていない。

80386をPCで最初に採用したのは、嫡流であるIBMではなく互換機メーカーのコンパックであった。

インテル自身は過去にIntel iAPX 432Intel i860IA-64といった革新的アーキテクチャを導入することにより、x86を置き換えようとしたが、ことごとく不成功に終わり、結果としてx86は後付けの拡張を続け今日までインテルの主力アーキテクチャとして延命している。インテルは現在、2011年リリースのSandy Bridgeマイクロアーキテクチャから新たにAVX命令フォーマットを導入し、古いx86命令セットからの脱却を徐々に進め始めている。

製品群と世代 [編集]

x86が採用されたマイクロプロセッサは多岐にわたり、世代も多く存在している。インテル自体の製造が需要に応え切れない可能性から、インテルは普及を目的にセカンドソースを推奨していたため、各社よりクローン製品が発売された。逆に8086に独自改良を加えたNEC V30などの製品には著作権法違反の警告が行われた。

  • 第一世代 - 8086およびその派生。後に複数の互換製品が登場した。
  • 改訂第一世代 - 80186およびその派生。後に複数の互換製品が登場した。
  • 第二世代 - 80286。 後に複数の互換製品が登場した。この頃より、製造を拡充したインテルは、セカンドソースも認めない方針に転換した。しかし既得権として各社は引き続き製造を続行し、それに留まらず独自改良を行うメーカーも現われた。
  • 第三世代 - 80386およびその派生。後に複数の互換製品が登場した。
  • 第四世代 - 486およびその派生。後に複数の互換製品が登場した。
  • 第五世代 ("P5") - PentiumおよびMMX Pentium。後に複数の互換製品が登場した。互換製品メーカーに対してインテルが訴訟を起こしており、以後、各社はそれ以前のインテル製品に改良を行った製品か、逆に独自に開発を行うようになった。インテルとのクロスライセンスを利用して合法的に互換のある製品も存在する。AMDは訴訟の和解条件として、独自なものを開発するようになった。
  • インテル
  • AMD
    • 第四世代 - Am4x86の他にAm5x86が発売された。
    • 第五世代 ("K5") - AMD K5
    • 第六世代 ("K6") - AMD K6AMD K6-2AMD K6-III
    • 第七世代 ("K7") - AthlonDuron
    • 第八世代 ("K8") - OpteronおよびAthlon 64系。
    • 第九世代 ("K9") - K9と発音が同じ犬 (canine) から、Houndと呼ばれていた系統だと推定される。インテルと同様に方向性の失敗によりキャンセル。
    • 第十世代 ("K10") - PhenomAthlon II、K10に基づくOpteronSempronなど。
  • NexGen
    • 第五世代 - Nx586。バスやチップセットなどインテルと互換性がなく普及しなかった。
    • 第六世代 - Nx686。開発途中でAMDに買収される。AMDは開発中のK6を中止し、Nx686を改良した製品をK6として発売した。
  • Rise Technology
    • 第五世代 - mP6。インテルの第五世代のマザーボードが使用できる。数字が6なのは、インテルなど他社が第六世代に突入していたためと思われる。
    • 第六世代 - RiSE Tiger370。mP6に競争力が無く、今世代は製品化されていない。SiSにライセンス供与してRiSEは撤退した。
  • サイリックス
    • 第四世代 - Cx486SLCCx486DLC。386用のI/Oバスを持った第四世代のCPU。
    • 第五世代 - M1およびそれの派生コア、M2コアを採用した5x866x86、6x86MX、MII。
  • Integrated Device Technology (IDT)
    • 第六世代 - IDT-C6を開発。商品名はWinChip。技術的にはIntelのP5の世代。
  • VIA
    • 第六世代 - 買収したCentaur TechnologyのWinChip4をCyrix IIIと改称・設計変更して商品化。その後、VIA C3に名称変更。その後、インテルとのライセンス切れによりC3を置き換えるC7を発売。
    • 第七世代 - インテルとのライセンス切れにより、そのライセンスに拠らないV4バスを採用したC7を発売。基本的にはC3と特段の違いはない。
    • 第八世代 - VIA製CPUとして初めてアウト・オブ・オーダー実行およびスーパースケーラ命令パイプラインを搭載したVIA Nanoを発売。
  • トランスメタ
    • 第六世代 - 命令セットのみx86を採用したVLIW型CPUを開発。世代は全く関係なくここでの表記上の便宜的なもの。最初の製品としてCrusoeを発売。低消費電力の先鞭を付けた。
    • 第七世代 - 後継のEfficeonを発売。しかし財務的に思わしくなく、チップ開発販売ではなくライセンス販売するように方針を転換した。

主な拡張 [編集]

ソフトウェア的な環境は、80386から下位互換性を保ちながら拡張されて来た。これらはユーザが使用可能な拡張については486以降のCPUではCPUID命令を発行することにより、どの拡張が有効であるかを知ることが出来る。

プロセッサ全体 [編集]

プロテクトモードに関する拡張 [編集]

  • 物理アドレス拡張 (PAE) Pentium Pro以降
  • ページサイズ拡張 (PSE) Pentium以降
  • 36ビットPSE (PSE36) DeschutesコアのPentium II/Pentium II Xeon以降
  • 40ビット物理アドレス拡張 XeonMP

仮想86モードに関する拡張 [編集]

  • 仮想モード拡張 (VME) Pentium以降

仮想マシンに関する拡張 [編集]

数値演算に関する拡張 [編集]

  • 浮動小数点演算機能の統合:486以降
  • 高速な浮動小数点演算コンテクストのセーブ
  • MMX:MMXペンティアム以降
  • SSE:Pentium III以降
  • 3DNow!:AMD独自のSIMD拡張命令
  • SSE2:Pentium 4以降
  • SSE3:Pentium 4、Prescottコア以降
  • SSSE3:Xeon 5100, Core 2 以降
  • SSE4.1:Xeon 5400, Core 2 Penrynコア 以降
  • SSE4.2:Core i7 以降
  • SSE5:AMD Bulldozerコア 以降。SSEで初のAMD独自命令。

省電力に関する拡張 [編集]

その他 [編集]

脚注 [編集]

  1. ^ インテル (2008年3月17日). “Intel Corporation's Multicore Architecture Briefing”. 2008年4月16日閲覧。

関連項目 [編集]

外部リンク [編集]