コンテンツにスキップ

記憶階層

コンピュータにはさまざまな種類の記憶装置が搭載されています。しかし、「速くて大容量で安い」記憶装置は残念ながら存在しません。速い記憶装置は容量が小さく高価であり、容量が大きく安い記憶装置は動作が遅いという関係があります。

この速度・容量・コストのトレードオフを踏まえ、複数の記憶装置を階層的に組み合わせて効率的にデータを扱う仕組みを記憶階層と呼びます。

記憶階層は、上層ほど高速・小容量・高コスト、下層ほど低速・大容量・低コストというピラミッド構造になっています。

それぞれの層について詳しく見ていきましょう。

レジスタは、CPU(プロセッサ)の内部にある最も高速な記憶装置です。CPUが計算を行う際に、演算対象のデータや命令を一時的に保持するために使います。容量はごくわずか(数十〜数百バイト程度)ですが、CPUと同じ速度で動作するため、アクセス速度は記憶階層の中で最速です。

キャッシュメモリは、CPUと主記憶の間に置かれる高速な記憶装置です。主記憶よりも高速なSRAM(Static RAM)という半導体メモリで構成されています。

CPUが主記憶からデータを読み出すたびに待ち時間が発生すると、処理全体が遅くなってしまいます。そこで、よく使うデータをキャッシュメモリにコピーしておき、CPUが高速にアクセスできるようにしています。キャッシュメモリにデータがあればすぐに取得でき、なければ主記憶まで取りにいくという仕組みです。

主記憶(メインメモリ)は、CPUが現在実行中のプログラムやデータを保持する記憶装置です。DRAM(Dynamic RAM)という半導体メモリで構成されています。

DRAMはSRAMに比べると速度は劣りますが、構造がシンプルなため大容量化しやすく、コストも抑えられます。一般的なPCでは数GB〜数十GB程度の容量が搭載されています。なお、DRAMは電源を切るとデータが消える揮発性メモリです。

補助記憶(ストレージ)は、電源を切ってもデータが消えない不揮発性の記憶装置です。代表的なものにHDD(ハードディスクドライブ)とSSD(ソリッドステートドライブ)があります。

主記憶と比べるとアクセス速度は遅いですが、大容量のデータを安価に長期保存できます。OSやアプリケーション、写真や文書などのファイルは、普段は補助記憶に保存されており、必要なときに主記憶へ読み込まれて使われます。

記憶階層の各層の関係を表で整理します。

記憶装置速度容量コスト(1バイトあたり)特徴
レジスタ最速最小(数百バイト)最高CPU内部に搭載
キャッシュメモリ(SRAM)非常に速い小(数MB)高いCPUと主記憶の橋渡し
主記憶(DRAM)速い中(数GB〜数十GB)中程度実行中のデータを保持
補助記憶(HDD・SSD)遅い大(数百GB〜数TB)安いデータの長期保存

このように、速度とコストはトレードオフの関係にあります。すべてを最速のレジスタやキャッシュメモリで構成すれば理想的ですが、コストが膨大になり現実的ではありません。そこで、速い記憶装置には少量の「今すぐ必要なデータ」を、遅い記憶装置には大量の「保存しておくデータ」を置くことで、速度とコストのバランスを取っているのです。

試験で出るポイント

記憶階層では「レジスタ → キャッシュメモリ → 主記憶 → 補助記憶」の順番と、上にいくほど「高速・小容量・高コスト」、下にいくほど「低速・大容量・低コスト」という関係を正確に覚えておきましょう。「キャッシュメモリはSRAM、主記憶はDRAM」という対応も頻出です。

アプリで問題を解こう!