キャッシュメモリとは(全体像)
キャッシュメモリとは、CPUと主メモリ(メインメモリ)の間に置く、高速で小容量のメモリのことだ。
なぜ必要かというと、主メモリは容量が大きいが、CPUから見ると少し遠くて遅い。そこで、よく使うデータを、CPUのすぐ近くにある速いメモリ(キャッシュ)にコピーしておくことで、待ち時間を減らし、処理を速くする。
倉庫と机でたとえると分かりやすい。主メモリは「大きいけれど遠い倉庫」、キャッシュは「小さいけれど手元にある引き出し」。よく使うものを引き出しに入れておけば、いちいち倉庫まで取りに行かなくてすむ。
ここで一番のポイント。キャッシュは「大きいほど良い」わけではない。速いメモリは値段が高いので、速さとコストのバランス(トレードオフ)で、容量が決められている。「キャッシュは、いくらでも大きくできる(大きいほど良い)」と思い込むと誤りになる。
詳しく:階層(L1・L2・L3)と、ヒット率
ここが心臓部。キャッシュの階層を表で押さえよう。
キャッシュメモリの階層
| 階層 | 速さ | 容量 | イメージ |
|---|---|---|---|
| L1(1次) | 最も高速 | 最も小さい | 手元のペン立て |
| L2(2次) | L1より低速 | L1より大きい | 机の引き出し |
| L3(3次) | L2より低速 | さらに大きい | 部屋の棚(全コアで共有) |
キャッシュは、L1・L2・L3の階層になっている。L1が最も高速で小容量、番号が大きくなるほど(L2→L3)、低速だが大容量になる。ここで注意。L1が最上位(最も速い)だ。「L1が一番下(遅い)」と思い込むと誤りになる。
そして、性能を左右するのがヒット率。これは、CPUが必要としたデータが、キャッシュにある割合のこと。ヒット率が高いほど、主メモリまで取りに行く回数が減り、処理が速くなる。
わかりやすく言い換えると
身近なたとえで整理しよう。
キャッシュメモリは、「よく使うものを入れておく、手元の引き出し」のイメージ。遠い倉庫(主メモリ)まで行かずにすむので、速くなる。
階層(L1・L2・L3)は、「近くて速い小さな置き場(L1)から、少し遠くて大きい置き場(L3)まで」の段階。要するに、L1が一番近くて速い。
ヒット率は、「ほしいデータが、手元の引き出しにある確率」。つまり、ヒット率が高いほど、待ち時間が減って速くなる。
試験のツボ
🔴 一番出る:キャッシュメモリの役割
①CPUと主メモリの間にある、高速で小容量のメモリ
②よく使うデータを近くに置いて、処理を速くする
🔴 次に出る:階層(L1・L2・L3)
①L1が最も高速で小容量(L1が最上位)
②番号が大きいほど(L2→L3)低速だが大容量
🟡 押さえると安定:ヒット率
①必要なデータがキャッシュにある割合
②ヒット率が高いほど、処理が速くなる
よくある間違い
①「L1キャッシュは、いちばん遅い(最下位の)キャッシュだ」→ ✗ L1が最も高速で、最上位。番号が大きいほど(L2→L3)低速だが大容量。
②「キャッシュメモリは、大きければ大きいほど良い」→ ✗ 速いメモリは高価。速さとコストのバランス(トレードオフ)で容量が決まる。
③「ヒット率が低いほど、処理が速くなる」→ ✗ 逆で、ヒット率が高いほど、主メモリへ取りに行く回数が減って速くなる。
試験での出題パターン
実際の問題でたしかめてみよう。
オリジナル問題1(キャッシュメモリの役割)
キャッシュメモリに関する次の記述のうち、最も適切なものはどれか。
- CPUと主メモリの間にある、高速で小容量のメモリのことである
- 社員の出退勤を記録して、毎月の給与を計算するためのしくみだ
- 取引先へ毎月の請求書を郵送する、決まった事務作業のことを指す
- 完成したシステムを宣伝して、より多く売るための広告活動である
解答は 1 だよ!
キャッシュメモリは、CPUと主メモリの間にある、高速で小容量のメモリなんだよ!よく使うデータを近くに置いて、処理を速くするんだね!
選択肢2は給与計算、選択肢3は請求書の事務、選択肢4は広告で、どれも違うよ!
| 選択肢 | 判定 | 理由 |
|---|---|---|
| 1 | ✓ | CPUと主メモリの間の高速小容量メモリで正しい |
| 2 | ✗ | 給与計算のしくみではない |
| 3 | ✗ | 請求書の事務の話 |
| 4 | ✗ | 広告活動ではない |
オリジナル問題2(階層)
キャッシュの階層に関する次の記述のうち、最も適切なものはどれか。
- 社員の給与を計算するときだけ、階層が分かれるとされているものだ
- 取引先へ請求書を郵送するときだけ、階層が分かれるとされている
- L1が最も高速で小容量、番号が大きいほど低速だが大容量である
- L1がいちばん遅く、番号が大きいほど高速になるとされているのだ
解答は 3 だよ!
キャッシュは、L1が最も高速で小容量、番号が大きいほど低速だが大容量なんだよ!L1が最上位(一番速い)なんだね!
選択肢1の給与、選択肢2の請求書、選択肢4の「L1がいちばん遅い」は、いずれも違うよ!
| 選択肢 | 判定 | 理由 |
|---|---|---|
| 1 | ✗ | 給与計算で分かれるのではない |
| 2 | ✗ | 請求書で分かれるのではない |
| 3 | ✓ | L1が最速・番号が大きいほど大容量で正しい |
| 4 | ✗ | L1が最も高速 |
オリジナル問題3(ヒット率)
キャッシュのヒット率に関する次の記述のうち、最も適切なものはどれか。
- 社員の給与の計算しだいで、ヒット率が決まるとされているものだ
- 必要なデータがキャッシュにある割合で、高いほど処理が速くなる
- 取引先への請求書の枚数しだいで、ヒット率が決まるとされている
- ヒット率が低いほど、処理が速くなるものだとされているのである
解答は 2 だよ!
ヒット率は、必要なデータがキャッシュにある割合で、高いほど処理が速くなるんだよ!主メモリまで取りに行く回数が減るからなんだね!
選択肢1の給与、選択肢3の請求書、選択肢4の「低いほど速い」は、いずれも違うよ!
| 選択肢 | 判定 | 理由 |
|---|---|---|
| 1 | ✗ | 給与計算で決まるのではない |
| 2 | ✓ | ほしいデータがある割合・高いほど速いで正しい |
| 3 | ✗ | 請求書の枚数で決まるのではない |
| 4 | ✗ | 高いほど速くなる |
まとめ
押さえどころ
- 🔴 キャッシュメモリ = CPUと主メモリの間にある、高速で小容量のメモリ。よく使うデータを近くに置いて速くする。
- 🔴 階層(L1・L2・L3) = L1が最も高速で小容量(最上位)。番号が大きいほど低速だが大容量。
- 🟡 ヒット率 = 必要なデータがキャッシュにある割合。高いほど、処理が速くなる。
次に学ぶ
- CPU(中央処理装置) ── コンピュータの頭脳。キャッシュは、そのCPUのすぐ近くにある高速メモリ。
- 主メモリ(メインメモリ) ── データやプログラムを置く場所。キャッシュは、ここからよく使うデータをコピーしておく。
執筆: SikakuQuest編集部