640Kバイトの壁
読み:ろっぴゃくよんじゅっキロバイトのかべ
外語:640KB wall
NEC PC-9800シリーズにおけるMS-DOS環境にある壁。
概要
利用できるメモリー範囲が640Kバイトに制限されてしまうこと。
正確にはキロではなくキビ、つまり「640Kiバイトの壁」と呼ぶべきだが、当時はまだKi(キビ)という単位がなく、このように「640Kバイトの壁」と呼ばれていた。
特徴
技術的内容
PC-9800シリーズはi8086および互換プロセッサーを搭載しているため、16ビット環境では最大1Miバイトまでアドレッシング可能である。
そしてこの範囲を、次のように割り当てていた。
- 00000h〜9FFFFh ‐ メモリー(RAM)
- A0000h〜FFFFFh ‐ VRAMやBIOS ROM、拡張スロット用メモリー領域
このうち00000h〜9FFFFhをコンベンショナルメモリー、A0000h〜FFFFFhをUMBという。
結果として、利用できるメモリー領域はコンベンショナルメモリーの640Kiバイトの範囲に限られ、それ以上のメモリーを利用したければ拡張スロットにバンクメモリーを搭載する以外に方法がなかった。これが640Kバイトの壁である。
壁の突破
高解像度モードであるハイレゾリューションモードでは、アドレスマップが変更となり768Kiバイトまでコンベンショナルメモリーが利用できたが、従来とは互換性が低く、これは解決になっていなかった。
解決方法として、80286やi386以降のプロテクトモードを利用するDOSエクステンダーが開発されたが、あまり一般化しなかった。
16ビット環境のままでの解決方法は仮想86モードによるEMSが最も現実的な回答であったが、究極的な解決はMS-DOS環境であるうちは不可能で、Windows NTやWindows 95の登場を待たねばならなかった。
再検索