1 / 26

Memoria

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.

trent
Download Presentation

Memoria

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Memoria Otros temas sobre cachés

  2. Otros temas • Estrategias de búsqueda de bloque. • Estrategias de reemplazo de bloque. • Cachés multinivel. Arquitectura de Computadoras

  3. 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

  4. 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

  5. Localizando un bloque • Un caché de mapeo directo requiere un solo comparador. Arquitectura de Computadoras

  6. Localizando un bloque • Un caché 4-way set associative requiere 4 comparadores. Arquitectura de Computadoras

  7. 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

  8. 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

  9. 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

  10. 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

  11. 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

  12. 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

  13. 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

  14. 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

  15. 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

  16. Cachés multinivel • Valores típicos en 2004. Arquitectura de Computadoras

  17. 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

  18. Algoritmos y el caché • Comportamiento teórico Arquitectura de Computadoras

  19. Algoritmos y el caché • Comportamiento real Arquitectura de Computadoras

  20. Algoritmos y el caché • Motivo: fallas de caché. Arquitectura de Computadoras

  21. 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

  22. 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

  23. 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

  24. 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

  25. 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

  26. 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

More Related