UNIDAD TEMÁTICA 3: ACELERACIÓN DEL ACCESO A MEMORIA. 10. Evaluación de las prestaciones del subsistema de memoria. 11. Mejora de las prestaciones de las antememorias. 12. Mejora de las prestaciones de la memoria principal. 10-1
TEMA 10: EVALUACIÓN DE LAS PRESTACIONES DEL SUBSIS- TEMA DE MEMORIA 1. Repaso de la jerarquía de memoria. 2. Repaso de la estructura y funcionamiento de las antememorias. 3. Evaluación de las prestaciones del subsistema de memoria. Bibliografía: J.L. Hennessy & D. A. Patterson. Computer Architecture: A Quantitative Approach 2 a y 3 a ed., Morgan Kauffman Publishers, 1996 y 2002. Departamento de Informática de Sistemas y Computadores (DISCA) Facultad de Informática de Valencia 10-2
1 REPASO DE LA JERARQUÍA DE MEMORIA. 1. Repaso de la jerarquía de memoria....los programadores pretenderán acceder a cantidades ilimitadas de memoria rápida... La jerarquía de memoria es una solución económica a esta pretensión. Jerarquía de memoria Principio de localidad. Los programas tienden a reutilizar el código y los datos utilizados recientemente. Un programa gasta el 90 % de su tiempo ejecutando sólo el 10 % del código Localidad temporal: los datos accedidos recientemente serán accedidos también en el futuro próximo. Localidad espacial: los ítems cuyas direcciones estan cercanas tienden a ser referenciados conjuntamente en un intervalo de tiempo. Coste-prestaciones de las memorias: Cuanto más pequeñas, más rápidas. Cuanto más rápidas, más caras. Subsistema de memoria organizado en diferentes niveles: 10-3
1 REPASO DE LA JERARQUÍA DE MEMORIA. Jerarquía de memoria (cont.) Cada nivel es más pequeño, más rápido y mas caro que el nivel inferior. Objetivo: coste cercano al nivel más barato y velocidad cercana al más rápido. Los datos almacenados en un nivel también están almacenados en el nivel inferior, y así sucesivamente. En cada nivel, hace falta hacer corresponder direcciones del nivel inmediatamente inferior, más grande y más lento, sobre una memoria más pequeña pero más rápida. Tambien se realizan funciones de protección. Importancia de la jerarquía de memoria Conforme los procesadores son más rápidos, el diseño de la jerarquía de memoria cobra más importancia: Creciente diferencia de velocidad entre procesador y memoria: En 1980, los procesadores no llevaban caches. En 2001, muchos procesadores dos niveles de cache en el propio chip. 10-4
1 REPASO DE LA JERARQUÍA DE MEMORIA. Requisitos diferentes para computadores de sobremesa, servidores, y empotrados Computador de sobremesa. Un usuario, una aplicación. Objetivo: reducir latencia. Servidores. Múltiples usuarios, múltiples aplicaciones Objetivos: ancho de banda, protección. Computadores empotrados. Una aplicacion, a veces sin sistema operativo. Memoria principal pequeña, no hay disco. Objetivos: Tiempo-real (importante conocer las prestaciones del peor-caso). Bajo consumo. Hardware sencillo. Memorias cache o antememorias Cache: un sitio seguro para esconder o almacenar cosas Cache: primer nivel de la jerarquía de memoria. El principio de localidad se cumple a distintos niveles. El término cache se emplea actualmente cuando se almacena información que se reutilizará: caches de ficheros, cache de disco, cache de nombres, etc. Acierto: cuando el procesador encuentra en la cache el dato solicitado. Fallo: cuando el procesador no encuentra en la cache el dato accedido. Como consecuencia del fallo, un bloque de información de tamaño fijo que contiene la palabra accedida se copia de la memoria principal a la cache. Tiempo para servir un fallo. Depende de la latencia y ancho de banda de la memoria principal. Latencia. Tiempo necesario para recuperar la primera palabra del bloque. Ancho de banda. Velocidad con que se sirve el resto del bloque. Los fallos de cache se gestionan mediante hardware, y causan que el procesador se detenga hasta que el dato esté disponible. 10-5
1 REPASO DE LA JERARQUÍA DE MEMORIA. Memoria virtual. No todos los objetos referenciados por un programa deben estar en memoria principal. Si soporta memoria virtual, pueden estar en el disco. El espacio de direccionamiento se divide en bloques de igual tamaño (páginas). En un momento dado, una página puede residir en memoria o en disco. Si el procesador referencia un ítem dentro de una página que no esté en memoria principal, se produce un fallo de página, y la página entera se transfiere desde el disco hacia la memoria principal. Los fallos de página se gestionan mediante software y no detienen el procesador. El procesador cambia de contexto, ejecutando otra tarea mientras se realiza el acceso al disco. 10-6
2 ABC DE LAS CACHE 2. Repaso de la estructura y funcionamiento de las antememorias. Caracterizando las cache Cualquier nivel de la jerarquía de memoria puede caracterizarse respondiendo a las preguntas siguientes: Ubicación de un bloque. Dónde se ubica un bloque en el nivel superior? Identificación de un bloque. Cómo se encuentra un bloque, si está en el nivel superior? Reemplazamiento. Qué bloque se elimina ante un fallo? Política ante escrituras. Qué se hace ante una escritura? 10-7
2 ABC DE LAS CACHE Ubicación de un bloque. Correspondencia directa. Un bloque sólo puede estar almacenado en un lugar de la cache. La correspondencia es habitualmente: N o bloque cache = N o de bloque referenciado mod N o bloques cache Correspondencia totalmente asociativa. Un bloque puede almacenarse en cualquier lugar de la cache. Correspondencia asociativa por conjuntos. Un bloque puede almacenarse en un conjunto restringido de lugares en la cache. Un conjunto es un grupo de bloques en la cache. Un bloque puede almacenarse en cualquier bloque de uno de los conjuntos, seleccionado habitualmente: N o conjunto = N o de bloque referenciado mod N o conjuntos cache. Si hay n bloques por conjunto, se llama asociativa de n vías. Cache de m bloques en total: Directa es asociativa de 1 vía. Hay m conjuntos (de 1 bloque). 10-8
2 ABC DE LAS CACHE Totalmente asociativa es asociativa de m vías. Hay 1 conjunto (de m bloques) Identificación de un bloque Cada bloque almacenado en la cache tiene asociado una etiqueta que indica su dirección. Para saber si un bloque referenciado por el procesador se encuentra en la cache, se compara la dirección del bloque con las almacenadas en todas las etiquetas de la cache. Un bit de válido indica si un bloque de la cache tiene o no información válida. Partes de una dirección emitida por el procesador: Cómo comparar? En paralelo con todas las etiquetas válidas. Con correspondencia directa, sólo una comparación. No hace falta incluir la palabra dentro del bloque (offset), ya que, el bloque está presente o ausente por completo. El índice (index) selecciona el conjunto. No hace falta incluir el índice en la comparación, es redundante. El campo de etiqueta (tag) permite comprobar si el bloque está o no en la cache. Para un mismo tamaño de cache, al aumentar la asociatividad (aumentar el número de bloques por conjunto), se reduce el tamaño del índice y se aumenta el de la etiqueta. 10-9
2 ABC DE LAS CACHE Reemplazamiento Cuando hay un fallo de bloque, el bloque referenciado debe traerse de la memoria principal y ocupar el espacio ocupado por otro. Cuál de ellos debe eliminarse? Con correspondencia directa, es trivial. Se debe eliminar el que está almacenado en el lugar donde se alojará el nuevo. Con correspondencia asociativa, pueden emplearse varias estrategias: Aleatoria. Se elije un candidato al azar. Fácil de implementar. LRU. Menos recientemente usado. Se pretende reducir el riesgo de eliminar información susceptible de ser utilizada en el futuro. FIFO. Elimina el bloque más antiguo. Más fácil de implementar que LRU. Política ante escrituras Las operaciones de lectura mucho más frecuentes que las de escritura. Acelerar la lectura de cache? Leer el bloque al mismo tiempo que se compara la etiqueta. Escrituras Si es un acierto, la palabra correspondiente se envía al procesador. Si es un fallo, se desecha. No hay beneficio, pero tampoco perjuicio (salvo el consumo de energía inútil). No se puede modificar un bloque hasta que no se confirme que se trata de una acierto. Sólo hay que modificar una palabra (o unas pocas palabras) del bloque. El bloque modificado deberá escribirse también en la memoria principal. 10-10
2 ABC DE LAS CACHE Estrategias en caso de acierto: Política ante escrituras (cont.) Write-through. La información se almacena tanto en la cache como en la memoria principal. Más fácil de implementar. La memoria principal siempre está actualizada. El procesador debe esperar a que la escritura se complete Solución: write buffer, que permite que el procesador continúe tan pronto el dato se ha almacenado en el buffer, solapando la ejecución con la actualización de memoria. Write-back. La información únicamente se almacena en la cache. El bloque modificado se escribirá en la memoria principal cuando se reemplace. Un bit dirty indica si un bloque se ha modificado, requiriendo entonces actualizar la memoria principal. Emplea menos ancho de banda de memoria que Write-through. Los reemplazamientos requieren escribir en la memoria. Estrategias en caso de fallo de bloque: Write allocate. El bloque se lleva de la memoria principal a la cache. Entonces, se llevan a cabo las acciones de escritura con acierto. Habitual con write-back No-write allocate. El bloque no se lleva a la cache. Sólo se modifica en el nivel inferior. Habitual con write-through 10-11
3 PRESTACIONES DEL SUBSISTEMA DE MEMORIA. 3. Evaluación de las prestaciones del subsistema de memoria. Tiempo de acceso medio Tiempo de acceso med. = Tiempo acierto + Tasa de fallos Penalizacion por fallo T acceso = T A + T F P F. Modificación de la ecuación del tiempo de ejecución para incluir el comportamiento real de la cache: T ej = T ej cpu + T extra memoria, donde T ej cpu incluye el tiempo necesario para gestionar los aciertos de cache y T extra memoria el tiempo necesario para gestionar los fallos 1. T ej cpu = I CP I T T extra memoria = Ciclos parada memoria T Ciclos parada memoria = N o de fallos Penalización por fallo = NF P F N o de fallos = Instrucciones Fallos Fallos Instruccion = Sustituyendo: Accesos Instruccion Instruccion Tasa de fallos. Ciclos parada memoria = Instrucciones Accesos Tasa de fallos Instruccion Penalización por fallo = I AP I T F P F. Por lo tanto: T extra memoria = I AP I T F P F T 1 suponiendo que los fallos detienen al procesador 10-12
3 PRESTACIONES DEL SUBSISTEMA DE MEMORIA. Modificación de la ecuación del tiempo de ejecución (cont.) Pueden considerarse por separado las lecturas y escrituras: Ciclos parada memoria = Instrucciones Accesos Penalización por fallo = Instruccion Instrucciones Lecturas Tasa de fallos lectura Instruccion Penalización por fallo lectura, más Instrucciones Escrituras Tasa de fallos escritura Instruccion Penalización por fallo escritura. Ciclos parada memoria = (I LP I T F L P F L) + +(I EP I T F E P F E) Tasa de fallos 10-13