灰色のセラミックヒートスプレッダーを備えたIntel A80286-8プロセッサ | |
| 一般情報 | |
|---|---|
| 発売 | 1982年2月 |
| 製造中止 | 1991年[ 1 ] |
| 共通メーカー | |
| パフォーマンス | |
| 最大CPUクロックレート | 4MHz~25MHz |
| FSB速度 | 4MHz~25MHz |
| データ幅 | 16ビット |
| アドレス幅 | 24ビット |
| 物理的仕様 | |
| トランジスタ | |
| コプロセッサ | インテル 80287 |
| パッケージ | |
| ソケット |
|
| アーキテクチャと分類 | |
| テクノロジーノード | 1.5 μm [ 3 ] |
| 命令セット | x86-16 ( MMU付き) |
| 歴史 | |
| 先人たち | 8086、8088(80186は同時期のもの) |
| 後継 | インテル 80386 |
| サポート状況 | |
| サポートされていません | |
インテル80286 [ 4 ] ( iAPX 286 [ 5 ]としても販売され、しばしばインテル 286と呼ばれる)は、1982年2月1日に発表された16ビットのマイクロプロセッサである。これは、独立した非多重化アドレスバスとデータバスを備えた最初の8086ベースのCPUであり、メモリ管理と広範な保護機能を備えた最初のCPUでもあった。データサイズは16ビット、アドレス幅は24ビットであり、Windowsなどの適切なオペレーティングシステムで最大16MBのメモリをアドレス指定できた。これに対し、8086は1MBであった。80286は、最初のnMOS(HMOS)の形態で約134,000個のトランジスタを使用し、現代の80186と同様に[ 6 ] 、初期のインテル 8086および8088プロセッサ用に書かれたほとんどのソフトウェアを正しく実行できる。[ 7 ]
80286は1984年に発売されたIBM PC/ATに採用され、その後1990年代初頭までほとんどのPC/AT互換機で広く使用されました。1987年、インテルは500万個目の80286マイクロプロセッサを出荷しました。[ 8 ]

インテルの最初の80286チップは、最大クロックレートが5、6、または8MHzに設定され 、その後12.5MHzにアップグレードされました。AMDとHarrisは後に16MHz、20MHz、25MHzの製品を製造しました。インテル、インターシル、富士通は、インテル独自のデプレッションロードnMOS実装の完全スタティックCMOSバージョンも設計し、主にバッテリー駆動のデバイスを対象としました。インテルの80286のCMOSバージョンは80C286でした。
80286は平均して、 「典型的な」プログラムでは1クロックあたり約0.21命令の速度を持つと言われていましたが[ 9 ] 、最適化されたコードやタイトなループでは、多くの命令が2クロックサイクルで実行できるため、大幅に高速化される可能性があります。6MHz、10MHz、12MHzモデルは、それぞれ0.9MIPS、1.5MIPS、2.66MIPSで動作したと報告されています[ 10 ] 。
80286の後期Eステッピングレベルは、初期のBステップおよびCステップCPU(ATおよびATクローンで一般的)でプログラマやオペレーティングシステム開発者に問題を引き起こしたいくつかの重大なエラッタから解放されました。このE-2ステッピング部品は1986年後半には利用可能になっていた可能性があります。[ 11 ]
インテルは1985年頃にこのマイクロプロセッサを富士通株式会社に二次供給した。[ 12 ]
| 型番 | 頻度 | テクノロジー | プロセス | パッケージ | 発売日 | 価格USD [リスト 1 ] |
|---|---|---|---|---|---|---|
| 80286-10 [ 13 ] | 10MHz | HMOS-III | 1.5μm | 1985年7月/8月 | 155ドル | |
| 80286-12 [ 13 ] | 12.5MHz | HMOS-III | 1.5μm | 1985年7月/8月 | 260ドル | |
| MG80286 [ 14 ] | 1985年9月/10月 | 784ドル | ||||
| 80286 [ 15 ] | 68ピンPGA [リスト2 ] | 1986年1月/2月 | ||||
| 80286 [ 15 ] | 68ピンPLCC [リスト3 ] | 1986年1月/2月 |

インテルは、286がパーソナルコンピュータではなく、主に産業オートメーション、トランザクション処理、および通信に使用されることを期待していました。[ 16 ]
このCPUは、通信(自動PBXなど)やリアルタイムプロセス制御などのマルチタスクアプリケーションを備えたマルチユーザーシステム向けに設計された。134,000個のトランジスタを搭載し、アドレスユニット、バスユニット、命令ユニット、実行ユニットの4つの独立したユニットで構成され、 8086と同様に疎結合(バッファ付き)パイプラインに構成されている。68ピンパッケージで製造され、PLCC(プラスチックリードチップキャリア)、LCC(リードレスチップキャリア)、PGA(ピングリッドアレイ)パッケージなどがある。[ 17 ]
80286は、8086(または8088)と比較して、多くのプログラムでクロックサイクルあたり100%以上のパフォーマンス向上(つまり、同じクロック速度で2倍のパフォーマンス向上)を実現しました。これは大きな向上であり、7年後のi486(1989年)や初代Pentium(1993年)の導入時に達成された速度向上に十分匹敵します。これは、アドレスバスとデータバスが多重化されていないことにも一部起因しますが、主にアドレス計算(ベース+インデックスなど)のコストが低かったことに起因しています。アドレス計算は80286では専用ユニットによって実行されますが、旧型の8086では、効果的なアドレス計算を汎用ALUを用いて行う必要があり、多くの場合、数クロックサイクルの余分な消費を伴っていました。また、80286は、命令のプリフェッチ、バッファリング、ジャンプの実行、そしてMUL / DIVなどの複雑なマイクロコード数値演算において、前身の80286よりも効率的でした。[ 18 ]
80286には、8086のすべての命令に加えて、80186の新しい命令(ENTER、LEAVE、BOUND、INS、OUTS、PUSHA、POPA、PUSHイミディエイト、IMULイミディエイト、イミディエイトシフトおよびローテート)がすべて含まれていました。また、80286には、プロテクトモード用の新しい命令(ARPL、CLTS、LAR、LGDT、LIDT、LLDT、LMSW、LSL、LTR、SGDT、SIDT、SLDT、SMSW、STR、VERR、VERW)も追加されました。プロテクトモード用の命令の中には、リアルモードでプロテクトモードの設定と切り替えに使用できるもの(または使用する必要があるもの)があり、SMSWやLMSWなど、リアルモード自体にも役立つ命令もいくつかあります。
Intel 80286は24ビットのアドレスバスを持ち、それ 以前のx86プロセッサの1MBのアドレス空間に対して16MBの物理アドレス空間を持っていた。これはセグメント化によって最大1GBの仮想メモリをサポートした最初のx86プロセッサであった。[ 19 ]しかし、メモリコストと1MBを超えるメモリを使用するソフトウェアが当初は稀であったため、80286コンピュータは生産後期まで1MBを超えるRAMを搭載して出荷されることはほとんどなかった。[ 18 ]さらに、後述するように、リアルモードから拡張メモリにアクセスするとパフォーマンスが低下する。



286は、x86 CPUファミリーの中で初めて保護仮想アドレスモード(一般に「プロテクトモード」と呼ばれる)をサポートした。さらに、オンチップメモリ管理ユニット(MMU)機能を備えた最初の市販マイクロプロセッサでもあった(同時代のモトローラ68010やNS320xxを使用したシステムは、オプションのMMUコントローラを搭載可能だった)。これにより、IBM互換機は初めて高度なマルチタスクOSを搭載できるようになり、Unixが主流だった[ 20 ]サーバー/ワークステーション市場での競争が可能になった。
80286 の保護モードでは、マルチタスク オペレーティング システムに役立ついくつかの追加命令が導入されました。
80286のもう一つの重要な機能は、不正アクセスの防止です。これは以下の方法で実現されます。
80286 (およびそのコプロセッサIntel 80287 ) では、次の異なるタイプの数値に対して算術演算を実行できます。
設計上、286はハードウェアによるリセットなしには、プロテクトモードから基本的な8086互換の実アドレスモード(「リアルモード」)に復帰できませんでした。1984年に発表されたPC/ATでは、IBMは外部回路に加え、 ROM BIOSと8042キーボードマイクロコントローラに専用コードを追加することで、ソフトウェアによるリセットを可能にしました。これにより、アクティブメモリを保持したままリアルモードへの復帰が可能になり、リセットを開始したプログラムに制御を戻すことができました。(CPUがリセットされるたびにBIOSが直接制御を取得するため、BIOSは必然的に関与します。)この方法は正しく動作しましたが、パフォーマンスに大きなペナルティをもたらしました。
理論上は、 80286 の導入で新たに提案された特定の規則に従えば、リアルモード アプリケーションを16 ビットのプロテクト モードで直接実行できます。ただし、多くの DOS プログラムがその規則に準拠しなかったため、プロテクト モードは、モード間を簡単に切り替えられるように設計され、プロテクト モード内でリアル モードのエミュレーションを提供できる32 ビットのIntel 80386が登場するまで広く使用されることはありませんでした。Intel が 286 を設計したとき、リアルモード アプリケーションをマルチタスクできるようには設計されていませんでした。リアルモードは、ブートストラップ ローダーがシステムを準備してからプロテクト モードに切り替えるための簡単な方法となることを目的としていました。本質的に、80286 はプロテクト モードでは、前世代のプロセッサと多くの類似点を持つ新しいプロセッサとして設計されましたが、80286 のリアル モードは、より高いクロック レート、より高速な命令実行 (クロック サイクルで測定)、非多重化バスなどの利点を持つ、より高度なバージョンの 80186 CPU コアのメリットを享受できる小規模システム向けに提供されましたが、24 ビット (16 MB) のメモリ空間は提供されませんでした。
保護モードをサポートするために、新しい命令が追加されました:ARPL、VERR、VERW、LAR、LSL、SMSW、SGDT、SIDT、SLDT、STR、LMSW、LGDT、LIDT、LLDT、LTR、CLTS。また、新しい例外(内部割り込み)も追加されました:無効なオペコード、コプロセッサが利用できない、二重フォルト、コプロセッサセグメントオーバーラン、スタックフォルト、セグメントオーバーラン/一般保護フォルト、その他保護モードのみで発生する例外。
80286のプロテクトモードは、発売から何年も経つまでPCアプリケーションで日常的に利用されることはなかった。その理由の一つは、PCに拡張メモリを追加するコストが高かったことと、8086 PCの大規模なユーザーベースをサポートするソフトウェアが必要だったことが挙げられる。例えば、1986年当時、このモードを利用していた唯一のプログラムは、PC DOS 3.0および3.1に付属していたRAMディスクドライバであるVDISKだった。DOSは、プロテクトモード(拡張メモリ)で利用可能な追加RAMを、BIOSコール(INT 15h、AH=87h)経由でRAMディスクとして、あるいは拡張メモリのエミュレーションとして利用することができた。[ 18 ]
難しさは、古いリアルモードDOS プログラムとプロテクトモードの非互換性にありました。大幅な変更を加えなければ、これらのプログラムをこの新しいモードでネイティブに実行することはできませんでした。プロテクトモードでは、メモリ管理と割り込み処理がリアルモードとは異なっていました。さらに、DOS プログラムは通常、自分に属さないデータやコード セグメントに直接アクセスしていましたが、これはリアルモードでは制限なくアクセスできたためです。対照的に、プロテクトモードの設計意図は、特別なアクセスが明示的に許可されない限り、プログラムが自分のセグメント以外のセグメントにアクセスできないようにすることでした。すべてのプログラムがすべてのセグメントにアクセスできるプロテクトモード環境を設定することは可能でしたが (すべてのセグメント記述子をグローバル記述子テーブル(GDT) に配置し、それらすべてに同じ特権レベルを割り当てることにより)、拡張 (24 ビット) アドレス空間を除く、プロテクトモードの利点のほぼすべてが損なわれました。 OS開発者が直面した選択は、ゼロから開発して古いプログラムの大半を実行できないOSを作るか、遅くて見苦しい(つまり、内部の技術的観点から見苦しい)DOSのバージョンを作り上げて古いプログラムの大半を実行できるようにするかのどちらかであった。プロテクトモードは、8086互換のリアルモードに比べて、その機能をサポートするだけの十分なパフォーマンス上の利点をもたらさなかった。実際、マルチタスク時のタスクスイッチを除けば、多数の特権チェックが追加されることで多くの命令の実行速度が低下するという、パフォーマンス上の不利な点があった。プロテクトモードではレジスタは依然として16ビットであり、プログラマはリアルモードと同様に64kBセグメントで構成されるメモリマップを使用する必要があった。[ 21 ]
インテルは、8086ソフトウェアの仮想マシンサポートの欠如が問題になるとは予想していなかった。80286の能力をすべて活用する新しいソフトウェアがすぐに登場すると予想していたからだ。ビル・ゲイツは80286を「脳に損傷のある」チップと呼んだ。なぜなら、仮想マシンを使って複数のMS-DOSアプリケーションをMicrosoft Windowsのようなオペレーティングシステムでマルチタスク処理することができないからだ[ 22 ] 。IBMは、もともとIBMとMicrosoftの合弁事業で あったOS/2が286上で(テキストモードで)動作することを主張したため、これがMicrosoftとIBMの分裂の原因となったとも言える。 [ 22 ]
1985年1月、デジタルリサーチ社はインテル社と共同開発したコンカレントDOS 286 1.0オペレーティングシステムをプレビューした。この製品は80286ネイティブモード(プロテクトモード)オペレーティングシステムとしてのみ機能し、ユーザーはプロテクトモードを最大限に活用して、8086エミュレーションを実行しながらマルチユーザー、マルチタスク操作を実行できる。 [ 23 ] [ 24 ] [ 25 ]これはチップのB-1プロトタイプ段階では動作したが、5月にデジタルリサーチ社は生産レベルのC-1段階でエミュレーションに問題を発見し、コンカレントDOS 286で8086ソフトウェアをプロテクトモードで実行することができなかった。コンカレントDOS 286のリリースは、インテル社がチップの新バージョンを開発するまで延期された。[ 23 ] 8月、DRCは80286のE-1ステップサンプルを徹底的にテストした後、インテルが286に関するすべてのエラッタを修正したことを認めたが、E-1ステップで動作するコンカレントDOS 286のプレリリース版には、未公開のチップ性能問題が残っていると述べた。インテルは、DRCがプロテクトモードで8086ソフトウェアをエミュレートする際に採用しようとしていたアプローチは、当初の仕様とは異なると述べた。しかし、E-2ステップでは、DRCがエミュレーションモードをより高速に実行できるように、マイクロコードに小さな変更を加えた。 [ 11 ] IBM 4680 OSと名付けられたDR Concurrent DOS 286 は、1986年にIBM Plant System 製品およびPOS端末用のIBM 4680コンピューターのベースとしてIBMによって最初に選択されました。 [ 26 ] Concurrent DOS 286 から派生したDigital Research のFlexOS 286バージョン 1.3 は 1986 年に開発され、1987 年 1 月に発表され、後に IBM によってIBM 4690 OSに採用されましたが、同じ制限が影響しました。
286のプロテクトモードを採用した他のオペレーティングシステムとしては、Microsoft Xenix(1984年頃)、[ 27 ] Coherent、[ 28 ] Minix [ 29 ]などがある。これらはMS-DOSアプリケーションやその他のリアルモードプログラムの実行を目的としていなかったため、 80286のプロテクトモードの制限による影響は少なかった。
80386を設計する際、インテルのエンジニアは80286の評判の悪さを認識しており、それに同意していました。[ 30 ]彼らは80386の保護モードを強化してより多くのメモリを扱えるようにし、保護モード内にMS-DOSとの互換性がはるかに優れたモードである独立した仮想8086モードを追加しました。[ 31 ]

これは、Intel 80286 マイクロプロセッサに接続するバス インターフェイス コンポーネントのリストです。