メモリ階層と性能

アドレスが32ビット、容量32 KB、ラインサイズ64バイトのダイレクトマップ方式のキャッシュで、タグは何ビットになるか。

  1. A15ビット
  2. B19ビット
  3. C17ビット
答えと解説を見る

正解:C. 17ビット

ラインサイズ64バイト = 2⁶ なのでオフセットは6ビットです。ライン数は 32 KB ÷ 64 B = 32768 ÷ 64 = 512 = 2⁹ で、ダイレクトマップではライン数がそのままセット数なのでインデックスは9ビットです。残りがタグで、32 − 9 − 6 = 17ビットになります。19ビットは4ウェイのセットアソシアティブにしてインデックスが2ビット減ったときの値で、ダイレクトマップには当てはまりません。

  • A. 15ビットはインデックスを11ビットと誤った場合の値です。
  • B. 19ビットは4ウェイにしてセット数が1/4になった場合の値です。
  • C. 正しい。32 − 9(インデックス) − 6(オフセット) = 17ビットです。
この分野を解く 分野ページへ

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

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