読み方 : どうてきアドレスへんかん
動的アドレス変換【DAT】Dynamic Address Translation
概要
動的アドレス変換とは、オペレーティングシステム(OS)の仮想メモリにおいて、プログラムが使う仮想アドレスを、実行時に物理メモリ上の実アドレスへとリアルタイムに変換する仕組み。各命令の実行に合わせて変換を行うことで、限られた主記憶を効率よく利用できるようにする。

コンピュータプログラムは、実際の物理メモリの配置を意識せずに動作させることができるように、仮想的なアドレス空間を使ってメモリにアクセスする。しかし、実際にデータを読み書きするためには、仮想アドレスを物理メモリ上の実際の番地(実アドレス、物理アドレス)に対応付ける必要がある。この変換をプログラムの実行中に逐次行う仕組みを動的アドレス変換という。「動的」(dynamic)という言葉は、プログラムの起動前にあらかじめ変換を済ませる「静的」(static)な方式と対比した表現である。
OSは仮想アドレスと物理アドレスの対応関係を記録した「ページテーブル」という対応表を管理しており、これを参照して仮想アドレスから対応する現在の物理アドレスを求める。この変換処理はCPUに内蔵された「MMU」(Memory Management Unit:メモリ管理ユニット)という専用の回路により高速に実行される。
現代の仮想メモリシステムでは、メモリを「ページ」と呼ばれる固定長の単位(一般的に4KB)に分割して管理するページング方式が広く採用されており、アドレスの変換もページを単位として行われる。ページテーブルの参照は時間がかかり、命令を実行するたびに変換するのでは非効率なため、直近の変換結果を保持する小容量の高速なキャッシュメモリ装置である「TLB」(Translation Lookaside Buffer)に一時的に結果を記録しておく仕組みが用いられる。