260 likes | 452 Views
Memoria. Otros temas sobre cachés. Otros temas. Estrategias de búsqueda de bloque. Estrategias de reemplazo de bloque. Cachés multinivel. Localizando un bloque. En un caché de mapeo directo (1-way), un bloque solo puede ir en un lugar.
E N D
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