変更要約: 初版
2.2メモリと記憶階層
揮発性のRAMと不揮発性のROMの違い、CPUと主記憶の速度差を埋めるキャッシュメモリ(ライトスルー方式・ライトバック方式)、主記憶の容量を超えて扱う仮想記憶(ページング)、そして速度・容量・コストのトレードオフを表す記憶階層の全体像を学びます。アクセス時間やヒット率の計算にも触れます。
CPUの処理速度がいくら速くても、必要なデータが手元に無ければ意味がありません。コンピュータは速度・容量・コストの異なる複数の記憶装置を階層的に組み合わせることで、体感速度と実用的な容量を両立させています。この仕組みを理解すると、「なぜアプリが重いのか」「どこを増強すれば効果的か」を切り分けられるようになります。
2.2.1RAMとROM、記憶階層
- RAM(Random Access Memory)=電源を切ると内容が消える揮発性の読み書き可能なメモリ。主記憶(メインメモリ)として使われ、実行中のプログラムやデータを保持します。ROM(Read Only Memory)=電源を切っても内容が保持される不揮発性のメモリ。起動時に必要なファームウェア(BIOS/UEFI等)の格納に使われます。
- 記憶階層=レジスタ→キャッシュメモリ→主記憶(RAM)→補助記憶(SSD/HDD)の順に、アクセス速度が遅くなるほど容量が大きくコストが安くなるという階層構造。CPUに近いほど高速・小容量・高コスト、遠いほど低速・大容量・低コストという原則を押さえておくと、性能設計の判断がしやすくなります。
2.2.2キャッシュメモリの書き込み方式
- キャッシュメモリ=CPUと主記憶の間に置かれる、主記憶よりはるかに高速だが小容量なメモリ。よく使うデータをキャッシュに保持しておくことで、主記憶への低速なアクセスを減らします。CPUが必要なデータがキャッシュに存在する割合をヒット率と呼びます。
- ライトスルー方式=キャッシュへの書き込みと同時に主記憶へも書き込む方式。常にキャッシュと主記憶の内容が一致するため単純で信頼性が高い一方、主記憶への書き込みが毎回発生するため書き込み性能は劣ります。ライトバック方式=キャッシュにのみ書き込み、そのデータがキャッシュから追い出される際にまとめて主記憶へ反映する方式。書き込み性能は高い一方、キャッシュと主記憶の内容が一時的に不一致になる区間があり、制御が複雑になります。
「RAM=揮発性・主記憶/ROM=不揮発性・ファームウェア格納」「記憶階層はCPUに近いほど高速・小容量・高コスト」「ライトスルー=同時書き込みで単純・信頼性高いが遅い/ライトバック=キャッシュのみ書き込みで速いが一時的に不一致が生じる」が最頻出です。ヒット率とアクセス時間の加重平均計算も頻出パターンです。
実効アクセス時間の計算を実際にたどってみましょう。キャッシュメモリのアクセス時間が10ナノ秒、主記憶のアクセス時間が100ナノ秒、ヒット率が90%(0.9)のシステムを考えます。CPUがデータを要求したとき、90%の確率でキャッシュに存在(ヒット)して10ナノ秒で済み、残り10%の確率でキャッシュに無く(ミス)主記憶へアクセスして100ナノ秒かかるとすると、実効アクセス時間=キャッシュ時間×ヒット率+主記憶時間×(1−ヒット率)で求められます。この式に当てはめると、10×0.9+100×0.1=9+10=19ナノ秒となり、主記憶単体(100ナノ秒)より大幅に速く、キャッシュ単体(10ナノ秒)よりは遅い、中間の実効値になることが分かります。もしヒット率が95%に改善すれば、10×0.95+100×0.05=9.5+5=14.5ナノ秒とさらに短縮されます。この計算から、ヒット率をわずかに高めるだけで実効アクセス時間は大きく改善すること、そして「主記憶を増設してもキャッシュのヒット率が低いままなら効果は限定的」という実務判断につながることが読み取れます。書き込み方式の選択も同様にトレードオフです。金融システムのように常にデータの一貫性が最優先される用途ではライトスルー方式が好まれ、書き込み頻度が高く速度を最優先したい用途ではライトバック方式(ただし電源断時のデータ消失リスクへの対策が別途必要)が選ばれます。
2.2.3仮想記憶とページング
| 用語 | 意味 |
|---|---|
| 仮想記憶 | 主記憶の容量を超えるアドレス空間を、補助記憶を併用して扱う仕組み |
| ページング | 仮想記憶を一定サイズの==ページ==単位で主記憶と補助記憶の間で入れ替える方式 |
| ページフォールト | 必要なページが主記憶に無く補助記憶から読み込みが発生すること |
| スラッシング | ページの入れ替えが頻発し処理効率が著しく低下する現象 |
- 仮想記憶=実際の主記憶容量を超えるメモリ空間を、あたかも使えるかのように見せる仕組み。ページング方式では、メモリを固定サイズのページ単位に分割し、必要なページだけを主記憶に置き、使っていないページは補助記憶(ディスク)に退避します。この管理はOSが担います。
- 必要なページが主記憶に無いとき発生するのがページフォールトで、補助記憶からの読み込みが起きるため処理が一時停止します。搭載メモリに対して同時に必要なページが多すぎる状況では、ページの入れ替えが頻発し処理効率が著しく落ちるスラッシングという現象が起こることがあります。
ひっかけ: 「キャッシュのヒット率が同じなら、主記憶を増設すれば実効アクセス時間は必ず改善する」は誤りです。実効アクセス時間を左右するのはヒット率とキャッシュ/主記憶それぞれのアクセス時間であり、主記憶の容量増設そのものはこの計算式に直接影響しません。また「ライトバック方式は主記憶とキャッシュが常に一致している」も誤り=ライトバックはキャッシュのみ先に書き込み、主記憶への反映は後で行うため一時的な不一致が生じます。「仮想記憶を使えば物理メモリの容量制約が完全に無くなる」も誤り=ページの入れ替えが過剰になればスラッシングで性能が大きく低下します。
2.2.4この節のまとめ
- RAM=揮発性の主記憶・ROM=不揮発性でファームウェア格納。記憶階層はCPUに近いほど高速・小容量・高コスト
- ライトスルー=同時書き込みで単純・信頼性高い・ライトバック=キャッシュのみ書き込みで速いが一時不一致あり。実効アクセス時間=キャッシュ時間×ヒット率+主記憶時間×(1−ヒット率)
- 仮想記憶(ページング)は主記憶を超える空間を補助記憶併用で提供。ページ過多での頻発入れ替えはスラッシングを招く
進捗の記録にはログインが必要です。
理解度チェック
(軽い確認用)Q1. 電源を切ると記憶内容が失われる揮発性のメモリで、主記憶として使われるのはどれか。
Q2. キャッシュのアクセス時間が20ナノ秒、主記憶のアクセス時間が120ナノ秒、ヒット率が80%のとき、実効アクセス時間はどれか。
Q3. 搭載メモリに対して同時に必要なページ数が多すぎるため、ページの入れ替えが頻発し処理効率が著しく低下している。この現象を指す用語はどれか。

