メモリ階層と性能

ライトバック方式のキャッシュで、各ラインに付けるダーティビットの役割として正しいものはどれか。

  1. Aそのラインのデータが有効で読み出せるかどうかを示す
  2. B書き換えられ、主記憶と内容が違うことを示す
  3. Cそのラインに最後にアクセスした時刻を示す
答えと解説を見る

正解:B. 書き換えられ、主記憶と内容が違うことを示す

ライトバック方式では書き込みをキャッシュだけで済ませるため、主記憶の内容が古くなったラインができます。ダーティビットはそのラインが書き換えられたことを示し、追い出すときにダーティなラインだけを主記憶へ書き戻せば済むようにします。書き換えていないラインはそのまま捨てられるので、無駄な書き込みを減らせます。ラインが有効かどうかを示すのは有効ビットで、アクセスの順番はLRUなどの置き換え用の情報で管理します。

  • A. データが有効かどうかを示すのは有効ビットです。
  • B. 正しい。書き換えられて主記憶と違うことを示し、追い出し時の書き戻しを決めます。
  • C. アクセスの順番は置き換え方式のための別の情報です。
この分野を解く 分野ページへ

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

  1. 書き込みでキャッシュミスしたときに、そのラインを読み込まず、下の階層へ直接書き込む方式はどれか。
  2. 容量2ラインのフルアソシアティブ方式でLRU置き換えのキャッシュが最初は空のとき、ブロックをA、B、A、C、B、Aの順に参照すると、ミスは何回起こるか。
  3. ハードウェアのプリフェッチが特に効果を発揮しやすいアクセスはどれか。
  4. ソフトウェアのプリフェッチ命令を入れるとき、どれだけ先のデータを読むか(プリフェッチの距離)についての説明として正しいものはどれか。
  5. 上のループでintが4バイト、キャッシュラインが64バイト、配列はキャッシュに入っておらず先頭がラインの境界にそろっているとき、プリフェッチがなければ配列の読み込みのミス率はいくらか。