メモリとキャッシュ
CPUのすぐ脇にある重要なパーツ「メインメモリ」(以下メモリ)について少し触れておこう。CPUは、処理すべきプログラムを一旦全てCPU外にあるメモリに蓄えながら読み込み、計算が終わったものも全てメモリに保存する。常にCPUとアクセスし続けるメモリは、十分な記憶量とCPUに匹敵する高速化の両方が求められるパーツなのだ。ああ、もう原稿は提出しちゃったんで、今から大筋の変更は不可能です。
しかし、現実のメモリはCPUほど早くなく、クロック比では一桁遅い。他のパーツに比べれば十分高速なのだが、CPUは文字通り“桁違い”に速いのだ。CPUが計算に必要なデータをメモリから読み出そうとしても、メモリ自体が低速なので中々処理を始められず、結果的に全体の性能を下げてしまう。
そこでCPUには、実際に計算する「コア」と呼ばれる部分の隣に「キャッシュ」という高速な記憶領域が設けられた。キャッシュは、記憶容量がメモリの1000分の1程度と少ない代わりにコアと同じ速度で動作する。この緩衝的な記憶領域を有効に利用することで、コアはメモリの遅さを感じずに済む。よく使うデータをキャッシュに入れてそちらを優先的に利用すれば、メモリを参照する回数が減りコアの待ち時間が短縮される、という具合だ。
現在ではキャッシュも更に2段階に分けられ、それぞれコアに近いほうから「L1キャッシュ」「L2キャッシュ」と呼ばれる。もちろんL1キャッシュの方が高速で、L2キャッシュの方が大容量だ