資格暗記無料で始める

メモリマップドI/Oとは?

メモリマップドI/Oとは、周辺装置のレジスタを主記憶と同じアドレス空間に割り当て、通常のロード・ストア命令で入出力を行う方式。専用の入出力命令と別空間を用いるI/Oマップド方式に比べ、命令セットが単純になりアドレッシングの機能をそのまま使えるが、主記憶に使えるアドレスは減る。

めもりまっぷどあいおー

応用情報技術者試験の頻出用語/テクノロジ系


メモリマップドI/Oの意味

周辺装置のレジスタを主記憶と同じアドレス空間に割り当て、通常のロード・ストア命令で入出力を行う方式。専用の入出力命令と別空間を用いるI/Oマップド方式に比べ、命令セットが単純になりアドレッシングの機能をそのまま使えるが、主記憶に使えるアドレスは減る。

メモリマップドI/Oの具体例

組込み機器では、決められた番地へ書き込むとGPIOの出力が変わり、別の番地を読むとA/D変換結果が得られる。C言語ではその番地へのポインタとして扱うが、値がハードウェア側で変わるためvolatile指定が必要で、付け忘れると最適化で読出しが消える。

メモリマップドI/Oは試験でどう引っ掛けられる?

I/O領域はキャッシュしてはならない。キャッシュされると装置に届かない書込みや古い値の読出しが起きるため、その領域はキャッシュ禁止に設定する。この点が「ただのメモリアクセスと同じ」という理解の落とし穴になる。

メモリマップドI/Oと関連する用語

最終更新:2026-08-25/解説は資格暗記が独自に作成しています。 過去問の出典は各問題に記載のとおりです。