Intel 80286

Intel 80286:DOS時代の主役マイクロプロセッサ



Intel 80286は、インテル社が1982年2月に発表した16ビットマイクロプロセッサです。134,000個のトランジスタを搭載し、6MHzから12MHzまでのクロック周波数で動作しました。IBM PC/ATや日本のPC-9800シリーズといった、DOS時代の多くのパーソナルコンピュータに採用され、広く普及したCPUとして知られています。

80286のアーキテクチャと性能



80286は、アドレスユニット、バスユニット、命令ユニット、実行ユニットという4つの独立したユニットで構成され、パイプライン処理による高速化を実現していました。8086との上位互換性を持ち、同クロックの8086と比較して約2.5倍の処理速度を実現しました。また、最大16MBの物理メモリ空間と1GBの仮想記憶空間をサポートし、マルチタスク処理にも対応していました。

インテル社は、80286まではセカンドソース戦略を採用しており、AMD、富士通シーメンス、ハリス・コーポレーションなども80286を製造・販売していました。特にAMDとハリスは、インテルがライセンス提供しなかった80386に対抗するため、20MHzや25MHzといった高クロックの80286を提供しました。DOS環境下では、同クロックの80386よりも高い実行速度を達成できたためです。

リアルモードとプロテクトモード



80286は、8086/8088と互換性のあるリアルモードと、メモリ保護やプロセス保護機能を持つプロテクトモードの両方で動作することができました。プロテクトモードは、マルチタスクOSの実装に不可欠な機能を提供し、後の32ビットCPUへと繋がる重要な一歩となりました。特権レベル、仮想記憶、メモリ保護、タスクスイッチなどの機能を備えていました。

しかし、一般向けのソフトウェアはリアルモードを前提として開発されていたため、80286のプロテクトモードが広く活用されることはありませんでした。多くの場合、80286は高速な8086として、PC-DOSやMS-DOS上で利用されていました。DOS/V|DOS_V環境も、80286以上のシステムを前提としていました。

Windows 3.xはスタンダードモードでプロテクトモードを利用していましたが、日本語版Windows 3.1以降では80286のサポートが廃止されました。OS/2 1.xもプロテクトモード対応OSとして開発されましたが、広く普及するには至りませんでした。

リアルモードとプロテクトモード間の切り替え



80286は、プロテクトモードからリアルモードへ戻る命令を備えていなかったため、CPUのリセット信号を用いてモードを切り替える必要がありました。この切り替えには、ハードウェア依存の処理が必要で、オーバーヘッドが大きかったため、効率性に欠けていました。後継の80386以降では、モード間のスムーズな切り替えが可能になりました。

HMA(High Memory Area)の活用



8086ではアドレス空間の制限により、1MBを超えるメモリへのアクセスが困難でした。80286ではこの制限が解消され、A20ラインの制御によって、1MBを超えるメモリ領域(HMA)にアクセスすることが可能になりました。HMAは64KB程度でしたが、メモリ不足に悩まされるDOSユーザーにとって貴重なリソースとなりました。

80286の判別方法



80286にはCPUID命令がありませんでした。インテル社は、フラグレジスタを用いた判別方法を提供していました。8086世代では使用されていなかったフラグレジスタの上位4ビットは、80286ではプロテクトモードで使用されるようになったため、リアルモードではゼロクリアされていました。この特徴を利用してCPUを判別することができました。

命令セット



80286では、8086の基本命令セットに加え、新しい命令セットが追加されました。一般命令、システム制御命令、そして既存命令の仕様変更がありました。また、`POP CS`命令は廃止され、拡張命令のプリフィックスとして使用されました。80286には非公開命令も存在していました。

レジスタ



80286では、GDTR、IDTR、LDTR、TRといったシステムレジスタが追加されました。フラグレジスタには、IOPL、NTなどの新しいフラグが追加されました。また、MSW (Machine Status Word) レジスタも追加されました。

割り込み



80286では、8086よりも多くの割り込みが定義されました。プロテクトモードでは、仮想記憶やメモリ保護に関連する新たな割り込みが使用されました。

ディスクリプターキャッシュ



80286は、セグメントレジスタにディスクリプターキャッシュを備えていました。リアルモードとプロテクトモードで異なる動作をします。

周辺LSIとCPUアクセラレータ



80286には、80287 NPX(数値演算コプロセッサ)などの周辺LSIが使用されました。また、CPUアクセラレータ製品によって、486相当の性能を得ることができました。特にPC-9800シリーズでは、CPUアクセラレータ製品が盛んに使用されました。HIMEM.SYSとの互換性やWindowsへの対応などの問題もありました。

参考文献



インテルジャパン、CQ出版社 1984 80286プログラマーズ・リファレンス・マニュアル ISBN 4-87185-605-4
大貫広幸、田中恵介、蓑原隆「80286ハンドブック」アスキー出版局(1985年)。ISBN 4871481832
成田佳應「80x86/x87 ハンドブック」ナツメ社(1995年)。ISBN 9784816318344
Robert L.Hummel著 槌田浩一訳 80x86/80x87ファミリー・テクニカルハンドブック 技術評論社 ISBN 4-87408-588-1

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。