メモリ階層と性能
アドレスが32ビット、容量32 KB、ラインサイズ64バイトのダイレクトマップ方式のキャッシュで、タグは何ビットになるか。
- A15ビット
- B19ビット
- 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ビットです。