【システム構成】CPUと主記憶の「速度差」を埋める!「キャッシュメモリの効果」|情報処理問題1000本ノック
コンピュータの性能を語る上で絶対に外せないキャッシュメモリ。その存在意義である「なぜ速くなるのか?」という最も根本的な効果を攻略しましょう。
1. 【 問題 】:キャッシュメモリの目的と効果
【 問題 】 コンピュータの基本構成において、CPU(プロセッサ)と主記憶(メインメモリ)の間に配置される「キャッシュメモリ」を導入することによって得られる効果として、最も適切なものはどれでしょうか?
① データを一時的に保持し、CPUが同じデータを再度読み出す際に、主記憶へアクセスするよりもデータ転送を高速に行う
② データを一時的に保持し、複数の演算器による並列演算のデータ受け渡しに利用する
③ 命令を一時的に保持し、デコード(命令解析)の処理を省くことで演算そのものを高速化する
④ 命令を一時的に保持し、パイプライン処理による並列演算の制御を行う
2. 正解:
正解: ① データを保持し、同じデータを読み出す際に、データ転送を高速に行う
3. 解説:足の遅い主記憶の代わりに、目の前でデータを手渡す
キャッシュメモリの最大の使命は、「超高速だけど容量が小さいCPU」と「大容量だけど動作が遅い主記憶(メインメモリ)」の間に挟まり、速度のギャップを埋めることです。
1. CPUが何かデータを必要としたとき、最初は遠くにある「主記憶」までわざわざ取りに行きます。このとき、取ってきたデータを手元の「キャッシュメモリ」にもこっそりコピーして保存しておきます。
2. プログラムというものは、同じデータを何度も繰り返し使う習性(時間の局所性)があります。
3. CPUが次に「またあのデータが欲しい!」となったとき、今度はわざわざ遠い主記憶まで行かず、すぐ目の前にある超高速なキャッシュメモリから一瞬でデータを読み出す(データ転送を高速に行う)ことができます。← ココが問題の正解!
★ ②・④ 並列演算に利用する / 並列演算を行う:これらはキャッシュメモリの効果ではなく、CPU内部の「マルチコア」「スーパースカラ(多重命令発行)」「パイプライン」といったプロセッサ側の並列処理技術の効果です。
★ ③ 演算そのものを高速化する:キャッシュメモリはあくまでデータを「転送(出し入れ)」する速度を上げるものであり、足し算や掛け算といった「演算(計算)そのもののスピード」を速くする機能はありません。
1. 理解のコツ: 「勉強中のデスクワーク」に例えてみましょう。
・調べたい言葉が出るたびに、1階の図書室(主記憶)まで歩いて行くのは時間がかかって非効率ですよね。そこで、一度図書室から持ってきた本(データ)を、自分の机の引き出し(キャッシュメモリ)に並べておきます。
・次に同じ本が必要になったときは、1階まで行かずに引き出しからサッと取り出せるので、圧倒的に作業(データ転送)が速くなります。これがキャッシュメモリの効果そのものです。
2. 試験対策の視点: 「同じデータを読み出す際」「データ転送を高速に行う」という記述がキャッシュメモリの定義の王道です。ITパスポートから応用情報まで、すべての試験の午前で必ずと言っていいほど出題される超重要基礎問題ですので、「演算自体の高速化」や「並列処理の制御」といったひっかけ選択肢に騙されないよう、目的をシンプルに覚えておきましょう。
4. まとめ
「使用頻度の高いデータをCPUのすぐ近くに一時保存しておくことで、遅い主記憶へのアクセス回数を減らし、システム全体のデータ処理スピードを爆発的に高める高速バッファメモリ」。それがキャッシュメモリです。現代のコンピュータは、このキャッシュへの『ヒット率(データがキャッシュ内にある確率)』を高めることが、システム全体のパフォーマンスを左右する鍵となっています。