データベーススペシャリスト 2018年 午前2 問22
問題文
キャッシュメモリのアクセス時間及びヒット率と、主記憶のアクセス時間の組合せのうち、実効アクセス時間が最も短くなるものはどれか。

選択肢
ア:
イ:
ウ:
エ:(正解)
🔒 解説は解答すると表示されます
実効アクセス時間の計算【午前2解説】
正解の理由
実効アクセス時間(EAT)は、キャッシュがヒットする確率とミスする確率で平均化した加重平均で求められます。各選択肢の計算をすると、最も短い値になるのは エ の組合せです。具体的には各選択肢の実効アクセス時間は次の通りです。
- ア:
- イ:
- ウ: (正しい値は29 nsです)
- エ:
これらを比較すると、実効アクセス時間が最も短いのは エ(26 ns)であり、したがって最適です。
解法ステップ
- 実効アクセス時間の公式を確認する。
ただし はヒット率(小数)、 はキャッシュのアクセス時間、 は主記憶のアクセス時間。 - 各選択肢のヒット率をパーセントから小数に変換する(例:70% → 0.7)。
- 上記の式に値を代入して計算する。
- 全選択肢の EAT を比較して最小のものを選ぶ。
選択肢別の誤答解説
- ア(キャッシュ10 ns, ヒット60%, 主記憶70 ns)
EAT = 34 ns。キャッシュは速いがヒット率が低いためミス時の遅い主記憶アクセスが多く影響し、EATは大きくなる。 - イ(キャッシュ10 ns, ヒット70%, 主記憶70 ns)
EAT = 28 ns。アよりヒット率が改善しているため EAT は小さくなるが、主記憶が70 ns と大きいのでさらに良い組合せ(エ)に及ばない。 - ウ(キャッシュ20 ns, ヒット70%, 主記憶50 ns)
EAT = 29 ns。キャッシュが遅め(20 ns)だが主記憶が速い(50 ns)。計算の結果は29 nsで、イ(28 ns)よりもわずかに遅い。ここでの計算ミス(30 ns とする)に注意し、正しくは29 nsであることを確認すること。 - エ(キャッシュ20 ns, ヒット80%, 主記憶50 ns)
EAT = 26 ns。ヒット率が高く、ミス発生時のコストも比較的低いため総合的に最短になる。
よくある誤解
- ヒット率をそのまま百分率のまま式に入れてしまう(70 として計算してしまう)。必ず小数(0.7)に変換する。
- 「キャッシュと主記憶のアクセス時間を単純に足す」と誤解する。実行時にはキャッシュヒット時は主記憶を参照しないため、加重平均(ヒット率に応じた平均)で計算する。
- 計算ミス(端数処理や掛け算の誤り)でわずかな差が逆転することがある。特に選択肢間の差が小さい場合は注意する。
補足コラム
EAT はキャッシュ速度(Tcache)とヒット率(h)のトレードオフで決まります。一般にキャッシュを高速化するとコストが増すが、ヒット率向上による効果で総EATが下がるケースもあります。閾値を求めるには不等式で比較できます。例えば選択肢A(T1,h1, M1)とB(T2,h2, M2)を比較する際は次を解きます。
これを整理すると、どの程度のヒット率差やアクセス時間差が必要かが明らかになります。
FAQ
Q. ヒット率はどのように定義しますか?
A. ヒット率はキャッシュ参照時に目的データがキャッシュ内に存在する割合です。通常はアクセスログやベンチマークで推定します。
A. ヒット率はキャッシュ参照時に目的データがキャッシュ内に存在する割合です。通常はアクセスログやベンチマークで推定します。
Q. ミス時の処理時間にキャッシュの時間は含めますか?
A. 問題設定により異なるが、ここでの定義は「キャッシュにアクセスしてヒットした場合の時間はキャッシュ時間のみ、ミスした場合はキャッシュアクセス時間を含めず主記憶のアクセス時間のみ」としている典型的な形式(与えられた選択肢の意味合いに合わせて計算)です。設問がキャッシュアクセス+主記憶アクセスの合算を要求する場合は式を読み替える必要があります。
A. 問題設定により異なるが、ここでの定義は「キャッシュにアクセスしてヒットした場合の時間はキャッシュ時間のみ、ミスした場合はキャッシュアクセス時間を含めず主記憶のアクセス時間のみ」としている典型的な形式(与えられた選択肢の意味合いに合わせて計算)です。設問がキャッシュアクセス+主記憶アクセスの合算を要求する場合は式を読み替える必要があります。
関連キーワード: キャッシュメモリ、実効アクセス時間、ヒット率、主記憶、アクセス時間

\ せっかくなら /
データベーススペシャリストを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

