コンピューターアーキテクチャ

仮想メモリとTLB

プログラムは独立した仮想アドレスを使います。ページ番号から物理フレームを調べ、オフセットと合わせて物理アドレスを作ります。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です。