対象試験と出題頻度
ヒット率は、基本情報技術者・応用情報技術者で出題されるテーマです。
キャッシュメモリと主記憶の関係を問う計算問題として定番化しており、実効アクセス時間とセットで出題されるケースがほとんどです。
詳細をクリックして確認
基本情報技術者
応用情報技術者
★★★☆☆
ランクB(標準)覚えておくと有利
用語の定義
情報処理試験を勉強していると、「ヒット率って何の割合?どう計算するの?」と戸惑う場面が出てきます。
ヒット率(Hit Ratio)とは、一言で言うと
「CPUがデータを読みに行ったとき、キャッシュメモリに目的のデータが存在していた割合」
のことです。
イメージとしては、「デスクの引き出し(キャッシュ)に必要な書類が入っている確率」です。
引き出しに書類があればすぐ仕事に取りかかれますが、なければ倉庫(主記憶)まで取りに行く必要があり、その分だけ時間がかかります。
ヒット率とは、引き出しだけで済んだ回数の割合を数値化したものです。
📊 ヒット率の基本情報
| 項目 | 内容 |
|---|---|
| 英語名 | Hit Ratio(Cache Hit Rate) |
| 分野 | コンピュータシステム > メモリ |
| 値の範囲 | 0〜1(0%〜100%) |
| 関連用語 | 実効アクセス時間、キャッシュメモリ、主記憶、NFP(ミス率) |
解説
CPUは主記憶に比べて圧倒的に高速に動作します。毎回主記憶にアクセスすると、CPUがデータの到着を待つ時間がボトルネックになります。
この速度差を埋めるために、CPUと主記憶の間に高速・小容量のキャッシュが配置されています。
ヒット率は、このキャッシュがどれだけ有効に機能しているかを測る指標です。値が1(100%)に近いほどCPUは高速にデータを取得でき、システム全体の処理性能が向上します。
計算式と実効アクセス時間
ヒット率を h、キャッシュのアクセス時間を Tc、主記憶のアクセス時間を Tm とすると、実効アクセス時間 Ta は次の式で求まります。
📐 実効アクセス時間の公式
Ta = Tc × h + Tm × (1 − h)
Ta:実効アクセス時間 Tc:キャッシュのアクセス時間 Tm:主記憶のアクセス時間 h:ヒット率
この公式は「キャッシュにヒットする場合の時間」と「ヒットしなかった場合(ミス)の時間」を、それぞれの確率で加重平均したものです。ヒットしなかった確率 (1 − h) はミス率(NFP: Not Found Probability)と呼ばれます。
図解:ヒット率と実効アクセス時間の関係
具体的な数値で確認しましょう。キャッシュのアクセス時間を10ナノ秒、主記憶のアクセス時間を60ナノ秒とした場合、ヒット率ごとの実効アクセス時間は以下のようになります。
📊 ヒット率と実効アクセス時間(Tc=10ns, Tm=60ns)
| ヒット率 h | 計算過程 | 実効アクセス時間 Ta |
|---|---|---|
| 0.5(50%) | 10×0.5 + 60×0.5 | 35 ns |
| 0.8(80%) | 10×0.8 + 60×0.2 | 20 ns |
| 0.9(90%) | 10×0.9 + 60×0.1 | 15 ns |
| 0.95(95%) | 10×0.95 + 60×0.05 | 12.5 ns |
📈 ヒット率と実効アクセス時間の関係グラフ(Tc=10ns, Tm=60ns)
▲ ヒット率が上がるほど実効アクセス時間はキャッシュのアクセス時間(10ns)に近づく
逆算パターン:ヒット率を求める
試験では「実効アクセス時間が与えられてヒット率を逆算する」パターンも頻出です。公式を変形するだけで対応できます。
📐 ヒット率の逆算式
h = (Tm − Ta) ÷ (Tm − Tc)
例:Tc=10ns, Tm=60ns, Ta=15ns → h = (60−15) ÷ (60−10) = 45÷50 = 0.9
逆算式の導出過程を確認する(何となくで覚えたい人は折りたたみのまま)
元の公式から出発します。
Ta = Tc × h + Tm × (1 − h)
右辺を展開:Ta = Tc × h + Tm − Tm × h
hを含む項をまとめる:Ta = h × (Tc − Tm) + Tm
Tmを移項:Ta − Tm = h × (Tc − Tm)
両辺を (Tc − Tm) で割る:h = (Ta − Tm) ÷ (Tc − Tm)
分子・分母に −1 を掛けて整理:h = (Tm − Ta) ÷ (Tm − Tc)
では、この用語が試験でどのように出題されるか見ていきましょう。
💡 ヒット率の核心を3行で
・CPUがキャッシュからデータを取得できた割合(0〜1)
・実効アクセス時間 = Tc × h + Tm × (1 − h) の公式で計算に直結する
・逆算パターン h = (Tm − Ta) ÷ (Tm − Tc) も押さえておく
試験ではこう出る!
ヒット率の問題は、FE・APの科目A(旧午前)でキャッシュメモリの計算問題として繰り返し出題されています。
出題パターンは大きく2つに分かれます。
📊 過去問での出題実績
| 試験回 | 出題内容 | 問われたポイント |
|---|---|---|
| FE R6 科目A 問3 |
CPU X・Yのアクセス時間が異なる条件で処理時間が等しいとき、ヒット率を求める | ・2つのCPUの実効アクセス時間を等式にして方程式を解く ・正解は0.90 |
| AP R6春 午前 問10 |
Tc=10ns, Tm=60ns, Ta=15nsのとき、ヒット率を求める | ・公式に代入して方程式を解く ・正解は0.9 |
| FE H26春 午前 問10 |
上記AP R6春 問10と同一構成の問題 | ・FEとAPで同じ問題が流用される典型例 ・数値・選択肢もほぼ同一 |
| FE サンプル 問12 |
キャッシュの有無・ヒット率が異なる4構成を実効アクセス時間の短い順に並べる | ・公式を4パターン適用して大小比較する ・「キャッシュなし」は常にTmそのもの |
📝 IPA試験での出題パターン
パターン1:「ヒット率を求めよ」
キャッシュと主記憶のアクセス時間、実効アクセス時間が与えられ、ヒット率を逆算させる形式。公式に代入して方程式を解くだけだが、(1 − h) の部分を忘れて主記憶側の時間を加算し忘れるミスに注意。
パターン2:「実効アクセス時間を求めよ/比較せよ」
ヒット率が与えられ、実効アクセス時間を計算する形式。FEサンプル問12のように、複数の構成を比較させる応用問題もある。ここだけは確実に押さえてください。公式を覚えていれば得点源にできる問題です。
試験ではここまででOKです。キャッシュの置換アルゴリズム(LRU等)やライトスルー・ライトバックの違いまで同時に問われることはないので、深追いは不要です。
【確認テスト】理解度チェック
ここまでの内容を理解できたか、簡単なクイズで確認してみましょう。
Q. キャッシュメモリのアクセス時間が20ナノ秒、主記憶のアクセス時間が80ナノ秒、ヒット率が0.8のとき、実効アクセス時間として正しいものはどれか。
- A. 32ナノ秒
- B. 50ナノ秒
- C. 64ナノ秒
正解と解説を見る
正解:A
解説:
公式 Ta = Tc × h + Tm × (1 − h) に値を代入します。Ta = 20 × 0.8 + 80 × (1 − 0.8) = 16 + 16 = 32ナノ秒です。
選択肢Bの50ナノ秒は、キャッシュと主記憶のアクセス時間を単純に平均((20+80)÷2)した値であり、ヒット率を考慮していないため誤りです。選択肢Cの64ナノ秒は、主記憶のアクセス時間にヒット率を掛けた値(80×0.8=64)であり、公式の適用方法を間違えた計算結果です。
よくある質問(FAQ)
Q. ヒット率が1.0(100%)にならないのはなぜですか?
キャッシュは主記憶よりも容量がはるかに小さいため、主記憶上のすべてのデータを保持できません。CPUが初めてアクセスするデータや、キャッシュから追い出された古いデータを参照する際には必ずミスが発生します。そのため、現実のシステムではヒット率が100%になることはありません。一般的なCPUキャッシュのヒット率は90〜99%程度です。
Q. 2層キャッシュ(L1・L2)の場合、計算式はどうなりますか?
L1のヒット率を h1、L2のヒット率を h2 とすると、実効アクセス時間は「L1にヒットした場合」「L1でミスしL2にヒットした場合」「両方ミスして主記憶にアクセスする場合」の3パターンの加重平均になります。式は Ta = T1×h1 + T2×(1−h1)×h2 + Tm×(1−h1)×(1−h2) です。FE・APの科目A試験では1層キャッシュの計算が中心であり、2層キャッシュが出題されることは稀です。
Q. ヒット率とスループットは関係がありますか?
直接的な関係があります。ヒット率が高いほど実効アクセス時間が短くなり、CPUがメモリ待ちに費やす時間が減るため、単位時間あたりの処理件数(スループット)が向上します。ただし、スループットはCPUクロック数やI/O性能など他の要因にも依存するため、ヒット率だけで決まるものではありません。
Q. 「ヒット率」はキャッシュメモリ以外の文脈でも使いますか?
使います。Webブラウザのローカルキャッシュ、CDN(Content Delivery Network)のキャッシュ、データベースのバッファキャッシュなど、「手元に保持したデータで要求に応えられた割合」はすべてヒット率と呼ばれます。ただし、IPA試験で問われるのはCPUキャッシュメモリの文脈がほとんどです。