メモリ(作業机)— 今すぐ使うものを広げる場所

中級の解説は準備中のため、中級の内容を表示しています。

概要 — まず全体をつかむ

初級ではメモリを「作業台」と捉えました。中級では、メモリの正体(RAM)と、速さを決める要素を見ます。

詳細 — 1段階ずつ追う

これは何をする係?

メモリの実体はRAM(Random Access Memory)で、どの番地にもほぼ同じ速さで直接アクセスできる揮発性の記憶装置です。CPUはここに置かれた命令とデータを直接読み書きします(主記憶)。

RAMには大きく2種類あります。

  • DRAM — コンデンサで1ビットを記憶。安価で大容量にしやすいが、電荷が抜けるためリフレッシュ(定期的な再書き込み)が必要。主に主記憶に使う
  • SRAM — フリップフロップで記憶。高速でリフレッシュ不要だが高価・大容量化しにくい。主にCPUのキャッシュに使う
アニメーション『メモリ=作業机』を開く
メモリ=作業机いま使うものを広げておく場所。CPUがここから素早く出し入れする👨‍🍳CPU(料理人)すぐ手を伸ばして使う使う戻すブラウザ資料編集中のデータ作業机(メモリ)いま動かしているアプリ・データを広げている机に出すしまう引き出し/棚ストレージ(しまってある物)机は広いほど同時に作業できるただし、電源を切ると机の上は片付いてしまう(揮発性)。残したいものはストレージへ

ストレージとの違い

  1. 速さ — メモリ(RAM)はストレージより桁違いに速い。ただしCPUのキャッシュ(SRAM)よりは遅い
  2. 消えるか — メモリは揮発性で電源を切ると消える/ストレージは不揮発性で残る
  3. 役割 — メモリは「今使うもの」を広げる作業場/ストレージは「しまっておく」保管庫

速さの階層は「CPU内レジスタ → キャッシュ(SRAM)→ 主記憶(DRAM)→ ストレージ」の順。上ほど速く小さく、下ほど遅く大きくなります。

容量が効く場面

速さは容量だけでは決まりません。実効性能を左右する主な要素は次のとおりです。

  • レイテンシ — アクセス要求から実際にデータが返るまでの待ち時間
  • バス幅とチャネル数 — 一度に運べる幅。デュアルチャネルにすると実効バス幅が増え、帯域(1秒あたりの転送量)が上がる
  • クロック(転送レート) — 単位時間あたりのやり取り回数

そして容量が足りないと、あふれた分を仮想メモリとしてストレージ上の領域(スワップ/ページファイル)に退避します。ストレージはDRAMより桁違いに遅いため、これが多発すると動作が急に重くなります。

⚠️ うまくいかないとき

  • 重い・カクつく — メモリ不足で仮想メモリへの退避(スワップ)が多発し、遅いストレージ待ちが増える
  • 保存し忘れで消える — 揮発性なので、電源が切れると主記憶上の作業内容は失われる
  • まれなビット反転 — 宇宙線やノイズで1ビットが化けることがある。サーバ用途ではECCメモリが誤りを検出・訂正する

理解度チェック

そのまま解けます(成績は保存されません)。無料アカウントを作ると、学習の記録と進捗の山登りが始まります。

1. 同じ容量でもメモリの実効速度に効きにくい要素はどれ?

2. 主記憶に多く使われるDRAMの説明として正しいのは?

3. SRAMの説明として正しいのは?

4. メモリ(RAM)とストレージの違いとして正しいのは?

5. メモリを「デュアルチャネル」構成にすると得られる効果はどれ?

6. サーバ用途で、宇宙線やノイズによる1ビットの反転(誤り)を検出・訂正するのはどれ?

7. RAMのように「電源を切ると内容が消える」性質を何と呼ぶか、漢字で答えてください。

8. 容量が足りないとき、あふれた分をストレージ上の領域に退避して実メモリより広く見せる仕組みを何と呼ぶか答えてください(「仮想〜」)。