資格暗記無料で始める

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

メモリマップドI/Oとは、周辺デバイスの制御レジスタを主記憶と同じアドレス空間に割り当て、通常のロード/ストア命令でアクセスできるようにする方式。専用の入出力命令が不要で、ポインタ操作でデバイスを扱える。

めもりまっぷどあいおー

エンベデッドシステムスペシャリスト試験の頻出用語/午前II/別名:memory mapped I/O、MMIO


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

周辺デバイスの制御レジスタを主記憶と同じアドレス空間に割り当て、通常のロード/ストア命令でアクセスできるようにする方式。専用の入出力命令が不要で、ポインタ操作でデバイスを扱える。

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

C言語では、アドレスを volatile 修飾したポインタにキャストしてレジスタを読み書きする。volatile を付けないと、値が変わらないとみなしたコンパイラの最適化で読み書きが削除・移動されてしまう。

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

volatile は「最適化の抑止」であって、割込みやマルチコアに対する排他制御やアトミック性は保証しない。

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

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