プログラムは独立した仮想アドレスを使います。ページ番号から物理フレームを調べ、オフセットと合わせて物理アドレスを作ります。TLBは変換結果をキャッシュします。
仮想アドレス変換シミュレータ
1. アドレスを設定(256バイト、仮想8ページ、物理4枠)
TLB(最近の4変換)
ページテーブル
物理メモリ
アドレス分解→TLB→必要ならテーブル→物理アドレスの順に進みます。最初は0と3だけが存在します。
ページ番号アドレス÷256
オフセットアドレス%256
物理アドレスフレーム×256+オフセット
TLBヒット率高い場合が多い
仮想メモリの目的
独立した空間でプログラムを分離し、必要なページだけを物理メモリに置けます。この例では非在住ページをディスクから取得します。空きがない場合の対象は ページ置換アルゴリズムで選び、この例はFIFOです。
TLBは追加のメモリアクセスを減らす
単一階層モデルでは、テーブルの読出しとデータの読出しが必要です。TLBに当たれば前者を省けます。実際の多階層テーブルではさらに多くの参照が必要な場合があります。
実効アクセス時間
検索t、メモリm、ヒット率hなら、このモデルでh(t+m)+(1−h)(t+2m)です。ページフォルトを除き、t=1ns、m=100ns、h=0.98なら103nsです。