仮想記憶:論理アドレスが物理に化ける

論理アドレスを ページ番号 + オフセット に分解し、ページテーブル(と TLB)を通して物理アドレスへ変換する流れを、手で動かして追います。

421
64 B
論理アドレスのビット分解(全 10 bit = 1 KiB 仮想空間)
■ ページ番号(上位ビット)と ■ オフセット(下位 6 bit)に分かれます。
ページ番号 p
オフセット d
物理フレーム f
物理アドレス
TLB 判定
アクセス時間(相対)
TLB(変換ルックアサイドバッファ)
アドレス変換の流れ(赤い経路が今回たどった道)
プログラムが触る論理アドレスは、そのままメモリ番地になるわけではありません。CPU はアドレスを上位の ページ番号 p と下位のオフセット d に切り分け、ページテーブルで 「ページ p は物理フレーム f にある」と引き直してから、物理 = f × ページサイズ + d を組み立てます。
毎回テーブルを引くと遅いので、直近の変換を覚えておく小さなキャッシュが TLB です。 TLB ヒットなら一瞬で、TLB ミスならテーブルまで降りて変換します。 スライダーでアドレスとページサイズを変え、どこで「化ける」かを追ってみましょう。

いま何が起きている?

ここがポイント