メモリ階層と性能

キャッシュをフルアソシアティブ方式にしても減らないミスとして正しいものはどれか。

  1. A2つのデータが同じセットを取り合い、互いに追い出し合うことによるミス
  2. B使うデータの量がキャッシュの容量より大きいことによるミス
  3. Cダイレクトマップの配置の偏りによるミス
答えと解説を見る

正解:B. 使うデータの量がキャッシュの容量より大きいことによるミス

フルアソシアティブ方式ではどのデータもどこにでも置けるので、同じセットの取り合いによる競合ミスはなくなります。しかし、プログラムが繰り返し使うデータの量(ワーキングセット)がキャッシュ全体より大きければ、どこに置いても入りきらずに追い出しが起こります。これが容量ミスで、キャッシュを大きくするか、ループブロッキングなどで再利用の範囲を小さくする必要があります。配置の偏りやセットの取り合いは、どちらも競合ミスの原因です。

  • A. セットの取り合いは競合ミスで、フルアソシアティブにすればなくなります。
  • B. 正しい。ワーキングセットがあふれる容量ミスは残ります。
  • C. 配置の偏りによるミスも競合ミスの一種です。
この分野を解く 分野ページへ

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

  1. キャッシュのラインサイズを大きくしたときの影響として正しいものはどれか。
  2. ライトスルー方式のキャッシュで、書き込みバッファを設ける主な目的はどれか。
  3. ライトバック方式のキャッシュで、各ラインに付けるダーティビットの役割として正しいものはどれか。
  4. 書き込みでキャッシュミスしたときに、そのラインを読み込まず、下の階層へ直接書き込む方式はどれか。
  5. 容量2ラインのフルアソシアティブ方式でLRU置き換えのキャッシュが最初は空のとき、ブロックをA、B、A、C、B、Aの順に参照すると、ミスは何回起こるか。