メモリ階層と性能

L1キャッシュに仮想インデックス・物理タグ(VIPT)方式がよく使われる主な理由はどれか。

  1. A物理アドレスを使わずに済むので、TLBを省略できるから
  2. B仮想アドレスだけで判定するので、プロセスを切り替えるたびにキャッシュを空にできるから
  3. CTLBでアドレスを変換している間に、並行してキャッシュのセットを読み始められるから
答えと解説を見る

正解:C. TLBでアドレスを変換している間に、並行してキャッシュのセットを読み始められるから

VIPT方式では、変換が不要なページ内のビットでキャッシュのセットを選ぶので、TLBで物理アドレスに変換するのと同時にセットの読み出しを始められます。最後に物理アドレスのタグと比べるため、別のプロセスが同じ仮想アドレスを使っても取り違えません。TLBは物理タグを得るために必要で、省略はできません。プロセスの切り替えのたびにキャッシュを空にする必要があるのは、仮想アドレスでタグを付ける方式の欠点です。

  • A. 物理タグと比べるためにTLBは必要です。
  • B. 切り替えのたびに空にする必要があるのは仮想タグ方式の欠点です。
  • C. 正しい。アドレス変換とセットの読み出しを並行して行えます。
この分野を解く 分野ページへ

メモリ階層と性能のほかの問題

  1. キャッシュのヒット時間が2サイクル、ミス率が4%、ミスペナルティが150サイクルのとき、平均メモリアクセス時間は何サイクルか。
  2. キャッシュが理想的なら平均CPIが1.0のプロセッサで、1命令あたり平均1.3回のメモリアクセスがあり、そのミス率が2%、ミスペナルティが100サイクルのとき、実際の平均CPIはいくらか。
  3. ノンブロッキングキャッシュ(ミスの処理中もほかのアクセスを受け付けるキャッシュ)の主な利点はどれか。
  4. L1キャッシュのミス率(全アクセスに対する割合)が4%、L2キャッシュのグローバルミス率(全アクセスのうちL2でもミスする割合)が1%のとき、L2のローカルミス率はいくらか。
  5. TLBのエントリが64個で、ページサイズが4 KBのとき、TLBのミスなしでアクセスできるメモリの範囲(TLBリーチ)はいくらか。