側面にろう付けされたピンを備えた紫色のセラミック DIP パッケージの珍しい Intel C8086 プロセッサ | |
| 一般情報 | |
|---|---|
| 発売 | 1978 |
| 製造中止 | 1998年[1] |
| 共通メーカー | |
| パフォーマンス | |
| 最大CPU クロックレート | 5MHz~10MHz |
| データ幅 | 16ビット |
| アドレス幅 | 20ビット |
| アーキテクチャと分類 | |
| テクノロジーノード | 3μm |
| 命令セット | 86-16 の |
| 物理的仕様 | |
| トランジスタ |
|
| コプロセッサ | インテル 8087、インテル 8089 |
| パッケージ |
|
| ソケット | |
| 製品、モデル、バリエーション | |
| 変異体 | |
| 歴史 | |
| 前任者 | インテル8085 |
| 後継者 | 80186と80286 (どちらも 1982 年初頭に導入されました) |
| サポート状況 | |
| サポートされていません | |
8086 [3](iAPX 86とも呼ばれる)[4]は、1976年初頭から1978年6月8日に発売された間にIntelによって設計された16ビットのマイクロプロセッサチップです。 1979年7月1日に発売されたIntel 8088 [5]は、わずかに改良されたチップで、外部に8ビットのデータバスが追加され(より安価で少ないサポートICの使用が可能)、[注 1]オリジナルのIBM PC設計で使用されたプロセッサとして有名です。
8086はx86アーキテクチャの誕生のきっかけとなり、最終的にはIntelの最も成功したプロセッサシリーズとなった。2018年6月5日、IntelはIntel 8086の40周年を記念した限定版CPU「Intel Core i7-8086K」をリリースした。[5] [リンク切れ ]
歴史
背景
1972年、インテルは同社初の8ビットマイクロプロセッサである8008を発売した。 [注 2]このプロセッサは、プログラム可能なCRT端末を念頭にデータポイント社が設計した命令セットを実装しており、これもかなり汎用的であることが証明された。このデバイスは、機能的なコンピュータを製造するためにいくつかの追加ICを必要としたが、これは小さな18ピンの「メモリパッケージ」にパッケージ化されていたため、別のアドレスバスを使用することができなかったためである(当時の インテルは主にDRAMメーカーであった)。
2年後、インテルは、独立したアドレスバスを可能にするために元々電卓IC用に開発された新しい40ピンDILパッケージを採用した8080を発売した。8080は、 8008 [6]とソース互換(バイナリ互換ではない)な拡張命令セットを持ち、プログラミングを容易にするためにいくつかの16ビット命令も含まれていた。8080デバイスは最終的に、以前のチップの3つの異なる動作電圧の代わりに単一の+5V電源を使用するデプレッションロードベースの8085 (1977年)に置き換えられた。 [注 3]この時期に登場した他のよく知られた8ビットマイクロプロセッサには、モトローラ6800(1974年)、ゼネラルインスツルメンツPIC16X(1975年)、MOSテクノロジー6502(1975年)、ザイログZ80(1976年)、モトローラ6809(1978年)がある。
最初のx86設計
8086 プロジェクトは 1976 年 5 月に開始され、当初は野心的で遅れていたiAPX 432プロジェクトの一時的な代替として意図されていました。これは、 Motorola、Zilog、National Semiconductorなどの他のメーカーの、遅れが少なかった 16 ビットおよび32 ビットプロセッサから注目を集めようとする試みでした。
8086は16ビットのマイクロプロセッサであったが、 Intelの8ビットマイクロプロセッサ(8008、8080、8085)と同じマイクロアーキテクチャを使用していた。これにより、8ビットで書かれたアセンブリ言語プログラムをシームレスに移行できた。[7]符号付き整数、ベース+オフセットアドレッシング、自己反復演算などの新しい命令と機能が追加された。PascalやPL/MなどのALGOLファミリの言語でネストされた関数のソースコードコンパイルを支援する命令が追加された。主任設計者のStephen P. Morseによると、これはよりソフトウェア中心のアプローチの結果であった。その他の機能強化には、乗算と除算のアセンブリ言語命令用のマイクロコード命令が含まれていた。設計者は8087や8089などのコプロセッサも予想していたため、バス構造は柔軟に設計された。
命令セットと高レベルアーキテクチャの最初の改訂は約3か月後に完成しました。[注 4 ] CADツールはほとんど使用されなかったため、4人のエンジニアと12人のレイアウト担当者が同時にチップの開発に取り組んでいました。[注 5] 8086はアイデアから実用的な製品になるまでに2年強かかりましたが、これは1970年代の複雑な設計としては速いと考えられていました。
8086 はランダム ロジック[8]とマイクロコードの組み合わせを使用してシーケンス化され[注 6] 、約 20,000 個のアクティブトランジスタ( ROMとPLAサイトをすべて含めると 29,000 個)を備えたデプレッション ロード nMOS 回路を使用して実装されました。すぐに、インテルがもともと高速スタティック RAM製品の製造用に開発したHMOS (High performance MOS)と呼ばれる新しい改良された nMOS 製造プロセスに移行しました。[注 7]これに続いて HMOS-II、HMOS-III バージョンが続き、最終的にはインテルのCHMOSプロセスを使用して製造されたバッテリー駆動デバイス用の完全にスタティックなCMOSバージョンが続きました。 [注 8]元のチップの寸法は 33 mm² で、最小フィーチャ サイズは 3.2 μm でした。MUL 命令と DIV 命令はマイクロコード化されていたため非常に低速であったため、x86 プログラマーは通常、乗算と除算にビット シフト命令のみを使用していました。[疑わしい–議論する]
8086 は 1981 年に 2 μm にダイ シュリンクされました。このバージョンでは、元の 3.5 μm チップのスタック レジスタのバグも修正されました。その後の 1.5 μm および CMOS バリアントは他のメーカーに外注され、社内で開発されませんでした。
アーキテクチャは、スティーブン・P・モースが定義し、ブルース・ラヴェネル(8087の設計者)の協力を得て最終改訂を洗練させた。ロジック設計者のジム・マッケビットとジョン・ベイリスはハードウェアレベルの開発チームの主任エンジニアであり[注 9]、ビル・ポールマンはプロジェクトのマネージャであった。8086の遺産は、今日のパーソナルコンピュータとサーバーの基本命令セットに生き続けている。8086は、その最後の2桁を、後に拡張されたバージョンの設計であるIntel 286やIntel 386にも貸与し、これらはすべて最終的にx86ファミリーとして知られるようになった。(別の参考資料として、 IntelデバイスのPCIベンダーIDは8086 hである。)
詳細

バスと運行
すべての内部レジスタ、および内部および外部データ バスは 16 ビット幅であり、これが 8086 の「16 ビット マイクロプロセッサ」としてのアイデンティティを確固たるものにしました。20 ビットの外部アドレス バスは、1 MiB の物理アドレス空間 (2 20 = 1,048,576 x 1バイト) を提供します。このアドレス空間は、内部メモリの「セグメント化」によってアドレス指定されます。データ バスは、すべての制御ラインを標準の 40 ピンデュアル インライン パッケージに収めるために、アドレス バスと多重化されています。これは 16 ビットの I/O アドレス バスを提供し、64 KBの独立した I/O 空間をサポートします。最大線形アドレス空間は 64 KB に制限されています。これは、内部アドレス/インデックス レジスタが 16 ビット幅しかないためです。64 KB のメモリ境界を超えてプログラミングするには、セグメント レジスタを調整する必要があります (以下を参照)。この問題は、80386アーキテクチャでより広い (32 ビット) レジスタが導入されるまで存在していました ( 80286のメモリ管理ハードウェアは、レジスタがまだ 16 ビット幅しかないため、この点では役に立ちませんでした)。
8086のハードウェアモード
すべての外部操作に不可欠な信号を伝送する制御ピンの一部は、デバイスが最小モードと最大モードのどちらで動作しているかによって、複数の機能を持ちます。前者のモードは小規模なシングルプロセッサ システム用であり、後者は複数のプロセッサを使用する中規模または大規模システム用です (一種のマルチプロセッサ モード)。8087 または 8089 コプロセッサを使用する場合は、最大モードが必要です。ピン 33 (MN/ MX ) の電圧によってモードが決まります。ピン 33 の状態を変更すると、他の特定のピンの機能が変更されます。そのほとんどは、CPU が (ローカル) バスを処理する方法に関係しています。[注 10]モードは通常、回路にハードワイヤードされているため、ソフトウェアで変更することはできません。これらのモードの動作は、Intel のデータシートとマニュアルのタイミング図で説明されています。最小モードでは、すべての制御信号は 8086 自体によって生成されます。
レジスタと命令
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
8086 には、8 つの多かれ少なかれ汎用的な 16 ビットレジスタがあります(スタック ポインタを含みますが、命令ポインタ、フラグ レジスタ、セグメント レジスタは除きます)。そのうち 4 つ (AX、BX、CX、DX) は、8 ビット レジスタ ペアとしてもアクセスできます (図を参照)。他の 4 つ (SI、DI、BP、SP) は、16 ビットのみです。
8 ビット プロセッサにヒントを得たコンパクトなエンコーディングにより、ほとんどの命令は 1 アドレスまたは 2 アドレス操作であり、結果はオペランドの 1 つに格納されます。最大で 1 つのオペランドがメモリ内に存在することができますが、このメモリ オペランドは宛先 にもなり、もう 1 つのオペランドである ソースはレジスタまたは即値 のいずれかになります。単一のメモリ位置をソースと宛先の両方として使用することもよくあり、これが他の要因とともに、当時のほとんどの 8 ビット マシンに匹敵する (多くの場合、それよりも優れている) コード 密度の実現にさらに貢献しています。
ほとんどのレジスタの汎用性の度合いは、8080 や 8085 よりもはるかに高くなっています。ただし、8086 レジスタは、ほとんどの同時代のミニコンピュータよりも特殊化されており、一部の命令によって暗黙的にも使用されます。アセンブリ プログラマにとっては完全に理にかなっていますが、これにより、PDP-11、VAX、68000、32016などの当時のより直交的な 16 ビットおよび 32 ビット プロセッサと比較すると、コンパイラのレジスタ割り当てがより複雑になります。一方、6502、6800、6809、8085、MCS-48、8051 、およびその他の同時代のアキュムレータ ベースのマシンなどのかなりミニマルでありながら広く普及している 8 ビット マイクロプロセッサよりも規則的であるため、8086 アーキテクチャ用の効率的なコード ジェネレーターを構築するのは大幅に簡単です。
もう一つの要因は、8086 では Pascal やPL/Mなどのスタックベースの高水準プログラミング言語をより適切にサポートするために、いくつかの新しい命令 (8080 および 8085 には存在しない) も導入されたことです。より有用な命令には、 "Pascal呼び出し規約" を直接サポートする、およびret size があります。( や などの他のいくつかの命令は、その後の 80186、80286、および 80386 プロセッサで追加されました。)
push mem-op push immedenter
下位アドレスに向かって拡大する64 KB (1 セグメント)スタックがハードウェアでサポートされています。16 ビット ワードがスタックにプッシュされ、スタックの最上部は SS:SP によってポイントされます。 ハードウェアとソフトウェアの両方から呼び出すことができる割り込みは 256 個あります。割り込みは、スタックを使用して戻りアドレスを保存することでカスケードできます。
8086 には 64 K の 8 ビット (または 32 K の 16 ビット ワード) I/O ポートスペースがあります。
旗
8086 には 16 ビットのフラグ レジスタがあります。これらの条件コード フラグのうち 9 つはアクティブで、プロセッサの現在の状態を示します。キャリー フラグ(CF)、パリティ フラグ(PF)、補助キャリー フラグ(AF)、ゼロ フラグ(ZF)、符号フラグ(SF)、トラップ フラグ(TF)、割り込みフラグ(IF)、方向フラグ(DF)、オーバーフロー フラグ(OF) です。ステータス ワードとも呼ばれるフラグ レジスタのレイアウトは次のとおりです。[9]
セグメンテーション
また、4 つの 16 ビットセグメントレジスタ (図を参照)があり、これにより 8086 CPU は1メガバイトのメモリに通常とは異なる方法でアクセスできます。アドレス空間がレジスタ サイズを超えるほとんどのプロセッサのようにセグメント レジスタをアドレス レジスタと連結するのではなく、8086 は 16 ビット セグメントを 4 ビットだけ左にシフトしてから 16 ビット オフセット (16 × セグメント + オフセット) に追加し、32 ビットのセグメント:オフセット ペアから 20 ビットの外部 (または有効または物理) アドレスを生成します。その結果、各外部アドレスは 2 12 = 4096 の異なるセグメント:オフセット ペアで参照できます。
多くのプログラマーによって複雑で扱いにくいと考えられていますが、この方式には利点もあります。小さなプログラム (64 KB 未満) は、独自のセグメント内の固定オフセット (0000 など) からロードできるため、再配置の必要がなくなり、最大 15 バイトのアライメントの無駄がなくなります。
8086 ファミリのコンパイラは、一般的にnearとfar の2 種類のポインタをサポートしています。near ポインタは、プログラムのコードまたはデータ セグメントに暗黙的に関連付けられた 16 ビットのオフセットであるため、1 つのセグメントに収まるほど小さいプログラムの部分内でのみ使用できます。far ポインタは、20 ビットの外部アドレスに解決される 32 ビットのセグメント:オフセットのペアです。一部のコンパイラは、 hugeポインタもサポートしています。huge ポインタは far ポインタに似ていますが、huge ポインタのポインタ演算では線形 20 ビット ポインタとして扱われるのに対し、far ポインタのポインタ演算では、アドレスのセグメント部分に触れることなく、16 ビット オフセット内でラップアラウンド されます。
多数のポインタ、データ構造、および関数でnearとfar を指定する必要がないように、コンパイラはデフォルトのポインタ サイズを指定する「メモリ モデル」もサポートしています。極小(最大 64K)、小(最大 128K)、コンパクト(データ > 64K)、中(コード > 64K)、大(コード、データ > 64K)、巨大(個々の配列 > 64K) の各モデルは、コードとデータの near、far、および huge ポインタの実用的な組み合わせをカバーします。極小モデルは、ほとんどの 8 ビット ベースのプロセッサと同様に、コードとデータが 1 つのセグメントで共有されることを意味し、たとえば.comファイルの作成に使用できます。プリコンパイルされたライブラリは、異なるメモリ モデル用にコンパイルされた複数のバージョンで提供されることがよくあります。
Morse らによると、[10]設計者は実際に 16 MB の物理アドレス空間を作成するために 8 ビット シフト (4 ビットではなく) の使用を検討しました。しかし、これによりセグメントが 256 バイト境界から開始されることになり、1976 年頃のマイクロプロセッサでは 1 MB は大きすぎると考えられていたため、このアイデアは却下されました。また、低コストの 40 ピン パッケージでは、追加の 4 つのアドレス バス ピンに十分なピンがありませんでした。
原則として、アプリケーションがオペレーティング システムからセグメントを取得し、異なるセグメント:オフセット ペアの等価性について想定しない限り、x86 シリーズのアドレス空間は、シフト値を増やすことによって、後続のプロセッサで拡張できます。 [注 11]実際には、「巨大な」ポインタや同様のメカニズムの使用が広まり、80386 の 32 ビット オフセット レジスタで可能になったフラットな 32 ビット アドレス指定により、制限されたアドレス指定範囲が最終的により一般的な方法で拡張されました。
命令ストリームはメモリからワードとしてフェッチされ、必要に応じてプロセッサによってバイトレベルに内部的にアドレス指定されます。命令ストリームキューイングメカニズムにより、デコードと実行を待つ間、最大 6 バイトの命令ストリームをキューに入れることができます。キューは先入れ先出し (FIFO) バッファとして機能し、実行ユニット (EU) は必要に応じてそこから命令バイトを抽出します。キューに少なくとも 2 バイト分のスペースがある場合は、BIU はワードフェッチメモリサイクルを試みます。キューが空の場合 (たとえば、分岐命令の後)、キューの最初のバイトがすぐに EU で使用できるようになります。[11]
古いソフトウェアの移植
小さなプログラムでは、セグメント化を無視して、単純な 16 ビット アドレス指定のみを使用できます。これにより、8 ビットソフトウェアを 8086 に簡単に移植できます。ほとんどのDOS実装の作成者は、 CP/Mに非常によく似たアプリケーション プログラミング インターフェイスを提供し、CP/M と同一のシンプルな.com実行可能ファイル形式を含めることで、これを利用しました。これは、8086 と MS-DOS が新しいときには重要でした。既存の多くの CP/M (およびその他の) アプリケーションをすぐに利用できるようになり、新しいプラットフォームの受け入れが大幅に容易になったためです。
サンプルコード
次の 8086アセンブリ_strtolowerソース コードは、ヌルで終了するASCIIZ文字列をある場所から別の場所にコピーし、すべてのアルファベット文字を小文字に変換するサブルーチンです。文字列は一度に 1 バイト (8 ビット文字) ずつコピーされます。
サンプル コードでは、BP (ベース ポインター) レジスタを使用して、サブルーチンの実行に必要なすべてのパラメーターとローカル変数を含むスタック上の領域である呼び出しフレームを確立します。この種類の呼び出し規則は、再入可能コードと再帰コードをサポートしており、1950 年代後半から Algol のような言語で使用されてきました。フラット メモリ モデルが想定されており、具体的には、DS セグメントと ES セグメントが同じメモリ領域をアドレス指定します。
パフォーマンス

このチップの他の設計上の選択によって部分的に影を潜めているものの、多重化されたアドレス バスとデータ バスによってパフォーマンスが若干制限されています。16 ビットまたは 8 ビットの量の転送は 4 クロックのメモリ アクセス サイクルで行われます。これは、多くの同時代の 8 ビット ベースの CPU と比較すると、16 ビットでは高速ですが、8 ビットでは低速です。命令は 1 バイトから 6 バイトまで変化するため、フェッチと実行は同時に行われ、別々のユニットに分離されます (これは今日の x86 プロセッサでも同様です)。バス インターフェイス ユニットは、 6 バイトのプリフェッチ キュー (疎結合パイプラインの一種) を介して命令ストリームを実行ユニットに送り、レジスタと即値の操作を高速化しますが、メモリ操作は低速になります (4 年後、このパフォーマンスの問題は80186と80286で修正されました)。しかし、フル幅ALU を備えた完全な (部分的ではなく) 16 ビット アーキテクチャにより、16 ビット演算命令を 1 つの ALU サイクルで実行できるようになり (8080 や 8085 では内部キャリーを介して 2 サイクル必要だった)、命令の速度が大幅に向上しました。操作とオペランドタイプおよびアドレス指定モードの直交化、およびその他の機能強化と組み合わせることで、古いチップの方が高速な場合があるにもかかわらず (以下を参照)、8080 や 8085 に比べてパフォーマンスがかなり向上しました。
- EA = 有効アドレスを計算する時間(5 ~ 12 サイクル)。
- タイミングは、プリフェッチの状態、命令のアライメント、およびその他の要因に応じて、最良のケースとなります。
これらの表からわかるように、レジスタと即値の操作は高速 (2 ~ 4 サイクル) ですが、メモリ オペランド命令とジャンプは非常に低速です。ジャンプには単純な8080や8085よりも多くのサイクルが必要で、8088 (IBM PC で使用) ではバスが狭いことがさらに障害になっています。メモリ関連の命令のほとんどが低速だった理由は、次の 3 つです。
- 疎結合されたフェッチおよび実行ユニットは命令プリフェッチには効率的ですが、ジャンプやランダム データ アクセスには効率的ではありません (特別な対策なし)。
- 専用のアドレス計算加算器は提供されておらず、マイクロコード ルーチンはこれにメイン ALU を使用する必要がありました (ただし、専用のセグメント+オフセット加算器はありました)。
- アドレスバスとデータバスは多重化されており、当時の典型的な 8 ビットプロセッサよりもバスサイクルがわずかに長く (33 ~ 50%) なっています。[疑わしい–議論する]
しかし、Intel の次世代 8086 ファミリ CPU では、メモリ アクセス パフォーマンスが大幅に向上しました。80186と80286 はどちらも専用のアドレス計算ハードウェアを備えており、多くのサイクルを節約できます。また、 80286には、個別の (多重化されていない) アドレス バスとデータ バスもあります。
浮動小数点
8086/8088 は、ハードウェア/マイクロコードベースの浮動小数点演算性能を追加するために、数学コプロセッサに接続できます。Intel 8087 は、80 ビットの数値を処理する 8086 および 8088 の標準数学コプロセッサでした。Cyrix (8087 互換) やWeitek ( 8087非互換) などのメーカーは、最終的に 8087 と競合する高性能浮動小数点コプロセッサを開発しました。
チップバージョン
クロック周波数は当初5MHzに制限されていましたが[注 12] 、 HMOSの最終バージョンでは10MHzに指定されました。HMOS-IIIおよびCMOSバージョンは組み込みシステム向けに長期間(少なくとも1990年代まで)製造されていましたが、その後継である80186/80188 (オンチップ周辺機器を含む)は組み込み用途ではより人気がありました。
8086 の CMOS バージョンである 80C86 は、GridPad、Toshiba T1200、HP 110、そして最終的には 1998 ~ 1999 年のLunar Prospectorなど、多くのポータブル コンピュータや組み込みシステムに使用されました。
パッケージングに関しては、Intel 8086 はセラミックとプラスチックの DIP パッケージの両方で提供されていました。
-
セラミックD8086の変種
-
プラスチック製のP8086の変種
Intel 8086 のリスト
- ^ 数量は100個です。
- ^ 価格は 99.00 米ドルから 21% 値下げされましたが、数量の値に関する情報は記載されていません。
- ^ 1985年第4四半期のサンプリング
派生品とクローン
互換バージョン、そして多くの場合機能強化バージョンは、富士通、[23] Harris / Intersil、OKI、シーメンス、テキサス・インスツルメンツ、NEC、三菱、AMDによって製造された。例えば、NEC V20とNEC V30のペアは、NECがそれぞれIntelのオリジナルのクローンであるμPD8088DとμPD8086Dを製造していたにもかかわらず、8088と8086とハードウェア互換性があったが、80186の命令セットと80186の速度強化の一部(すべてではない)を組み込んでおり、製造業者が設計を変更することなく、命令セットと処理速度の両方をアップグレードするドロップイン機能を提供した。このような比較的単純で低消費電力のCMOS 8086互換プロセッサは、今でも組み込みシステムで使用されている。
ソビエト連邦の電子産業は、産業スパイとリバースエンジニアリングの両方を通じて 8086 を複製することができた[要出典]。その結果生まれたチップK1810VM86は、8086 とバイナリおよびピン互換性があった。
i8086 と i8088 は、それぞれソ連製の PC 互換デスクトップ EC1831 と EC1832 のコアでした。(EC1831 は IZOT 1036C の EC 識別番号、EC1832 は IZOT 1037C の EC 識別番号で、ブルガリアで開発および製造されました。EC は Единая Система の略です。) ただし、EC1831 コンピュータ (IZOT 1036C) は、IBM PC プロトタイプとはハードウェア面で大きな違いがありました。EC1831 は、動的バス サイズ調整機能を備えた最初の PC 互換コンピュータでした (US Patent No 4,831,514)。その後、EC1831 の原理の一部は PS/2 (米国特許番号 5,548,786) やその他のマシン (英国特許出願、公開番号 GB-A-2211325、1989 年 6 月 28 日公開) に採用されました。
サポートチップ
- Intel 8237 : ダイレクト メモリ アクセス (DMA) コントローラ
- Intel 8251 : 19.2 kbit/s のユニバーサル同期/非同期受信機/送信機
- Intel 8253 : プログラム可能なインターバル タイマー、3x 16 ビット、最大 10 MHz
- Intel 8255 : プログラム可能な周辺機器インターフェイス、プリンター接続などに使用される 3 つの 8 ビット I/O ピン。
- Intel 8259 : プログラマブル割り込みコントローラ
- Intel 8279 : キーボード/ディスプレイ コントローラ。7セグメントのようなキーボード マトリックスとディスプレイ マトリックスをスキャンします。
- Intel 8282 / 8283 : 8 ビット ラッチ
- Intel 8284 : クロックジェネレータ
- Intel 8286/8287: 双方向8ビットドライバ。1980年にはIntel I8286/I8287(産業グレード)バージョンが100個単位で16.25ドルで販売された。[14]
- Intel 8288 : バス コントローラ
- Intel 8289 : バス アービター
- NEC μPD765またはIntel 8272A:フロッピーコントローラ[24]
8086を使用したマイクロコンピュータ
- インテルマルチバス互換のシングルボードコンピュータISBC 86/12は1978年に発表されました。[25]
- Xerox NoteTaker は1978 年に設計された最も初期のポータブル コンピュータの 1 つであり、3 つの 8086 チップ (CPU、グラフィック プロセッサ、および I/O プロセッサ) を使用していましたが、商業生産されることはありませんでした。
- Seattle Computer Products は、1979 年 11 月にS-100 バスベースの 8086 システム (SCP200B)を出荷しました。
- 1980 年に導入されたノルウェーのMycron 2000。
- 最も影響力のあるマイクロコンピュータの 1 つであるIBM PCは、8 ビットデータ バスを備えた 8086 のバージョンであるIntel 8088 を使用していました(前述のとおり)。
- 最初のCompaq Deskpro は7.16 MHz で動作する 8086 を使用しましたが、4.77 MHz のIBM PC XT用に設計されたアドイン カードと互換性があり、ソフトウェアのタイミングの問題を回避するために CPU を低速に切り替えることができました (これにより、8088 の低速アクセスをシミュレートするためにメモリ バス バッファーも切り替えられました)。
- 8MHz の 8086-2 は、IBM PC 互換のデスクトップ マイクロコンピュータであるAT&T 6300 PC ( Olivetti社製、世界的には複数のブランドとモデル番号で知られている) で使用されていました。M24 / PC 6300 には IBM PC/XT 互換の 8 ビット拡張スロットがありますが、その一部には 8086 CPU の完全な 16 ビット データ バスを提供する独自の拡張機能があり ( IBM PC ATの 16 ビット スロットと概念は似ていますが、設計の詳細が異なり、物理的に互換性がありません)、オンボード ビデオ システムを含むすべてのシステム周辺機器も 16 ビット データ転送を利用できます。後の Olivetti M24SP には、最大 10MHz で動作する 8086-2 が搭載されていました。
- IBM PS/2モデル25および30 は、 8 MHz 8086 を搭載して構築されました。
- Amstrad PC1512、PC1640、PC2086、PC3086、PC5086 はすべて 8 MHz の 8086 CPU を使用していました。
- NEC PC-9801。
- Tandy 1000 SL シリーズおよび RL マシンは、9.47 MHz の 8086 CPU を使用しました。
- IBM Displaywriterワードプロセッサ[26]とWang Laboratoriesが製造したWang Professional Computerも8086を使用していました。
- NASAは、2011年にスペースシャトル計画が終了するまで、スペースシャトルディスカバリーの地上メンテナンス用の機器にオリジナルの8086 CPUを使用していました。この決定は、アップグレードや不完全なクローンへの切り替えによって生じる可能性のあるソフトウェアの回帰を防ぐために行われました。[27]
- KAMANプロセスおよびエリア放射線モニター[28]
- Tektronix 4170 は CP/M-86 を実行し、8086 4170ローカル グラフィックス プロセッシング ユニット 取扱説明書(PDF)を使用しました。
参照
注記
- ^ TTL バッファ、ラッチ、マルチプレクサの数が少なくなりました (ただし、TTL ロジックの量は 大幅に削減されませんでした)。また、IBM PC 設計で使用されていた 8254 CTC、8255 PIO、8259 PIC の代わりに、安価な 8080 ファミリ IC を使用できるようになりました。さらに、PCB レイアウトが簡素化され、ボードが安価になり、必要な DRAM チップの数も減りました (1 ビット幅または 4 ビット幅)。
- ^ エンハンスメントロードPMOSロジックを使用(14 Vが必要、V CC を+5 V、V DDを -9 VにすることでTTL互換性を実現)。
- ^ デプレッションロード nMOS ロジックで可能になりました (8085 は後に 8086 と同様に HMOS プロセスを使用して製造されました)。
- ^ モース氏によれば、命令セットとアーキテクチャの Rev.0 は約 3 か月で準備ができたとのことです。
- ^ ルビリス、ライトボード、定規、電動消しゴム、デジタイザーを使用(8086 設計チームのメンバーであるジェニー・ヘルナンデスが、Intel の 25 周年記念 Web ページで述べた声明による)。
- ^ 8086は、MC68000などの多くの競合他社の設計よりもマイクロコードの使用が少ない。
- ^ MOS テクノロジによる高速スタティック RAM (バイポーラ RAM と同等の速度) は、この時期の Intel にとって重要な製品でした。
- ^ CHMOS は、 HMOSと非常によく似た処理手順を使用して製造される CMOS 回路に対する Intel の名称です。
- ^ デザインチームの他のメンバーはピーター・A・ストールとジェニー・ヘルナンデスでした。
- ^ IBM PC および PC/XT は、最大モードで動作する Intel 8088 を使用します。これにより、CPU は、PC または PC/XT メインボードの数値演算コプロセッサ ソケットにインストールされたオプションの 8087 コプロセッサと連携して動作できます。(PC および PC/XT では、DMA コントローラをサポートするなど、他の理由で最大モードが必要になる場合があります。)
- ^ 80186 クローンの中にはシフト値を変更したものもありましたが、デスクトップ コンピュータでは一般的に使用されることはありませんでした。
- ^ (IBM PC は 4.77 MHz、標準 NTSCカラーバースト周波数の 4/3 を使用)
参考文献
- ^ 「CPU のライフサイクル」www.cpushack.com。
- ^ Lewnes, Ann、「Intel386 アーキテクチャは今後も存続する」、Intel Corporation、Microcomputer Solutions、1989 年 7 月/8 月、2 ページ
- ^ 「マイクロプロセッサの殿堂」。Intel。2007 年 7 月 6 日時点のオリジナルよりアーカイブ。2007 年 8 月 11 日閲覧。
- ^ iAPX 286 プログラマーズ・リファレンス(PDF) . Intel. 1983. p. 1-1.
- ^ ab 「8086 誕生日おめでとう: 限定版第 8 世代 Intel Core i7-8086K が最高のゲーム体験を提供」。Intelニュースルーム。Intel。
- ^ 「8080 ファミリー」。CPU World。
- ^ Scanlon, Leo J. (1988). 8086/8088/80286 アセンブリ言語. Brady Books. p. 12. ISBN 978-0-13-246919-7
[…]
8086 は
アセンブリ言語レベルで
8080
とソフトウェア互換性があります
。 […] - ^ Geiger, Randall L.; Allen, Phillip E.; Strader, Noel R. (1990). 「ランダム ロジック vs. 構造化ロジック形式」。アナログおよびデジタル回路の VLSI 設計テクニック。McGraw-Hill。p. 779。ISBN 0-07-023253-9。— CPU制御ロジックを説明する「ランダム」の使用例
- ^ Intel Corporation (1983). IAPX 86、88、186、および 188 ユーザーズマニュアル: プログラマーズリファレンス. Intel. pp. 3– 5. ISBN 978-0835930352. OCLC 11091251.
- ^ Morse, Stephen P.; Ravenel, Bruce W; Mazor, Stanley; Pohlman, William B. (1980 年 10 月)。「Intel マイクロプロセッサ: 8008 から 8086」。IEEE Computer。13 ( 10 ): 42– 60。doi : 10.1109 /MC.1980.1653375。S2CID 206445851 。
- ^ 「8086 16ビットHMOSプロセッサデータシート」(PDF) 。Intel。 2021年11月26日時点のオリジナル(PDF)からアーカイブ。 2021年11月26日閲覧。
- ^ Microsoft Macro Assembler 5.0 リファレンス マニュアル。Microsoft Corporation。1987 年。
このマニュアルのタイミングとエンコーディングは、Intel の許可を得て使用しており、次の出版物から引用されています: Intel Corporation。iAPX 86、88、186、および 188 ユーザーズ マニュアル、プログラマーズ リファレンス、カリフォルニア州サンタクララ、1986 年。
(iAPX 286、80386、80387 についても同様です。) - ^ abc 8086 ファミリー ユーザーズ マニュアル。Intel Corporation。1979 年 10 月。p. B-1。OCLC 65699372 。
- ^ abcde Intel Corporation (1980 年 5 月~6 月)。「8086 は産業環境で使用可能」。Intel Preview (特集: 16 ビット ソリューション): 29。OCLC 803251993 。
- ^ 「Intel® マイクロプロセッサー クイック リファレンス ガイド - 年」www.intel.com。
- ^ Intel Corporation (1980 年 5 月~6 月)。「8086 ファミリ: 概念と現実」。Intel Preview (特別号: 16 ビット ソリューション): 19。ISSN 1041-8547。OCLC 10331599 。
- ^ ab Intel Corporation (1980 年 1 月~2 月)。「新製品: より高速な 8086 によりパフォーマンスが 60% 向上」Intel Preview : 22。
- ^ Intel Corporation (1980 年 5 月~6 月)。「新しい 8086 ファミリ製品によりプロセッサのパフォーマンスが 50% 向上」。Intel Preview (特集: 16 ビット ソリューション): 17。
- ^ Intel Corporation (1979 年 5 月~6 月)。「マイクロコンピュータ コンポーネント: 新たな価格引き下げと生産の改善により、人気の 8086 マイクロプロセッサがさらに魅力的に」。Intel Preview : 11。
- ^ Intel Corporation (1981年8月). Intel iAPX86, 88 ユーザーズマニュアル. Intel Corporation. p. B-25. ISBN 0835930165. OCLC 8459750.
- ^ Intel Corporation、「NewsBit: Intel が数種の製品の CMOS バージョンで Oki のライセンスを取得」、Solutions、1984 年 7 月/8 月、1 ページ。
- ^ アシュボーン、ジム、「高度なパッケージング:少しの努力で大きな成果が得られる」、インテル コーポレーション、ソリューション、1986 年 1 月/2 月、2 ページ
- ^ Intel Corporation、「NewsBits: Second Source News」、ソリューション、1985 年 1 月/2 月、1 ページ
- ^ 「フロッピー コントローラの進化 | OS/2 Museum」 2011 年 5 月 26 日。 2016 年 5 月 12 日閲覧。
オリジナルの IBM PC (1981) および PC/XT (1983) では、FDC は物理的に別のディスケット アダプタ カード上にありました。FDC 自体は NEC μPD765A または Intel 8272A などの互換部品でした。
- ^ 「Intel が 16 ビット シングル ボードを追加」。Computerworld誌、第 XII 巻、第 50 号、1978 年 12 月 11 日、p. 86。ISSN 0010-4841 。
- ^ Zachmann, Mark (1982 年 8 月 23 日)。「IBM パーソナル コンピュータの欠陥が批評家を困惑させる」。InfoWorld。第 4 巻、第 33 号 。57 ~ 58ページ。ISSN 0199-6649。IBM
ディスプレイライターは、8086 を使用する他の産業用マイクロ プロセッサよりも明らかに高価です。
- ^ 「古い部品を求めて、NASA は大胆にも eBay に参入」。ニューヨーク タイムズ。2002 年 5 月 12 日。
- ^ カマン技術マニュアル
外部リンク
- Intel データシート
- CPUworld.com の 8086 CPU とそのクローンのリスト
- 8086 ピン配置
- 最大モードインターフェース 2011年7月21日時点のオリジナルよりアーカイブ。2022年7月10日閲覧。
- 8086 ユーザーズマニュアル 1979 年 10 月 INTEL Corporation ( PDFドキュメント)
- emu8086 (バージョン 4.08) エミュレータを使用した 8086 プログラム コード
- Jenner, Andrew (2020 年 9 月)。「8086 マイクロコードの逆アセンブル」。Reenigne ブログ。
- Shirriff, Ken (2020 年 6 月)。「8086 プロセッサのダイの概要」。
- — (2020 年 6 月)。「ダイ シュリンク: Intel が 8086 プロセッサを小型化した方法」
- — (2020 年 7 月)。「Intel 8086 プロセッサのレジスタ: チップからトランジスタまで」。
- — (2020 年 8 月)。「Intel 8086 内部の加算器をリバース エンジニアリングする」。
- — (2020 年 8 月)。「ダイ写真から 8086 の算術/論理ユニットをリバース エンジニアリングする」。
- — (2022 年 11 月)。「8086 マイクロプロセッサ チップ内の珍しいブートストラップ ドライバー」。
- — (2022 年 11 月)。「8086 マイクロプロセッサのダイのシリコンでバグ修正が明らかに」。
- — (2022 年 12 月)。「8086 プロセッサのマイクロコード エンジンの仕組み」。
- — (2023 年 1 月)。「8086 プロセッサの命令プリフェッチ回路の内部」。
- — (2023 年 1 月)。「ダイ分析による 8086 プロセッサのマイクロコード パイプライン」。
- — (2023 年 1 月)。「8086 プロセッサのトランジスタを数えるのは、想像以上に難しい」。
- — (2023 年 1 月)。「8086 プロセッサの条件付きジャンプ回路のリバース エンジニアリング」。
- — (2023 年 1 月)。「Intel 8086 プロセッサの HALT 回路のリバース エンジニアリング」。
- — (2023 年 1 月)。「x86 の 10 進数加算後調整 (DAA) 命令を理解する」。
- — (2023 年 2 月)。「シリコン リバース エンジニアリング: Intel 8086 プロセッサのフラグ回路」。
- — (2023 年 2 月)。「Intel 8086 プロセッサの割り込み回路のリバース エンジニアリング」。
- — (2023 年 2 月)。「Intel 8086 プロセッサの ModR/M アドレス指定マイクロコードのリバース エンジニアリング」。
- — (2023 年 3 月)。「8086 プロセッサが命令の長さを決定する方法」。
- — (2023 年 3 月)。「Intel 8086 プロセッサの乗算アルゴリズムのリバース エンジニアリング」。
- — (2023 年 3 月)。「8086 プロセッサのマイクロコードのレジスタ コードのリバース エンジニアリング」。
- — (2023 年 4 月)。「文字列操作を実行する 8086 プロセッサのマイクロコードとハードウェア」。
- — (2023 年 4 月)。「Intel 8086 プロセッサの除算マイクロコードのリバース エンジニアリング」。
- — (2023 年 5 月)。「グループ デコード ROM: 8086 プロセッサの命令デコードの最初のステップ」。
- — (2023 年 7 月)。「8086 プロセッサのアドレスおよびデータ ピン回路のリバース エンジニアリング」。
- — (2023 年 7 月)。「文書化されていない 8086 命令をマイクロコードで説明する」。
- — (2023 年 8 月)。「8086 命令セットのルーツを Datapoint 2200 ミニコンピュータまで追跡」。
- — (2023 年 8 月)。「8086 プロセッサのバス ホールド回路の詳細」。
- — (2023 年 10 月)。「Intel 8086 プロセッサにフリップフロップがどのように実装されているか」。
- — (2024 年 3 月)。「Intel 8088 プロセッサの命令プリフェッチ回路: 内部を覗いてみよう」。
- — (2024 年 4 月)。「メモリとの対話: Intel 8088 プロセッサのバス インターフェイス ステート マシンの内部」。
