L1,L2と2段のキャッシュをもつプロセッサにおいて,あるプログラムを実行したとき,L1キャッシュのヒット率が0.95,L2キャッシュのヒット率が0.6であった。
このキャッシュシステムのヒット率は幾らか。
ここでL1キャッシュにあるデータは全てL2キャッシュにもあるものとする。
正答4
解説
正解は4です。
2段のキャッシュをもつシステム全体のヒット率を求める問題です。
まずL1キャッシュを探し、L1でミスしたときにL2キャッシュを探すと考えます。
【計算】
L1でヒットする確率は0.95です。
L1でミスする確率は1−0.95=0.05です。
L1でミスしてL2でヒットする確率は、0.05×0.6=0.03です。
システム全体のヒット率は、0.95+0.03=0.98です。
【選択肢別解説】
1:× 0.57は0.95×0.6で、L1とL2の両方でヒットする確率のような値です。
全体のヒット率ではありません。
2:× 0.6はL2キャッシュ単独のヒット率で、L1でのヒットが考慮されていません。
3:× 0.95はL1キャッシュ単独のヒット率で、L1ミス後にL2でヒットする分が加わっていません。
4:○ L1のヒット0.95に、L1ミス後のL2ヒット0.03を加えた0.98が全体のヒット率です。
【ポイント】
ここでのL2のヒット率0.6は、L1でミスしたアクセスのうちL2でヒットする割合と読みます。
多段キャッシュでは「前の段でミスした分」に次の段のヒット率を掛けて足していきます。