キャッシュメモリの実効アクセス時間の計算は、IPA 午前四択で繰り返し出題される定番です。公式は単純な重み付き平均ですが、最大のつまずきは『ヒット率とミス率の取り違え』『2 つのアクセス時間をどう重み付けするか』の 2 点です。ここを機械的に整理すれば、確実な得点源に変えられます。
出発点はヒット率とミス率です。ヒット率は『目的のデータが高速なキャッシュに入っていた割合』で 0〜1 で表します。逆に、キャッシュに無くて低速な主記憶を読みにいった割合がミス率で、ミス率 = 1 − ヒット率 です。ヒット率 0.9 ならミス率は 0.1。この『足して 1』の関係を最初に書き出しておくと、係数の取り違えを防げます。
本体は実効アクセス時間(平均アクセス時間)です。実効アクセス時間 = ヒット率 × キャッシュのアクセス時間 + ミス率 × 主記憶のアクセス時間 で求めます。速い経路と遅い経路を、それぞれの発生確率で重み付けして足し合わせた『重み付き平均』です。例えばヒット率 0.9・キャッシュ 10 ナノ秒・主記憶 100 ナノ秒なら、0.9 × 10 + 0.1 × 100 = 9 + 10 = 19 ナノ秒になります。
仕上げはヒット率を上げる効果の理解です。ヒット率が 1 に近づくほど実効アクセス時間はキャッシュ単体の速度に近づき、ヒット率が下がるほど主記憶の遅さに引きずられます。上の例でヒット率が 0.99 に上がれば、0.99 × 10 + 0.01 × 100 = 9.9 + 1 = 10.9 ナノ秒まで縮みます。なお問題によっては『ミス時はキャッシュを調べた後に主記憶へ行く』前提(ミスペナルティを上乗せ)で出題されることもあるので、足し合わせる時間が問題文のモデルに合っているかを必ず確認します。
練習問題: ヒット率 0.95・キャッシュのアクセス時間 20 ナノ秒・主記憶のアクセス時間 200 ナノ秒のとき、実効アクセス時間は何ナノ秒でしょうか(ヒント: まずミス率 = 1 − 0.95 を出す)。過去問AI の AI コパイロットに『この実効アクセス時間の問題の解き方を教えて』と聞くと、ヒット率の整理から重み付き平均まで手順がステップごとに表示されます。