本記事は、日経WinPC2013年9月号に掲載した連載「PC技術興亡史」を再掲したものです。社名や肩書などは掲載時のものです。

 Intelは80286の発表から3年後の1985年に、80386を発表した(図1)。80386は、いろいろな意味で画期的だった。まず完全32ビットアドレスへの対応。8086や80286は、既存の16ビットアドレスをセグメント+オフセットという形で拡張した。CPUの実装は容易だったが、プログラマーに苦労を強いる方式だった。セグメント+オフセット方式の欠点は数々あるが、中でもセグメント境界内でしか動かない命令が多数あったことが重大だった。メモリー領域が1MB以上あるのに、プログラムをうまく64KB内で処理する工夫を強いられた。

図1 Intel初の32ビットCPU。仮想メモリー管理機能に対応し、メモリーコントローラーを混載した。浮動小数点演算コプロセッサーを統合。80286と異なり、メモリー保護機能も使いやすかった。32ビット命令は、現在も引き続き使われている。いわゆるIA(インテルアーキテクチャー)の基盤となったCPUである。
図1 Intel初の32ビットCPU。仮想メモリー管理機能に対応し、メモリーコントローラーを混載した。浮動小数点演算コプロセッサーを統合。80286と異なり、メモリー保護機能も使いやすかった。32ビット命令は、現在も引き続き使われている。いわゆるIA(インテルアーキテクチャー)の基盤となったCPUである。
[画像のクリックで拡大表示]

 80286はマルチタスク対応の本格的なOSを実現するプロテクトモード(正式名称はProtected Virtual Address Mode)を備えていたが、プロテクトモードに入ると、そこから8086互換となる「リアルモード」に動作を戻せない制約があった。IBMとMicrosoftが共同開発した「OS/2」では、リアルモードに戻すときにCPUをリセットするというすさまじい方法が採られた。

 80386ではこうした問題が全て解決した。メモリーアドレスはプロテクトモードで32ビット、つまり4GBに拡張。リアルモードとプロテクトモードに加え、仮想86モードが提供された。これでリアルモードとプロテクトモードを相互に切り替える必要が無くなった。仮想記憶の実装に備えて、メモリー管理ユニット(MMU:Memory Management Unit)も強化された。既存の8086命令と互換性を保つ形で命令が32ビットに対応し、主要な命令は全て32ビット環境で動作するようになった。本格的な32ビット環境が整った。

 ただ当時は、80386への対応は進まなかった。部分的にでも32ビット環境に対応したのは1990年(日本語版は1991年)のWindows 3.0。完全に32ビットに対応したのは1994年のWindows NT 3.1からである。Windows XPの登場で一般ユーザー向けにもWindows NT系列のOSが使われるようになった2001年頃まで、16ビット環境は存続した。