セラミックパッケージに収められた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 |
| サポート状況 | |
| サポート対象外 | |
Intel 80286 [ 4 ] ( iAPX 286 [ 5 ]としても販売され、 Intel 286と呼ばれることも多い) は、1982 年 2 月 1 日に発表された16 ビットマイクロプロセッサです。これは、独立した非多重化アドレス バスとデータ バスを備えた最初の 8086 ベースの CPU であり、メモリ管理と広範囲の保護機能を備えた最初の CPU でもありました。データ サイズは 16 ビット、アドレス幅は24 ビットで、Windows などの適切なオペレーティングシステムを使用すれば、8086 の 1MB と比較して最大 16MB のメモリをアドレス指定できました。80286 は、最初のnMOS ( HMOS ) 構成で約 134,000 個のトランジスタを使用しており、同時代の80186 [ 6 ]と同様に、以前のIntel 8086および8088プロセッサ用に書かれたほとんどのソフトウェアを正しく実行できます。[ 7 ]
80286は1984年に発表されたIBM PC/ATに採用され、その後1990年代初頭までほとんどのPC/AT互換コンピュータで広く使用されました。1987年、インテルは500万個目の80286マイクロプロセッサを出荷しました。[ 8 ]

Intelの最初の80286チップは、最大クロック周波数が5、6、または8MHzと規定されており、後のリリースでは12.5MHzに対応しました。AMDとHarrisは後に16MHz、20MHz、25MHzのチップを製造しました。Intel、Intersil、および富士通は、主にバッテリー駆動デバイス向けに、IntelのオリジナルのデプレッションロードnMOS実装の完全静的CMOSバージョンも設計しました。Intelの80286のCMOSバージョンは80C286でした。
平均的には、80286 は「標準的な」プログラムでクロックあたり約 0.21 命令の速度を持つと言われていましたが、 [ 9 ]最適化されたコードやタイトなループでは、多くの命令がそれぞれ2 クロック サイクルで実行できるため、大幅に高速化される可能性がありました。6 MHz、10 MHz、および 12 MHz モデルは、それぞれ 0.9 MIPS、1.5 MIPS、および 2.66 MIPS で動作することが測定されたと報告されています。[ 10 ]
80286の後のEステップレベルは、以前のBステップおよびCステップCPU(ATおよびATクローンに共通)でプログラマーやオペレーティングシステム開発者に問題を引き起こしていたいくつかの重大なエラーが解消されていた。このE-2ステップ部品は1986年後半に入手可能になった可能性がある。[ 11 ]
Intel は1985 年頃にこのマイクロプロセッサを富士通株式会社に二次供給した。[ 12 ]

Intelは、286がパーソナルコンピュータではなく、主に産業オートメーション、トランザクション処理、および電気通信で使用されると予想していた。[ 16 ]
このCPUは、通信(自動PBXなど)やリアルタイムプロセス制御などのマルチタスクアプリケーションを備えたマルチユーザーシステム向けに設計されました。トランジスタ数は134,000個で、アドレスユニット、バスユニット、命令ユニット、実行ユニットの4つの独立したユニットで構成され、 8086と同様に疎結合(バッファ付き)パイプラインに構成されていました。68ピンパッケージで製造され、PLCC(プラスチックリード付きチップキャリア)、LCC(リードレスチップキャリア)、PGA(ピングリッドアレイ)パッケージがありました。[ 17 ]
80286 の 8086 (または 8088) に対するパフォーマンスの向上は、多くのプログラムでクロック サイクルあたり 100% を超える可能性がありました (つまり、同じクロック速度でパフォーマンスが 2 倍になりました)。これは大きな向上であり、7 年後にi486 (1989 年) や初代Pentium (1993 年) が導入されたときの速度向上に完全に匹敵します。これは部分的には非多重化アドレス バスとデータ バスによるものですが、主にアドレス計算 ( base+indexなど) のコストが低くなったことによるものです。80286 では専用ユニットによって実行されましたが、古い 8086 では汎用ALUを使用して実質的なアドレス計算を行う必要があり、多くの場合、余分なクロック サイクルを消費していました。また、80286 は、命令のプリフェッチ、バッファリング、ジャンプの実行、およびMUL / DIVなどの複雑なマイクロコード数値演算において、前世代よりも効率的でした。[ 18 ]
The 80286 included, in addition to all of the 8086 instructions, all of the new instructions of the 80186: ENTER, LEAVE, BOUND, INS, OUTS, PUSHA, POPA, PUSH immediate, IMUL immediate, and immediate shifts and rotates. The 80286 also added new instructions for protected mode: ARPL, CLTS, LAR, LGDT, LIDT, LLDT, LMSW, LSL, LTR, SGDT, SIDT, SLDT, SMSW, STR, VERR, and VERW. Some of the instructions for protected mode can (or must) be used in real mode to set up and switch to protected mode, and a few (such as SMSW and LMSW) are useful for real mode itself.
Intel 80286 は 24 ビットのアドレス バスを備えており、そのため、以前の x86 プロセッサの1 MB アドレス空間と比較して16 MB の物理アドレス空間を持っていました。これは、セグメンテーションによって最大 1 GB の仮想メモリをサポートする最初の x86 プロセッサでした。[ 19 ]しかし、メモリのコストと、1 MB を超えるメモリを使用するソフトウェアが当初はまれであったため、生産の後半になるまで、80286 コンピュータには 1 MB を超えるRAM が搭載されて出荷されることはほとんどありませんでした。[ 18 ]さらに、後述するように、リアル モードから拡張メモリにアクセスするとパフォーマンスの低下が生じました。



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

これは、Intel 80286マイクロプロセッサに接続するバスインターフェースコンポーネントの一覧です。
{{cite magazine}}: CS1メンテナンス: アーカイブサービスは非推奨になりました (リンク)