8086
AI生成コンテンツ / AI-generated contents
AI生成コンテンツ / AI-generated contents
目次
8086開発の背景
8086のダイ
IBM PCのマザーボード
そのころ、IBMがパソコンを開発しようと動き出し、短期間で上市するために部品は既存製品を活用する方針を打ち出していた。インテルは他社に先駆けて16ビットCPUを開発しており、ホビーパソコンの8ビットCPUより高性能である点にIBMが惹かれた。(実際には廉価版の 8088 が搭載されることになる)
x86アーキテクチャ
8086のレジスタ
8086 は、8ビットCPU 8080 のデータバスを16ビットに拡張し、乗除算など命令を強化したが、レジスタ構成は 8080 に似ている。
AX はアキュムレータで、他のレジスタより高速に計算ができるほか、唯一除算命令が実行できる。BX はアドレス指定に使われる汎用レジスタ、CX はループカウンタなどに用いられる汎用レジスタ、DX レジスタはデータ処理に利用される汎用レジスタ。AX、BX、CX、DXの4本は、たとえばAXをAH+ALのように分けて8ビット汎用レジスタとして用いることも出来る。
BP はベースポインタとしてアドレス指定ができる。セグメントレジスタ SS をデフォルト参照する。
SP はスタックポインタで、セグメントレジスタSSを参照する。
SI と DI はインデクスレジスタとしてアドレス指定に使用できる。
フラグレジスタは、プロセッサ命令によって各種のフラグがセット/リセットされる。
インストラクションポインタ IP はセグメントレジスタ CS とセットで、現在実行しているプログラムのアドレスを示す。
AX はアキュムレータで、他のレジスタより高速に計算ができるほか、唯一除算命令が実行できる。BX はアドレス指定に使われる汎用レジスタ、CX はループカウンタなどに用いられる汎用レジスタ、DX レジスタはデータ処理に利用される汎用レジスタ。AX、BX、CX、DXの4本は、たとえばAXをAH+ALのように分けて8ビット汎用レジスタとして用いることも出来る。
BP はベースポインタとしてアドレス指定ができる。セグメントレジスタ SS をデフォルト参照する。
SP はスタックポインタで、セグメントレジスタSSを参照する。
SI と DI はインデクスレジスタとしてアドレス指定に使用できる。
フラグレジスタは、プロセッサ命令によって各種のフラグがセット/リセットされる。
インストラクションポインタ IP はセグメントレジスタ CS とセットで、現在実行しているプログラムのアドレスを示す。
セグメントレジスタと物理アドレス
セグメントレジスタ と呼ぶ4本の16ビット幅レジスタ(CS, DS, SS, ES)の値を左に4ビット・シフトして加算した20ビットをアドレスとして指定することができ、物理メモリ空間は1Mバイトに拡張された。
上図では、セグメントレジスタとオフセットのレジスタ値をセットして、物理アドレス &H C1234を指していることを表す。
メモリはセグメント切替のため、同一アプリケーションで利用できるメモリ空間は64Kバイトに制限されていたが、当時のプログラムはそれで十分だった。

このように従来アーキテクチャを踏襲したことで、8086 の開発はスピーディかつ安価に行われ、CPU自体も安定していた。ソフトウェアは 8080 とバイナリレベルの互換はなかったものの、再アセンブルすることでほぼ移植ができた。

OSとしては、1981年(昭和56年)、デジタルリサーチから CP/M の 8086 対応版となる CP/M-86 が発売されたが、同年、IBM PC に搭載された PC-DOS(後の MS-DOS)が主流となった。
上図では、セグメントレジスタとオフセットのレジスタ値をセットして、物理アドレス &H C1234を指していることを表す。
メモリはセグメント切替のため、同一アプリケーションで利用できるメモリ空間は64Kバイトに制限されていたが、当時のプログラムはそれで十分だった。
このように従来アーキテクチャを踏襲したことで、8086 の開発はスピーディかつ安価に行われ、CPU自体も安定していた。ソフトウェアは 8080 とバイナリレベルの互換はなかったものの、再アセンブルすることでほぼ移植ができた。
OSとしては、1981年(昭和56年)、デジタルリサーチから CP/M の 8086 対応版となる CP/M-86 が発売されたが、同年、IBM PC に搭載された PC-DOS(後の MS-DOS)が主流となった。
8086と iAPX 432
iAPX 432
AI生成コンテンツ / AI-generated contents
AI生成コンテンツ / AI-generated contents
そこで、

8080 のダイサイズは 20mm2、8086 が 33mm2 だった時代に、iAPX 43201 は
1981年(昭和56年)に iAPX 432 の出荷が始まるが、部品点数が多くて高価であり、動作周波数が低く性能も低かったため、まったく売れなかった。

一方、IBM PC に採用された 8086/8088 はインテルに想定外の利益をもたらした。それは、営業的に失敗した iAPX 432 の赤字を補って余りあるほどで、インテル単独では 8086/8088 の受注に追いつかなかった。
そこで、NECなどにセカンドソースして、 8086/8088 互換プロセッサの製造を認めることになる。
- ハードウェアレベルでのフォールトトレランス
- マルチプロセッサー対応
- マルチタスク
- プロセス間通信機能
- オブジェクト指向
- 拡張可能な入出力
8080 のダイサイズは 20mm2、8086 が 33mm2 だった時代に、iAPX 43201 は
- iAPX 43201‥‥66.3mm2
- iAPX 43202‥‥74.0mm2
- iAPX 43203‥‥75.3mm2
1981年(昭和56年)に iAPX 432 の出荷が始まるが、部品点数が多くて高価であり、動作周波数が低く性能も低かったため、まったく売れなかった。
一方、IBM PC に採用された 8086/8088 はインテルに想定外の利益をもたらした。それは、営業的に失敗した iAPX 432 の赤字を補って余りあるほどで、インテル単独では 8086/8088 の受注に追いつかなかった。
そこで、NECなどにセカンドソースして、 8086/8088 互換プロセッサの製造を認めることになる。
8086 と V30
V30のダイ
1983年(昭和58年)に、日本電気(NEC)は V30(μPD70116)を商品化し、1985年(昭和60年)に自社製パーソナルコンピュータ PC-9801U に搭載した。
V30 は 8086 互換とされるが、厳密に言うとそうではない。NECが 8086 互換CPUとして開発したのは μPD8086 で、V30 は μPD8086 の上位互換CPUである。V30 をインテルとの比較で言い表すと、8086 の周辺IC(クロックジェネレータ、割り込みコントローラ、タイマ、DMAC、チップセレクタ)をワンチップ化した 80186 の上位互換CPUにあたる。V30 は 80186 にない命令も搭載していたが、実際に使われることはほとんどなかった。
V30 は 8086 互換とされるが、厳密に言うとそうではない。NECが 8086 互換CPUとして開発したのは μPD8086 で、V30 は μPD8086 の上位互換CPUである。V30 をインテルとの比較で言い表すと、8086 の周辺IC(クロックジェネレータ、割り込みコントローラ、タイマ、DMAC、チップセレクタ)をワンチップ化した 80186 の上位互換CPUにあたる。V30 は 80186 にない命令も搭載していたが、実際に使われることはほとんどなかった。
NMOSとCMOS
8086 は NMOS 技術で製造された CPUだが、V30 は最初から CMOS 技術で製造された。
NMOS、CMOS はトランジスタの製造技術を指す。
NMOS、CMOS はトランジスタの製造技術を指す。
NMOS は、Nチャネル MOSFET のみで構成され、Nチャネル FET でスイッチングを行う。論理「1」(High)を出力するときにトランジスタがオンになって電流が流れ、論理「0」(Low)を出すときでも電源からグラウンドへ少し電流が流れ続けるため、回路は単純で動作速度も速いが、消費電力が大きくなる。

CMOS は、Nチャネル MOSFET と Pチャネル MOSFET で構成され、NチャネルとPチャネルを対にしてスイッチングを行う。つまり、NチャネルとPチャネルの片方がオンならもう片方はオフという補完動作をするため、スイッチング時以外はほとんど電流が流れず、消費電力を小さくできる。その分、回路は複雑で、動作速度も NMOS に比べて遅くなる。
CMOS は、Nチャネル MOSFET と Pチャネル MOSFET で構成され、NチャネルとPチャネルを対にしてスイッチングを行う。つまり、NチャネルとPチャネルの片方がオンならもう片方はオフという補完動作をするため、スイッチング時以外はほとんど電流が流れず、消費電力を小さくできる。その分、回路は複雑で、動作速度も NMOS に比べて遅くなる。
8086 のプロセスルールは3μmだったが、NEC は V30 で2μmにすることで、CMOS化しつつ、80186 の機能も取り込んだうえで、8086 とピンコンパチブルなパッケージに仕上げた。さらに、乗除算をはじめとする主要な演算命令を専用回路で実装するワイヤードロジック を採用し、CPU内部のバスを増強してデータ転送効率を上げることで、同じクロックで 8086 の最大1.5倍のスピードに上げることに成功した。搭載トランジスタ数は、 8086 の 29,000個に対し、2倍以上の 63,000個に達した。

V30 は 8080 のハードウェア・エミュレーションモードを搭載していた。こちらも、厳密には NEC の 8080 互換プロセッサ μPD8080AF のエミュレータである。

また、NECは 8088 互換の V20 や、それに周辺チップを組み込んだ V25 を開発・販売していた。その後、V30 の周辺LSIを取り込んだ V40、V50 を発売した。
この時代、日米両国間では半導体の貿易摩擦が起き、インテルがNECに対してVシリーズはマイクロコードの著作権を侵害しているという裁判を起こすという噂が立ち、NECは先手を打って、1984年(昭和59年)にインテルの著作権を侵害していない旨の確認訴訟を米国カリフォルニア州連邦裁判所に提訴した。1989年(昭和64年)に要約判決が下り、8086 に著作権表示がなかったことから NECの訴えが認められた。しかし同時に、マイクロコードの著作権が認められ、32ビットのインテル 80486 の互換 CPU を製造していた米国内メーカーに大きなインパクトを与えた。
NEC はマイクロコードの著作権侵害を回避するため、ほぼすべてをワイヤードロジックで実装した V33 を用意する。さらに、インテルCPUとは全く異なる32ビットCPU V60 や、組み込み用途に特化した V800系 を発売する。
V30 は 8080 のハードウェア・エミュレーションモードを搭載していた。こちらも、厳密には NEC の 8080 互換プロセッサ μPD8080AF のエミュレータである。
また、NECは 8088 互換の V20 や、それに周辺チップを組み込んだ V25 を開発・販売していた。その後、V30 の周辺LSIを取り込んだ V40、V50 を発売した。
この時代、日米両国間では半導体の貿易摩擦が起き、インテルがNECに対してVシリーズはマイクロコードの著作権を侵害しているという裁判を起こすという噂が立ち、NECは先手を打って、1984年(昭和59年)にインテルの著作権を侵害していない旨の確認訴訟を米国カリフォルニア州連邦裁判所に提訴した。1989年(昭和64年)に要約判決が下り、8086 に著作権表示がなかったことから NECの訴えが認められた。しかし同時に、マイクロコードの著作権が認められ、32ビットのインテル 80486 の互換 CPU を製造していた米国内メーカーに大きなインパクトを与えた。
NEC はマイクロコードの著作権侵害を回避するため、ほぼすべてをワイヤードロジックで実装した V33 を用意する。さらに、インテルCPUとは全く異なる32ビットCPU V60 や、組み込み用途に特化した V800系 を発売する。
乗算・除算命令
前述のように、NECの V30 は乗除算を専用回路(ワイヤードロジック)で実装していたが、8086 には乗算専用の回路も除算専用の回路も無い。29,000個のトランジスタでは、16ビットの乗算器を作り込む余裕がなかった。8086 の演算回路(ALU)ができるのは、16ビットの加算・減算と、1ビットずつのシフトだけである。
それでも乗算命令 MUL や除算命令 DIV が使えるのは、これらをマイクロコードで実装しているからだ。マイクロコードとは、1つの機械語命令を、CPU内部だけで通用するさらに細かい命令(マイクロ命令)の並びに分解し、CPU内のROMに焼き込んだプログラムである。8086 のマイクロコードROMは21ビット幅×512本しかなく、乗除算は加算とシフトを何十回も繰り返すループとして書かれている。
それでも乗算命令 MUL や除算命令 DIV が使えるのは、これらをマイクロコードで実装しているからだ。マイクロコードとは、1つの機械語命令を、CPU内部だけで通用するさらに細かい命令(マイクロ命令)の並びに分解し、CPU内のROMに焼き込んだプログラムである。8086 のマイクロコードROMは21ビット幅×512本しかなく、乗除算は加算とシフトを何十回も繰り返すループとして書かれている。
AI生成コンテンツ / AI-generated contents
乗算のアルゴリズムは、筆算と同じ「シフトと加算」である。8086 は内部に3本の作業用レジスタを持ち、被乗数、乗数、答えの上位を分担させる。乗数と答えを合わせて32ビットのシフトレジスタとみなし、右へ1ビットずらすたびに、押し出された乗数のビットを見て、1なら被乗数を上位側に加算し、0なら何もしない。これを16回繰り返すと32ビットの積が完成し、上位を DX、下位を AX に格納する。乗数のビットが1のときだけ加算するので、乗数の値によって実行時間が変わる。
AI生成コンテンツ / AI-generated contents
除算のアルゴリズムも筆算と同じ「シフトと減算」である。まず被除数の上位16ビットと除数を比べ、上位が除数以上なら商が16ビットに収まらないので、除算エラー(割り込み0番)を起こす。除数が0のときも、この1回の比較で検出される。次に、被除数を32ビットのシフトレジスタとみなして左へ1ビットずらし、上位側から除数を引けるなら引いて商のビットを1とし、引けないなら引かずに0とする。これを16回繰り返すと上位に余り、下位に商が残り、余りを DX、商を AX に格納する。
加算・減算がレジスタ同士なら3クロックサイクルで終わるのに対し、同じ16ビットでも、符号なし乗算 MUL は118~133クロックサイクル、符号なし除算 DIV は144~162クロックサイクルを要する。乗算は加算の約40倍、除算は約50倍である。符号付きの IMUL、IDIV は、いったん絶対値にして計算し、後から符号を戻す処理が加わるため、さらに20クロックサイクルほど長くなる。
5MHz の 8086 なら、加算が0.6マイクロ秒で終わるのに対し、除算には30マイクロ秒以上かかっていたことになる。
5MHz の 8086 なら、加算が0.6マイクロ秒で終わるのに対し、除算には30マイクロ秒以上かかっていたことになる。
| 命令 | 内容 | クロックサイクル数 |
|---|---|---|
| ADD, SUB | 16ビットの加算・減算 | 3 |
| MUL | 16ビットの符号なし乗算 | 118~133 |
| IMUL | 16ビットの符号付き乗算 | 128~154 |
| DIV | 16ビットの符号なし除算 | 144~162 |
| IDIV | 16ビットの符号付き除算 | 165~184 |
オペランドがレジスタの場合。メモリ上のデータを直接演算する形式では、
これに数クロックサイクルと実効アドレスの計算時間が加わる。
これに数クロックサイクルと実効アドレスの計算時間が加わる。
乗除算命令の高速化をめぐって
8086 は、16ビット整数の乗算命令 MUL に118~133クロックサイクル、除算命令 DIV に144~162クロックサイクルを要する。符号付きの IMUL は128~154、IDIV は165~184クロックサイクルだ(本節の数値は、オペランドがレジスタの場合で揃えている)。つまり、5MHzなら 1秒間に約4万回しか整数乗算を行うことができない。
乗除算命令を持たない 8080 や Z80 に比べれば長足の進歩だが、それでも、8080 の延長線上にあるアーキテクチャだから、タイガー計算機のハンドルを回しているのと大差ない。

その後に登場する16ビットCPUは、乗除算の結果をより速く出す方へ進化していく。
1980年(昭和55年)にモトローラが発売した16ビットCPU [/e-soul/gadget/1980/MC68000.shtm:MC68000] は、8086 に遅れること2年、その2.5倍の約7万トランジスタを搭載していた。乗算命令は最大70クロックサイクルと、8086 の半分程度になった。
インテルも負けてはいない。1984年(昭和59年)に発売した 80286 では、乗算21クロックサイクル、除算22クロックサイクルと劇的に短縮した。前述のNEC V30 は、NECの資料によれば8MHz動作で4~6マイクロ秒、すなわち32~48クロックサイクル相当である。
32ビットCPUの 80386 になると、16ビットの乗算は9~22クロックサイクルとなる。乗数の上位ビットが0や1で埋まっていれば途中で計算を打ち切る仕組み(アーリーアウト)が入ったためで、値によっては 80286 より速い。ただし最悪のケースは 80286 と変わらず、32ビット同士の乗算では9~38クロックサイクルに増える。80486 の16ビット乗算は13~26クロックサイクルで、最良のケースでは 80386 に及ばない。一方、モトローラの32ビットCPU 68030 は28クロックサイクルと、80286 並に短くなっている。
乗除算命令を持たない 8080 や Z80 に比べれば長足の進歩だが、それでも、8080 の延長線上にあるアーキテクチャだから、タイガー計算機のハンドルを回しているのと大差ない。
その後に登場する16ビットCPUは、乗除算の結果をより速く出す方へ進化していく。
1980年(昭和55年)にモトローラが発売した16ビットCPU [/e-soul/gadget/1980/MC68000.shtm:MC68000] は、8086 に遅れること2年、その2.5倍の約7万トランジスタを搭載していた。乗算命令は最大70クロックサイクルと、8086 の半分程度になった。
インテルも負けてはいない。1984年(昭和59年)に発売した 80286 では、乗算21クロックサイクル、除算22クロックサイクルと劇的に短縮した。前述のNEC V30 は、NECの資料によれば8MHz動作で4~6マイクロ秒、すなわち32~48クロックサイクル相当である。
32ビットCPUの 80386 になると、16ビットの乗算は9~22クロックサイクルとなる。乗数の上位ビットが0や1で埋まっていれば途中で計算を打ち切る仕組み(アーリーアウト)が入ったためで、値によっては 80286 より速い。ただし最悪のケースは 80286 と変わらず、32ビット同士の乗算では9~38クロックサイクルに増える。80486 の16ビット乗算は13~26クロックサイクルで、最良のケースでは 80386 に及ばない。一方、モトローラの32ビットCPU 68030 は28クロックサイクルと、80286 並に短くなっている。
では、なぜ後発のCPUは速くなったのか。8086 の乗算は、118クロックサイクルを16ビットで割ると、1ビットあたり約7.4クロックサイクルかかっている。マイクロコードのループ1回に、2回のシフトと条件判定、加算で5前後のマイクロ命令が必要だったためだ。改善の方向は、1ステップを短くする、ステップ数を減らす、符号の処理を省く、の3つに整理できる。

MC68000 は、マイクロコードの下にもう一段「ナノコード」を置く2階層方式で、1つの制御ステップで動かせる回路が多い。1ビット分のシフトが1ステップ(2クロックサイクル)で済み、加算が必要なビットだけ1ステップ増える。所要クロックサイクルは 38+2n で、n は乗数に立っているビットの数である。さらに、符号付き乗算にブースのアルゴリズムを使うため、8086 のように絶対値へ直してから符号を戻す前後処理が要らず、符号付きの乗算も符号なしと同じ時間で終わる。ただし除算は約140クロックサイクルで、8086 の144~162とほとんど変わらない。乗算だけが速くなったCPUである。

V30 は、乗除算をマイクロコードのループで回すことをやめ、専用の回路に置き換えた。NECの資料は「専用ハードウェアが高速な乗算・除算(8MHzで4~6マイクロ秒)と実効アドレス計算を行う」と説明している。加えて、内部データバスを2本(メインバスとサブバス)持ち、2本のレジスタを1クロックサイクルで一時レジスタへ移せるので、加算が3クロックサイクルから2クロックサイクルに縮まった。実効アドレスの計算も、専用回路が全アドレッシングモードを2クロックサイクルで行う(8086 はマイクロコードで5~12クロックサイクル)。マイクロコードの1語は29ビットあり、8086 の21ビットより多くの制御を同時に指定できる。

80286 は、1クロックサイクルで1ビットずつ進む専用回路を持つ。21クロックサイクルを16ビットで割ると1ビットあたり1.3クロックサイクルで、8086 の7.4から大きく下がった。符号付きの IMUL も同じ21クロックサイクルであり、符号処理のペナルティが無い。実行ユニット、アドレスユニット、命令ユニット、バスユニットが独立して動くため、メモリ上のデータを直接乗算する形式でも3クロックサイクル増えるだけで済む(8086 は実効アドレスの計算だけで5~12クロックサイクル)。なお、この除算回路は 80386 にそのまま引き継がれ、16ビットの除算はどちらも22クロックサイクルである。
MC68000 は、マイクロコードの下にもう一段「ナノコード」を置く2階層方式で、1つの制御ステップで動かせる回路が多い。1ビット分のシフトが1ステップ(2クロックサイクル)で済み、加算が必要なビットだけ1ステップ増える。所要クロックサイクルは 38+2n で、n は乗数に立っているビットの数である。さらに、符号付き乗算にブースのアルゴリズムを使うため、8086 のように絶対値へ直してから符号を戻す前後処理が要らず、符号付きの乗算も符号なしと同じ時間で終わる。ただし除算は約140クロックサイクルで、8086 の144~162とほとんど変わらない。乗算だけが速くなったCPUである。
V30 は、乗除算をマイクロコードのループで回すことをやめ、専用の回路に置き換えた。NECの資料は「専用ハードウェアが高速な乗算・除算(8MHzで4~6マイクロ秒)と実効アドレス計算を行う」と説明している。加えて、内部データバスを2本(メインバスとサブバス)持ち、2本のレジスタを1クロックサイクルで一時レジスタへ移せるので、加算が3クロックサイクルから2クロックサイクルに縮まった。実効アドレスの計算も、専用回路が全アドレッシングモードを2クロックサイクルで行う(8086 はマイクロコードで5~12クロックサイクル)。マイクロコードの1語は29ビットあり、8086 の21ビットより多くの制御を同時に指定できる。
80286 は、1クロックサイクルで1ビットずつ進む専用回路を持つ。21クロックサイクルを16ビットで割ると1ビットあたり1.3クロックサイクルで、8086 の7.4から大きく下がった。符号付きの IMUL も同じ21クロックサイクルであり、符号処理のペナルティが無い。実行ユニット、アドレスユニット、命令ユニット、バスユニットが独立して動くため、メモリ上のデータを直接乗算する形式でも3クロックサイクル増えるだけで済む(8086 は実効アドレスの計算だけで5~12クロックサイクル)。なお、この除算回路は 80386 にそのまま引き継がれ、16ビットの除算はどちらも22クロックサイクルである。
| CPU | 16ビット乗算 | 16ビット除算 | 乗除算の実装 | 1ビットあたり |
|---|---|---|---|---|
| 8086 | 118~133 | 144~162 | マイクロコード | 約7.4 |
| MC68000 | 38~70 | 約140 | マイクロコード+ナノコード (符号付きはブース法) |
約2.4 |
| V30 | 約32~48 | 約32~48 | 専用ハードウェア | 約2 |
| 80286 | 21 | 22 | 専用ハードウェア (1クロックで1ビット) |
約1.3 |
単位はクロックサイクル。オペランドがレジスタの場合。
V30はNEC資料の「8MHzで4~6マイクロ秒」からの換算値。
「1ビットあたり」は16ビット乗算の最小値を16で割った概算。
V30はNEC資料の「8MHzで4~6マイクロ秒」からの換算値。
「1ビットあたり」は16ビット乗算の最小値を16で割った概算。
Excelのような事務処理ソフトを使う範囲では、乗除算速度が問題になることはないが、シューティングゲームには影響が出る。
当時のディスプレイはブラウン管であったから、画面の書き換え時間(リフレッシュレート)は30~60Hz(1秒間に30~60回)だった。この期間中に計算が終わっていなければ、敵の位置が動かないまま背景だけ動いているという結果になりかねない。
当時のディスプレイはブラウン管であったから、画面の書き換え時間(リフレッシュレート)は30~60Hz(1秒間に30~60回)だった。この期間中に計算が終わっていなければ、敵の位置が動かないまま背景だけ動いているという結果になりかねない。
アセンブラとMS-DOS
個人的には、こうしたクロックサイクルまで勘案して機械語プログラムをアセンブルしたのは x86アーキテクチャ が最後だったように思う。その後は、年々歳々CPUのクロック数が上昇したから、プログラミングで工夫するよりコストが安くなったからだ。

MS-DOSには、マイクロソフト製アセンブラ MASM(Microsoft Macro Assembler)が標準で付いてきた。マクロやプロシージャに対応しており、高級言語に近い構造化プログラミングが可能だった。
MS-DOSには、マイクロソフト製アセンブラ MASM(Microsoft Macro Assembler)が標準で付いてきた。マクロやプロシージャに対応しており、高級言語に近い構造化プログラミングが可能だった。
主要スペック
| 項目 | 仕様 |
|---|---|
| メーカー | Intel |
| 発売開始 | 1978年6月 |
| トランジスタ数 | 29,000 |
| データバス | 16ビット |
| アドレスバス | 20bit |
| 物理メモリ | 1MB |
| CPUクロック | 5~10MHz |
| プロセスルール | 3μm |
| 命令セット | x86 |
| ソケット | 40ピンDIP |
| 最大消費電力 | 1.87W |
CPUの歴史
| 発表年 | メーカー | CPU名 | ビット数 | 最大クロック |
|---|---|---|---|---|
| 1970年 | Garrett AiResearch | MP944 (軍用) | 20bit | 375KHz |
| 1971年 | インテル | 4004 | 4bit | 750KHz |
| 1974年 | インテル | 8080 | 8bit | 3.125MHz |
| 1975年 | モステクノロジー | MOS 6502 | 8bit | 3MHz |
| 1976年 | ザイログ | Z80 | 8bit | 20MHz |
| 1978年 | インテル | 8086 | 16bit | 10MHz |
| 1979年 | モトローラ | MC6809 | 8bit | 2MHz |
| 1979年 | ザイログ | Z8000 | 16bit | 10MHz |
| 1980年 | モトローラ | MC68000 | 16bit | 20MHz |
| 1983年 | NEC | V30 | 16bit | 16MHz |
| 1984年 | インテル | 80286 | 16bit | 12MHz |
| 1985年 | インテル | 80386 | 32bit | 40MHz |
| 1985年 | インテル | i960 | 32bit | 100MHz |
| 1985年 | サン・マイクロシステムズ | SPARC | 32bit | 150MHz |
| 1985年 | エイコーン | ARM1 | 32bit | 6MHz |
| 1986年 | MIPS | R2000 | 32bit | 15MHz |
| 1987年 | ザイログ | Z280 | 16bit | 12MHz |
| 1987年 | モトローラ | MC68030 | 32bit | 50MHz |
| 1988年 | MIPS | R3000 | 32bit | 40MHz |
| 1989年 | インテル | 80486 | 32bit | 100MHz |
| 1989年 | インテル | i860 | 32bit | 50MHz |
| 1990年 | モトローラ | MC68040 | 32bit | 40MHz |
| 1991年 | MIPS | R4000 | 64bit | 200MHz |
| 1992年 | DEC | Alpha 21064 | 64bit | 200MHz |
| 1993年 | IBM, モトローラ, Apple | PowerPC 601 | 32bit | 120MHz |
| 1993年 | インテル | Pentium | 32bit | 300MHz |
| 1994年 | IBM, モトローラ, Apple | PowerPC 603 | 32bit | 300MHz |
| 1995年 | サイリックス | Cyrix Cx5x86 | 32bit | 133MHz |
| 1995年 | AMD | Am5x86 | 32bit | 160MHz |
| 1995年 | サン・マイクロシステムズ | UltraSPARC | 64bit | 200MHz |
| 1999年 | IBM, モトローラ | PowerPC G4 | 32bit | 1.67GHz |
| 1999年 | AMD | Athlon | 32bit | 2.33GHz |
| 2000年 | インテル | Pentium 4 | 32bit | 3.8GHz |
| 2001年 | インテル | Itanium | 64bit | 800MHz |
| 2003年 | AMD | Opteron | 64bit | 3.5GHz |
| 2003年 | インテル | Pentium M | 32bit | 2.26GHz |
| 2006年 | SCE,ソニー,IBM,東芝 | Cell | 64bit | 3.2GHz |
| 2006年 | インテル | Core Duo | 32bit | 2.33GHz |
| 2006年 | インテル | Core 2 Duo | 64bit | 3.33GHz |
| 2008年 | インテル | Core i9/i7/i5/i3 | 64bit | 5.8GHz |
| 2017年 | AMD | Ryzen | 64bit | 5.7GHz |
| 2020年 | Apple | M1/M2/M3/M4/M5 | 64bit | 3.49GHz |
| 2023年 | インテル | Core Ultra 9 / 7 / 5 | 64bit | 5.1GHz |
参考書籍
|
|
忘れ去られたCPU黒歴史 | ||
| 著者 | 大原 雄介 | ||
| 出版社 | 角川アスキー総合研究所 | ||
| サイズ | 単行本 | ||
| 発売日 | 2012年07月10日頃 | ||
| 価格 | 1,540円(税込) | ||
| ISBN | 9784048867719 | ||
参考サイト
- 8086誕生から40年、その歴史を振り返る:@IT
- Z80 で機械語を学ぶ:ぱふぅ家のホームページ
- Intel 80286 は MS-DOS上の最速CPU:ぱふぅ家のホームページ
- ダイナブック J-3100SS でモバイル生活:ぱふぅ家のホームページ
- Reverse-engineering the multiplication algorithm in the Intel 8086 processor:Ken Shirriff's blog
- Reverse-engineering the division microcode in the Intel 8086 processor:Ken Shirriff's blog
- 8086 microcode disassembled:Reenigne blog
- Intel Instruction Set(MUL・DIVなどのクロックサイクル表):Istanbul Technical University
- V20/V30 Users Manual(1986年10月):Internet Archive
- Exploring the NEC V20 CPU:MartyPC
- Multiplication and division(68000の乗除算):Plutiedev
- 80386 Multiplication and Division:Small Things Retro
(この項おわり)



外部データバスを8ビットにした廉価版の 8088 は、1981年(昭和56年)8月、IBM PC に採用され、オフィスへのパソコン普及に貢献した。
国内では、後に国民機と呼ばれる PC-9801 に搭載され、16ビット・パソコンの普及を牽引した。