Memoria Otros temas sobre cachés
Otros temas • Estrategias de búsqueda de bloque. • Estrategias de reemplazo de bloque. • Cachés multinivel. Arquitectura de Computadoras
Localizando un bloque • En un caché de mapeo directo (1-way), un bloque solo puede ir en un lugar. • En un caché asociativo (n-way, n > 1), es necesario localizar el bloque. • La dirección se divide en: • El índice selecciona el conjunto. • Dentro del conjunto se comparan las etiquetas de todos los bloques. • Para mayor velocidad, las etiquetas se comparan en paralelo. Arquitectura de Computadoras
Localizando un bloque • Dado un tamaño fijo, existe una relación entre el tamaño del índice y los parámetros del caché. • Para un caché de 256 bloques: Arquitectura de Computadoras
Localizando un bloque • Un caché de mapeo directo requiere un solo comparador. Arquitectura de Computadoras
Localizando un bloque • Un caché 4-way set associative requiere 4 comparadores. Arquitectura de Computadoras
Que organización usar • La selección entre mapeo directo, set associative y fully associative depende del costo de falla comparando con el costo de implementar asociatividad en tiempo y hardware. Arquitectura de Computadoras
Bloque a reemplazar • En mapeo directo no hay elección. • En set associative se escoge un bloque dentro del conjunto seleccionado. • En fully associative cualquier bloque del caché es candidato a ser reemplazado. • La estrategia mas usada es LRU (least recently used – menos usado recientemente). Arquitectura de Computadoras
Bloque a reemplazar • LRU se vuelve costoso para conjuntos con muchos bloques. • Otra opción es aproximar LRU o usar una estrategia FIFO (first-in first-out – el primero que entra es el primero en salir). • Una tercera opción es usar reemplazo aleatorio. Arquitectura de Computadoras
Cachés multinivel • Tener uno o mas niveles de cachés. • Los sistemas de dos niveles son comunes. • El caché de segundo nivel (L2) se accesa cuando hay una falla en el caché primario (L1). • Si el caché L2 contiene el dato, el castigo por falla de L1 es el tiempo de acceso de L2 que es mucho menor que el tiempo de acceso a la memoria • Si el dato no está en L1 ni en L2, se accesa la memoria y el castigo por falla es mayor. Arquitectura de Computadoras
Ejemplo • Se tiene una CPU con: • CPI = 1.0 con caché fuera perfecto. • Velocidad de reloj = 5 GHz. • Tiempo de acceso de memoria = 100 ns. • Tasa de fallas del caché primario = 2%. • ¿Qué tan rápido es el sistema si se agrega otro nivel de caché con tiempo de acceso de 5 ns y capaz de reducir la tasa de fallas a la memoria a 0.5%? Arquitectura de Computadoras
Ejemplo • El castigo por falla es: • Para la memoria principal el castigo es: 100 ns / 0.2 ns = 500 ciclos. • El CPI efectivo con un nivel de caché es: • Para la CPU con un nivel de caché: 1.0 + 0.02 x 500 = 11.0 Arquitectura de Computadoras
Ejemplo • Con dos niveles de caché, una falla en el caché L1 se puede resolver por L2 o por la memoria. • Si se resuelve en L2, el tiempo de acceso a L2 es el castigo por falla. • En otro caso, el castigo por falla es la suma de los tiempos de acceso a L2 y a la memoria. • El castigo por falla por un acceso a L2 es: 5 ns / 0.2 ns = 25 ciclos Arquitectura de Computadoras
Ejemplo • El CPI efectivo para un caché de dos niveles: • Para la CPU con dos niveles de caché: 1.0 + 0.02 x 25 + 0.005 x 500 = 1 + 0.5 + 2.5 = 4 • Por lo tanto, la CPU con dos niveles de caché es más rápido que la CPU con un nivel en: 11 / 4 = 2.75 Arquitectura de Computadoras
Cachés multinivel • Se introducen dos nuevos conceptos: • Tasa de fallas global (global miss rate) es la fracción de referencias que fallan en todos los niveles. • Tasa de fallas local (local miss rate) es la fracción de referencias que fallan en un nivel. • El caché primario es mas pequeño y con menor tiempo de acceso que los secundarios. Arquitectura de Computadoras
Cachés multinivel • Valores típicos en 2004. Arquitectura de Computadoras
Algoritmos y el caché • Un algoritmo puede tener un comportamiento distinto a su comportamiento teórico debido a la presencia del caché. • En teoría, Radix Sort es mejor que Quicksort para arreglos grandes. Arquitectura de Computadoras
Algoritmos y el caché • Comportamiento teórico Arquitectura de Computadoras
Algoritmos y el caché • Comportamiento real Arquitectura de Computadoras
Algoritmos y el caché • Motivo: fallas de caché. Arquitectura de Computadoras
Solución • Diseñar algoritmos que hagan uso efectivo del caché (principio de locality). • Problema: el rendimiento puede variar de un sistema a otro. • El reto es diseñar algoritmos adaptables. Arquitectura de Computadoras
Conclusión • 4 preguntas en la jerarquía de memoria: • ¿Dónde se puede poner un bloque? • ¿Cómo se encuentra un bloque? • ¿Qué bloque debe ser reemplazado en una falla? • ¿Qué pasa en una escritura? Arquitectura de Computadoras
Conclusión • ¿Dónde se puede poner un bloque? • En mapeo directo en el lugar que le toque según su dirección. • En set associative en cualquier lugar dentro del conjunto que le toque. • En fully associative en cualquier lugar del caché. Arquitectura de Computadoras
Conclusión • ¿Cómo se encuentra un bloque? • En mapeo directo, buscando en el lugar que le toque y comparando la etiqueta. • En set associative, buscando en el conjunto que le toque comparando etiquetas. • En fully associative, buscando en el caché comparando etiquetas. Arquitectura de Computadoras
Conclusión • ¿Qué bloque debe ser reemplazado en una falla? • LRU (least recently used - menos usado recientemente). • Aproximación LRU o FIFO (first-in first-out – el primero que entra es el primero en salir). • Aleatorio. Arquitectura de Computadoras
Conclusión • ¿Qué pasa en una escritura? • Write-through se escribe en el caché y en la memoria para evitar inconsistencias. • Write-back se escribe en el caché y solamente cuando es necesario en la memoria. Arquitectura de Computadoras