ITパスポート 2017年 春期 問92
問題文
CPUのキャッシュメモリに関する説明のうち、適切なものはどれか。
選択肢
ア:キャッシュメモリのサイズは、主記憶のサイズよりも大きいか同じである。
イ:キャッシュメモリは、主記憶の実効アクセス時間を短縮するために使われる。(正解)
ウ:主記憶の大きいコンピュータには、キャッシュメモリを搭載しても効果はない。
エ:ヒット率を上げるために、よく使うプログラムを利用者が指定して常駐させる。
🔒 解説は解答すると表示されます
CPUのキャッシュメモリに関する説明【ITパスポート 解説】
正解の理由
選択肢イの「キャッシュメモリは、主記憶の実効アクセス時間を短縮するために使われる。」が正しい理由は次の通りです。
- CPU(Central Processing Unit:中央演算処理装置)は処理速度が非常に速いです。一方、主記憶(主記憶=RAM:データやプログラムを一時的に置く記憶装置)はCPUより遅いことが多く、直接アクセスすると処理全体の足かせになります。
- キャッシュメモリ(CPUに近く、主記憶より高速だが小容量のメモリ)は、よく使うデータや命令を一時的に置きます。これによりCPUが高速なキャッシュから直接読み書きできる回数(ヒット)が増え、結果として主記憶への平均的なアクセス時間(実効アクセス時間)が短くなります。
- 実効アクセス時間(EAT: Effective Access Time)は、ヒット率 、キャッシュアクセス時間 、主記憶アクセス時間 を使って概ね次の式で表せます。 ヒット率が高ければ EAT は小さくなり、処理が速くなります。
以上から、キャッシュの目的が主記憶の実効アクセス時間を短縮することであるため、選択肢イが正解です。
解法ステップ
- 問題文を読み、「キャッシュメモリ」の役割を明確にする。初めてなら「高速だが小さいメモリで、よく使うものを置く」ことを思い出す。
- 各選択肢を、キャッシュの特徴(高速、少容量、CPU近傍にある、自動管理)と照らし合わせる。
- 合致するものを正答とし、他はなぜ合わないかを一つずつ潰す。
この順で考えると、イが正しく、他は矛盾する箇所があると分かります。
選択肢別の誤答解説
-
ア: 「キャッシュメモリのサイズは、主記憶のサイズよりも大きいか同じである。」
誤りです。実際はキャッシュは主記憶よりずっと小さいのが普通です。速度とコストの関係で、主記憶全体を高速(高コスト)で作ることは現実的でないため、重要な部分だけを小容量の高速キャッシュで補います。 -
イ: 「キャッシュメモリは、主記憶の実効アクセス時間を短縮するために使われる。」
正しいです。上の「正解の理由」で述べた通りです。 -
ウ: 「主記憶の大きいコンピュータには、キャッシュメモリを搭載しても効果はない。」
誤りです。主記憶が大きくても、CPUと主記憶の速度差(レイテンシー)は残ります。プログラムは同じデータや命令を繰り返し使う性質(局所性)があるため、どんな大きさの主記憶でもキャッシュは効果を発揮します。 -
エ: 「ヒット率を上げるために、よく使うプログラムを利用者が指定して常駐させる。」
誤りです。キャッシュの内容管理は主にハードウェア(CPUやメモリコントローラ)が自動で行います。利用者が手動で「キャッシュに入れる」ことは通常できません(OSや特殊な組込み系でのキャッシュ固定を除くが、問題文の一般的な意味では誤り)。
よくある誤解
-
「キャッシュは大容量の補助記憶だ」
→ キャッシュは小容量で高速。大容量の保存用はHDDやSSD(補助記憶装置)です。 -
「主記憶が大きければキャッシュは不要」
→ 容量と速度は別問題です。主記憶が大きくてもアクセス速度が遅ければキャッシュは有効です。 -
「ユーザーやプログラマが普通にキャッシュにデータを置ける」
→ 日常的なシステムではキャッシュは自動管理です。特別な処理(ロックや制御)が必要な場面は例外です。
補足コラム
- キャッシュの階層:一般にCPUにはL1(最速で最小)、L2、L3(やや遅く大きい)という階層があります。L1は数十KB〜数百KB、L2/L3は数MBという規模が多いです。
- 局所性の法則(ローカリティ):
- 時間的局所性:直近に使ったデータは近い将来も使われやすい(例:ループ内の変数)。
- 空間的局所性:あるアドレスの近くのデータが続けて使われやすい(例:配列処理)。
キャッシュはこの局所性を利用して効率化します。
- 書き込み方法:書き込み時の挙動には write-through(主記憶にも同時書き込み)や write-back(後でまとめて主記憶へ書き込み)など方式があります。用途や性能要件で使い分けられます。
- 効果の目安:例えば ns、ns、ヒット率 の場合、EAT は ns。主記憶だけの場合より大幅に速くなります。
FAQ
Q1: キャッシュと主記憶(RAM)の違いは何ですか?
A1: キャッシュはCPUに近くて非常に高速だが小さいメモリ。主記憶は容量が大きいが遅い。用途は「高速な一時置き場」と「プログラム全体の作業領域」です。
A1: キャッシュはCPUに近くて非常に高速だが小さいメモリ。主記憶は容量が大きいが遅い。用途は「高速な一時置き場」と「プログラム全体の作業領域」です。
Q2: ヒット率とは何ですか?
A2: キャッシュに目的のデータが見つかる割合のことです。ヒット率が高いほど平均アクセス時間が短くなります。
A2: キャッシュに目的のデータが見つかる割合のことです。ヒット率が高いほど平均アクセス時間が短くなります。
Q3: ユーザー側でできる最適化はありますか?
A3: アプリ側では局所性を意識したデータ配置やアルゴリズム(連続アクセスを使う、不要なメモリ参照を減らす)によりキャッシュの利用効率を高められます。ただしキャッシュの具体的な入れ替えはハードが自動で行います。
A3: アプリ側では局所性を意識したデータ配置やアルゴリズム(連続アクセスを使う、不要なメモリ参照を減らす)によりキャッシュの利用効率を高められます。ただしキャッシュの具体的な入れ替えはハードが自動で行います。
関連キーワード: キャッシュメモリ、主記憶、ヒット率、アクセス時間、局所性、CPU、メモリ階層

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

