Funcionamiento memoria cache
El objetivo de la memoria cache es lograr que la velocidad de la memoria sea lo más rápido posible, consiguiendo al mismo tiempo un tamaño grande al precio de memorias semiconductores menos costosas, ver figura 7.19. Hay una memoria principal relativamente grande y más lenta, junto con una memoria cache más pequeña y rápida. La memoria cache contiene una copia de partes de la memoria principal.
Cuando el microprocesador intenta leer una palabra de memoria, se hace una comprobación para determinar si la palabra está en la cache. Si es así, se entrega dicha palabra al procesador. Si no, un bloque de memoria principal, consistente en un cierto número de palabras se transfiere a la cache y después la palabra es entregada al microprocesador. Debido al fenómeno de localidad de las referencias, cuando un bloque de datos es capturado por la cache para satisfacer una referencia a memoria simple, es probable que se hagan referencias futuras a la misma posición de memoria o a otras palabras del mismo bloque.
Esto se logra debido a que en todos los ciclos de instrucción el procesador accede al menos una vez para leer la instrucción, y con frecuencia, una o más veces adicionales, para leer y/o almacenar los resultados. La velocidad a la que el procesador puede ejecutar instrucciones está claramente limitada por el tiempo de ciclo de memoria (el tiempo que se tarda en leer o escribir una palabra de la memoria). Esta limitación ha sido de hecho un problema significativo debido a la persistente discrepancia entre la velocidad del procesador y la de la memoria principal. La velocidad del procesador se ha incrementado constantemente de forma más rápida que la velocidad de acceso a la memoria.
Por otro lado, el diseñador se encuentra con un compromiso entre velocidad, costo y tamaño al construir la memoria principal. Idealmente, se debería construir la memoria principal con la misma tecnología que la de los registros del procesador, consiguiendo tiempos de ciclo de memoria comparables con los tiempos de ciclo del procesador. Esa estrategia siempre ha resultado demasiado costosa. La solución consiste en aprovechar el principio de la proximidad utilizando una memoria pequeña y rápida entre el procesador y la memoria principal, denominada memoria cache.
Finalmente, el propósito de la memoria cache es proporcionar un tiempo de acceso a memoria próxima al de las memorias más rápidas disponibles y, al mismo tiempo, ofrecer un tamaño de memoria grande que tenga el precio de los tipos de memorias de semiconductores menos costosos y con lo cual el procesador tiene acceso a sus datos e instrucciones con mucha mayor rapidez que si tuviera que recuperarlos de la memoria principal.
Un controlador de cache determina la frecuencia con que se utilizan los datos, transfiere los que se usan a menudo a la memoria cache y los elimina cuando identifica datos de uso menos constante. Los datos en la memoria cache se deben considerar como temporales. En el caso de una falla de energía, se pierden y no se pueden recuperar, a diferencia de los datos escritos en el almacenamiento secundario.
Fuente: Apuntes de Arquitectura de computadoras de la FCA de la UNAM