メモリ階層と性能

フルアソシアティブ方式のキャッシュで、アドレスのうちインデックス(セットを選ぶ部分)に使うビット数はどれか。

  1. Aラインサイズで決まる6ビット
  2. Bライン数と同じだけのビット
  3. C0ビット
答えと解説を見る

正解:C. 0ビット

フルアソシアティブ方式では、どのデータもキャッシュ内のどの場所にでも置けるため、セットは全体で1つしかありません。セットを選ぶ必要がないのでインデックスは0ビットで、アドレスはオフセットとタグだけに分かれ、アクセスのたびにすべてのラインのタグと比べます。そのため比較器が多く必要で、大きなキャッシュには向かず、TLBなどの小さな構造に使われます。ラインサイズで決まるのはオフセットのビット数で、インデックスではありません。

  • A. ラインサイズで決まるのはオフセットのビット数です。
  • B. ライン数に合わせてビットが要るのはダイレクトマップのインデックスです。
  • C. 正しい。セットが1つしかないのでインデックスは不要です。
この分野を解く 分野ページへ

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

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