La CPU accede a los datos de la memoria RAM (los 8 Mb, 32 Mb, 128, o los que tengas). El problema es que leer una palabra de esa memoria tarda mucho, más de lo que el procesador tarda en procesarla, por lo que se pierde tiempo. Existe memoria más rápida, pero más cara. La solución es poner un poquito de esa memoria en medio, la caché. Un programa suele acceder secuencialmente a memoria, y repite accesos. A si es que en la memoria caché se guarda una copia de la parte de memoria principal que se está utilizando en ese momento. El procesador accede a esos datos rápidamente, y el coste en precio no sube demasiado. En realidad se suelen poner varios niveles de caché. El primer nivel es el que menos capacidad tiene, pero el más rápido, y es la memoria a la que accede el procesador. Si el procesador trata de leer una palabra que no está en la caché 1, le toca esperar a que la caché 1 se la pida a la 2, más lenta y más grande. Si esta la tiene, le da la información a la 1, y ésta al micro. Si no, la caché 2 tendrá que pedirsela a la 3, y así hasta llegar a la principal. Normalmente solo suele haber 2 niveles de caché, o como mucho 3, que yo sepa.
Resumiendo. La caché es una memoria mucho más rápida que la normal, que guarda una copia de una porción de la memoria total, que será la parte que se está utilizando. Cuando comienza a utilizarse otra parte, la copia de la caché se elimina, y se traen las nuevas partes de la memoria principal que se vaya a empezar a utilizar otra vez.