A~Dを,主記憶の実効メモリアクセス時間が短い順に並べたものはどれか。
(表)/ |キャッシュメモリ有無|キャッシュメモリアクセス時間(ナノ秒)|キャッシュメモリヒット率(%)|主記憶アクセス時間(ナノ秒)/A|なし|-|-|15/B|なし|-|-|30/C|あり|20|60|70/D|あり|10|90|80
正答2
解説
正解は2です。
キャッシュメモリがある場合の実効メモリアクセス時間は、ヒット率で重み付けした平均で求めます。
キャッシュがない場合は、主記憶アクセス時間がそのまま実効アクセス時間です。
【計算】
実効アクセス時間 = キャッシュアクセス時間 × ヒット率 + 主記憶アクセス時間 × (1 - ヒット率) です。
A はキャッシュなしなので15ナノ秒です。
B はキャッシュなしなので30ナノ秒です。
C は 20 × 0.6 + 70 × 0.4 = 12 + 28 = 40ナノ秒です。
D は 10 × 0.9 + 80 × 0.1 = 9 + 8 = 17ナノ秒です。
短い順に並べると、A(15)、D(17)、B(30)、C(40)です。
【選択肢別解説】
1:× A、B、C、Dは表の順番のままです。
Cは40ナノ秒で最も遅く、Dは17ナノ秒でBより速いので誤りです。
2:○ 計算結果の短い順 A、D、B、C と一致します。
3:× C、D、A、Bは、キャッシュがある方が必ず速いと考えた並びです。
Cはヒット率が60%と低く、40ナノ秒かかります。
4:× D、C、A、Bも、キャッシュの有無だけで判断した誤りです。
DはAの15ナノ秒より遅く、Cは最も遅くなります。
【ポイント】
キャッシュがあってもヒット率が低いと、実効アクセス時間は長くなります。
ヒット率をかけるのはキャッシュ側、(1 - ヒット率) をかけるのは主記憶側です。