最終更新日:2026年10月7日
fe fe-technology computer-system
まず結論
動的アドレス変換(DAT:Dynamic Address Translation)とは、プログラムの実行時に、仮想アドレスを実際の主記憶上の物理アドレスへ変換する仕組みです。
まずは次の流れで覚えます。
CPU・プログラム
↓
仮想アドレス
↓
動的アドレス変換(DAT)
↓
物理アドレス
↓
主記憶
仮想記憶が「プログラムから見えるアドレスと実際の主記憶を分けて管理する考え方」なら、DATはその二つを実行時につなぐ変換です。
直感的な説明
ホテルで「部屋番号」と「実際の場所」を対応表で調べる場面を考えます。
プログラムは、物理メモリ上の配置を直接意識せず、仮想アドレスを使います。
プログラム
「仮想アドレス 1234 を使いたい」
↓
対応を調べる
↓
「実際には物理アドレス 5678」
↓
主記憶
この実行中の住所変換がDATだと考えると分かりやすいです。
「動的」という言葉は、プログラムを作るときに物理アドレスを固定してしまうのではなく、実行時に対応関係を使って変換するところと結び付けます。
定義・仕組み
仮想記憶では、プログラムが扱う仮想アドレスと、実際のRAM上の物理アドレスを分離します。
そこで必要になるのがアドレス変換です。
仮想アドレス
≠
そのまま物理アドレス
仮想アドレス
↓ 変換
物理アドレス
この変換を実行時に行う仕組みが動的アドレス変換です。
ページング方式ではどう変換する?
ページング方式では、仮想アドレスを大きく次のように考えます。
仮想アドレス
┌──────────┬────────────┐
│ ページ番号 │ ページ内の位置 │
└──────────┴────────────┘
ページテーブルを使って、仮想側のページ番号を物理側のページ枠番号へ対応付けます。
ページ番号
↓
ページテーブル
↓
ページ枠番号
ページ内の位置はそのまま使えるため、概念的には次のようになります。
仮想アドレス
[ページ番号 | ページ内位置]
↓
ページ番号をページ枠番号へ変換
↓
物理アドレス
[ページ枠番号 | ページ内位置]
つまり、ページングを理解していれば、DATは「ページテーブルなどを使って仮想の住所を物理の住所へ変換する部分」としてつなげられます。
MMUとの関係
このようなアドレス変換をハードウェアで支える装置が MMU(Memory Management Unit:メモリ管理ユニット)です。
FEではまず、
DAT
→ アドレスを変換する仕組み・処理
MMU
→ その変換などをハードウェアで支える
という関係を押さえれば十分です。
TLBとの関係
毎回ページテーブルをたどるとアドレス変換に時間がかかります。
そこで、最近使ったページ変換の対応を高速に参照するために使われるのが TLB(Translation Lookaside Buffer)です。
仮想ページ番号
↓
まずTLBを確認
├─ 対応あり → すばやくページ枠番号を得る
└─ 対応なし → ページテーブルを確認
ここでは、DAT・MMU・TLBを同じ意味として覚えないことが重要です。
科目Aでどう出る?
問題文では「仮想アドレス」「物理アドレス」「実行時に変換」という語に注目します。
| 問題文の表現 | 判断 |
|---|---|
| 仮想アドレスを物理アドレスへ変換 | 動的アドレス変換(DAT) |
| ページとページ枠の対応を管理 | ページテーブル |
| アドレス変換などをハードウェアで支援 | MMU |
| アドレス変換情報を高速に参照 | TLB |
| 必要なページが主記憶にない | ページフォールト |
特に、
仮想 → 物理
という方向を押さえると判断しやすくなります。
どんな場面で使う?
プログラムが命令やデータへアクセスするとき、CPUが扱う仮想アドレスから実際の主記憶上の位置を求める必要があります。
プログラムがメモリへアクセス
↓
仮想アドレスを生成
↓
DATでアドレス変換
↓
物理アドレスを求める
↓
主記憶へアクセス
ページング方式では、この途中でページテーブルなどの対応情報を利用します。
必要なページ自体が主記憶に存在しなければ、ページフォールトが発生し、必要なページを補助記憶から読み込む処理につながります。
よくある誤解・混同
DATとページングは同じ
同じではありません。
ページング
→ ページとページ枠という固定長単位で管理する方式
DAT
→ 仮想アドレスを物理アドレスへ変換する仕組み
ページング環境では、ページテーブルを利用したアドレス変換によって両者が強く関係します。
DATとページフォールトは同じ
違います。
DATはアドレス変換です。
ページフォールトは、変換先として必要なページが現在主記憶に存在しないときに発生します。
アドレスを変換する
→ DAT
必要なページがRAMにない
→ ページフォールト
DATとMMUは同じ用語
厳密には分けて考えます。DATはアドレス変換の仕組み・処理を表し、MMUはその変換をハードウェアで支える機構です。
TLBはデータそのものを保存するキャッシュ
TLBが高速化するのは、主に仮想ページと物理ページ枠のアドレス変換情報へのアクセスです。
一般的なCPUキャッシュが命令やデータへのアクセスを高速化するのに対し、TLBはアドレス変換を高速化するためのキャッシュとして区別します。
まとめ(試験直前用)
- DATは Dynamic Address Translation(動的アドレス変換)
- 仮想アドレス → 物理アドレスを実行時に変換する
- ページングでは、ページ番号をページテーブルなどを使ってページ枠番号へ対応付ける
- MMUはアドレス変換などをハードウェアで支える
- TLBはアドレス変換情報を高速に参照するためのキャッシュ
- DATとページング、ページフォールト、MMU、TLBを同じ意味として覚えない