メモリマップ【memory map】

概要

メモリマップとは、コンピュータアドレス空間において、どの番地にどの装置や領域を割り当てるかを示した対応関係。主記憶や周辺装置、各種制御領域の配置を体系的に表したものである。システムの全体構造を示した住所録のような役割を果たす。
メモリマップのイメージ画像

コンピュータでは、CPUメモリアドレスと呼ばれる番号を指定してデータの読み書きを行う。連続した番地の範囲を「アドレス空間」と呼び、大半はメインメモリRAM)で構成されるが、ROMや入出力装置の制御レジスタなど、CPUからデータを読み書きする様々な装置が特定のアドレスに割り当てられることがある。

この割り当ての一覧や構造を示したものがメモリマップである。例えば、この範囲はRAM、この範囲はBIOS用のROM、この範囲は周辺機器の制御用レジスタに対応付けられるといった形で定義される。RAM以外の様々な装置の入出力(I/O)機能をメモリアドレスと地続きの番地に割り当ててアクセスする手法を「メモリマップドI/O」(memory-mapped I/O)という。

メモリマップの設計は、ハードウェア構成やCPUのアドレス幅に依存する。32ビットCPUであれば理論上4GBのアドレス空間を扱うことができ、その範囲内で各種領域を配置する。組み込みシステムでは、限られたアドレス空間の中にフラッシュメモリSRAMタイマーやシリアル通信装置などを効率的に配置する必要があるため、メモリマップはシステム設計の重要な要素となる。

現代的なオペレーティングシステム(OS)は仮想記憶機構(仮想メモリ)を用いてプログラム側から見たアドレスと装置内の物理アドレスを対応付けており、実行されるプログラム(プロセス)ごとに独立した仮想的なメモリマップを持っている。この仕組みにより、各プログラムはまるで自分専用の連続したメモリ空間を持っているかのようにメモリアクセスを行うことができる。

まとめ

資格試験などの「メモリマップ」の出題履歴

▼ 基本情報技術者試験
令7修1 問13】 図のメモリマップで,セグメント2が解放されたとき,セグメントを移動(動的再配置)し,分散する空き領域を集めて一つの連続領域にしたい。
令1修7 問18】 図のメモリマップで,セグメント2が解放されたとき,セグメントを移動(動的再配置)し,分散する空き領域を集めて一つの連続領域にしたい。
平29秋 問19】 図のメモリマップで,セグメント2が解放されたとき,セグメントを移動(動的再配置)し,分散する空き領域を集めて一つの連続領域にしたい。
平27秋 問18】 図のメモリマップで,セグメント2が解放されたとき,セグメントを移動(動的再配置)し,分散する空き領域を集めて一つの連続領域にしたい。
この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。