記憶の階層化
コンピュータサイエンス
情報工学
ミス率
メモリ階層 (Memory Hierarchy)
コンピュータシステムにおいて、速度・容量・コスト特性の異なる複数段階の記憶装置を階層的に配置した構造。高速・低容量で高価なメモリ(レジスタ、キャッシュ)から、やや低速で容量が大きいメインメモリ、さらに低速だが安価で大容量の二次記憶装置(HDD、SSD)の順に並べることで、平均的なアクセス速度とコストを最適化する。
レジスタ (Register)
CPU内部にあり、最も高速かつアクセス時間が最短の記憶領域。演算対象のデータやポインタなどを一時的に保持する。
キャッシュメモリ (Cache Memory)
メインメモリよりも高速だが容量が小さい、高速アクセス可能な記憶領域。CPUに近く配置され、よく使われるデータや命令を一時保存することでメインメモリへのアクセスを減らし、処理速度を向上させる。
L1キャッシュ:CPUコア内蔵で最も高速・小容量なキャッシュ
L2キャッシュ:L1よりもやや低速・大容量なキャッシュ
L3キャッシュ:複数コア間で共有されることが多く、L2よりもさらに低速・大容量なキャッシュ
メインメモリ (Main Memory) / 主記憶装置 (主記憶)
CPUが直接アクセスできる揮発性の大容量記憶装置。通常DRAMで構成され、プログラムやデータが実行時に格納される領域。キャッシュより低速だがはるかに大容量。
DRAM (Dynamic Random Access Memory)
主記憶装置で一般的に用いられる揮発性メモリ。電荷で情報を保持するため定期的なリフレッシュが必要だが、容量あたりのコストが安く大容量化しやすい。
SRAM (Static Random Access Memory)
リフレッシュ不要な揮発性メモリ。構造が複雑で高価だが高速で、主にキャッシュメモリとして用いられる。
二次記憶装置 (Secondary Storage)
電源を切っても内容が保持される不揮発性の大容量ストレージ。プログラムやデータを長期的に保存する。主記憶より遥かに低速だが、はるかに安価で大容量。
HDD (Hard Disk Drive):磁気ディスクで記憶する伝統的な大容量ストレージ
SSD (Solid State Drive):半導体メモリ(フラッシュメモリ)を用いた高速なストレージ
揮発性メモリ (Volatile Memory)
電源供給が途絶えると記憶内容が失われるメモリ。DRAMやSRAMが該当。
不揮発性メモリ (Non-Volatile Memory)
電源を切っても記憶内容を保持できるメモリ。HDDやSSD、フラッシュメモリなどが該当。
メモリレイテンシ (Memory Latency)
メモリアクセス要求が出てから実際にデータが返ってくるまでの遅延時間。階層が下るほど一般的にレイテンシが長くなる。
メモリスループット/帯域幅 (Memory Bandwidth)
単位時間あたりにメモリから読み出せる(または書き込める)データ量。高速なインタフェースほど帯域幅が大きい。
空間的局所性 (Spatial Locality)
アクセスされたデータの近くのアドレス空間(メモリアドレスが連続する付近)へも近い将来アクセスが発生しやすい性質。データが空間的にまとまっている場合、キャッシュ利用が効率的になる。
時間的局所性 (Temporal Locality)
一度アクセスされたデータは、近い将来再びアクセスされる可能性が高い性質。最近使われたデータをキャッシュに残すことで、再アクセス時の高速化が期待できる。
メモリアクセスパターン (Memory Access Pattern)
プログラムがどのような順序・方法でメモリにアクセスするかの傾向やパターン。良いアクセスパターンは高い局所性を持ち、キャッシュの有効活用が可能になる。
キャッシュミス / キャッシュヒット (Cache Miss / Cache Hit)
キャッシュヒット:アクセスしたデータがキャッシュ内に存在して高速に取得できる状態
キャッシュミス:アクセスしたデータがキャッシュに存在せず、より下位階層のメモリ(例:メインメモリ)から取得する必要があり、遅延が生じる状態
プリフェッチ (Prefetch)
実際に必要となる前に、将来アクセスされるであろうデータを先読みしてキャッシュにロードする手法。アクセスレイテンシを隠し、性能を向上させる。
DMA (Direct Memory Access)
CPUを経由せず、周辺機器がメモリへ直接データ転送を行う機能。CPUが転送処理から解放され、システム効率が改善される。
NUMA (Non-Uniform Memory Access)
マルチプロセッサ/マルチコア環境で、プロセッサごとに異なる「ローカルメモリ」を持つアーキテクチャ。メモリアクセス速度がアクセス先メモリの物理的配置に依存し、均一でない(Non-Uniform)ことが特徴。メモリ階層やメモリアクセスの最適化がより複雑になる。