Tema 4. Subsistema de Memoria 4.1. Introducción 4.2. Memoria cache 4.3. Memoria principal 4.4. Memoria virtual Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 1 Tema 4. Subsistema de Memoria 4.1. Introducción Jerarquía de memoria y tecnologías asociadas 4.2. Memoria cache Principio de localidad 4.3. Memoria principal Terminología 4.4. Memoria virtual Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 2 1 4.1 I N T R O Introducción • Memoria Ideal Æ Rápida, grande y barata. – ¿Qué significa que sea “rápida”? • Monociclo Æ Poca latencia de operación (tciclo pequeño) • Multiciclo Æ Que no determine el tiempo de ciclo. – ¿Qué significa que sea “grande”? • Que el tamaño de la memoria no limite los programas que puedo ejecutar. – ¿Qué significa que sea “barata? • Abordable económicamente. • Sin embargo, la realidad es otra: – Las memorias grandes son lentas – Las memorias rápidas son pequeñas (y caras) Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 3 4.1 Diferencia de rendimientos entre memoria y procesador Gap Procesador- Memoria DRAM (latencia) 1000 CPU µProc 60%/año (2X/1.5años) “Ley de Moore” 100 Gap: crece 50%/año 10 DRAM DRAM 9%/año (2X/10 años) 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 1 1980 1981 Rendimiento I N T R O Año Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 4 2 4.1 I N T R O Tecnologías de memoria (1) • Las tecnologías principales de memoria son • SRAM: Static Random Access Memory • Baja densidad, alto consumo potencia, cara, rápida • Estática Æ no necesita ser “refrescada” • DRAM: Dynamic Random Access Memory • Alta densidad, baja potencia, barato, lento • Dinámica Æ necesita ser “refrescada” regularmente • Disco Magnético • Cada tipo de memoria tiene sus características (1997): Tecnología de memoria Tiempo de acceso Coste por Mbyte SRAM 5-25 ns 100-250 $ DRAM 60-120 ns 5-100 $ 10-20 millones ns 0,10-0,20 $ Disco Magnético Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 5 4.1 I N T R O Tecnologías de memoria (2) • Tendencias tecnológicas: Capacidad 2x en 3 años 2x en 3 años DRAM: 4x en 3 años 2x en 10 años Disco: 4x en 3 años 2x en 10 años Año 1980 1983 1986 1989 1992 1995 • Velocidad (latencia) SRAM: Evolución de la memoria DRAM Tamaño Tiempo ciclo 64 Kb 250 ns 256 Kb 220 ns 1 Mb 190 ns 4 Mb 165 ns 16 Mb 145 ns 64 Mb 120 ns 1000:1! 2:1! ¿Podríamos hacer una memoria ideal con tecnología SRAM? Compromisos: • Capacidad-Velocidad Æ Alta capacidad y alta velocidad • Coste-Velocidad Æ Alta velocidad y bajo coste Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 6 3 4.1 I N T R O Tecnologías de memoria y tipos de acceso • El acceso puede ser aleatorio, pseudo-aleatorio y secuencial. – Acceso Aleatorio: • El tiempo de acceso es el mismo para todas las posiciones de memoria – Ejemplo: DRAM, SRAM – Acceso Pseudo-aleatorio: • El tiempo de acceso varía de una posición a otra y depende del momento en que se realice. – Ejemplo: Disco magnético, CDROM – Acceso Secuencial: • El tiempo de acceso depende de la localización del dato en el medio. – Ejemplo: Cinta magnética Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 7 4.1 I N T R O Impacto de la velocidad de la memoria en el rendimiento • Supongamos un procesador a 200 MHz (tciclo=5 ns), con un CPI medio de 1.1 ciclos con un sistema de memoria ideal para un programa determinado que tiene 50% de instrucciones aritmético-lógicas, 30% de instrucciones de cargaalmacenamiento (memoria) y 20% de instrucciones de control. • Si ahora ponemos un sistema de memoria real que provoca que el 10% de las instrucciones de memoria tengan una penalización de 50 ciclos, ¿cómo varía el CPI? CPI = CPImem_ideal + ciclos de bloqueo promedio por instrucción = = 1.1 + 0,30 * 0,10 * 50 = 1.1 + 1.5 = 2,6 ciclos por instrucción Rendimiento = Tcpu_mem_ideal / Tcpu_mem_real = N * 1.1 * 5 / N * 2.6 * 5 = 0.42 Æ Hemos perdido el 58% de rendimiento Æ El procesador pasa ahora el 58% del tiempo bloqueado esperando que lleguen los datos de memoria Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 8 4 4.1 I N T R O Organización jerárquica de la memoria • Objetivo: Dar la impresión al usuario de que tiene una memoria grande, rápida y barata. • ¿Cómo? – Organizando la memoria de forma jerárquica, compromiso entre Tecnología, Coste y Velocidad. • llegando así a un ¿En qué consiste? – En utilizar distintos niveles de memorias de forma que los niveles más cercanos al procesador utilizan tecnología más rápida (aunque son de menor tamaño y más caras) y los niveles más lejanos al procesador utilizan tecnología más lenta (y son de mayor tamaño y más baratas). Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 9 4.1 I N T R O Visión general del sistema de memoria Procesador Control Memoria Memoria Memoria Ruta de Datos Velocidad: Más rápida Tamaño: Más pequeña Coste: Más cara Memoria Memoria Más lenta Más grande Más barata Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 10 5 4.1 I N T R O ¿Por qué funciona la jerarquía de memorias? • Los programas no acceden de forma aleatoria a su código y a sus datos, sino que tienden a tener un comportamiento predefinido que sigue un determinado patrón. • Principio de localidad de referencia: Los programas acceden en cualquier instante de tiempo a una porción de memoria relativamente pequeña del espacio de direcciones total. Probabilidad de referencia en un instante de tiempo determinado 0 n Espacio de direcciones 2 -1 Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 11 4.1 I N T R O Principio de localidad • Localidad Temporal: Si se referencia una posición de memoria en un instante de tiempo determinado, existe una alta probabilidad de que vuelva a ser referenciada en los instantes siguientes. – Ejemplo: Instrucciones en bucles, variables • Localidad Espacial: Si se referencia una posición de memoria en un instante determinado, existe una alta probabilidad de que en los instantes siguientes se referencien las posiciones de memoria cercanas. – Ejemplo: Acceso a los elementos de un vector de datos, acceso a instrucciones secuenciales. Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 12 6 4.1 I N T R O Niveles de la jerarquía y tecnologías asociadas • Aplicando el Principio de Localidad: – Presentamos al usuario tanta memoria como sea posible en la tecnología más barata. – Proporcionamos acceso a la velocidad ofrecida por la tecnología más rápida. CPU Procesador Tipo de memoria Semiconductor SRAM Semiconductor L1 Cache SRAM Semiconductor L2 Cache SRAM Semiconductor Memoria principal DRAM Registros Registros Sistema Tarjeta Nivel jerárquico L1 Cache L2 Cache Memoria principal Disco Cinta Magnética Tecnología Tamaño Tiempo acceso 512 bytes 5 ns 32 KB 10 ns 512 KB 25 ns 32 MB Disco magnético Disco duro 2 GB Disco óptico CD-ROM xx GB Cinta magnética Cinta xx GB 75 ns 10 ms 10 MB/seg 300 ms 600 KB/seg seg-min 10 MB/min Discos ópticos Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 13 4.1 I N T R O Terminología (1) • Nivel superior e inferior – Entre dos niveles adyacentes de la jerarquía de memoria se denomina nivel superior al que está más cerca del procesador y nivel inferior al que está más lejos. – El nivel superior es siempre mas pequeño y rápido que el inferior. • Bloque – Es la unidad mínima de información que está presente o no en un nivel de la jerarquía. → Las transferencias de información se realizan siempre entre niveles adyacentes de la jerarquía. → La cantidad mínima de información que se transfiere es un bloque. Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 14 7 4.1 I N T R O Terminología (2) • Acierto y Fallo – Si los datos que se piden a un nivel se encuentran allí, se dice que se ha producido un acierto (hit). En caso contrario se produce un fallo (miss). – Cuando se produce un fallo en un nivel se accede al nivel inmediatamente inferior para buscar esa información. • Tasa de fallos y de aciertos – La tasa de aciertos de un nivel (hit rate) Æ porcentaje de accesos encontrados en ese nivel, sobre el total de accesos realizados a dicho nivel. – La tasa de fallos de un nivel (miss rate) Æ porcentaje de accesos no encontrados en ese nivel, sobre el total de accesos realizados a dicho nivel. También se define como (1-tasa de aciertos). Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 15 4.1 I N T R O Terminología (3) • La tasa de aciertos y/o la tasa de fallos se usan a menudo como medida del rendimiento de la jerarquía de memoria. – Menor tasa de fallos Æ menos veces hay que recurrir a los niveles más bajos (y más lentos) de la jerarquía Æ tiempo medio de acceso a memoria es mucho menor. – Una tasa de fallos baja indica que se accede pocas veces a los niveles más lentos de la jerarquía de memoria. Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 16 8 4.1 I N T R O Terminología (4) • Tiempo de acierto – Tiempo necesario para acceder a un datos en el nivel superior de la jerarquía. – Incluye el tiempo necesario para detectar si se trata de un acierto o de un fallo. • Penalización de fallo – Tiempo necesario para reemplazar un bloque del nivel superior por el correspondiente bloque del nivel inferior + Tiempo de suministrar este bloque al procesador. Tiempo de acierto << Penalización de fallo Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 17 4.1 I N T R O Evaluación del rendimiento de una jerarquía de memoria • Métrica de rendimiento – Tiempo medio que se tarda en hacer un acceso a memoria TMEDIO= Tiempo de acierto + Tasa de fallos * Penalización de fallos Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 18 9 4.1 I N T R O Cuestiones sobre cualquier nivel de la jerarquía de memoria • Q1: ¿Dónde puede ubicarse un bloque en el nivel superior? – Ubicación de bloque • Q2: ¿Cómo se encuentra un bloque si está en el nivel superior? – Identificación del bloque • Q3: ¿Qué bloque debe reemplazarse en caso de fallo? – Sustitución de bloque • Q4: ¿Qué ocurre en una escritura? – Estrategias de escritura • A continuación analizaremos cada una de estas cuestiones para los niveles de cache (nivel superior) y memoria principal (nivel inferior). Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 19 10 Tema 4. Subsistema de Memoria 4.1. Introducción 4.2. Memoria cache 4.3. Memoria principal 4.4. Memoria virtual Introducción Métodos de correspondencia (ubicación de bloque) Identificación de bloque Sustitución de bloque Estrategias de escritura Evaluación del rendimiento Clasificación de los fallos Elección del tamaño de bloque Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 20 4.2 M C A C H E Introducción • Originariamente, cache es el nombre del nivel de la jerarquía de memoria entre los registros y la memoria principal. • Hoy día es cualquier memoria gestionada para aprovechar la localidad de los accesos. – Ejemplo: Cache de disco. • La práctica totalidad de las máquinas actuales poseen uno o varios niveles de memoria cache que se encuentran dentro y/o fuera del chip. • (En alguna bibliografía, al bloque de la cache se le denomina línea) Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 21 1 4.2 M C A C H E Q1: ¿Dónde puede ubicarse un bloque en una cache? (1) • Cuando una cache solicita un bloque al nivel inferior, tiene que decidir dónde lo ubica • La posible ubicación de un bloque crea tres categorías en la organización de las caches – Caches de correspondencia directa (direct mapped cache) – Caches completamente asociativas (fully associative cache) – Caches de correspondencia asociative cache) asociativa por conjuntos (set Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 22 4.2 M C A C H E Q1: ¿Dónde puede ubicarse un bloque en una cache? (2) • Correspondencia directa – Cada bloque solo puede ir en una posición de la cache. – Para asignar la posición donde debe ir cada bloque se utiliza la dirección de memoria: Dirección de la estructura de bloque MODULO Número de bloques de la cache 00 01 10 11 Memoria cache Memoria principal Bloque 0 Bloque 15 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 23 2 4.2 M C A C H E Q1: ¿Dónde puede ubicarse un bloque en una cache? (3) • Correspondencia totalmente asociativa – Cada bloque puede ir en cualquier posición de la cache. 00 01 10 11 Memoria cache Memoria principal Bloque 0 Bloque 15 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 24 4.2 M C A C H E Q1: ¿Dónde puede ubicarse un bloque en una cache? (4) • Correspondencia asociativa por conjuntos – Conjunto: Grupo de bloques de la cache. – Primero se hace corresponder el bloque a un conjunto, y luego dentro del conjunto puede ubicarse en cualquiera de los bloques. Dirección de la estructura de bloque MODULO Número de conjuntos de la cache Asociativa por conjuntos de N vías ≡ Asociatividad N ≡ N bloques por conjunto 00 01 Conjunto 0 10 11 Conjunto 1 Memoria cache Memoria Bloque 0 principal Bloque 15 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 25 3 4.2 M C A C H E Ejemplo de ubicación de bloque • En una cache de 8 bloques ¿En qué bloque de la cache se ubicaría el bloque 12 de memoria principal? Totalmente asociativa El bloque 12 puede ir en cualquier bloque de la cache Correspondencia directa El bloque 12 sólo puede ir en el bloque 4: 12 MOD 8 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 8 Asociativa por conjuntos (2 vías) El bloque 12 puede ir en cualquier bloque del conjunto 0: 12 MOD 4 0 1 2 3 4 5 6 7 c0 c1 c2 c3 9 10 11 12 13 14 15 16 17 Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 26 4.2 M C A C H E Extremos en la organización de la cache (1) • Para un tamaño dado, las diversas organizaciones son realmente un continuo de la política de asociatividad por conjuntos: Correspondencia directa = asociativa por conjuntos de 1 vía Totalmente asociativa = asociativa por conjuntos de L vías Parámetros de la organización: A: Asociatividad o número de vías por conjunto B: Tamaño de bloque S: Número de conjuntos L: Número de bloques en la cache C: Tamaño de la cache Asociatividad (A) Nombre Nº conjuntos (S) Relaciones de interés: C=S*A*B L = C/B L=S*A Características Menor tiempo de acceso 1 Correspondencia directa L n Asociativa por conjuntos n vías L/n Compromiso entre ambas L Totalmente asociativa 1 Mejor tasa de aciertos Menor tasa de aciertos Número de comparadores Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 27 4 4.2 M C A C H E Extremos en la organización de la cache (2) One-way set associative (direct mapped) Asociativa por conjuntos 1 vía (directa) Block Asociativa por conjuntos 2 vías Tag Data 0 Two-way set associative 1 Set 2 3 0 4 1 5 2 6 3 Tag Data Tag Data 7 Asociativa por conjuntos 8 vías (totalmente asociativa) Four-way set associative Set Asociativa por conjuntos 4 vías Tag Data Tag Data Tag Data Tag Data 0 1 Eight-way set associative (fully associative) Tag Data Tag Data Tag Data Tag Data Tag Data Tag Data Tag Data Tag Data Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 28 4.2 M C A C H E Q2: ¿Cómo se encuentra un bloque en una cache? (1) • Puesto que en el bloque 0 de la cache pueden haber bloques distintos de memoria principal.... ...¿cómo se sabe qué bloque de memoria principal está ocupando en cada momento cada bloque de la cache? Æ Identificación del bloque 00 01 10 11 Memoria cache Memoria principal Bloque 0 Bloque 15 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 29 5 4.2 M C A C H E Q2: ¿Cómo se encuentra un bloque en una cache? (2) • Identificación de bloque Æ Información adicional para cada bloque de la cache que permite identificar el bloque de memoria que ocupa ese bloque de cache. – Campo de etiqueta de dirección (tag) Æ Parte alta de la dirección que no se utiliza para indexar la cache. – Bit de validez Æ Indica si el bloque tiene datos válidos (V=1) o no (V=0) • Ejemplo: cache con 4 bloques y 8 bytes/bloque. B lo que 0 1 2 3 V alide z V V V V E tiq ueta tag tag tag tag b7 b7 b7 b7 b6 b6 b6 b6 D a to s (8 b5 b4 b5 b4 b5 b4 b5 b4 b ytes) b3 b2 b3 b2 b3 b2 b3 b2 b1 b1 b1 b1 b0 b0 b0 b0 Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 30 4.2 M C A C H E Q2: ¿Cómo se encuentra un bloque en una cache? (3) • La dirección que suministra el procesador tiene los siguientes campos: Dirección del bloque de memoria Índice Tag Desplazamiento (byte dentro del bloque) • Índice Æ selecciona el conjunto • Tag Æ chequea todos los bloques del conjunto • Desplazamiento Æ dirección del dato dentro del bloque ( Las caches totalmente asociativas no tienen índice) Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 31 6 4.2 M C A C H E Q2: ¿Cómo se encuentra un bloque en una cache? (4) • Ejemplo: En una cache de correspondencia directa con 64 bloques y tamaño de bloque de 16 bytes, ¿en qué bloque está el dato cuya dirección es 1200? • 64 bloques • Correspondencia directa → 64 conjuntos = 26 → 6 bits para el índice → 1 vía • Tamaño del bloque = 16 bytes = 24 • 32 – 6 – 4 = 22 → 4 bits para el desplazamiento → 22 bits para tag 120010 = 0000 04B016 = 0000 0000 0000 0000 0000 0100 1011 00002 0000 0000 0000 0000 0000 01 001011 0000 (6 bits) (4bits) Bloque cache = Dirección bloque MODULO Nº bloques cache = 75 MOD 64 = 11 Dirección bloque = parte entera (dirección / nº bytes por bloque) = parte entera (1200/16) = 75 Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 32 4.2 M C A C H E Tamaño total de la cache • Tamaño total de la cache = tamaño datos + tamaño etiquetas + tamaño bits validez • Ejemplo: Calcular el tamaño total de una memoria cache de correspondencia directa con 64 KB de datos y bloques de 4 palabras suponiendo que la dirección es de 32 bits. Nº bloques =Nº conjuntos= 64 Kbytes/ 16 bytes = 4 K = 212 → 12 bits para el índice Tamaño del bloque = 16 bytes = 24 → 4 bits para el desplazamiento 32-4-12= 16 bits 12 bits 4 bits TAG Nº de bloque Desplazamiento Tamaño de datos = 64Kbytes Tamaño etiqueta = 4 K * 16 bits = 64 Kbits Tamaño bits validez = 4 K * 1 bit = 4 Kbits Tamaño total = 64 Kbytes + 64 Kbits + 4 Kbits = 72.5 Kbytes De otra forma: 4K * (16 bytes + 16 bits + 1 bit) = 72.5 Kbytes Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 33 7 4.2 M C A C H E Hardware necesario (1) • Correspondencia directa o asociativa por conjuntos de 1 vía Address (showing bit positions) 31 30 210 20 10 Byte offset Parámetros: – – – 13 12 11 Hit Bloques de 1 palabra 1024 bloques o conjuntos Tamaño total de la cache = = (1+20+32)*1024 = 53kbits Data Tag Index Index Valid Tag Data 0 1 2 1021 1022 1023 20 32 Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 34 4.2 M C A C H E Hardware necesario (2) • Asociativa por conjuntos de 4 vías 31 30 – – A = 4 bloques/conjunto B = 1 palabra = 4 bytes S = 28 = 256 conjuntos L = S*A = 256 *4 = 1024 bloques C=S*A*B = 256*4*4 = 4096 bytes (datos) Index 0 1 2 V Tag Data V 3210 8 22 Parámetros: – – – – 12 11 10 9 8 Tag Data V Tag Data V Tag Data 253 254 255 22 32 Tamaño total = = 256*[4*(1+22+32)] = 7040 bytes 4-to-1 multiplexor Hit • Data Aumento de la asociatividad Æ Aumento de la complejidad hardware Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 35 8 4.2 M C A C H E Efecto de aumentar la asociatividad (1) • Incrementando la asociatividad se disminuye el índice y se expande la etiqueta – El índice selecciona al conjunto – La etiqueta se usa para seleccionar el bloque correspondiente – El desplazamiento se usa para obtener el dato • Aumentar la asociatividad es una decisión de compromiso entre el coste de un fallo frente al coste de la asociatividad (en tiempo y en circuitería extra). Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 36 4.2 M C A C H E Efecto de aumentar la asociatividad (2) • Ejemplo: Dada una cache con 4K bloques distintos de tamaño 4 bytes y direcciones de 32 bits, encontrar el número total de conjuntos y el número total de bits necesarios para las etiquetas suponiendo que la cache fuese de correspondencia directa, asociativa por conjuntos de 2 vías y de 4 vías, y totalmente asociativa. Tamaño de las etiquetas: Correspondencia directa Æ 72 Kbits Asociativa por conjuntos de 2 vías Æ 76 Kbits Asociativa por conjuntos de 4 vías Æ 80 Kbits Totalmente asociativa Æ 120 Kbits Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 37 9 4.2 M Características extremas de las caches C A C H E Correspondencia directa Totalmente asociativa • Un bloque solo puede ubicarse en un bloque de la cache • Un bloque puede estar cualquier lugar de la cache • Tasa de aciertos baja – Casos patológicos pueden dar 0% de tasa de aciertos. • Mejor tasa de aciertos • Tiempo de acceso bajo – No multiplexor para datos • Tiempo de acceso más alto. • Hardware más sencillo – Acceso paralelo al tag y a los datos • Hardware más complejo. – Muchos comparadores – Memorias y buses anchos (tag grande) Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria en 38 4.2 M C A C H E Q3: ¿Qué bloque debe reemplazarse en caso de fallo? • Cache con Correspondencia directa Æ No tenemos que decidir. Un bloque sólo puede estar en un lugar de la cache. • Cache con Asociatividad Æ Se puede escoger dónde situar el nuevo bloque, y qué bloque reemplazar. Existen distintas políticas de reemplazo: – Aleatoria (a veces pseudoaleatoria) • El bloque de la cache a sustituir se elige aleatoriamente. • Fácil implementación hardware. – Menos recientemente usado (LRU) • Se registran los accesos a los datos. El bloque a sustituir es el que hace más tiempo que no se referencia. • Solución muy cara cuando aumenta el número de bloques a gestionar Æ se implementa una aproximación. – FIFO • Menos eficiente que la aleatoria y más difícil de implementar. • La política de reemplazo juega un papel más importante en las memorias cache más pequeñas. Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 39 10 4.2 M C A C H E Tasa de falllos vs. Política de reemplazo • Ejemplo tomado de una traza VAX con tamaño de bloque de 16 bytes Tasa de fallos Tamaño • 2 Vías LRU Aleatorio 4 Vías LRU Aleatorio 8 Vías LRU Aleatorio 16 KB 5,18 % 5,69 % 4,67 % 5,29 % 4,39 % 4,96 % 64 KB 1,88 % 2,01 % 1,54 % 1,66 % 1,39 % 1,53 % 256 KB 1,15 % 1,17 % 1,13 % 1,13 % 1,12 % 1,12 % Observaciones realizadas: – Para un tamaño de cache dado, a medida que aumentamos la asociatividad disminuye la tasa de fallos, independientemente de la política de reemplazo. – Para caches pequeñas funciona mejor la política de reemplazo LRU. – También se observa que para caches de mayor tamaño hay poca diferencia entre los algoritmos LRU y aleatorio, sobre todo cuando se aumenta la asociatividad. Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 40 4.2 M C A C H E Q4: ¿Qué ocurre en una escritura? (1) • Las lecturas dominan los accesos a la cache ya que todas las instrucciones deben leerse. • Las escrituras son menos frecuentes y tardan más – La comparación de las etiquetas y la escritura de los datos no pueden realizarse en paralelo Æ La escritura no puede comenzar hasta que se comprueba que las etiquetas coinciden. • Políticas de escritura: – Escritura directa (write through) – Postescritura (write back ó copy back) Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 41 11 4.2 M C A C H E Q4: ¿Qué ocurre en una escritura? (2) • Políticas de escritura: Escritura directa (write through) – La información se escribe en la cache y en la memoria principal. – La CPU debe esperar a que finalice la escritura en el nivel inferior Æ Detención – Optimización Æ Buffer de escritura • La CPU escribe en un buffer y sigue sin detención. • Aspectos: Profundidad del buffer y velocidades generación/realización de escrituras. relativas de – Mantiene la coherencia de forma natural. – Aumenta el tráfico de memoria. – Los fallos de cache son más sencillos de tratar puesto que permiten desechar el bloque en un reemplazo sin necesidad de una actualización previa de la memoria principal. Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 42 4.2 M C A C H E Q4: ¿Qué ocurre en una escritura? (3) • Políticas de escritura: Postescritura (write back ó copy back) – La información se escribe sólo en el bloque de la cache y se marca que ha sido modificada mediante el bit de modificación (dirty bit). – Un bloque modificado en la cache (dirty bit=1) se escribe en memoria principal sólo cuando es reemplazado. Si no fue modificado, simplemente se desecha. – No mantiene la coherencia de forma natural Æ hay que introducir métodos de coherencia (entrada/salida por DMA y multiprocesadores). – Bajo tráfico de memoria – Las escrituras son rápidas pero las lecturas pueden ser más lentas si dirty bit=1. Fallo de lectura ¿Bloque modificado? No Sí Actualizar bloque en memoria Leer bloque Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 43 12 4.2 M C A C H E Q4: ¿Qué ocurre en una escritura? (4) • Cuando el procesador intenta escribir en una dirección de memoria que no se encuentra en ningún bloque de la cache se produce un fallo de escritura • Si se produce Fallo de escritura, ¿qué se hace con el bloque?: – Ubicar en escritura (write allocate) • El bloque se carga en la cache y luego se actúa como en un acierto de escritura. • Similar a un fallo de lectura. • Generalmente utilizada por caches de postescritura, esperando que siguientes escrituras sean capturadas por la cache. – No ubicar en escritura (no write allocate) • El bloque se modifica directamente en la memoria principal (nivel inferior) y no se carga en la cache. • Generalmente utilizada por caches de escritura directa, ya que las escrituras posteriores a ese bloque deberán ir, en cualquier caso, a memoria. Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 44 4.2 M C A C H E Evaluación del rendimiento de una cache (1) • El comportamiento de la cache influye en el rendimiento de la CPU puesto que puede generar más ciclos de ejecución de los estrictamente necesarios para ejecutar el programa, cuando los datos no se encuentran en la cache. TCPU = (Ciclos_Ejecución_CPU + Ciclos_Bloqueo_Memoria) x Tiempo de ciclo Tiempo que la CPU está ejecutando instrucciones. Incluye: • Ciclos de reloj de aciertos en cache Tiempo que la CPU está bloqueada esperando por datos de memoria. Incluye: • Penalización de fallos • Detenciones en el buffer de escritura • Detenciones en la memoria virtual TCPU = N x (CPIEjecución + CPIBloqueo_Memoria) x Tciclo Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 45 13 4.2 M C A C H E Evaluación del rendimiento de una cache (2) • Si asumimos que los ciclos de fundamentalmente a fallos en cache: bloqueo de memoria se deben Ciclos_Bloqueo_Memoria = Ciclos_Bloqueo_Lectura + Ciclos_Bloqueo_Escritura Ciclos_Bloqueo_Lectura = Tasa _ lecturas ×Tasa_fallos_lecturas × Penalización_fallos_lectura Ciclos_Bloqueo_Escritura = Tasa _ escrituras ×Tasa_fallos_escritura × Penalización_fallo_escritura + + Bloqueos_buffer_escritura • Además, con escritura write-through las penalizaciones de lectura y escritura son las mismas, por lo que Ciclos_Blo queo_Memor ia = Tasa _ accesos _ a _ memoria × Tasa_fallo s × Penalizaci ón_fallos Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 46 4.2 M C A C H E Evaluación del rendimiento de una cache (3) - Ejemplo • Supongamos que tenemos un procesador con cache ideal en el que ejecutamos un programa que realiza 1.4 accesos a memoria por instrucción. A este procesador el conectamos una cache real que presenta una tasa de fallos del 10% y una penalización de fallos de 10 ciclos. Calcular del impacto en el rendimiento de haber incluido una cache real TCPU_con_Cache = N x (CPIEjecución + 1.4 x 0.1 x 10) x Tciclo TCPU_sin_Cache = N x (CPIEjecución) x Tciclo Si CPIEjecución= 1.4 (Ej. RISC) → CPIMedio= 1.4 + 1.4 = 2.8 (50% más lento) Si CPIEjecución= • 8 (Ej. CISC) → CPIMedio= 8 + 1.4 = 9.4 (15 % más lento) Conclusión: El efecto de la detención de memoria es muy significativo cuando el CPI y Tciclo son bajos. – A más bajo CPI, el impacto es más pronunciado. – La penalización de fallos se mide en ciclos de reloj. A igual tiempo de acceso a memoria y menor Tciclo (mayor frecuencia) la penalización de fallos es mayor. Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 47 14 4.2 M C A C H E Evaluación del rendimiento de una cache (4) - Ejercicio • Supongamos que ejecutamos un programa y obtenemos una tasa de fallos del 3%. Si la máquina donde lo ejecutamos tiene un CPI de 2 sin bloqueos a memoria y una penalización de fallos de 40 ciclos para todos los fallos, determinar cuánto más rápida sería una máquina con una cache perfecta (sin fallos). (Suponga que el 36% de las instrucciones del programa son de acceso a memoria) • Suponga ahora que a la máquina se le aplica una segmentación mejor consiguiendo disminuir el CPI de 2 a 1, sin cambiar la frecuencia de reloj. ¿Cuánto más rápida es ahora la máquina con cache ideal respecto a la máquina con cache real? ¿Qué porcentaje de tiempo de ejecución se emplea en bloqueos de memoria en cada caso? • Si en vez de tocar la segmentación se dobla la frecuencia de reloj de la máquina original, compare los CPI de la máquina rápida y lenta cuando ambas tienen memoria real. ¿Cuánto más rápida será la máquina con cache real y reloj rápido respecto a la máquina con cache real y reloj lento? (supónganse los mismos datos de tasa de fallos, etc..) Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 48 4.2 M C A C H E Clasificación de los fallos de la cache • Los fallos de la cache son de uno de los tipos siguientes: – Forzosos (compulsory) • El primer acceso a un bloque no está en la cache y debe ser traído desde la memoria principal a la cache. También llamados fallos de primera referencia o de arranque frío. – Capacidad (capacity) • Si la cache no puede contener todos los bloques necesarios durante la ejecución del programa, se descartan bloques de la cache (sustitución) que posteriormente se recuperan. – Conflicto (conflict) • Si la estrategia de ubicación de bloque es de correspondencia directa o asociativa por conjuntos, se pueden producir fallos de conflicto ya que a varios bloques de la memoria principal les puede corresponder el mismo conjunto en la cache. En estos casos es necesario descartar un bloque a pesar de que existen bloques libres en la cache. Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 49 15 4.2 M C A C H E Introducción de la cache en el diseño del procesador • ¿Cómo? – Cambiando las memorias del diseño del procesador por memorias cache. • Si hay un acierto Æ la ruta de datos continúa usando los datos igual que antes (modificaciones mínimas) • Si hay un fallo Æ bloquear el procesador, buscar los datos en el siguiente nivel de memoria, copiarlos en la cache y reanudar la ejecución de la instrucción que causó el fallo. • Tratamiento de fallo de lectura de instrucción: 1. Enviar el valor del (PC-4) a la memoria. 2. Acceso a memoria principal y esperar a que se complete el acceso. 3. Escribir el bloque en la cache (datos, etiqueta y bit de validez). 4. Reiniciar la ejecución de la instrucción desde el principio. • Tratamiento de fallo de lectura de datos Æ Similar. Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 50 4.2 M C A C H E Elección del tamaño de bloque en la cache • Bloque de Tamaño 1 palabra – No explota localidad espacial – Escrituras sencillas (no importa si hay fallo de escritura) • Bloque de Tamaño multipalabra – Explota mejor la localidad espacial, disminuyendo entonces la tasa de fallos, EXCEPTO si se aumenta mucho el tamaño de bloque (dejando fijo el tamaño total de la cache) porque entonces el número de bloques diferentes en la cache es muy pequeño para poder explotar la localidad temporal y se produce un aumento de la tasa de fallos. – El tratamiento de las escrituras es más complicado: Si hay fallo de escritura se requiere hacer una lectura previa. – Aumenta la penalización de un fallo. A medida que el bloque comienza a ser muy grande la penalización de fallos crece. Si crece más de lo que disminuye la tasa de fallos entonces el producto (tasa de fallos * penalización de fallos) aumenta, produciéndose una disminución global del rendimiento. – Aumenta la eficiencia de la cache, al aumentar el ratio (información útil de datos /información total) (por disminuir el nº de etiquetas en relación a los datos) Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 51 16 4.2 M C A C H E Algunas técnicas para mejorar el rendimiento de la cache • Asociatividad – reduce la tasa de fallos – Introducir asociatividad permite mayor flexibilidad en la ubicación de los bloques en la cache, permitiendo así explotar mejor la localidad temporal. • Memorias cache multinivel – reducen la penalización de fallos – Se añade un segundo nivel de cache fuera del chip (L2) con un tiempo de acceso menor que el de la memoria principal. – Cuando ocurre un fallo en la cache primaria (L1), se accede a la cache secundaria (L2) para buscar los datos. • Si están allí Æ se reduce la penalización de fallo. • Si no están Æ accedemos a la memoria principal. En este caso la penalización de fallo es mucho mayor porque incluye el tiempo de acceder a la L2 y fallar. – Como el acceso a la L2 cuesta pocos ciclos (en relación con lo que cuesta un acceso a la memoria principal), el diseño se centra en disminuir el tiempo de acierto de la L1 (para así poder disminuir el tciclo) más que en disminuir su tasa de fallos. – Normalmente la L1 es de pequeño tamaño y con asociatividad 2 o 4, mientras que la L2 es grande y con asociatividad 2, como mucho. Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 52 17