ITパスポート 2014年 春期 問65
問題文
CPUのキャッシュメモリに関する記述のうち、適切なものはどれか。
選択肢
ア:1次キャッシュには、2次キャッシュよりも低速なメモリが使われる。
イ:1次キャッシュは演算処理の高速化のために使われ、2次キャッシュは画像描画の高速化のために使われる。
ウ:1次キャッシュは最初にアクセスされ、2次キャッシュは1次キャッシュにデータがないときにアクセスされる。(正解)
エ:1次キャッシュは主記憶アクセスの高速化のために使われ、2次キャッシュは仮想記憶の実現のために使われる。
🔒 解説は解答すると表示されます
CPUのキャッシュメモリに関する記述【ITパスポート 解説】
正解の理由
まず用語をかんたんに説明します。CPU(中央処理装置:コンピュータで計算や命令の実行を行う装置)には、処理を速くするために「キャッシュメモリ(CPU 内外にある高速な小容量メモリ)」が階層的に使われます。L1(L1=Level 1:一次)キャッシュは最も小さくて最も高速、L2(L2=Level 2:二次)はL1より大きくてやや遅い、というのが基本です。
この問題で正しいのは、最初にアクセスされるのが一次キャッシュで、一次にデータがなければ二次キャッシュにアクセスする、という内容を述べた選択肢です。つまり、まずL1(一次)を探し、なければL2(二次)を使う、という階層的なアクセス順が正しいため、ウが適切です。
解法ステップ
- 「キャッシュの役割」を思い出す:CPUの処理を速くするために、主記憶(主記憶=RAM:Random Access Memory=作業用の記憶領域)へのアクセス回数を減らすために使う小さな高速メモリである。
- 「階層と速度の関係」を確認する:一般にL1(一次)が最速・最小、L2(二次)がそれより大きくて遅い。
- 問文と選択肢を照合する:「最初にアクセスされるか」「何のために使われるか」が正しいかを見分ける。
- 不適切な特徴(特定用途や仮想記憶の実現など)が書かれている選択肢を除外する。
実務イメージ:CPUがデータを欲しがる→まずL1を調べる(ヒットなら即使用)→見つからなければL2を調べる(L2でも見つからなければ主記憶へ)という順序です。これがウの根拠です。
選択肢別の誤答解説
-
ア: 「1次キャッシュには、2次キャッシュよりも低速なメモリが使われる。」
- 誤りです。実際は逆で、1次キャッシュ(L1)の方が2次(L2)より高速で、容量は小さいのが普通です。したがって速度の記述が逆になっています。
-
イ: 「1次キャッシュは演算処理の高速化のために使われ、2次キャッシュは画像描画の高速化のために使われる。」
- 誤りです。キャッシュは「用途ごとに分けて使う」ものではありません。演算データや画像データなど、CPUが扱う様々なデータや命令のアクセスを高速化するために階層的に使われます。特定の処理(画像描画など)専用ではありません。
-
ウ: 「1次キャッシュは最初にアクセスされ、2次キャッシュは1次キャッシュにデータがないときにアクセスされる。」
- 正しい記述です。L1が最優先で参照され、L1ミス(データが無い)ならL2が参照されます。これが基本のキャッシュ階層動作です。
-
エ: 「1次キャッシュは主記憶アクセスの高速化のために使われ、2次キャッシュは仮想記憶の実現のために使われる。」
- 誤りです。確かにキャッシュは主記憶(RAM)へのアクセスを減らして高速化しますが、仮想記憶(仮想記憶=virtual memory:主記憶容量を補うためにハードディスク等を使う仕組み)の実現は主にページングやページテーブルなどの仕組みによります。L2が特に仮想記憶用という役割はありません。
よくある誤解
- 「数字が大きいキャッシュほど高速」:L2やL3の数字が大きいと速いと思いがちですが、数字は階層を示すだけで、通常はL1が最速、L2はやや遅い、L3はさらに遅い(ただし容量は増える)という点を混同しないこと。
- 「キャッシュは用途別に分かれている」:描画専用や計算専用のキャッシュがあるわけではなく、CPUが必要とする命令やデータを高速に渡すために共通で使われます。
- 「キャッシュと仮想記憶を同じものと考える」:役割が異なります。キャッシュはCPUへの高速データ供給、仮想記憶はメモリ容量を論理的に増やす仕組みです。
補足コラム
- キャッシュの場所:最近のCPUではL1・L2はCPUコア内部(オンチップ)にあります。L3(Level 3:三次)も多くはコア間で共有され、さらに大きく遅めのキャッシュです。
- サイズと速度のトレードオフ:高速なメモリは高価なのでL1は小さく、L2/L3は容量を増やしつつ速度を下げてバランスを取ります。
- キャッシュの制御:通常はハードウェアが自動で管理し、プログラムが意識する必要はほとんどありません(透明に動作します)。ただし一部の高性能用途ではキャッシュの挙動を意識した最適化が行われます。
FAQ
Q1: キャッシュとRAM(主記憶)の違いは何ですか?
A1: キャッシュはCPUに近い高速・小容量メモリで、CPUの待ち時間を減らすために使います。RAMは作業用の大容量メモリで、速度はキャッシュより遅いですが容量は大きいです。
A1: キャッシュはCPUに近い高速・小容量メモリで、CPUの待ち時間を減らすために使います。RAMは作業用の大容量メモリで、速度はキャッシュより遅いですが容量は大きいです。
Q2: L1に入らないデータは必ずL2に入るのですか?
A2: L1ミスのときにL2を探し、見つかればL2から読みます。見つからなければ主記憶(RAM)にアクセスします。CPUはヒット率を上げるためにキャッシュを入れ替えていますが、必ず入るかは状況によります。
A2: L1ミスのときにL2を探し、見つかればL2から読みます。見つからなければ主記憶(RAM)にアクセスします。CPUはヒット率を上げるためにキャッシュを入れ替えていますが、必ず入るかは状況によります。
Q3: キャッシュがあるとプログラムは変わりますか?
A3: 多くの場合、プログラムを変えずに性能が上がります。ただし、データアクセスの仕方(連続アクセスかランダムか)によってヒット率が変わるため、アルゴリズム次第で効果の差が出ます。
A3: 多くの場合、プログラムを変えずに性能が上がります。ただし、データアクセスの仕方(連続アクセスかランダムか)によってヒット率が変わるため、アルゴリズム次第で効果の差が出ます。
Q4: L3やそれ以上の階層もありますか?
A4: はい。高性能CPUではL3やL4があり、階層が増えるほど容量は増え速度は落ちる傾向です。
A4: はい。高性能CPUではL3やL4があり、階層が増えるほど容量は増え速度は落ちる傾向です。
関連キーワード: CPU、キャッシュメモリ、L1キャッシュ、L2キャッシュ、主記憶、仮想記憶、キャッシュヒット、キャッシュミス

\ せっかくなら /
ITパスポートを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

