メモリ階層と性能

TLBのエントリが64個で、ページサイズが4 KBのとき、TLBのミスなしでアクセスできるメモリの範囲(TLBリーチ)はいくらか。

  1. A64 KB
  2. B256 KB
  3. C4 MB
答えと解説を見る

正解:B. 256 KB

TLBの1エントリは1ページ分の変換を保持するので、TLBリーチ = エントリ数 × ページサイズ = 64 × 4 KB = 256 KBです。プログラムがこれより広い範囲を頻繁に使うとTLBミスが増えます。2 MBの大きなページ(ヒュージページ)を使えば、同じ64エントリで 64 × 2 MB = 128 MBまで広げられます。64 KBはページサイズを1 KBと誤った値で、4 MBはページの数とサイズを取り違えた値です。

  • A. 64 KBはページを1 KBと誤った値です。
  • B. 正しい。64エントリ × 4 KB = 256 KBです。
  • C. 4 MBは計算を誤った値です。
この分野を解く 分野ページへ

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

  1. 大きなページ(ヒュージページ)を使う主な利点と欠点の組み合わせとして正しいものはどれか。
  2. 2次元配列の1行の大きさが4096バイト(2の累乗)のとき、列方向に要素をたどると、キャッシュの容量に余裕があってもミスが多くなることがある。その対策として効果があるものはどれか。
  3. 主記憶のDRAMへのアクセスにかかる時間は、L1キャッシュのヒット時間のおよそ何倍か。(一般的なPCやサーバーのCPUの場合)
  4. キャッシュの各ラインに付けられる有効ビット(valid bit)の役割として正しいものはどれか。
  5. 小容量のフルアソシアティブ方式のバッファに、L1キャッシュから追い出されたラインを一時的に保持するビクティムキャッシュの主な効果はどれか。