Memoria Caché: Tamaño de Bloque, Niveles, Estrategias de Escritura y Coherencia
Memoria Caché
P.D. Tam. Memoria Caché. Compromiso: debe ser suficientemente pequeña para tener un coste bajo, pero debe almacenar información en memoria intermedia, estar próxima al procesador, y ser suficientemente grande para que el tiempo de acceso medio sea lo más próximo posible al de la memoria caché.
Tamaño de Bloque
Tam. Bloque. A partir de un tamaño de bloque, la tasa de acierto disminuye. Cuanto mayor sea el tamaño de bloque, menor será el número de éstos en la memoria caché. Si el número de bloques es pequeño, aumenta la frecuencia de utilización del algoritmo de sustitución de bloques. Cuando crece el tamaño de bloque, cada nueva palabra añadida a ese bloque estará a mayor distancia de la palabra requerida por la CPU, por lo que es menos probable que sea necesitada a corto plazo. Una elección razonable está entre 4 y 8 unidades direccionables.
Número de Cachés
Núm. Cachés. Se aumenta más el rendimiento si se utilizan varias memorias caché. Tipos:
- Caché interna de nivel 1: ubicada físicamente en el mismo chip que el procesador. Reduce la actividad del bus externo del procesador y los tiempos de ejecución, e incrementa el rendimiento global del sistema.
- Caché externa de nivel 2: ubicada físicamente fuera del procesador. Es más lenta que la caché de nivel 1, pero más rápida que la memoria principal. Al estar fuera, tiene mayor capacidad que la caché de nivel 1.
Contenido de la Caché
Cont. Caché: separar la caché en una dedicada a instrucciones y otra a datos produce mejores resultados.
- Ventajas: mayor tasa de aciertos y coste reducido al implementar solo una caché. Elimina la competencia entre el procesador de instrucciones y la unidad de ejecución. De esta forma, el procesador puede captar instrucciones de forma anticipada y almacenarlas en la caché.
Estrategias de Escritura
Estrategias de escritura. Antes de reemplazar un bloque que está en caché, es necesario saber si se ha modificado o no. Si no ha sido modificado, puede sobrescribirse. Si ha sido modificado, se tendrá que actualizar en memoria antes de borrarlo.
- Escritura inmediata: todas las operaciones se realizan en la memoria caché y en la memoria principal. Inconveniente: genera tráfico en la memoria principal y puede producir un cuello de botella.
- Post-escritura: se escribe solo en la memoria caché. A cada línea de caché se asocia un bit de modificación. Cuando se escribe en caché, el bit pasa a 1. En caso de reemplazar una línea de caché, se mira el bit de modificación: si es 0, no se escribe la línea; si es 1, sí se escribe. Inconveniente: obliga a modificar los dispositivos de E/S que acceden a la memoria principal, y requiere circuitería compleja que puede generar cuellos de botella.
Coherencia de Caché
Un sistema que evite este problema se llama coherencia de caché, e incluye:
- Vigilancia del bus en escritura inmediata: cada controlador de caché monitoriza las líneas de dirección para detectar operaciones de escritura en memoria. Si se detecta, puede invalidar la caché o recargar los datos actualizados.
- Transparencia hardware: se utiliza hardware adicional para asegurar que todas las actualizaciones de la memoria principal, vía caché, queden reflejadas en todas las cachés.