演算に使えるレジスタが限定的だったり、メモリを直線的に使うのが面倒等の問題があったものの8080とのソースレベルでの互換性を重視し、既存の8080環境やCP/Mなどのアプリケーションの移植、プログラマの移行などにも積極的であったことから、IBM-PCへ採用され、現在のx86アーキテクチャの商業的な成功へとつながったと評価されている。
ハードウェア的には、供給クロックのデューティ比が1:2になっている。クロックジェネレータi8284に3倍のクロックを供給し、それを3分周することにより1:2のクロックを得る。[6] C言語から生成されたプログラムにおいて、コードとデータのそれぞれで、デフォルトのアクセスをセグメント内のオフセットのみとするか、セグメントも併用してアクセスするか、の違いにより「コード・データともセグメント内」「コードのみセグメント内」「データのみセグメント内」「コード・データともセグメント併用」といったパターンが存在し、ライブラリ等はそれぞれ異なるものを使うため煩雑であった。デフォルトでないアドレッシングには、ポインタに far や near という修飾を付ける。プログラミングモデルあるいはメモリモデル等ともいう。 詳細は以下の通り。 効率などの理由から、コンパイルはSmallモデルとし、必要に応じて明示的にセグメント操作をプログラマが指示する(適宜farまたはhugeポインタを使用し、また動的なメモリ確保によって64KBの制限を超える)ような作りのプログラムも多い。 8086の外部データバスは16ビットであるが、アドレッシングは8ビット単位で行われ、データバスの下位8ビットが偶数アドレス、上位8ビットが奇数アドレスとなる。 8086でシステムを構築する上で、従来からある8ビットCPU用の周辺チップ(8251
プログラミングモデル
Tiny
コードセグメントとデータセグメントが共通で、両者合わせて64Kバイト以内。拡張子が"COM"の実行ファイルがこのモデルである。
Small
コードセグメント、データセグメントのどちらも64Kバイト以内。
Compact
コードセグメントは64Kバイト以内、データセグメントはfarポインタ。コードは小さいが、扱うデータが大きいときに用いられる。
Medium
コードセグメントはfarポインタ、データセグメントは64Kバイト以内。コードが大きくても、扱うデータが小さい場合に利用される。
Large
コードセグメント、データセグメントのどちらもfarポインタ。変数(配列)のサイズは64Kバイトに制限される。
Huge
基本的にLargeと同じだが、配列などのメモリオブジェクトのサイズが64Kバイトに制限されない。
データバスについて
そのため、このような構成では、8086 CPUから見ると、周辺チップの連続するレジスタが偶数アドレスもしくは奇数アドレスのみにとびとびに割り当てられる格好となる。
PC-9800シリーズでは実際に上記のような構成になっており、I/Oマップが偶数アドレスと奇数アドレスで分断されている。一方、外部データバスが8ビットの8088を採用したIBM PCではそのようなことはなく、8ビットの周辺チップは連続したアドレスに存在する。XTバスの拡張カードにより増設した機器も同様である。
そのため、後にPC/ATで16ビットのISAを採用した際に、8ビットの周辺機器をサポートするためにバス・サイジングの必要性が生じた。
また、PC-9800シリーズでも、PCカードのモデムなど、IBM PCシリーズ用に開発された8ビットの周辺機器をサポートする際に、バス・サイジングの必要性が生じた。 のちの2018年には、8086発売40周年を記念して、当時最新のCoffee Lakeマイクロアーキテクチャに基づくCore i7-8086Kを、限定品として発売している。Core i7-8086Kの最大周波数はインテルのCPUとしては初めて5GHzに達し[7]、8086のちょうど1000倍となっている[8]。
記念品
脚注^ 8086マイクロコンピュータ 1983, p. 86.
^ MC68000は8086よりも2年遅く登場し2倍以上のトランジスタを使っており、本来は同じ土俵で比べられるものではないが、しばしばライバル視される。
^ 詳細は86-DOS#PC DOS の誕生及びCP/M-86も参照のこと。
^ 参考までに、初代IBM PCはRAM 64KB(16KBモデルもあったが売れず)、初代NEC PC-9801はRAM 128KBだった。
^ ティム ジャクソン著 翔泳社刊 「インサイド インテル」より。
^ 沖電気製MSM80C86A-10(10MHz版)は1:1になっているなど、セカンドソースのメーカやクロック周波数によっては異なる場合もある。なお、インテルのi8086-1(10MHz版)では1:2である。
^ インテル「8086」発売40周年、限定版CPU「Core i7-8086K」を発表
^ Core i7-8086K Limited Editionは50年のIntel史上最強のゲーミングCPU!? AKIBA PC Hotline!、2018年6月8日(2020年6月14日閲覧)。
参考文献
田辺皓正編著『マイクロコンピュータシリーズ15 8086マイクロコンピュータ』丸善株式会社、1983年4月30日。
関連項目
NEC V30 - 8086ピン互換で、80186上位互換の独自命令セットを持つ互換製品。
Intel 80186 - 周辺ICを統合した組み込み向け製品。
Intel 80286
Intel 80386
x86-32
x86-64
表
話
編
歴
インテルのマイクロプロセッサ
生産終了
x86以前(4ビット)
4004
4040
x86以前(8ビット)
8008
8080
8085
x86(x86-16、16ビット)
8086
8088
80186
80188
80286
IA-32(x86-32、32ビット)
80386
80486
* DX2
DX4
Pentium (1993-2009)
Pro
II
III
4
4-M
M
Core
Celeron M
Celeron D
A100
Atom
EP80579
Quark
x64(x86-64、64ビット)
Pentium
4
D
EE
Dual-Core
Celeron D
Core 2
Celeron (2010-2022)
Pentium (2010-2022)
Core M
IA-64(64ビット)
Itanium
その他
iAPX 432 ? RISC: i860
i960
StrongARM
XScale
現行
x64(x86-64、64ビット)
Atom
C
P
Intel Processor
無印
T
U
N
Core (2008-2023)
i3
i5
i7
i9
X
Core Ultra
5
7
9
Core (2024-)
3
5
7
Xeon
Phi
その他
CPUソケット
チップセット
PCH
HD Graphics
Xe
GMA
ICH
チック・タック
Larrabee