|
Intel 8086(インテル8086)はインテルが開発した16ビット マイクロプロセッサ(CPU)。x86(80x86)アーキテクチャの最初のマイクロプロセッサで、1978年に発表された。 日本電気のPC-9801などパーソナルコンピュータに広く採用された。対応するオペレーティングシステムに、MS-DOS、PC-DOS、CP/M-86があった。 シリーズには、外部データバスを8ビットにした低価格版の8088があり、初代のIBM PCにも採用された。協調して働くように準備されていた数値演算コプロセッサに8087があった。また、使われる機会は少なかったが、8089というI/Oプロセッサも存在した。 当時ライバルとされた製品には、モトローラの68000系プロセッサがある〔MC68000は8086よりも2年遅く登場し2倍以上のトランジスタを使っており、本来は同じ土俵で比べられるものではないが、しばしばライバル視される。〕。 == アーキテクチャ == 8086は8080のアーキテクチャを16ビットに拡張し、乗除算などの命令を強化したCPUである。アドレスバスは20ビットに、データバスは16ビットに拡張された(姉妹品に外部データバスを8ビットに留めた8088もある)。ただし、8080とバイナリーレベルの互換性はない。開発にあたってIntelは、8080からの速やかな移行を最重点事項に置き、8080のアセンブラソースコードに一切の手を加えることなく再アセンブルするだけで、8086用のバイナリを生成する事が出来た〔詳細はQDOS#PC DOS の誕生及びCP/M-86も参照のこと。〕。 8080のアーキテクチャと大きく異なるのは、演算用のアドレスレジスタのほかに、セグメントレジスタという、アドレス変換のための16ビットのレジスタを持っていることである。実際にCPUがアクセスするアドレスは、16ビット幅のレジスタによって指定された64KBのアドレスに、さらに16ビット幅のセグメントレジスタの値を16倍(左に4ビットシフト)して加算したアドレスとするため、1MBのメモリ空間を利用できた。 8086のアーキテクチャでは、プログラム内で通常表現されるアドレスの値は16ビット幅で64KBのメモリ空間である。当時、64KBのメモリ空間は1つのプログラムにとっては十分に広大であり〔参考までに、初代IBM PCはRAM 64KB(16KBモデルもあったが売れず)、初代NEC PC-9801はRAM 128KBだった。〕、セグメント機構はマルチタスクのために用意された。(8086には保護がないので、アプリケーションがセグメントレジスタを操作できるが、本来はOSが操作するものである。) 内蔵する4本のセグメントレジスタの値を全て同一にすると、8ビットの8080と同等の環境となり、8080用ソースを8086へ移植するのが容易であるほか、実行バイナリのリロケータブル化が容易であるといったメリットもあった。 しかし、8086(あるいは互換品・後継品)がロングセラーになって使われ続けた結果、1つのプログラムにとってさえも64KBのメモリ空間は狭くなってしまい、アプリケーションのプログラムが自力でセグメントレジスタを操作して64KB以上のメモリ空間にアクセスする手法が用いられるようになった。しかし、頻繁にセグメントレジスタを操作することはプログラムを煩雑にし、実行時のオーバーヘッドも増えるため、プログラマからは非常に嫌われた。 後に批判の的となってしまったセグメント方式だが、互換性を重視しつつ開発が短期間で完了でき、かつコストパフォーマンスに優れた選択肢であった。これは、当時モトローラと激しいシェア争いを演じていたintelにとって極めて重大な要素だった〔モトローラは互換性より性能を重視した結果、MC6800シリーズとMC68000シリーズの構成を大きく切り替えた結果、アーキテクチャ的には優れたプロセッサとなったが、最終的にはx86アーキテクチャに敗れている。〕。 メモリ空間を1MBとしたのは、当時使われていた40DIPパッケージにアドレス・データバスを割り当てる際に、アドレスピンを効率良く増やして割り当てられる値であったとも言われる。 また、より大容量のアプリケーションを担い、高性能を発揮する次世代のプロセッサとしては、当時計画中であった32ビットCPU、iAPX432を充てる事が考えられていた。当初、8086は8ビットアーキテクチャから次世代のiAPX 432プロセッサへのつなぎとして考えられていたため、後に大規模な拡張を行う事は一切考えられていなかった〔ティム ジャクソン著 翔泳社刊 「インサイド インテル」より。〕。 演算に使えるレジスタが限定的だったり、メモリを直線的に使うのが面倒等の問題があったものの8080とのソースレベルでの互換性を重視し、既存の8080環境やCP/Mなどのアプリケーションの移植、プログラマの移行などにも積極的であったことが、現在のx86アーキテクチャの商業的な成功へとつながったと評価されている。 ハードウェア的には、供給クロックのデューティ比が1:2になっている。クロックジェネレータi8284に3倍のクロックを供給し、それを3分周することにより1:2のクロックを得る。〔沖電気製MSM80C86A-10(10MHz版)は1:1になっているなど、セカンドソースのメーカやクロック周波数によっては異なる場合もある。なお、インテルのi8086-1(10MHz版)では1:2である。〕 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「Intel 8086」の詳細全文を読む 英語版ウィキペディアに対照対訳語「 Intel 8086 」があります。 スポンサード リンク
|