情報処理試験を勉強していると、「実効アクセス時間って何?ヒット率をかけて足すだけ?」と計算式だけ丸暗記してしまいがちです。この記事では、計算式の”意味”から試験での出題パターンまでを一気に整理します。

対象試験と出題頻度

実効アクセス時間は、基本情報技術者・応用情報技術者で出題されるテーマです。

キャッシュメモリのヒット率を用いた計算問題として定番化しており、数値を変えて繰り返し出題されています。

詳細をクリックして確認
対象試験:
基本情報技術者
応用情報技術者
出題頻度:
★★★☆☆
ランクB(標準)覚えておくと有利

用語の定義

実効アクセス時間(Effective Access Time)とは、一言で言うと

 「キャッシュメモリと主記憶が混在するシステムで、CPUがデータを1回取得するのに要する平均時間

のことです。

イメージとしては、コンビニと倉庫の使い分けにかかる平均移動時間です。

欲しい商品がコンビニ(キャッシュメモリ)にあれば数秒で手に入ります。

なければ遠くの倉庫(主記憶)まで取りに行くので時間がかかります。「何回かの買い物で、1回あたり平均どのくらいかかるか」を計算したものが実効アクセス時間です。

📊 実効アクセス時間の基本情報

項目 内容
英語名 Effective Access Time
別名 実効メモリアクセス時間、平均アクセス時間
関連技術 キャッシュメモリ、ヒット率、メモリ階層
単位 ナノ秒(ns)が一般的

解説

CPUは主記憶(メインメモリ)よりもはるかに高速に動作します。CPUが毎回主記憶にアクセスすると、データの到着を待つ時間がボトルネックになります。

この速度差を埋めるために、CPUと主記憶の間にキャッシュメモリという高速・小容量の記憶装置を配置します。CPUはまずキャッシュメモリを探し、目的のデータがあれば高速に取得し(ヒット)、なければ主記憶にアクセスします(ミス)。

計算公式

ヒットする確率(ヒット率)を h、キャッシュメモリのアクセス時間を Tc、主記憶のアクセス時間を Tm とすると、公式は次のとおりです。

実効アクセス時間の公式

実効アクセス時間 = Tc × hTm × (1 − h)

キャッシュにヒットした場合の時間  キャッシュにミスして主記憶にアクセスした場合の時間

「ヒットしたときの時間」と「ミスしたときの時間」を、それぞれの確率で重み付けして足し合わせるだけです。ここだけは確実に押さえてください。

具体例で計算してみる

キャッシュメモリのアクセス時間が10ns、主記憶のアクセス時間が60ns、ヒット率が0.9のシステムを考えます。

📝 計算ステップ

ステップ 計算内容 結果
ヒット時:Tc × h = 10 × 0.9 9 ns
ミス時:Tm × (1−h) = 60 × 0.1 6 ns
合計:① + ② 15 ns

キャッシュメモリがなければ毎回60nsかかるところを、ヒット率0.9のキャッシュを置くだけで平均15nsに短縮できる

図解:ヒット率と実効アクセス時間の関係

ヒット率が上がるほど実効アクセス時間はキャッシュメモリのアクセス時間に近づきます。

下の図は、先ほどの条件(Tc=10ns、Tm=60ns)でヒット率を変化させたときの値です。

📊 ヒット率と実効アクセス時間(Tc=10ns, Tm=60ns)

h = 0.0
60.0 ns
h = 0.5
35.0 ns
h = 0.8
20.0 ns
h = 0.9
15.0 ns
h = 0.95
12.5 ns
h = 1.0
10.0 ns

▲ ヒット率が1.0に近づくほど、キャッシュメモリのアクセス時間(10ns)に収束する

図解:CPUのデータ取得フロー

CPUがデータを取得する流れを図にすると、次のようになります。

図解:CPUのデータ取得フロー

CPUがデータを取得する流れを図にすると、次のようになります。

CPUのデータ取得フロー

CPU
キャッシュメモリに目的のデータがある?
YES(ヒット)
NO(ミス)

キャッシュからデータ取得

確率:h

所要時間:Tc(10ns)

主記憶からデータ取得

確率:1 − h

所要時間:Tm(60ns)

実効アクセス時間

Tc × h + Tm × (1 − h)

▲ 2つの経路の所要時間を、それぞれの確率で重み付けして合計する

もう少し詳しく知りたい方へ(折りたたみ)

2階層キャッシュ(L1/L2)の場合

実際のコンピュータでは、L1キャッシュ(1次)とL2キャッシュ(2次)の2階層構成が一般的です。この場合の計算式は次のように拡張されます。

Tc1 × h1 + Tc2 × (1−h1) × h2 + Tm × (1−h1) × (1−h2)

L1にヒットしなかったときだけL2を探し、L2にもなければ主記憶に行く、という3段階の加重平均です。ただし、IPA試験では1階層のキャッシュで出題されるのがほとんどなので、深追いは不要です。

では、この計算がどのように出題されるか見ていきましょう。

💡 実効アクセス時間の核心を3行で

・キャッシュメモリと主記憶が混在するシステムで、1回のアクセスに要する平均時間
・公式:Tc × h + Tm × (1 − h)
・ヒット率が高いほどキャッシュメモリのアクセス時間に近づく


試験ではこう出る!

実効アクセス時間は、FE・APの午前問題で計算問題として繰り返し出題されています。数値を変えた使い回しが多く、公式を確実に使えれば確実に得点できる分野です。

📊 過去問での出題実績

試験回 出題内容 問われたポイント
AP R6秋
午前 問10
キャッシュのアクセス時間が主記憶の1/30、ヒット率95%のとき実効アクセス時間は主記憶の約何倍か ・比率で求める変形パターン
・主記憶のアクセス時間を1と置く発想
AP R6春
午前 問10
主記憶60ns、キャッシュ10ns、実効アクセス時間15nsからヒット率を逆算 ・公式の変形(ヒット率を未知数にする)
・一次方程式を解く
FE 科目A
サンプル 問12
4つの構成(キャッシュ有無、アクセス時間、ヒット率が異なる)を実効アクセス時間の短い順に並べる ・キャッシュなし=主記憶のアクセス時間がそのまま実効値
・複数パターンを素早く計算する力
FE H26春
午前 問10
主記憶60ns、キャッシュ10ns、実効15nsからヒット率を求める ・AP R6春 問10と同一内容の流用
・FEとAPで同じ問題が出回る典型例

📝 IPA試験での出題パターン

パターン1:「実効アクセス時間を求めよ」
キャッシュのアクセス時間、主記憶のアクセス時間、ヒット率の3つが与えられ、公式に代入して計算する最も基本的な形式。単位(ナノ秒)をそろえるだけで正解にたどり着ける。

 

パターン2:「ヒット率を逆算せよ」
実効アクセス時間が与えられ、ヒット率を未知数として方程式を解く形式。AP R6春 問10がこの典型。公式を変形する一手間が加わるが、一次方程式なので落ち着いて処理すれば問題ない。

 

パターン3:「比率で求めよ」
AP R6秋 問10のように、主記憶のアクセス時間を1として比率で答えさせる形式。「1/30」のような分数が出ても、公式に代入する手順は同じ。

 

試験ではここまででOKです。2階層キャッシュの計算は出題実績がほぼないため、1階層の公式を確実に使えれば十分です。


【確認テスト】理解度チェック

ここまでの内容を理解できたか、簡単なクイズで確認してみましょう。


Q. キャッシュメモリのアクセス時間が20ns、主記憶のアクセス時間が80ns、ヒット率が0.8のとき、実効アクセス時間はいくらか。

  • A. 28ns ― ヒット時の時間(20×0.8=16)とミス時の時間(80×0.2=16)を加算して32nsとなるが、ヒット時はキャッシュ分を差し引いて28nsとなる。
  • B. 32ns ― キャッシュメモリのアクセス時間にヒット率を掛けた値と、主記憶のアクセス時間にミス率を掛けた値を合計する。20×0.8 + 80×0.2 = 16 + 16 = 32ns。
  • C. 50ns ― キャッシュメモリと主記憶のアクセス時間を単純平均する。(20+80) ÷ 2 = 50ns。

正解と解説を見る

正解:B

解説:
前述の公式に代入すると、20×0.8 + 80×(1−0.8) = 16 + 16 = 32ns です。

選択肢Aの「ヒット時にキャッシュ分を差し引く」という操作は公式に存在しません。ヒットしたらキャッシュのアクセス時間がそのままかかるだけです。選択肢Cの単純平均はヒット率を無視しており、キャッシュメモリの効果をまったく反映していません。


よくある質問(FAQ)

Q. 「実効アクセス時間」と「平均アクセス時間」は同じ意味ですか?

同じ意味です。IPA試験の過去問では「実効アクセス時間」「実効メモリアクセス時間」「平均アクセス時間」のいずれの表記も登場します。指す内容は同一で、計算公式も共通です。問題文の表記に惑わされず、同じ式で対処してください。

Q. ヒット率は実際にはどのくらいの値ですか?

現代のプロセッサのL1キャッシュでは0.90〜0.99程度が一般的です。試験問題でも0.8〜0.95あたりの値で出題されることが多く、現実のシステムに近い設定になっています。ヒット率が低い値(0.6など)で出題される場合は、ミス時のペナルティが大きくなることを強調する意図の問題です。

Q. キャッシュメモリがなければ実効アクセス時間はどうなりますか?

キャッシュメモリが存在しない場合、すべてのアクセスが主記憶に対して行われるため、実効アクセス時間=主記憶のアクセス時間になります。FE 科目Aサンプル問12では、キャッシュなしの構成も含めて並び替えさせる形式で出題されており、この理解が問われました。

Q. MIPS(命令実行性能)の計算と混同しそうですが、違いは何ですか?

MIPSは「CPUが1秒間に実行できる命令数(百万単位)」を表す性能指標であり、メモリアクセスの速度とは測定対象が異なります。実効アクセス時間は「メモリからデータを取得する平均所要時間」なので、計算に使う変数(ヒット率・アクセス時間)も公式もまったく別物です。試験ではどちらも午前の計算問題で出るため、公式を取り違えないよう注意してください。