2017-08-01 18:54 — asano
日本ではPC-9801RAから(PCではPS/2の一部から)搭載された80386になるとCPUのメモリ空間は4GBとなり、しばらくこの4GBの時代が続くことになります。
しかし当時本当にありがたかったのはメモリ空間が増えたことより、仮想86モードが使えるようになったことでしょう。プロテクトモードにいながら8086互換の環境を提供できるようになり、ソフトウェアのみでメモリの再配置が可能になりました。
これにより1MB超にあるメモリの好きな部分を1MB内の好きなエリアに割り当てることができます。これはコピー操作を伴わないので時間はかかりませんし、同じメモリを複数個所にマップしても矛盾は生じません。
- ソフトウェアのみでバンクメモリをエミュレーション
- ソフトウェアのみでEMSをエミュレーション
- 拡張ROMエリアなどメモリ未実装のエリアにメモリを割り当てる
といったことが可能です。1,2ができるので増設メモリはプロテクトメモリ用のみですべての機能が実現できるようになるのでメモリボード選択の悩みもなくなります。3はメモリ管理チェーンに組み込むことでドライバや常駐プログラムのエリアとして使うことができます。
またDOSエクステンダというソフトウェアを使用するとDOS環境でプロテクトモードのプログラムを実行可能になりました。
EMSのような切り替えを考えることなく、64kBのセグメントも意識することなく、数MBものメモリを使用可能です。Emacs, GCCなどのUNIX環境由来のソフトウェアも多く移植されるようになりました。
さらにWindows386, 386bsd, Linuxなどのプロテクトモードで動作するOSも増えてきました。
この後、PAE (Physical Address Extension)といって論理アドレス(ソフトウェアから見えるアドレス)は4GBのままながらより多くのメモリを接続する技術(「8ビット後期」のMMUがCPUに内蔵されている感じ)を経て、Intel 64, AMD 64では論理アドレスが48ビット(64ビットまで拡張可能)になり現在に至ります。
このあたりは本サイトの範疇ではないと思うので詳しくは書きません。情報も一杯あると思いますし。
8回にわたって書いてきましたが、今回で一旦終了です。
今回書かなかったMC68000系のメモリ事情や、グラフィックス事情・サウンド事情等もいつか書いてみたいですね。
Add new comment