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

選択肢
ア:0.75
イ:0.90(正解)
ウ:0.95
エ:0.96
🔒 解説は解答すると表示されます
キャッシュヒット率の算出【午前解説】
正解の理由
CPU X と CPU Y は同じプログラムを実行し、キャッシュと主記憶のアクセス時間だけが異なるとあるため、メモリアクセスごとの平均アクセス時間 が等しいと考えます。
平均アクセス時間はヒット率 を用いて と表されます。これを CPU X と CPU Y で等式にして解くと、ヒット率は となり、選択肢 イ が該当します。
平均アクセス時間はヒット率 を用いて と表されます。これを CPU X と CPU Y で等式にして解くと、ヒット率は となり、選択肢 イ が該当します。
解法ステップ
- 平均アクセス時間の式を立てる。一般に
- CPU X と CPU Y で平均時間が等しいので、 (単位はすべてナノ秒)
- 左辺・右辺を整理する:
- を解く:
したがってヒット率は (=90%)で、選択肢は イ です。
選択肢別の誤答解説
各選択肢を代入して CPU X と CPU Y の平均アクセス時間を計算すると差が出ます(単位:ns)。
- ア:
→ 等しくない(Y の方が遅い)。
- イ:
→ 等しい(正しい)。
- ウ:
→ 等しくない(X と Y の差が逆)。
- エ:
→ 等しくない。
よくある誤解
- 「キャッシュのアクセス時間だけ見れば良い」と考えてしまう:平均時間はヒット時とミス時の両方を重み付き平均する必要があります。
- ミスペナルティ(主記憶アクセス時間)を「追加時間」と誤解する:今回の表は「キャッシュアクセス時間」「主記憶アクセス時間」が絶対値で与えられており、重み付け平均で扱います。
- CPU 固有の処理時間差を無視できないと考える:問題文で「CPU以外の処理による影響はない」とされているため、メモリアクセス時間のみで比較します。
補足コラム
平均アクセス時間は別の形でも表せます:
この形から、ヒット率 は二つの平均アクセス時間が等しい条件で線形方程式になり、速やかに解けます。実システムでは「ヒット率=プログラムのアクセスパターン」に大きく依存するため、アルゴリズムやデータ配置の最適化でヒット率を高めることが性能向上に直結します。
この形から、ヒット率 は二つの平均アクセス時間が等しい条件で線形方程式になり、速やかに解けます。実システムでは「ヒット率=プログラムのアクセスパターン」に大きく依存するため、アルゴリズムやデータ配置の最適化でヒット率を高めることが性能向上に直結します。
FAQ
Q. ヒット率は CPU ごとに同じと見なして良いのですか?
A. 問題は「あるプログラムをCPU XとYでそれぞれ実行したところ、両者の処理時間が等しかった」とあり、同一プログラム・同一アクセスパターンと仮定しているため同じヒット率 を使います。
A. 問題は「あるプログラムをCPU XとYでそれぞれ実行したところ、両者の処理時間が等しかった」とあり、同一プログラム・同一アクセスパターンと仮定しているため同じヒット率 を使います。
Q. 「主記憶」の値はミスペナルティではないのですか?
A. 本問では主記憶アクセス時間が絶対値で与えられているため、そのまま重み付け平均に用います。ミスペナルティ表現(例:Tcache + (1-h)×miss_penalty)と整合させる場合は、miss_penalty = Tmem - Tcache を使って置き換え可能です。
A. 本問では主記憶アクセス時間が絶対値で与えられているため、そのまま重み付け平均に用います。ミスペナルティ表現(例:Tcache + (1-h)×miss_penalty)と整合させる場合は、miss_penalty = Tmem - Tcache を使って置き換え可能です。
関連キーワード: キャッシュメモリ、ヒット率、平均アクセス時間、ミス率、ミスペナルティ、アクセス時間、重み付き平均

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

