メモリ階層と性能

ライトスルー方式のキャッシュで、書き込みバッファを設ける主な目的はどれか。

  1. A主記憶への書き込みの完了を待たずに、CPUが次の処理に進めるようにするため
  2. Bキャッシュの中のデータを主記憶より新しい状態に保つため
  3. C書き込みでミスしたラインを、必ず先に主記憶からキャッシュへ読み込んでから書くため
答えと解説を見る

正解:A. 主記憶への書き込みの完了を待たずに、CPUが次の処理に進めるようにするため

ライトスルー方式では書き込みのたびに主記憶にも書くため、そのまま完了を待つとCPUが頻繁に止まります。書き込みバッファに書き込みを一時的にためておけば、CPUはすぐに次の命令へ進み、バッファが裏で主記憶へ書き出します。キャッシュを主記憶より新しく保つのはライトバック方式の性質で、ライトスルーではむしろ両者が一致します。ミスしたラインを読み込むかどうかはライトアロケートの選択で、書き込みバッファとは別の話です。

  • A. 正しい。書き込みを一時的にためて、CPUを待たせないためです。
  • B. キャッシュが主記憶より新しくなるのはライトバック方式です。
  • C. ミス時に読み込むかどうかはライトアロケートの選択です。
この分野を解く 分野ページへ

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

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