基本情報技術者 2013年 春期 午前(科目A) 問12
問題文
図に示す構成で、表に示すようにキャッシュメモリと主記憶のアクセス時間だけが異なり、他の条件は同じ2種類のCPU XとYがある。あるプログラムをCPU XとYでそれぞれ実行したところ、両者の処理時間が等しかった。このとき、キャッシュメモリのヒット率は幾らか。ここで、CPUの処理以外の影響はないものとする。

選択肢
ア:0.75
イ:0.90(正解)
ウ:0.95
エ:0.96
🔒 解説は解答すると表示されます
キャッシュのヒット率計算【午前解説】
正解の理由
問題では CPU X と Y は「キャッシュと主記憶のアクセス時間だけが異なり、他は同じ」とあります。したがって同じプログラムを実行するときの総処理時間が等しいということは、メモリアクセスに関わる平均アクセス時間 が等しいことを意味します。
平均アクセス時間はヒット率 を用いて次のように表せます。
CPU X と Y についてそれぞれ , を書くと
これらを等号で結べば
両辺を整理して
よって正解は イ(0.90)です。
解法ステップ
- 平均アクセス時間の一般式 を確認する。
- CPU X, Y それぞれについて与えられたアクセス時間を代入して , を求める。
- 「処理時間が等しい」→「平均アクセス時間が等しい」ので の方程式を立てる。
- 方程式を について解き、得られた値を 0〜1 の範囲で確認する。
選択肢別の誤答解説
- ア: 0.75
代入して比較すると ns、 ns で不一致。よって誤りです。 - イ: 0.90(正解)
代入すると ns、 ns で一致し、条件を満たします。 - ウ: 0.95
ns、 ns で不一致のため誤りです。 - エ: 0.96
ns、 ns で不一致のため誤りです。
よくある誤解
- ミスペナルティ(主記憶アクセス時間 − キャッシュアクセス時間)を使わずに、単純に差を取り違えて計算するミス。式を整理するとミスペナルティを使う方法でミスを減らせます。
- 「処理時間が等しい=ヒット率が等しい」と誤解すること。ヒット率自体は等しいとは限らず、ここでは同一プログラムなのでヒット率は同じだが、等式を立てるべきは平均アクセス時間です。
- 小数や単位(ナノ秒)の桁合わせを忘れて誤差を生む。計算は同一単位で行うことが必須です。
補足コラム
平均アクセス時間は別の形でも書けます。
ここで がミスペナルティ(miss penalty)です。今回の問題は「同じプログラム」「CPU の処理以外の影響はない」と明示されているため、メモリアクセスだけを比較すればよい典型問題です。実務ではキャッシュの効果は命令キャッシュ/データキャッシュやヒット率の分布、アクセスパターンに依存する点にも注意してください。
FAQ
Q. なぜ「処理時間が等しい=平均アクセス時間が等しい」になるのですか?
A. 問題文で「キャッシュと主記憶のアクセス時間だけが異なり、他は同じ」とされているため、CPU の演算時間やメモリアクセス頻度も同じであり、総処理時間差はメモリアクセスあたりの平均時間差に比例します。したがって総処理時間が等しければ平均アクセス時間も等しいと判断できます。
A. 問題文で「キャッシュと主記憶のアクセス時間だけが異なり、他は同じ」とされているため、CPU の演算時間やメモリアクセス頻度も同じであり、総処理時間差はメモリアクセスあたりの平均時間差に比例します。したがって総処理時間が等しければ平均アクセス時間も等しいと判断できます。
Q. ミス率(1−h)を直接求める方法は?
A. 同様に方程式を立てて を未知数として解くことでも可能です。今回の方程式を変形するとミス率は となります。
A. 同様に方程式を立てて を未知数として解くことでも可能です。今回の方程式を変形するとミス率は となります。
関連キーワード: キャッシュヒット率、平均メモリアクセス時間、ミスペナルティ、ヒット時間、ミス率、加重平均、メモリ階層最適化

\ せっかくなら /
基本情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

