iAPX286

non object

8086を処理能力優先で改良したプロセッサとしてIntel社が開発したのが80286です。Intel社によると、発表は1982年2月1日、1.5 um HMOS IIIプロセスで134000個のトランジスタを集積しているとのこと。同じ時期に組み込み用に使いやすくした8086として80186を発表しています。80186は8086に周辺チップを組み込んだのが主な変化ですが、80286は仮想記憶を実現してアドレス空間を広げているなど、きちんとしたオペレーティングシステムの下で汎用コンピュータ的な応用に使えるだけの改良を施されていました。
80286の実メモリ空間は16 MByte、仮想記憶空間は1 GByteとなっており、それまでの8086/8088の実メモリ空間1 MByteの16倍になっています。
80286が普及し始める当時のパーソナルコンピュータはMSDOSをOSとして採用した8086をCPUとするものが多かったのですが、すでに8086の1 MByteのメモリ空間の限界が見えてきていました。まぁ、それでも最初期の16 bit MSDOS PCは128 KByteのメインメモリから始まって、384 KByte辺りが普通の感覚でしたでしょうか。でもメモリ価格の低下とともに512 KByteとか640 KByteのものも現れてきて、そこでMSDOSの限界が来ました。ええ、MSDOSでは1 MByteの内、RWMのユーザーが利用できるメモリの最大は640 KByteが限界だったのです。でも、640 KByteでもメモリ不足の応用ができ始めてしまう。そこで、CPUは8086のまま、バンク切り替えという技法で入れ替える回路を用意して、640 KByte以上のメモリを利用するプログラムも作られたりしてきます。そのバンク切り替え回路も、最初は本当に必要なアプリケーションプログラムメーカーとハードウェアメーカーが組んで、このソフトを使うにはこの拡張メモリ基板、なんて形で売り始められたのですけど、そのうちの規格の一つが次第に業界の標準規格になってきたかなという時代でした。拡張メモリ規格EMM/EMSの始まりですね。
その頃、80286を採用したPCができ始めます。メモリも1 MByte以上、接続しようとすればできるのですけど、一つ問題がありました。当時普及していたMSDOSはシングルタスクメモリ保護なしの、ごく単純なOSです。まぁ、OS機能を誤魔化すというか常駐プログラムなどをうまく利用して複数タスクを動かすくらいはできましたけど。それ以外のOSにはPCユーザーが利用できるようなものがなく、選択肢としてはMSDOSしかなかったのです。ということで80286の仮想記憶機能は、MSDOSは扱えませんでした。つまり、80286搭載といっても、仮想記憶を利用しなければ8086と命令セットの互換性があるので、単に高速になった8086としてしか利用できないという、ちょっと悲しい現実がありました。はい、もちろんそのままではMSDOSから見えるメモリ空間は640 KByteです。仮にメモリを2 MByte搭載していようと。
しかし、MSDOSのデバイスドライバの形で、こっそり80286の仮想記憶を動作させて、バンク切り替えのように見せかける技術が生まれました。ソフトウェアでエミュレートしたバンク切り替えですね。そうやって、8086でメモリ拡張で動作するソフトウェアを特別なハードウェアなしに利用できるようになったり、そのようなソフトウェアがない場合でもハードディスクをエミュレートしてRAM-DISKなどといって利用したりするようになりました。
実は、このようなことは386時代になってもMSDOSが利用される限り続いてしまい、もったいないような気分になります。もちろん高信頼性を要求される産業用のOSなどでは仮想記憶をちゃんと利用していたりしましたけど。

80286
LCCパッケージの80286(左)とCMOS化されてPLCCパッケージの80C286(右)。