テクノロジ系コンピュータ構成要素出題頻度 ★★★

メモリとキャッシュ

メインメモリとキャッシュメモリの役割を「机と手元のメモ」の例えで図解。記憶装置の階層、RAMとROM、DRAMとSRAMの違い、ヒット率を使った実効アクセス時間の計算まで、試験頻出のポイントが押さえられます。

この単元の用語:メインメモリ / キャッシュメモリ / ヒット率 / 実効アクセス時間 / RAM / ROM / DRAM / SRAM / 揮発性 / フラッシュメモリ

パソコンの「メモリ8GB」と「SSD 512GB」って、どっちもデータをしまう場所ですよね?何が違うんですか?

いい質問! メモリは「作業机」、SSDは「本棚」なんだ。机が広いほど作業がはかどるし、手元にメモ(キャッシュ)があればもっと速い。順番に見ていこう。

記憶装置には「階層」がある

CPUはとても高速なので、データの置き場所が遅いと待たされてしまいます。かといって、速い記憶装置は高価で、大容量にできません。そこでコンピュータは 速さと容量の違う記憶装置を組み合わせて 使います。これを 記憶階層 といいます。

レジスタ キャッシュメモリ メインメモリ SSD・HDD 高速 高価・小容量 低速 安価・大容量
上ほど速いが小さく高価、下ほど遅いが大きく安価
記憶装置例え特徴
レジスタ頭の中CPU内部。最も高速だがごく小容量
キャッシュメモリ手元のメモCPUとメインメモリの間に置く高速メモリ
メインメモリ(主記憶)作業机実行中のプログラムやデータを置く
SSD・HDD(補助記憶)本棚電源を切ってもデータが残る。大容量

プログラムを実行するときは、本棚(SSD)から作業机(メインメモリ)にデータを広げて作業します。メインメモリが小さい と、机に載り切らない分を何度も本棚と出し入れすることになり、動作が遅くなります。

RAMとROM、DRAMとSRAM

メモリは、電源を切ると内容が消えるかどうか で大きく2つに分けられます。

  • 揮発性:電源を切ると内容が消える
  • 不揮発性:電源を切っても内容が残る
種類読み書き揮発性主な用途
DRAM読み書きできる(RAM)揮発性メインメモリ
SRAM読み書きできる(RAM)揮発性キャッシュメモリ
ROM基本は読出し専用不揮発性機器の起動用プログラムなど
フラッシュメモリ書き換えできる不揮発性SSD、USBメモリ、SDカード

RAM(Random Access Memory)は読み書きできるメモリ、ROM(Read Only Memory)は読出し専用のメモリです。RAMのうち、DRAMとSRAMは次のように使い分けます。

DRAMSRAM
速さ比較的遅い高速
価格・容量安価で大容量にしやすい高価で小容量
リフレッシュ(記憶保持のための再書込み)必要不要
用途メインメモリキャッシュメモリ

SRAMの S は Static(静的):一度書けば電源がある限り保持され、リフレッシュ不要で速い → キャッシュ。DRAMの D は Dynamic(動的):放っておくと内容が薄れるので定期的にリフレッシュが必要 → 安価で大容量なのでメインメモリ。

キャッシュメモリの仕組み

CPUは、データが必要になると まずキャッシュメモリを探し、なければメインメモリを読みに行きます。キャッシュにはよく使うデータが残っているので、多くの場合は手元のメモだけで済みます。

キャッシュメモリに目的のデータがある確率を ヒット率 といいます。

CPU キャッシュ 10ナノ秒 メインメモリ 60ナノ秒 ① まず探す ② 無ければ ヒット率 90%:10回中9回はキャッシュで見つかる 0.9 × 10 + 0.1 × 60 = 15ナノ秒
キャッシュにあれば10ナノ秒、なければメインメモリから60ナノ秒。平均すると15ナノ秒で済む

実効アクセス時間 = ヒット率 × キャッシュのアクセス時間 +(1 − ヒット率)× メインメモリのアクセス時間

キャッシュ 10ナノ秒、メインメモリ 60ナノ秒、ヒット率 90% のとき

0.9 × 10 + 0.1 × 60 = 9 + 6 = 15ナノ秒

キャッシュがなければ毎回60ナノ秒かかるので、4分の1の時間で済むことになります。

ヒット率が上がれば、もっと速くなるってことですね。

そのとおり。ヒット率が100%に近づくほど、実効アクセス時間はキャッシュの速さに近づくよ。キャッシュの容量を増やすと、一般にヒット率は上がるんだ。

キャッシュメモリは何段か重ねることもあり、CPUに近い順に 1次キャッシュ、2次キャッシュ …と呼びます。CPUは1次 → 2次 → メインメモリの順に探します。

計算問題では 「1 − ヒット率」を掛ける相手はメインメモリ です。ヒット率をメインメモリ側に掛けてしまうミスが多いので、「当たったらキャッシュ、外れたらメインメモリ」と声に出して確認しましょう。

試験に出るポイント

  • 記憶階層:レジスタ → キャッシュ → メインメモリ → SSD・HDD。上ほど高速・高価・小容量
  • キャッシュメモリ はCPUとメインメモリの速度差を埋める。CPUはまずキャッシュを探す
  • 実効アクセス時間 = ヒット率 × キャッシュ +(1 − ヒット率)× メインメモリ
  • DRAM = メインメモリ(安価・大容量・リフレッシュ必要)、SRAM = キャッシュ(高速・高価)
  • DRAM・SRAMは 揮発性、ROM・フラッシュメモリは 不揮発性

確認クイズ

選択肢をタップすると、すぐに正解と解説が表示されます。

Q1キャッシュメモリのアクセス時間が20ナノ秒、メインメモリのアクセス時間が100ナノ秒、キャッシュメモリのヒット率が80%のとき、実効アクセス時間はどれか。

Q2一般に、キャッシュメモリに使われる半導体メモリはどれか。

Q3電源の供給を止めると記憶していた内容が失われる(揮発性の)メモリはどれか。

Q4キャッシュメモリに関する記述として、適切なものはどれか。