Arquitectura de Memoria Caché: Tipos de Fallos, Optimizaciones y Paralelización

Electrónica6,34 KB

Clasificación y Tipos de Fallos en Memoria Caché

El rendimiento de la memoria caché está directamente condicionado por los fallos de acceso a los datos requeridos por la CPU:

  • Tasa de fallos (Miss Rate): Indica cuántas veces se ha producido un fallo (miss); representa la fracción de accesos que resultan en fallo respecto al total de accesos a la memoria caché.
  • Fallo obligatorio o inevitable (Cold / Compulsory miss): La memoria caché es volátil. Si la caché está vacía (como ocurre al encender el ordenador), este fallo resulta inevitable y continuará produciéndose hasta que las líneas de la caché se vayan llenando con los bloques solicitados.
  • Fallo por capacidad: Ocurre cuando el dato requerido no se encuentra en la memoria porque el conjunto de trabajo es demasiado grande y la caché no puede contener todos los bloques necesarios simultáneamente, requiriendo redistribuir o reemplazar bloques.
  • Fallo por conflicto: Sucede en cachés con asociatividad limitada donde múltiples direcciones compiten por la misma línea de caché. Se reemplazan y desalojan bloques repetidas veces, afectando al principio de localidad temporal.

Tecnología de Memorias y Optimizaciones Básicas

Las memorias caché son componentes pequeños, muy rápidos, volátiles y de alto coste por bit. Entre las estrategias para mejorar su comportamiento encontramos:

  • Aumentar el tamaño de bloque: Incrementa la probabilidad de acierto por localidad espacial, aunque bloques excesivamente grandes aumentan los fallos por capacidad y conflicto.
  • Aumentar la capacidad de la caché: Ayuda a reducir la penalización por fallo, disminuyendo la tasa de fallos globales.
  • Aumentar la asociatividad: Reduce considerablemente los fallos por conflicto.
  • Aumentar los niveles de caché (L1, L2, L3): Reduce la tasa media de error y el tiempo medio de acceso a memoria, a expensas de mayor coste y superficie en el chip.
  • Dar prioridad a las lecturas frente a las escrituras: Al acceder a memoria tanto para leer como para escribir, se suele otorgar prioridad a la lectura sobre la escritura por motivos de velocidad y coste; reduce la penalización por fallo debido a que lee directamente desde el búfer de escritura.

Conceptos Fundamentales de Memoria

  • Traducción de direcciones: La traducción se realiza en el acceso a la memoria caché.
  • Latencia de memoria caché: Tiempo de respuesta que depende directamente del ancho de banda y del tiempo de acceso físico.
  • Tiempo de ciclo de una memoria: Es el intervalo de tiempo mínimo que debe transcurrir entre una petición y la siguiente.
  • Memoria volátil: Memoria que retiene de forma temporal los archivos e instrucciones con los que se está trabajando mientras el dispositivo cuenta con alimentación eléctrica.
  • Memoria estática: Almacena permanentemente instrucciones en el ordenador.

Optimizaciones Avanzadas de Memoria Caché

Las técnicas avanzadas se centran en los parámetros críticos de la fórmula del tiempo medio de acceso:

  • Reducir el tiempo de acierto (Hit Time).
  • Incrementar el ancho de banda disponible.
  • Reducir la penalización por fallo (Miss Penalty).
  • Reducir la tasa de fallos (Miss Rate).
  • Reducir la penalización por fallo mediante paralelización.

Técnicas para Reducir la Penalización por Fallo

  • No Write Buffering: Requiere aproximadamente 4 ciclos de espera.
  • Write Buffering: Reduce el impacto a tan solo 1 ciclo, almacenando temporalmente los datos pendientes de escritura en memoria principal.

Optimizaciones del Compilador y Técnicas de Hardware

El hardware corresponde al conjunto de componentes físicos del equipo, mientras que el software engloba el conjunto de programas, aplicaciones, instrucciones y reglas lógicas que posibilitan su funcionamiento.

  • Optimizaciones de compilador: Representa una vía basada en software dentro de las diversas técnicas existentes. El compilador reorganiza y optimiza el flujo de instrucciones y puede generar subbloques, aunque esto demande un mayor número de accesos a memoria.
  • Hardware Prefetching (Prebúsqueda por hardware): Se fundamenta en la idea de que un dato siempre reside dentro de un bloque estructurado. Haciendo uso de la asociatividad y para evitar búsquedas independientes en cada bloque, el controlador hardware carga de manera anticipada el bloque solicitado junto con el siguiente, previendo que será requerido por la siguiente instrucción. Es una solución implementada íntegramente en hardware para anticiparse a los desalojos de bloques en la caché.

Ancho de Banda y Rendimiento de Memoria

  • Uso alto de ancho de banda de memoria: Permite maximizar el flujo continuo de transferencia de datos entre los distintos niveles de la jerarquía de memoria.
  • Latencia de una memoria: Tiempo exacto que transcurre desde el instante en que el procesador solicita un dato a la memoria hasta el momento en que dicha memoria lo entrega disponible para su uso.

Paralelización a Nivel de Instrucción (ILP) y Manejo de Riesgos

La segmentación de instrucciones busca ejecutar múltiples operaciones en paralelo, debiendo gestionar tres tipos fundamentales de riesgos o dependencias:

  • Riesgos estructurales: Conflictos originados directamente por limitaciones físicas del hardware al requerir varios recursos simultáneos no duplicados.
  • Riesgos de datos: Provocados por dependencias en la lectura y escritura de operandos (dependencias verdaderas, antidependencias o dependencias de salida).
  • Riesgos de control: Ocasionados por instrucciones de salto y bifurcaciones condicionales o incondicionales que alteran el flujo secuencial y no se pueden mover ni renombrar fácilmente sin alterar la lógica de ejecución.

Descargar

PDF Word HTML