640Kバイトの壁

読み:ろっぴゃくよんじゅっキロバイトのかべ
読み:ろっぴゃくよんじっキロバイトのかべ
外語:640KB wall
品詞:名詞

NEC PC-9801シリーズにおけるMS-DOS環境にある

利用できるメモリ範囲が640Kバイトに制限されてしまうこと。

正確にはキロではなくキビ、つまり「640Kiバイトの壁」と呼ぶべきだが、当時はまだKi(キビ)という単位がなく、このように「640Kバイトの壁」と呼ばれていた。

技術的内容

PC-9801シリーズは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 NTWindows 95の登場を待たねばならなかった。