x86とは、Intelの開発した命令セット・アーキテクチャ、およびそれを採用したCPUの集合である。
概要
厳密に言えばx86というアーキテクチャは存在せず、慣習上「8086」、「80286」、「386」という3つのアーキテクチャを総称してx86と呼んでいる。x86は以前のアーキテクチャとの上位互換性を保ちながら、8086→80286→386と発展してきた。[1]
- 8086(1978年)…このCPUは1MBのメモリを扱うことができた(いわゆる640KBの壁はこの1MBのうち上位384KBがグラフィックなどに利用されたから発生したもの)。
- 80286(1982年)…保護モード(要するになんかおかしなアクセスをしたらプロセッサが例外を出してプログラムの実行を阻止する)が導入された。とはいえまだ16ビット。
- 386(Intel386)(1985年)…32ビット化。しばしばi386という単語が出てくるが、これはこのIntel 386から来ている。のちにIA-32と呼ばれる命令体系の始まりである。
※x86の「86」はこれら3製品の末尾2桁数字に由来する。
命令セット・アーキテクチャの拡張は386で止まり、これ以降はインプリメンテーション(マイクロアーキテクチャ)の強化が製品開発の主眼となった。その後MMX(1997年)やSSE(1999年)と呼ばれる命令セットの拡張が行われた。
後にIntelは自社のプロセッサを64bit化しているが、命令セットはx86を64bit拡張したx64を採用している。
特徴
今回は32ビット時代の話に絞ることにする。また、FPUやSIMDの話は省略することにする。
見ればわかる通り、レジスタの数が少ない。また、命令長がバラバラなので命令の解釈が少し大変である。何より「片方のオペランドは更新される」というのがプログラム上では厄介である。
歴史
もともとIntelは8080の次に市場に投入する製品として「iAPX 432」を開発していた。iAPX 432の開発が遅れることは早くから判明していたので、iAPX 432が登場するまでのつなぎとして、初代のx86プロセッサである「8086」が開発された。
8086は8bit CPUの8080(8085)との互換性を最優先に設計されたため、アセンブラレベルであれば非常に高い互換性を発揮したが、1MBのメモリ空間を64KBごとに区切るというセグメント方式が採用されたため、16MBのメモリ空間にダイレクトアクセス可能なMC68000と比較され、開発者からは嫌われていた。
だが、8086の外部データバスを8bit化した8088がIBM PCに採用されて大量に製品が出荷され、8086もIBM-PC互換機に採用されたことで大幅に売り上げを伸ばし、さらにIBM-PC/ATにIntel 80286が採用されたことで、x86と互換性のないプロセッサはPC市場から駆逐された。そして本命だったiAPX 432は製品として失敗し、膨大な損失を出して生産を終了してしまった。
世間でRISCが流行り始めた際には、危機感を覚えたIntelもRISC系をいくつか開発しハイエンドを取りに行くのだがうまくいかず、製品ラインとしては生き残らなかった。
次にIntelは自社のマイクロプロセッサを64bit化するにあたり、x86とは互換性のない「IA-64」命令セットを開発し、これを採用した「Itanium」プロセッサを投入したが、エミュレーションで実行するx86向けのソフトウェアの実行性能が悪かったため普及させることができず、結局はAMDが開発した「x86-64」命令セット(x86の命令体系を維持しながら64bitに拡張したもの)を受け入れることになり、またしてもx86と縁を切ることはできなかった。
- 2004年 - x64では仮想86モードをサポートせず。これにより64ビットOS上では16ビットアプリケーションは動作しない。
- 2020年 - UEFIで動作しない16ビット/32ビットOSをネイティブで動作させるための機能を削除。
- 2023年 - Intelは16bitのサポートを廃した「x86-S」のプロポーザルを公開。厳密にはブートシーケンスにおいて16bitや32bitを経由して64bitモードに移行していたのを整理したもので、16bit命令が削除されるわけではないようだ。[2]
- 2024年- IntelとAMDが共同でx86アーキテクチャのエコシステム拡大に向けた「x86 Ecosystem Advisory Group」を設立。
関連動画
関連項目
互換プロセッサメーカー
脚注
- *「最新マイクロプロセサ・テクノロジ 増補改訂版」 神保進一 1999 日経BP p.82
- *雑談2題~X86-Sのメリット、業界標準の上手な作り方 2023.6.29
- *CyrixにIBMにRiSE、マイナー系x86ベンダー総ざらえ 2010.8.23
親記事
子記事
- なし
兄弟記事
- 1
- 0pt