メモリ階層と性能

ノンブロッキングキャッシュ(ミスの処理中もほかのアクセスを受け付けるキャッシュ)の主な利点はどれか。

  1. Aキャッシュミスの回数そのものを、ブロッキング方式より減らせる
  2. Bミスしたデータを主記憶から速く読めるようになる
  3. C複数のミスの待ち時間を重ね、その間もヒットを処理できる
答えと解説を見る

正解:C. 複数のミスの待ち時間を重ね、その間もヒットを処理できる

ブロッキングキャッシュでは、1つのミスの処理が終わるまで後続のアクセスがすべて待たされます。ノンブロッキングキャッシュは、ミスの情報を記録する専用のレジスタ(MSHR)をもち、処理中にもヒットするアクセスを返したり、別のミスを同時に主記憶へ要求したりできます。これにより待ち時間を重ねて隠せますが、ミスの回数そのものは減らず、1回のミスで主記憶から読む時間も変わりません。アウトオブオーダー実行と組み合わせて効果を発揮します。

  • A. ミスの回数は変わらず、待ち時間を重ねて隠すのが効果です。
  • B. 主記憶から読む時間そのものは変わりません。
  • C. 正しい。ミスの待ち時間を重ね、その間もヒットを処理できます。
この分野を解く 分野ページへ

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

  1. L1キャッシュのミス率(全アクセスに対する割合)が4%、L2キャッシュのグローバルミス率(全アクセスのうちL2でもミスする割合)が1%のとき、L2のローカルミス率はいくらか。
  2. TLBのエントリが64個で、ページサイズが4 KBのとき、TLBのミスなしでアクセスできるメモリの範囲(TLBリーチ)はいくらか。
  3. 大きなページ(ヒュージページ)を使う主な利点と欠点の組み合わせとして正しいものはどれか。
  4. 2次元配列の1行の大きさが4096バイト(2の累乗)のとき、列方向に要素をたどると、キャッシュの容量に余裕があってもミスが多くなることがある。その対策として効果があるものはどれか。
  5. 主記憶のDRAMへのアクセスにかかる時間は、L1キャッシュのヒット時間のおよそ何倍か。(一般的なPCやサーバーのCPUの場合)