最終更新日:2026年8月19日
fe fe-technology computer-architecture memory
まず結論
キャッシュメモリは、CPUがよく使うデータや命令を一時的に保存し、主記憶へのアクセス回数を減らす高速なメモリです。
基本情報技術者試験では、まず次の3点を押さえると選択肢を切りやすくなります。
- CPUと主記憶の速度差を埋める
- キャッシュミス時は、主記憶から必要なデータをキャッシュへ読み込む
- キャッシュと主記憶の両方へ書く → ライトスルー、あとで主記憶へ反映 → ライトバック
キャッシュメモリは、主記憶の容量不足を補う仕組みでも、磁気ディスクから直接CPU用キャッシュへデータを読み込む仕組みでもありません。
直感的な説明
CPUを作業する人、主記憶を遠くにある資料棚、キャッシュメモリを机の上だと考えます。
遠くの資料棚 = 主記憶
机の上 = キャッシュメモリ
作業する人 = CPU
必要な資料が机の上にあれば、すぐに使えます。これがキャッシュヒットです。
机の上になければ、資料棚から必要な資料を持ってきて机の上に置き、その後に使います。これがキャッシュミスです。
キャッシュヒット
→ キャッシュにある
→ すぐ使える
キャッシュミス
→ キャッシュにない
→ 主記憶からキャッシュへ読み込む
→ CPUが利用する
一度読み込んだデータは近いうちに再び使われる可能性があるため、キャッシュへ残しておく意味があります。
定義・仕組み
キャッシュメモリは、CPUと主記憶の速度差を埋めるために使われます。
CPU
↓
キャッシュメモリ
↓
主記憶
CPUは高速に動作しますが、主記憶へのアクセスには比較的時間がかかります。そこで、よく使うデータや命令を高速なキャッシュメモリへコピーして保持します。
キャッシュヒット
CPUが必要とする内容がキャッシュメモリにある場合を、キャッシュヒットといいます。
CPUがデータを要求
→ キャッシュメモリにある
→ キャッシュから読み出す
主記憶まで取りに行かなくてよいため、高速に処理できます。
キャッシュミス
必要な内容がキャッシュメモリにない場合を、キャッシュミスといいます。
CPUがデータを要求
→ キャッシュメモリにない
→ 主記憶から必要なデータを読み出す
→ キャッシュメモリへ読み込む
→ CPUが利用する
実際のキャッシュでは、必要な1バイトだけではなく、近くのデータを含む一定のブロック(キャッシュライン)単位で転送するのが基本です。
FE試験では、細かな実装よりも、キャッシュミスなら「主記憶 → キャッシュ」という方向を押さえることが重要です。
通常、この処理をアプリケーションプログラムが明示的に行うのではなく、キャッシュ制御の仕組みが処理します。
局所性
キャッシュメモリが効果を発揮する背景には、プログラムの局所性があります。
| 種類 | 意味 |
|---|---|
| 時間的局所性 | 一度使ったデータや命令は、近いうちに再び使われやすい |
| 空間的局所性 | ある場所を使うと、その近くの場所も使われやすい |
ループ処理では同じ命令を繰り返すため、時間的局所性があります。配列を順番に読む処理では、近くのデータを続けて使うため、空間的局所性があります。
ライトスルー方式
ライトスルー(write through)は、CPUがデータを書き換えたときに、キャッシュと主記憶の両方を更新する方式です。
CPUが書込み
↓
キャッシュ更新
↓
主記憶も更新
主記憶の内容を最新に保ちやすい一方、主記憶への書込み回数は増えます。
ライトバック方式
ライトバック(write back)は、CPUがデータを書き換えたときに、まずキャッシュだけを更新する方式です。
主記憶への反映は、キャッシュブロックが入れ替えられるときなど、後のタイミングで行います。
CPUが書込み
↓
キャッシュだけ更新
↓
後で主記憶へ反映
主記憶への書込み回数を減らせる一方、管理はライトスルーより複雑になります。
| 方式 | 書込み時 | 主記憶への反映 |
|---|---|---|
| ライトスルー | キャッシュと主記憶を更新 | その都度 |
| ライトバック | まずキャッシュだけ更新 | 後で反映 |
SRAMとDRAM
一般に、キャッシュメモリには高速なSRAMが使われ、主記憶には大容量化しやすいDRAMが使われます。
| 比較 | SRAM | DRAM |
|---|---|---|
| 主な用途 | キャッシュメモリ | 主記憶 |
| 速度 | 高速 | SRAMより低速 |
| 容量 | 小さめ | 大きくしやすい |
| 価格 | 高い | 比較的安い |
| リフレッシュ | 不要 | 必要 |
SRAMの特徴は、SRAMとは?リフレッシュ不要で高速なキャッシュメモリで詳しく整理しています。
このテーマは、基本情報技術者試験の「コンピュータ構成要素」や「メモリ」と関係する内容です。公式の出題範囲やシラバスは、IPA:基本情報技術者試験から確認できます。
科目Aでどう出る?
科目Aでは、キャッシュメモリの役割・ヒット/ミス・書込み方式を問う問題が出ます。
判断軸1:何の速度差を埋める?
キャッシュメモリが埋めるのは、基本的にCPUと主記憶の速度差です。
「主記憶の容量不足を補う」という説明は、仮想記憶の方向です。
判断軸2:ライトスルーとライトバック
キャッシュと主記憶を同時に更新
→ ライトスルー
キャッシュだけ更新し、あとで主記憶へ反映
→ ライトバック
特に、「ブロックの入替え時に主記憶へ書き戻す」という表現があれば、ライトバックを疑います。
判断軸3:キャッシュミス時のデータの流れ
キャッシュミスの問題では、どこからどこへ転送するかを見ると切りやすくなります。
| 状況 | データの流れ |
|---|---|
| キャッシュヒット | キャッシュ → CPU |
| キャッシュミス | 主記憶 → キャッシュ → CPU |
| CPU用キャッシュへの読み込み | 主記憶 → キャッシュ |
| ディスクキャッシュ | 補助記憶装置と主記憶の間で使われる別の仕組み |
試験中は、次のように短く判断できます。
CPU用キャッシュがミス
→ 主記憶からキャッシュへ
磁気ディスクからCPU用キャッシュへ直接読み込む、キャッシュから磁気ディスクへ書き込むといった説明は切りやすい誤答です。
また、「キャッシュミスすると割込みが発生し、アプリケーションプログラムが主記憶から転送する」という説明も不適切です。
判断軸4:TLB・MMU・主記憶と混同しない
「高速化」という言葉だけでキャッシュメモリを選ばず、何を高速化・管理するのかを見ます。
| 用語 | 主な役割 | 問題文で注目する言葉 |
|---|---|---|
| キャッシュメモリ | CPUと主記憶の速度差を埋める | CPU、主記憶、速度差、再アクセス |
| TLB | アドレス変換を高速化する | 仮想アドレス、物理アドレス、アドレス変換 |
| MMU | 仮想記憶やアドレス変換を管理する | メモリ管理、ページング、アドレス変換 |
| 主記憶 | 実行中のプログラムやデータを保持する | プログラム、データ、記憶 |
平均アクセス時間
ヒット率や平均アクセス時間の計算問題もあります。
平均アクセス時間
= ヒットした場合の時間
+ ミスした場合の時間
具体的な計算は、キャッシュメモリのヒット率とは?平均アクセス時間の計算で整理しています。
どんな場面で使う?
キャッシュメモリは、CPUの処理速度を生かすために使われます。
同じ命令を何度も実行するループ処理では、命令がキャッシュに残りやすく、再アクセスを高速化できます。
同じ命令を繰り返す
→ キャッシュヒットしやすい
→ 主記憶へのアクセスが減る
配列を順番に処理する場合も、近くのデータをブロック単位で読み込むことでキャッシュが働きやすくなります。
実際のCPUでは、L1・L2・L3のように複数段階のキャッシュを持つ構成もあります。
FE試験では製品仕様よりも、高速だが小容量の記憶をCPUと主記憶の間に置いて、平均アクセス時間を短くするという役割を押さえます。
よくある誤解・混同
キャッシュと仮想記憶の違い
キャッシュ
→ CPUと主記憶の速度差を埋める
仮想記憶
→ 主記憶だけでは足りないメモリ空間を補う
「速度差」と「容量」を混同しないようにします。
CPU用キャッシュとディスクキャッシュを混同しない
どちらも「キャッシュ」という名前ですが、位置と目的が違います。
CPU用キャッシュ
→ CPUと主記憶の間
→ CPUから主記憶へのアクセスを高速化
ディスクキャッシュ
→ 主記憶と補助記憶装置の間
→ ディスク入出力を高速化
したがって、CPU用キャッシュのミスで磁気ディスクから直接CPU用キャッシュへ転送するとは考えません。
キャッシュとTLBの違い
キャッシュメモリ
→ よく使うデータや命令を保持
TLB
→ アドレス変換の結果を保持
問題文に「仮想アドレス」「物理アドレス」「アドレス変換」が出てきたら、TLBを疑います。
キャッシュミスはアプリケーションの割込み処理ではない
キャッシュミス時には主記憶からデータを読み込みますが、通常のキャッシュミスをアプリケーション側の割込み処理で対応するとは考えません。
ライトスルーとライトバックを逆にしない
| 誤解 | 正しい理解 |
|---|---|
| ライトスルーはキャッシュだけ更新する | 主記憶もその都度更新する |
| ライトバックは主記憶も毎回更新する | まずキャッシュだけ更新し、後で書き戻す |
キャッシュとバッファの違い
キャッシュ
→ 同じデータの再利用を高速化する
バッファ
→ 処理速度や転送単位の違いを調整する
試験では、「再利用」「再アクセス」「同じデータ」という表現があればキャッシュを疑います。
確認問題(FE試験対策)
CPUが必要とするデータがキャッシュメモリに存在しなかった。このとき、CPU用キャッシュの制御として最も適切なものはどれか。
- ア. キャッシュメモリから必要なデータを磁気ディスクへ転送する
- イ. 主記憶から必要なデータをキャッシュメモリへ読み込む
- ウ. 主記憶から必要なデータを削除し、補助記憶へ移動する
- エ. ディスクキャッシュからCPU用キャッシュへ直接転送する
▶ クリックして答えと解説を見る(ここを開く)
正解:イ
CPU用キャッシュに必要なデータがないキャッシュミスでは、主記憶から必要なデータをキャッシュへ読み込みます。
主記憶
↓
キャッシュメモリ
↓
CPU
👉 判断ポイント
CPU用キャッシュがミスしたら「主記憶 → キャッシュ」と覚えると、転送方向の選択肢を切りやすくなります。
まとめ(試験直前用)
- キャッシュメモリは CPUと主記憶の速度差を埋める
- データがある → キャッシュヒット、ない → キャッシュミス
- キャッシュミスでは 主記憶 → キャッシュ → CPU
- 磁気ディスクとCPU用キャッシュを直接結び付けない
- キャッシュと主記憶の両方へ書く → ライトスルー
- キャッシュだけ更新し、あとで主記憶へ書く → ライトバック
- アドレス変換の高速化はTLB、容量不足を補うのは仮想記憶