ITパスポート 2018年 秋期 問65
問題文
CPUに搭載された1次と2次のキャッシュメモリに関する記述のうち、適切なものはどれか。
選択肢
ア:1次キャッシュメモリは、2次キャッシュメモリよりも容量が大きい。
イ:2次キャッシュメモリは、メインメモリよりも読み書き速度が遅い。
ウ:CPUがデータを読み出すとき、まず1次キャッシュメモリにアクセスし、データが無い場合は2次キャッシュメモリにアクセスする。(正解)
エ:処理に必要な全てのデータは、プログラム開始時に1次又は2次キャッシュメモリ上に存在しなければならない。
🔒 解説は解答すると表示されます
CPUの1次と2次のキャッシュの関係【ITパスポート 解説】
正解の理由
CPU(Central Processing Unit:中央演算処理装置、コンピュータの「頭脳」)がデータを使うとき、処理速度を上げるために「キャッシュメモリ(CPUに非常に近くて高速だが容量が小さい一時記憶)」を階層的に使います。1次キャッシュ(L1:Level 1)はCPUに最も近く、最も高速ですが容量は小さいです。2次キャッシュ(L2)はL1より容量が大きく、速度はL1より遅いものの、メインメモリ(主記憶、RAM:Random Access Memory)よりは速いのが一般的です。
CPUがデータを読むときは、まず最も近くて高速な場所(1次キャッシュ)を探します。そこに目的のデータがなければ次に2次キャッシュを探し、それでもなければメインメモリへアクセスします。したがって、選択肢の中では ウ「CPUがデータを読み出すとき、まず1次キャッシュにアクセスし、データが無い場合は2次キャッシュにアクセスする。」が正しいです。
解法ステップ
-
用語を整理する
- 1次キャッシュ(L1):CPUに最も近い、高速で小容量。
- 2次キャッシュ(L2):L1より遠く、容量は大きめ、速度はL1より遅いがメインメモリよりは速いことが多い。
- メインメモリ(RAM):容量は大きいがアクセスは遅い。
-
各選択肢を速度と容量の常識に照らして検討する
- 「1次が2次より容量が大きい」は逆の関係なので誤り。
- 「2次がメインメモリより遅い」は通常は誤り(L2はメインメモリより速い)。
- 「CPUはまずL1を見る」は正しい。
- 「起動時に全データがキャッシュ上にある必要がある」は現実的に不可能で誤り。
-
結論:上の論理で ウ を選ぶ。
選択肢別の誤答解説
-
ア: 「1次キャッシュメモリは、2次キャッシュメモリよりも容量が大きい。」
→ 誤り。実際は1次(L1)は高速・小容量、2次(L2)はL1より大きいのが普通です。L1は数十KB程度、L2は数百KB〜数MBという例が多いです。 -
イ: 「2次キャッシュメモリは、メインメモリよりも読み書き速度が遅い。」
→ 誤り。L2はCPU近傍のキャッシュであり、メインメモリ(RAM)より速いことが目的です。メインメモリはDRAM(Dynamic RAM:動的ランダムアクセスメモリ)で、アクセス遅延が大きいです。 -
ウ: 「CPUがデータを読み出すとき、まず1次キャッシュメモリにアクセスし、データが無い場合は2次キャッシュメモリにアクセスする。」
→ 正しい。CPUはより高速な記憶から順に探し、見つかればそのデータを使います(キャッシュヒット)。見つからなければ次の階層を探します(キャッシュミス)。 -
エ: 「処理に必要な全てのデータは、プログラム開始時に1次又は2次キャッシュメモリ上に存在しなければならない。」
→ 誤り。キャッシュは「よく使うデータを自動で置く」ための仕組みであり、全データを最初から置く必要も可能でもありません。必要に応じてキャッシュに読み込まれます。
よくある誤解
-
「数字の小さい方(1次)が大きいメモリだ」
- L1 = 1次だから「一番大きい」と考えるミス。実際は「1次ほどCPUに近く高速だが小さい」です。
-
「キャッシュは全部のデータを持っている」
- キャッシュは全データのコピーを持つわけではありません。頻繁に使うデータだけを一時的に保持します。
-
「キャッシュがあるとメモリを意識しなくてもよい」
- キャッシュは自動的に動きますが、プログラムのアクセスパターン(同じデータを繰り返す・連続アクセス)によって効果が変わります。アルゴリズム次第でキャッシュ効率が変わります。
補足コラム
-
キャッシュヒットとキャッシュミス
- キャッシュヒット:探したデータがキャッシュにあり、高速に処理できる状態。
- キャッシュミス:キャッシュに無く、下位の階層(L2やメインメモリ)から読み込む必要があるため遅くなる。
-
実際のサイズ感と速度(例)
- L1:数十KB、アクセスはCPUクロック数サイクル単位(非常に速い)。
- L2:数百KB〜数MB、L1より遅いがDRAMより速い。
- メインメモリ(RAM):数GB〜、アクセスは数十〜数百クロックかかることが普通。
-
書き込みの取り扱い(簡単に)
- write-through(ライトスルー):キャッシュへ書いたら即メインメモリにも書く方式。整合性は保ちやすいが遅くなる。
- write-back(ライトバック):まずキャッシュに書き、後でまとめてメインメモリに反映する方式。高速だが管理が複雑。
-
マルチコア環境
- 各コアに独立したL1があり、L2やL3を共有する設計もあります。複数キャッシュ間の整合性(キャッシュコヒーレンシ)も重要な課題です。
FAQ
Q1: 「L1とL2はいつできた用語ですか?」
A1: 「L1/L2」は“Level 1/Level 2”の意味です。階層(レベル)を順に表すための呼び方で、CPU設計の初期から使われています。
A1: 「L1/L2」は“Level 1/Level 2”の意味です。階層(レベル)を順に表すための呼び方で、CPU設計の初期から使われています。
Q2: 「キャッシュはソフトで操作できますか?」
A2: 普通のアプリからはキャッシュの具体的なコピー操作はできません。ハードウェアが自動で管理します。ただし、プログラムの書き方でキャッシュ効率を良くすることは可能です(例:連続アクセスや局所性を意識する)。
A2: 普通のアプリからはキャッシュの具体的なコピー操作はできません。ハードウェアが自動で管理します。ただし、プログラムの書き方でキャッシュ効率を良くすることは可能です(例:連続アクセスや局所性を意識する)。
Q3: 「キャッシュが大きいほど速いですか?」
A3: 一般に大きいとヒット率は上がりますが、アクセス時間やコスト、設計の複雑さも増します。バランスが重要です。
A3: 一般に大きいとヒット率は上がりますが、アクセス時間やコスト、設計の複雑さも増します。バランスが重要です。
関連キーワード: CPU、キャッシュメモリ、キャッシュヒット、キャッシュミス、L1、L2、メインメモリ、RAM、レイテンシ、書き込みポリシー、キャッシュコヒーレンシ

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

