コンベンショナルメモリ

読み:コンベンショナルメモリ
外語:conventional memory
品詞:名詞

MS-DOSが、伝統的(conventional;コンベンショナル)に用いていたメモリ領域のこと。

具体的には、MS-DOSが元来用いていたプロセッサ8086が処理できるメモリ領域のことで、そのうちRAMがある00000h〜9FFFFhの640Kiバイトのアドレス領域をいう。

機種によっても異なるが、A0000h〜FFFFFhの384Kiバイトは、VRAMやBIOS ROM、拡張スロット用のROMおよびI/O領域などがマッピングされており、通常は利用できない。

MS-DOS

MS-DOSでは、基本的にこの640Kiバイトの容量を全てのソフトウェアが使う。FEP(今で言うIME相当)や、各種の常駐ソフトも同様である。

MS-DOSは、シングルタスクOSだが、常駐できるという優れた機能があった。これは、OSの機能(システムコール)としてメモリ管理が行なわれていたためである。正しくメモリを使っていれば、同じアドレスを衝突して使うことはない。

  • AH = 48h (メモリの割り当て)
  • AH = 49h (割り当てられたメモリの開放)
  • AH = 4Ah (割り当てられたメモリブロックの変更)

しかし、640Kiバイトではやはり少ないので、様々な技術でコンベンショナルメモリの消費量を減らす努力が行なわれた。

i386以降では仮想86モードが利用可能になったため、これが利用された。コンベンショナルメモリは必要最小限に留め、それ以外は次のような拡張された領域に置く技術などが使われた。

Windows

プロセッサが32ビット化されても、16ビットOSを利用しているうちは互換性のためにコンベンショナルメモリは足かせとして存在しつづけた。

Windows 95Windows 98Windows MeなどのWindows 9x系OSでは、ヒープメモリなどの制限として存在する。

この問題の完全な解決は、完全な32ビット環境となるWindows NTやWindows 2000以降である。