メモリ階層と性能

アドレスが32ビット、容量32 KB、ラインサイズ64バイトの4ウェイ・セットアソシアティブ方式のキャッシュのセット数はいくつか。

  1. A128
  2. B512
  3. C32
答えと解説を見る

正解:A. 128

ライン数は 32 KB ÷ 64 B = 512 です。4ウェイでは1つのセットに4ラインが入るので、セット数は 512 ÷ 4 = 128 = 2⁷ となり、インデックスは7ビット、タグは 32 − 7 − 6 = 19ビットになります。512はライン数そのもので、ダイレクトマップのときのセット数です。連想度を上げるとセット数が減り、その分タグのビット数が増えて比較器も増えます。32はラインサイズの64を誤ってウェイ数で割った値です。

  • A. 正しい。512ライン ÷ 4ウェイ = 128セットです。
  • B. 512はライン数で、ダイレクトマップのときのセット数です。
  • C. 32はセット数ではなく、誤った割り算の結果です。
この分野を解く 分野ページへ

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

  1. フルアソシアティブ方式のキャッシュで、アドレスのうちインデックス(セットを選ぶ部分)に使うビット数はどれか。
  2. L1キャッシュのヒット時間が1 ns、ミス率が5%、L2キャッシュのヒット時間が10 ns、L2のローカルミス率が20%、主記憶のアクセス時間が100 nsのとき、平均メモリアクセス時間はいくらか。
  3. ダイレクトマップ方式のキャッシュで、2つの配列の要素が同じキャッシュの位置に対応し、交互にアクセスするたびに互いを追い出し合っている。このミスの分類はどれか。
  4. プログラムがあるデータに初めてアクセスしたときに起こるキャッシュミスを減らす方法として、効果があるものはどれか。
  5. キャッシュをフルアソシアティブ方式にしても減らないミスとして正しいものはどれか。