基本情報のキャッシュメモリ|ヒット率と実効アクセス時間の計算

基本情報のキャッシュメモリとヒット率を学ぶイメージ

基本情報のキャッシュメモリのヒット率は、公式を見た瞬間に「どの数字をどこへ入れるのか」で迷いやすい分野です。キャッシュメモリ、主記憶、ヒット率、ミス率、実効アクセス時間という言葉が一度に出てくるので、最初は計算よりも問題文の読み取りで止まりがちですね。

この記事では、基本情報技術者試験で出やすいキャッシュメモリのヒット率を、用語の意味、公式、例題、逆算問題、表問題の順に整理します。丸暗記ではなく、なぜその式になるのかをつかむと、数字が少し変わっても対応しやすくなります。

この記事のポイント
  • キャッシュメモリと主記憶の役割がわかる
  • ヒット率とミス率の違いが整理できる
  • 実効アクセス時間の公式を例題で使える
  • 逆算問題と表問題の解き方まで確認できる
無料

基本情報技術者試験 過去問アプリ

本番形式で繰り返し解ける。スキマ時間に1問から

2,000問以上収録
無料で過去問を解く
目次

基本情報のキャッシュメモリとヒット率

CPUからキャッシュメモリと主記憶へアクセスする流れ

キャッシュメモリの役割

キャッシュメモリは、CPUと主記憶の間に置かれる高速なメモリです。CPUは処理がとても速い一方で、主記憶からデータを取りに行くには時間がかかります。その差をそのまま放置すると、CPUが待たされる時間が増えてしまいます。そこで、よく使うデータや近いうちに使いそうなデータを、主記憶より高速なキャッシュメモリに置いておきます。

基本情報の問題では、キャッシュメモリを「速いが容量が小さい場所」、主記憶を「遅いが容量が大きい場所」と考えると理解しやすいです。CPUがデータを読みたいとき、まずキャッシュメモリに目的のデータがあるかを考えます。あれば短い時間で取り出せます。なければ主記憶まで取りに行くため、時間が長くなります。

ここで大事なのは、キャッシュメモリは単なる暗記用語ではなく、平均時間を短くするための仕組みだという点です。問題文に「キャッシュメモリのアクセス時間」「主記憶のアクセス時間」「ヒット率」が並んでいたら、速い場合と遅い場合の平均を取る問題だと見抜けます。

キャッシュメモリはCPUに近い高速な一時置き場です。試験では、CPUと主記憶の速度差を埋める仕組みとして出題されることが多いです。

項目イメージ試験で見る数字
CPU処理する本体直接の計算対象外が多い
キャッシュメモリ速い一時置き場短いアクセス時間
主記憶大きい保管場所長いアクセス時間

より広くCPU性能の計算も合わせて見たい場合は、予約済みの基本情報のCPU性能計算と並べて読むと、時間・回数・平均の考え方がつながりやすくなります。

この前提を押さえると、キャッシュメモリの問題は「速い場所にあったか、遅い場所まで行ったか」を比べるだけになります。用語の暗記より、データの通り道をイメージする方が記憶に残りやすいです。

ヒット率とミス率の意味

ヒット率は、CPUが必要なデータを取りに行ったとき、そのデータがキャッシュメモリに存在する割合です。たとえばヒット率が0.8なら、10回のうち8回くらいはキャッシュメモリだけで済む、というイメージです。残りの2回はキャッシュメモリになく、主記憶へ取りに行く必要があります。

この「キャッシュメモリにない割合」がミス率です。ミス率は、基本的に 1 – ヒット率 で求めます。ヒット率が80%ならミス率は20%、ヒット率が0.9ならミス率は0.1です。問題では、ヒット率が百分率で出たり、小数で出たりします。ここを変換しないまま式に入れると、答えが大きくずれます。

私が最初に混乱しやすいと思うのは、「ヒット率が高いほど速い」という感覚と、「式では1 – ヒット率も使う」という手順が同時に出るところです。速い場合の割合がヒット率、遅い場合の割合がミス率です。つまり、平均時間は「速い時間にヒット率を掛ける」「遅い時間にミス率を掛ける」と考えれば自然です。

  • ヒット率はキャッシュメモリにデータがある割合
  • ミス率は主記憶へ行く割合
  • ヒット率 + ミス率 = 1
  • 80%は0.8、95%は0.95に直して使う

迷ったら、ヒット率は「速い方の割合」、ミス率は「遅い方の割合」と置き直すと、公式の意味がかなり読みやすくなります。

基本情報の選択肢では、0.90、90%、0.9のように表現が変わることがあります。どれも同じ意味ですが、式に入れるときは小数、答えるときは選択肢の表記に合わせるのが安全です。ここまで整理できれば、次の実効アクセス時間の公式に進めます。

この考え方は、問題を読むときの優先順位にも使えます。先にヒット率を見つけ、次にミス率を作り、最後にそれぞれの時間へ掛ける流れにすると、式を迷わず作れます。

実効アクセス時間の公式

実効アクセス時間は、キャッシュメモリを使ったときの平均的なアクセス時間です。基本情報でよく使う型は、キャッシュメモリのアクセス時間 × ヒット率 + 主記憶のアクセス時間 × (1 – ヒット率) です。速い場合と遅い場合を、それぞれ起こる割合で重み付けして足す式ですね。

たとえば、キャッシュメモリのアクセス時間が10ナノ秒、主記憶のアクセス時間が60ナノ秒、ヒット率が90%なら、90%の確率で10ナノ秒、10%の確率で60ナノ秒かかると考えます。式にすると、10 × 0.9 + 60 × 0.1 = 15ナノ秒です。単純な平均ではなく、起こりやすさを考えた平均になっています。

なお、問題文によっては「キャッシュミス時にキャッシュ確認時間を含めるか」が明示される場合もあります。基本情報の典型問題では、問題文や選択肢に合わせて上の形で処理することが多いですが、もし「ミスしたときはキャッシュに加えて主記憶にもアクセスする」といった説明があれば、その条件を優先してください。試験では問題文の条件が最優先です。

公式の見方

実効アクセス時間 = 速いアクセス時間 × 速い割合 + 遅いアクセス時間 × 遅い割合

速い割合がヒット率、遅い割合がミス率です。

公式だけを覚えると、数字が少し変わった瞬間に迷います。逆に「速い道と遅い道の加重平均」と理解しておけば、問題が「実効アクセス時間を求める」「ヒット率を求める」「複数の構成を比較する」のどれに変わっても、同じ考え方で解けます。基本情報の計算問題全般の考え方は、基本情報技術者試験の計算問題を攻略するコツでも整理しています。

公式の名前だけを見ると難しく感じますが、実体は「平均」です。キャッシュにある回数が多いほど速い時間の影響が強くなり、キャッシュにない回数が多いほど主記憶の遅さが効いてきます。

単位と百分率の変換

キャッシュメモリのヒット率計算では、単位変換で失点することがあります。アクセス時間はナノ秒で統一されていることが多いので、時間の単位はそのまま使える場合が多いです。一方で、ヒット率は「80%」と書かれていたら「0.8」に直して式へ入れます。80のまま掛けると、実効アクセス時間が不自然に大きくなります。

変換の基本は、百分率を100で割るだけです。70%は0.7、90%は0.9、95%は0.95です。逆に、答えが0.625と出た場合、百分率で答える問題なら62.5%です。選択肢が70%、80%のように整数の百分率で並んでいるときは、「最低限必要なヒット率」なのか「最も近い値」なのかを読み分けます。

もう一つ注意したいのは、不等号です。「実効アクセス時間を25ナノ秒以下にしたい」と書かれていたら、求めるヒット率はぴったりの値ではなく、条件を満たす最小値です。計算で62.5%以上と出て、選択肢に60%、70%、80%があるなら、60%では条件を満たせないので70%を選びます。この読み方は、過去問形式でよく効きます。

表記式で使う値ミス率
70%0.70.3
90%0.90.1
95%0.950.05
0.80.80.2

計算前に、問題文のヒット率を小数に直し、ミス率を横に書いておくと、式への代入ミスをかなり減らせます。

基本情報の科目Aでは、短時間で選択肢を絞る必要があります。単位変換に時間を取られないよう、70%、80%、90%、95%あたりは小数にすぐ変換できるようにしておくと安心です。ここができるだけで、キャッシュメモリの問題はかなり扱いやすくなります。

特に、百分率を小数にする作業は最初の数秒で済ませるのがおすすめです。式を書きながら変換しようとすると、80と0.8が混ざりやすく、見直しにも余計な時間がかかります。

よくある読み違い

キャッシュメモリのヒット率で多い読み違いは、ヒット率を主記憶の方に掛けてしまうことです。ヒット率は「キャッシュメモリにあった割合」なので、キャッシュメモリのアクセス時間に掛けます。主記憶のアクセス時間に掛けるのはミス率です。ここを逆にすると、ヒット率が高いほど遅くなるという不自然な式になります。

次に多いのは、1 – ヒット率を忘れることです。式に「主記憶のアクセス時間 × ヒット率」と入れてしまうと、速い場合と遅い場合の割合が同じになってしまいます。ヒット率が0.8なら、主記憶に行く割合は0.2です。問題文にミス率が直接書かれていなくても、自分で出す必要があります。

また、選択肢が近いときは、ざっくり感覚で選ぶと外しやすいです。たとえばキャッシュ10ナノ秒、主記憶60ナノ秒、ヒット率90%なら答えは15ナノ秒です。ヒット率がかなり高いので10に近づきますが、主記憶に行く10%の影響も残ります。「だいたい10に近いから10」とまではならない点を意識してください。

  • ヒット率を主記憶の時間に掛ける
  • 百分率を小数に直さず使う
  • ミス率を 1 – ヒット率で出さない
  • 以下・以上の条件を読み飛ばす

答えが不自然かどうかを見るのも有効です。ヒット率が高いなら、実効アクセス時間はキャッシュメモリの時間に近づくはずです。

この感覚を持っていると、計算結果の見直しが速くなります。主記憶のアクセス時間より大きい答えになったり、ヒット率が上がったのに遅くなったりしたら、式の置き方を疑いましょう。基本情報では、計算そのものよりも最初の式の作り方で差がつきます。

見直しでは、計算式そのものを最初から解き直すより、ヒット率を掛けた相手だけ確認するのが効率的です。キャッシュ時間にヒット率、主記憶時間にミス率が掛かっていれば、大きな方向性は合っています。

基本情報のキャッシュメモリのヒット率計算

実効アクセス時間とヒット率の計算問題を解く学習風景

公式に代入する手順

基本情報のキャッシュメモリ計算は、手順を固定するとかなり楽になります。まず、問題文からキャッシュメモリのアクセス時間、主記憶のアクセス時間、ヒット率を拾います。次に、ヒット率を小数へ直し、ミス率を 1 – ヒット率で出します。最後に、実効アクセス時間の公式へ代入します。

この順番を守る理由は、問題文の数字が似ていて混ざりやすいからです。キャッシュメモリの時間は短く、主記憶の時間は長いことが多いです。もし逆に置いてしまうと、答えが大きくずれます。代入前に「短い時間はキャッシュ、長い時間は主記憶」と声に出すくらいでも、ミスを減らせます。

式を立てるときは、いきなり暗算しない方が安全です。まず キャッシュ時間 × ヒット率 + 主記憶時間 × ミス率 の形を書き、数字を入れてから計算します。基本情報の本番では時間が限られていますが、式を一行書くことで見直しがしやすくなり、結果的に速く解けることが多いです。

STEP
数字を拾う

キャッシュメモリ、主記憶、ヒット率の3つを問題文から抜き出します。

STEP
割合を直す

百分率を小数に直し、ミス率を 1 – ヒット率 で出します。

STEP
公式に入れる

速い時間にヒット率、遅い時間にミス率を掛けて足します。

この手順は、単純な実効アクセス時間の問題だけでなく、ヒット率を逆算する問題や、複数構成を比較する問題にも使えます。最初に数字を整理するクセをつけると、表問題でも落ち着いて処理できます。

問題文に余計な説明が多いときも、見る数字はほぼ同じです。アクセス時間が二つ、割合が一つ、この三つを抜き出せればスタートできます。残りの文章は、条件や単位の指定として確認するくらいで十分です。

実効時間を求める例題

例題として、キャッシュメモリのアクセス時間が10ナノ秒、主記憶のアクセス時間が60ナノ秒、ヒット率が80%のときを考えます。まず、ヒット率80%を0.8に直します。ミス率は 1 – 0.8 なので0.2です。あとは、公式にそのまま入れます。

実効アクセス時間 = 10 × 0.8 + 60 × 0.2 です。計算すると、8 + 12 = 20ナノ秒になります。この答えは、キャッシュメモリの10ナノ秒よりは遅く、主記憶の60ナノ秒よりは速いです。ヒット率が80%なので、かなりキャッシュ寄りの時間になっていると確認できます。

ここで大切なのは、答えを出したあとに範囲を確認することです。実効アクセス時間は、基本的にはキャッシュメモリのアクセス時間と主記憶のアクセス時間の間に入ります。今回なら10から60の間です。もし100ナノ秒のような答えになったら、百分率を80のまま掛けていないか、式が逆になっていないかを見直します。

項目式での使い方
キャッシュ時間10ナノ秒10 × 0.8
主記憶時間60ナノ秒60 × 0.2
ヒット率80%0.8
ミス率20%0.2

実効アクセス時間を求める問題では、答えがキャッシュ時間と主記憶時間の間にあるかを最後に確認しましょう。

この例題のように、基本情報のキャッシュメモリ問題は「式を知っているか」だけでなく、「値を落ち着いて入れられるか」がポイントです。計算問題が苦手な人ほど、まずは簡単な数字で公式の動きを体で覚えるのが近道です。

慣れてきたら、ヒット率が変わると答えがどう動くかも見ておくと理解が深まります。ヒット率が80%から90%に上がれば、主記憶へ行く割合が減るので、実効アクセス時間はさらにキャッシュ時間へ近づきます。

ヒット率を逆算する例題

次は、実効アクセス時間からヒット率を逆算する問題です。キャッシュメモリのアクセス時間が10ナノ秒、主記憶のアクセス時間が50ナノ秒、実効アクセス時間を25ナノ秒以下にしたいとします。このとき、ヒット率をHとおいて式を作ります。

キャッシュメモリのヒット率を逆算する問題のイメージ

式は、10H + 50(1 – H) ≦ 25 です。展開すると、10H + 50 – 50H ≦ 25 なので、50 – 40H ≦ 25 となります。両辺を整理すると、25 ≦ 40H、つまり H ≧ 0.625 です。百分率に直すと62.5%以上ですね。

選択肢が50%、60%、70%、80%なら、62.5%以上を満たす最小の選択肢は70%です。ここで60%を選んでしまうと、実効アクセス時間は25ナノ秒以下になりません。「計算で出た値に一番近いもの」ではなく、「条件を満たす最低限のもの」を選ぶ問題だと分かります。

逆算問題の注意

「以下にしたい」「以上必要」と書かれている問題では、出た値そのものではなく、条件を満たす選択肢を選びます。

この逆算型は、令和の科目Aでも過去形式でもよく見かける形です。Hを置くことに抵抗がある場合は、ヒット率を0.8、0.9など選択肢から仮に入れて確認する方法もあります。ただし、選択肢を全部試すより、Hで式を立てた方が短く解けることが多いです。

公式を覚えた直後は、逆算問題が難しく見えるかもしれません。ですが、やっていることは「未知数をHにしただけ」です。速い時間にH、遅い時間に1 – Hを掛ける形は変わりません。ここを固定できれば、実効アクセス時間を求める問題と同じ流れで処理できます。

逆算では、展開後の符号にも注意してください。主記憶時間の方が大きいので、Hの係数がマイナスになる形がよく出ます。符号を反転させるときは、不等号の向きまで落ち着いて確認しましょう。

表問題を短く解くコツ

基本情報では、AからDの複数構成を表で示し、実効アクセス時間が短い順に並べる問題もあります。このタイプは、すべてを細かく解こうとすると時間がかかります。まず、キャッシュメモリがない構成は、主記憶のアクセス時間がそのまま実効アクセス時間になると見ます。キャッシュありの構成だけ、公式で平均を出します。

たとえば、構成Bがキャッシュ20ナノ秒、主記憶60ナノ秒、ヒット率80%なら、20 × 0.8 + 60 × 0.2 = 28ナノ秒です。構成Cがキャッシュ10ナノ秒、主記憶80ナノ秒、ヒット率70%なら、10 × 0.7 + 80 × 0.3 = 31ナノ秒です。キャッシュなしで主記憶50ナノ秒の構成があれば、そのまま50ナノ秒です。

このように、表問題は「キャッシュなしを先に確定」「キャッシュありだけ計算」「最後に小さい順へ並べる」と分けると速くなります。公式を1行ずつきれいに書くより、表の横に実効アクセス時間だけメモする方が実戦的です。公式を理解していれば、暗算で絞れる問題もあります。

構成条件実効アクセス時間
B20、60、80%28ナノ秒
C10、80、70%31ナノ秒
Dキャッシュなし、5050ナノ秒
Aキャッシュなし、7070ナノ秒

IPAの科目Aサンプル問題にも、キャッシュメモリの有無、アクセス時間、ヒット率を使って実効アクセス時間を比較する形式が出ています。公式だけでなく表の読み方も練習しておきたいところです。

公式の出典確認や本番形式の演習には、IPAの基本情報技術者試験 科目Aサンプル問題が役立ちます。実際の表問題に触れると、どの数字を拾うべきかがかなり見えやすくなります。

表問題では、計算結果を全部きれいに書く必要はありません。選択肢を消せればよいので、明らかに遅い構成を先に除外し、近いものだけ丁寧に計算するのも実戦的な解き方です。

基本情報のキャッシュメモリのヒット率まとめ

基本情報のキャッシュメモリのヒット率は、キャッシュメモリ、主記憶、ヒット率、ミス率、実効アクセス時間を一つの流れで理解する分野です。最初は用語が多く見えますが、実際の考え方はシンプルです。速いアクセスと遅いアクセスがあり、それぞれが起こる割合で平均を取ります。

まず、ヒット率はキャッシュメモリに目的のデータがある割合です。ミス率は 1 – ヒット率 です。実効アクセス時間は、キャッシュメモリのアクセス時間 × ヒット率 + 主記憶のアクセス時間 × ミス率で求めます。百分率は小数に直し、答えがキャッシュ時間と主記憶時間の間に入っているかを確認します。

逆算問題では、ヒット率をHと置いて同じ公式を使います。「以下」「以上」「最低限必要」という言葉が出たら、計算で出た値を満たす選択肢を選びます。表問題では、キャッシュなしの構成を先に処理し、キャッシュありの構成だけ公式で計算すると短く解けます。

  • ヒット率は速い方の割合
  • ミス率は 1 – ヒット率
  • 実効アクセス時間は加重平均
  • 逆算ではHを置いて同じ公式を使う
  • 表問題はキャッシュなしを先に確定する

科目A全体の進め方も整理したい場合は、基本情報技術者試験の科目A対策で、広い範囲の学習順を確認できます。キャッシュメモリのヒット率は、公式を一つ押さえるだけで得点源にしやすいので、最後は例題を何度か手で解いて定着させてください。

本番では、公式を書いてから数字を入れるだけで十分に戦えます。焦ったときほど、ヒット率とミス率を先に分けてから計算しましょう。

仕上げとしては、公式を見ずに一度だけ自分で式を書いてみるのがおすすめです。キャッシュ時間、主記憶時間、ヒット率を別の数字に変えても同じ形で解ければ、この分野はかなり安定します。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次