正解は イ
キャッシュメモリを考慮した実効アクセス時間の計算問題です。実効アクセス時間は、キャッシュがある場合「キャッシュのアクセス時間×ヒット率+主記憶のアクセス時間×(1−ヒット率)」で計算し、キャッシュがない場合は主記憶のアクセス時間そのものです。各システムを計算すると、A はキャッシュなしで主記憶15ナノ秒なので15ナノ秒。B も同様に30ナノ秒。C は 20×0.6+70×(1−0.6) = 12+28 = 40ナノ秒。D は 10×0.9+80×(1−0.9) = 9+8 = 17ナノ秒です。短い順に並べると A(15)< D(17)< B(30)< C(40)となり、イが正解です。この問題の面白い点は、キャッシュを搭載した C(40ナノ秒)がキャッシュなしの B(30ナノ秒)より遅いことです。ヒット率が低い(60%)と、遅い主記憶(70ナノ秒)へのアクセスが頻発し、キャッシュの効果が薄れてしまいます。「キャッシュがあれば必ず速い」という思い込みを揺さぶる、計算の正確さを試す良問です。
実効アクセス時間=キャッシュ時間×ヒット率+主記憶時間×(1−ヒット率)。キャッシュ搭載でもヒット率が低ければ遅いことがある。全部計算してから整列方向(短い順/長い順)を確認。