CPUを高速に実行するには、CPUがアクセスするメモリデバイスが高速であればあるほど良い。ただし、高速なメモリは高価であり、容量も少ないものが多いので、それを補うために、キャッシングというシステムを使う。
キャッシングには、キャッシュメモリという高速で小容量のメモリを補助的につかう。このキャッシュメモリに対して実際にプログラム等が収められているメモリをメインメモリと言う。CPUがアクセスしようとしたプログラムがキャッシュメモリ上に無いと、メインメモリからそのプログラムをキャッシュメモリにDMA転送し、それを実行させる。キャッシュメモリは高速なメモリなので、CPUの実行は、高速な実行が可能となる。ただし、このキャッシュメモリは、容量が少ないので、キャッシュメモリ上に無いプログラムが度々発生する。このプログラムが無い状態を、ミスキャッシュしたと言う。この時、また、メインメモリからDMAでミスキャッシュしたプログラムをキャッシュメモリに転送してそれを実行させる。
近年、キャッシュメモリは、CPUに内蔵されているものもある。内蔵されていないものを、外部キャッシュメモリという。CPUを高速に実行させ続けるには、ミスキャッシュをなるべく少なくする事が重要である。そのために、どのようにミスキャッシュを防ぐか等に各種アルゴリズムやキャッシング回路技術がある。