La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 20 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.

Presentaciones similares


Presentación del tema: "ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 20 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and."— Transcripción de la presentación:

1 ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 20 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and Design (The hardware / software interface), 4ta Edición, de David A. Patterson y John L. Hennessy. Editorial Morgan Kaufmann

2 AGENDA Jerarquía de Memoria –Memorias Cache –Respuesta a las 4 preguntas básicas –Estrategias para mejorar la relación hits - misses 01/09 – 04/09 Repaso, Predicción dinámica de saltos y Excepciones 07/09 – 11/09Jerarquía de memoria Jerarquía de Memoria y Proyecto 14-09 – 18/093er Examen Parcial

3 Memoria Cache Cache: Lugar seguro donde esconder o almacenar cosas. Utilizadas por primera vez a principios de los años 60. Hoy en día; cualquier computador de propósito general, desde servidores a procesadores encajados de baja potencia, incluyen memorias caches.

4 Tipos de Cache (Según ubicación de datos e instrucciones) Tipo Princeton: –Es cuando una cache almacena tanto datos como instrucciones Tipos Harvard: –Las instrucciones y los datos son guardados en caches separadas –Término alusivo a la Mark I fabricada en Harvard –Permite que el procesador extraiga al mismo tiempo datos e instrucciones

5 Ubicación de un bloque 1.- ¿Dónde se coloca un bloque en la Cache?

6 Mapeo Directo (La organización más sencilla) La localidad 0 de la cache puede ser ocupada por las direcciones de memoria 0, 4, 8, etc… cualquiera cuyos 2 LSB sean 00 ¿Cuál deberíamos colocar en la Cache? ¿Cómo podemos averiguar cuál está ocupando la Cache?

7 Búsqueda de un bloque 2.- ¿Cómo saber si un bloque está en la Cache? Index: Indica el conjunto (Set) de Tags a tomar en cuenta Tag: Dirección del bloque Offset: Dirección del dato deseado dentro del bloque Por lo general, se agrega un bit de validez al tag para saber si contiene una dirección válida o no Los tags candidatos o posibles, se revisan en paralelo (por cuestiones de velocidad) ¿Cuántos bits tendría Index si se tratase una memoria 4- way associative?

8 Reemplazo de un bloque 3.- ¿Qué bloque reemplazar si ocurre un Miss en la Cache? Si es mapeo directo: No hay problema Estrategias posibles: –Least Recently Used (LRU): El bloque que fue utilizado hace más tiempo –Aleatorio: Selección al azar de qué bloque sobreescribir –First In, First Out (FIFO): Debido a que LRU es difícil de calcular, se determina el bloque más viejo (el que lleva más tiempo) de la cache.

9 Escritura de un bloque 4.- ¿Qué ocurre al escribir un bloque en la Cache? Las escrituras de datos en Cache no son tan frecuentes (28%) como las lecturas. La escritura de un bloque comienza después de que chequeamos que ocurrió un miss. Alternativas: –Write through: Se escribe el bloque en la Cache y en la memoria de menor nivel. –Write back: Se escribe el bloque sólo en la Cache. El bloque se actualiza en las memorias de nivel inferior sólo si el bloque se va a sobreescribir. En Write back se requiere marcar que un bloque ha sido escrito, para saber que hay que actualizarlo en los niveles inferiores. Para ello, se utiliza un bit (dirty bit). Write back consume menos ancho de banda de memoria y es más rápido Write through es más sencillo de implementar

10 La Cache en el Pipeline

11 Estrategias para mejorar la relación hits - misses Los fallos pueden ocurrir porque: 1.Obligatorios: El primer acceso a un bloque (Cold-start miss o First-reference miss) 2.Por capacidad: La cache no puede albergar a todos los bloques necesarios para ejecutar un programa. 3.Conflicto: Debido a la estrategia de ubicación de los bloques en la cache, ocurre que un bloque se alterna entre ser descartado y ser requerido (Conflict miss)

12 Estrategias para mejorar la relación hits - misses 1.Aumentar el tamaño del bloque Se reducen los cold-start misses Se incrementan los fallos por capacidad (Caben menos bloques)

13 Estrategias para mejorar la relación hits - misses 2.Aumentar el tamaño de la cache Se reducen los fallos por capacidad Mayor latencia y consumo: Es una cache de mayor tamaño

14 Estrategias para mejorar la relación hits - misses 3.Aumentar la asociatividad (El tamaño de los conjuntos) Se reducen los fallos por capacidad Cache más cara y aumenta el tiempo de hit

15 Estrategias para mejorar la relación hits - misses 4.Aumentar los niveles de Cache La Cache L1 debería ser lo suficientemente pequeña para ir a la velocidad del CPU La Cache L2 debería ser lo más grande que se pueda (Sin penalizar mucho la velocidad) para minimizar los misses 5.Dar prioridad a la lectura sobre la escritura Utilizar buffers de escritura Se complican los accesos a memoria y aumenta el costo

16 Ejercicio Asuma que estamos evaluando un computador con un miss rate en la cache de instrucciones del 2% y un miss rate en la cache de datos del 4%. Si el procesador tiene un CPI de 2 (Sin misses) y un miss penalty de 100 ciclos, determine qué tanto más rápido sería un computador con una cache perfecta (Que nunca presentara un miss). Las operaciones de load y save representan, en promedio, el 36% de las instrucciones. R: 2.72 veces

17 Proyecto Escribir en una hoja los módulos que considera debe tener su proyecto. –Módulos referidos al camino de datos –Módulos de memoria, gestión de memoria –Módulos de gestión de I/O –Módulos que simulan I/O Para cada módulo, definir: –Entradas –Salidas –Función de transición


Descargar ppt "ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 20 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and."

Presentaciones similares


Anuncios Google