メモリマップドI/O 【memory mapped I/O】 メモリマップトI/O

概要

メモリマップドI/O(memory mapped I/O)とは、コンピュータ上でCPUから各装置への入出力(I/O)にメインメモリと共通のアドレスを用いる方式。メモリアクセスとI/Oの命令や回路の一部を共通化することができる。

CPUが入出力装置やストレージ装置を制御したりデータを送受信するには、装置ごとに割り当てられたアドレスを指定してデータの書き込みや読み込みを指示するが、メモリマップドI/Oではこのアドレス体系がメインメモリと共通になっており、ある範囲はメモリ、ある範囲はI/Oとなっている。

これにより、メモリアクセスするのと同じ命令でI/Oの操作をうことができ、バスなどの回路の一部も共通化することができる。コストや性能の面で有利だが、メモリI/Oは異なる装置であるため、CPUの構造が複雑になるとメモリアクセスの高速化手法が使えないなどの弊害がある。

また、アドレス空間が16ビットなど小さかった時代には、貴重なアドレスI/O用に消費されることがデメリットとなる場合もあったが、現代の32ビット64ビットアドレス空間ではこの点はあまり問題にならない。

一方、メモリ空間とは別にI/O用のアドレス空間を設けて専用の命令でアクセスする方式を「ポートマップドI/O」(port-mapped I/O)あるいは「I/OマップドI/O」(I/O mapped I/O)、「プログラムドI/O」(programmed I/O)などと呼ぶ。CPUに専用の命令や回路が必要となるが、アドレス空間の重複がないためメモリ容量を有効活用できる。なお、英語で “mapped” の発音は /mæpt/ であるため、原音に忠実に「メモリマップトI/O」と表記・発音する場合もある。

(2024.8.2更新)

他の辞典による解説 (外部サイト)

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。
ホーム画面への追加方法
1.ブラウザの 共有ボタンのアイコン 共有ボタンをタップ
2.メニューの「ホーム画面に追加」をタップ
閉じる