データをやり取りする2つのデバイス間に速度差が存在すると、遅いほうのデバイスがボトルネックになり、速いほうのデバイスが本来の性能を発揮できない。
この速度差を緩衝するのがキャッシュメモリの役目である。
一般的に、メインメモリに使われている
DRAMのスピードはCPUに比べてかなり遅く、CPUの命令実行速度を下げる原因となっている。
この問題を解決するために、CPUとメインメモリの間にキャッシュメモリと呼ばれる高速/小容量のメモリを配置する。
そして、CPUがアクセスする頻度の高いコード/データをなるべくキャッシュメモリに格納しておくよう、外部回路でコントロールする。
たとえばCPUがメインメモリのあるアドレスからデータを読み込むとき、キャッシュにそのデータを蓄えておく。
その後CPUが再び同じアドレスからデータを読み込もうとしたら、メインメモリの代わりにキャッシュからデータを供給する。
こうすれば、CPUは低速なメインメモリに待たされることなく、必要なデータを読み込める。
また書き込みの場合は、ライトスルーやライトバックといったアルゴリズムによりキャッシュの性能は変化する。
メモリシステムの高速化のために、キャッシュメモリが2段、3段と重ねて実装されることがある。
この場合、CPUに近い位置にあるほうから1次キャッシュ、2次キャッシュ…と呼ばれる。
486以降のx86 CPUは1K~16Kbytes程度の1次キャッシュをCPU内部に内蔵している。
また現在のPC互換機では、高速
SRAMを用いて64K~1Mbytes程度の2次キャッシュを実装していることが多い。
この場合のCPUに内蔵されているキャッシュは内部キャッシュ、CPUの外部に実装されるのは外部キャッシュと呼ばれる。