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 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) µProc 60%/año (2X/1.5años) 1000 CPU “Ley de Moore” 100 Gap: crece 50%/año 10 DRAM 9%/año (2X/10 años) DRAM 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 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 Velocidad (latencia) SRAM: 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 Evolución de la memoria DRAM Año • Tamaño Tiempo ciclo 1980 64 Kb 250 ns 1983 256 Kb 220 ns 1986 1 Mb 190 ns 1989 4 Mb 165 ns 1992 16 Mb 145 ns 1995 64 Mb 1000:1! 120 ns 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 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.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 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 n 0 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 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 Tarjeta Nivel jerárquico L1 Cache L2 Cache Sistema 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 75 ns Disco magnético Disco duro 2 GB Disco óptico CD-ROM xx GB Cinta magnética Cinta xx GB 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 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 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 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 Tema 4. Subsistema de Memoria 4.1. Introducción 4.2. Memoria cache 4.3. Memoria principal Introducción Métodos de correspondencia (ubicación de bloque) Identificación de bloque 4.4. Memoria virtual 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 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 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 10 11 Conjunto 0 Memoria cache Conjunto 1 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 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 Relaciones de interés: C=S*A*B L = C/B L=S*A Nº conjuntos (S) 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.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 2 Set 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 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 q u e 0 1 2 3 V a lid e z V V V V E tiqu e ta tag tag tag tag b7 b7 b7 b7 b6 b6 b6 b6 D atos (8 b5 b4 b5 b4 b5 b4 b5 b4 b yte s) 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 (byte dentro del bloque) Índice Tag Desplazamiento • Í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 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 ĺ 1 vía • Tamaño del bloque = 16 bytes = 24 • 32 – 6 – 4 = 22 ĺ 64 conjuntos = 2 ĺ 6 bits para el índice 6 Ⱥ 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 (6 bits) 0000 (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. 12 Nº bloques =Nº conjuntos= 64 Kbytes/ 16 bytes = 4 K = 2 Tamaño del bloque = 16 bytes = 24 ĺ 12 bits para el índice Ⱥ 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 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 13 12 11 210 Byte offset Parámetros: – – – Hit Bloques de 1 palabra 1024 bloques o conjuntos Tamaño total de la cache = = (1+20+32)*1024 = 53kbits 10 20 Tag Data 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 12 11 10 9 8 3210 8 22 Parámetros: – – – – – – 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 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 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 Efecto de aumentar la asociatividad (2) C A C H E • 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 37 Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 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 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 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 Fallo de lectura – Las escrituras son rápidas pero las lecturas pueden ser más lentas si dirty bit=1. ¿Bloque modificado? Sí No Actualizar bloque en memoria Leer bloque Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 43 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 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 uTasa_fallos_lecturas u Penalización_fallos_lectura Ciclos_Bloqueo_Escritura Tasa _ escrituras uTasa_fallos_escritura u 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_Memoria Tasa _ accesos _ a _ memoria uTasa_fallo s u 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 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 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 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 Tema 4. Subsistema de Memoria 4.1. Introducción 4.2. Memoria cache 4.3. Memoria principal Conceptos generales 4.4. Memoria virtual Organizaciones para mejorar el rendimiento Algunas tecnologías DRAM Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 53 4.3 M P R I N C I P A L Conceptos generales • La memoria principal es el siguiente nivel de la jerarquía de memorias, a continuación de la/s cache/s, y por tanto satisface las demandas de ese nivel. • Además, sirve de interface para la E/S del sistema computador Æ Destino de las entradas y fuente de las salidas. • Está construida con DRAMs, las cuales están pensadas para aumentar la densidad en lugar de disminuir el tiempo de acceso • Al ser el siguiente nivel de la jerarquía, y por el hecho de ser un nivel más lento que la cache, su organización influye en la penalización de fallo y por tanto influye en el rendimiento. Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 54 4.3 M P R I N C I P A L Rendimiento de la memoria principal • Los parámetros para evaluar el rendimiento de la memoria principal son – Latencia : tiempo en obtener el primer acceso – Ancho de banda : número de bytes leídos o escritos por unidad de tiempo • Para lograr un buen rendimiento, hay que conseguir el mejor ancho de banda posible entre la cache y la memoria principal, ya que así se disminuye el tiempo de transferencia. El tiempo de acceso o latencia es difícil de reducir. • Las posibles organizaciones para mejorar el rendimiento de la memoria principal son – Aumentar el ancho de la memoria – Utilizar memoria entrelazada – Utilizar bancos de memoria independientes Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 55 4.3 M P R I N C I P A L Organización con ancho de una palabra • La conexión de la CPU con la cache es de 1 palabra de ancho, al igual que la conexión entre la cache y la memoria principal. • Si suponemos: – 1 ciclo para enviar la dirección. – 15 ciclos para cada acceso a una posición de la DRAM. – 1 ciclo para enviar una palabra de datos. – Bloque de cache de 4 palabras (16 bytes). • Penalización de fallo = 1 + 4x15 + 4x1 = 65 ciclos • Medida del ancho de banda entre la cache y la memoria principal Nº bytes transferidos /ciclo = 16 / 65 = 0,25 CPU Cache Bus Memory Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 56 4.3 M P R I N C I P A L Organización con ancho de varias palabras • Se aumenta el ancho de banda haciendo la memoria y el bus de varias palabras de ancho. • Aumentar el ancho de la memoria y del bus disminuye el tiempo de acceso y el tiempo de transferencia Æ disminuye la penalización de fallo • • CPU Multiplexor Se necesita un multiplexor que seleccione la palabra del bloque de cache que se va a suministrar a la CPU Cache Bus Todas estas medidas aumentan el coste, y aumentan también el tiempo de acceso a la cache. Memory • Si ancho de memoria es de 2 palabras Penalización de fallo = 1 + 2x15 + 2x1 = 33 ciclos Nº bytes transferidos/ciclo = 16/33 = 0,48 • Si ancho de memoria = 4 palabras Penalización de fallo = 1 + 1x15 + 1x1 = 17 ciclos Nº bytes transferidos/ciclo = 16/17 = 0,94 Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 57 4.3 M P R I N C I P A L Organización de memoria entrelazada (1) • Se incrementa el ancho de banda ensanchando la memoria pero no el bus de conexión. • Memoria organizada en bancos de 1 palabra de ancho. Se leen/escriben simultáneamente varias palabras (tantas como bancos) con un solo tiempo de acceso. – Hay una parte común en la dirección que se envía a todos los bancos – Todos los bancos acceden simultáneamente al dato ubicado en esa dirección – Se lee el dato disponible en cada banco Ⱥ se obtiene un bloque de datos CPU Cache Bus • Los bits menos significativos de la dirección seleccionan el banco de memoria. Direcciones consecutivas de memoria (Dn) se ubican en bancos consecutivos. Memory bank 0 Memory bank 1 Memory bank 2 Memory bank 3 – Ejemplo con 4 bancos: D0 -> Banco0; D1 -> Banco1; D2 -> Banco2; D3 -> Banco3; Dn -> Banco(Dn MODULO Nº Bancos) Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 58 4.3 M P R I N C I P A L Organización de memoria entrelazada (2) • Se sigue pagando el coste de transmitir cada palabra secuencialmente, pero se evita pagar más de una vez la latencia de acceso. – Con 4 bancos de memoria Penalización de fallo = 1 + 1x15 + 4x1 = 20 ciclos Nº bytes transferidos/ciclo = 16/20 = 0,80 • Se hacen más rápidas las escrituras Æ importante en write through. • Funcionan al mismo tiempo todos los módulos Æ más consumo • Dificultad para expandir la memoria Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 59 4.3 M P R I N C I P A L Aspectos de diseño de la memoria principal (1) • Las DRAMs evolucionan hacia mayor densidad, no menor tiempo de acceso. • Una DRAM es una matriz de d x w elementos, siendo d el número de filas distintas y w el número de bits de salida para cada fila (1ื wื 16, común 4 y 8) • Si aumenta la densidad, el tamaño total de la DRAM crece, pero como w se mantiene constante (coste de verificación y encapsulado menor) Æ d crece. • Aumentar el tamaño total conduce a que la configuración mínima de memoria crezca, y esto puede no interesarnos por razones de coste, etc... Æ Cada vez es menos atractivo construir la memoria con múltiples bloques de memoria porque la configuración mínima de memoria crece. • Ejemplo: Construir una memoria de 64 MB con chips de 4Mx 1 , y palabras de 32 bits. 4 bancos, c/u con 32 DRAMs de 4Mbit x 1 Æ 128 DRAMS de 4Mx 1 • Si usamos chips de 16M x 1 Æ 1 solo banco con 32 chips de 16M x1, y si quisieramos tener 4 bancos (por hacer la memoria entrelazada), estaríamos obligados a poner 32x4 chips de 16M x 1, haciendo un total de 256MB de memoria. Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 60 4.3 M P R I N C I P A L Aspectos de diseño de la memoria principal (2) • Ejercicio: Diseña una memoria de 64 MB con chips de 64 Mbits de forma de obtengamos 4 bancos. ¿Qué características (d y w) deben tener los chips de 64 Mbits? ¿Cuántos chips de 64 Mbits tendrá cada banco? • Si no fijamos el tamaño total de la memoria a diseñar, sino la características de los chips a utilizar y el nº de bancos Æ el tamaño total de la memoria crece. • A medida que aumenta la densidad de los chips DRAM es más caro construir memoria entrelazada porque hay que poner un tamaño total de memoria mayor. Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 61 4.3 M P R I N C I P A L Aspectos de diseño de la memoria principal (3) • ¿Cómo hacer para aumentar la velocidad de transmisión desde memoria principal a las caches aprovechándonos de la estructura de las DRAM? • Una DRAM es una matriz de celdas de memoria. • El acceso se divide en acceso a fila y acceso a columna. Son tiempos de acceso secuenciales. Dirección de memoria completa Nº Fila Activar RAS: row access strobe Nº Columna Activar CAS: column access strobe Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 62 4.3 M P R I N C I P A L Aspectos de diseño de la memoria principal (4) Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 63 4.3 M P R I N C I P A L Aspectos de diseño de la memoria principal (5) • Tecnologías DRAM – DRAM estándar Æ acceso a fila (RAS) y luego acceso a columna (CAS); siempre activar y desactivar ambas señales. – DRAM con Fast Page Mode Æ Mejora del anterior. Se accede a una secuencia de datos. El primer acceso especifica fila y columna, RAS se mantiene activo para toda la secuencia. Los siguientes accesos sólo tienen que especificar la columna y activar CAS Æ mejora el tiempo de acceso. – DRAM EDO (Extended Data Output)Æ En las anteriores CAS debe estar activa el tiempo suficiente para que el usuario pueda disponer del dato. La mejora EDO Æ poner el dato en un buffer, así CAS se puede desactivar antes y mejora el tciclo (determina el momento en que se puede comenzar otro acceso). Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 64 4.3 M P R I N C I P A L Aspectos de diseño de la memoria principal (6) – DRAM Síncrona (SDRAM) • Permiten acceso en masa a datos secuenciales de la DRAM. • Se proporciona dirección inicial y longitud de la secuencia (burst), y los datos se transfieren al ritmo que fija una señal de reloj. • Ventajas: – Uso del reloj Æ no necesita sincronización. – No necesita suministrar una dirección para cada dato a acceder (un controlador las genera) – Usa la circuitería ya existente en las DRAM añadiendo un pequeño coste al sistema. A cambio se aumenta bastante el ancho de banda, sin incurrir en desventajas de expansividad (como en organizaciones de memoria de palabra ancha) o de tamaño mínimo de memoria (como en la memoria entrelazada). • MEJORA ADICIONAL Æ Dual Data Rate SDRAM (DDR SDRAM ó DDR) – Permiten transferir datos en los dos flancos de reloj Æ dobla el ancho de banda Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 65 Tema 4. Subsistema de Memoria 4.1. Introducción 4.2. Memoria cache 4.3. Memoria principal 4.4. Memoria virtual Conceptos generales Aspectos de diseño Traducción rápida de direcciones (TLB) Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 66 4.4 M V I R T U A L Conceptos generales (1) • Memoria virtual – Técnica que realiza la gestión de dos niveles adyacentes de la jerarquía de memorias: la memoria principal (ó memoria física) y el almacenamiento secundario (disco). • Motivaciones/ventajas – Eliminar los inconvenientes de una memoria pequeña y limitada • Los programas de usuario pueden exceder el tamaño de la memoria principal. Nos permite utilizar un espacio lógico de direcciones superior al realmente disponible en la memoria principal. – Compartición eficiente de la memoria entre mútiples procesos garantizando protección • La memoria principal necesita solamente las partes activas de los programas. Esto nos permite compartir eficientemente el procesador así como la memoria principal. Proporciona los mecanismos de protección necesarios. Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 67 4.4 M V I R T U A L Conceptos generales (2) • La memoria virtual ve a la memoria principal como una cache y al disco como el lugar donde ‘realmente’ residen los programas/datos Transferencias en la jerarquía de memoria: Memoria principal - Disco Registros • Cache Bloques Memoria Principal Páginas Disco Terminología Ⱥ página Fallo de memoria virtual Ⱥ fallo de página – Bloque de memoria virtual – • Dirección virtual – dirección física – Las direcciones que aparecen en los programas son direcciones virtuales – Son traducidas a direcciones físicas por el MMU (memory management unit), combinación de hardware y software Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 68 4.4 M V I R T U A L Aspectos básicos de diseño • Elección del tamaño de página – Valores típicos actuales: 4Kb-16 Kb. En nuevos sistemas: 32 Kb-64 Kb • Q1: ¿Dónde puede ubicarse una página en la memoria principal? – Ubicación de bloque • Q2: ¿Cómo se encuentra una página si está en la memoria principal? – Identificación del bloque • Q3: ¿Qué página debe reemplazarse en caso de fallo? – Sustitución de bloque • Q4: ¿Qué ocurre en una escritura? – Estrategias de escritura Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 69 4.4 M V I R T U A L Q1: Ubicación de páginas • La penalización por fallo en la memoria virtual implica acceder al disco – Los tiempos de acceso a dispositivos de almacenamiento secundario actuales se encuentran en torno a 1.000.000 de ciclos de reloj – Un fallo de página tarda millones de ciclos en procesarse • Posibilidades en la organización de la memoria virtual: – Correspondencia directa • Algoritmo de ubicación sencillo • Produce mas fallos de página (tasa de fallos alta) – Totalmente asociativa • Algoritmo mas complicado • Produce menos fallos de página (tasa de fallos baja) • Siempre se elige la estrategia totalmente asociativa debido al alto coste de la penalización por fallo Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 70 4.4 M V I R T U A L Q2: Identificación de páginas • ¿Cómo encontrar una página en la memoria física? • Existe una correspondencia entre direcciones virtuales y direcciones físicas • Identificación de página Virtual ad dre ss 3 1 3 0 29 28 2 7 1 5 14 13 1 2 11 10 9 8 Virtual p ag e n u m be r 3 2 1 0 Pa ge o ffset Tran sla tio n 2 9 2 8 27 1 5 14 13 1 2 11 10 9 8 P hy sical pa ge n u m be r 3 2 1 0 Pa ge o ffset Physica l a dd re ss Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 71 4.4 M V I R T U A L Identificación de página: Tabla de páginas (1) • Tabla de páginas: Mecanismo de traducción de direcciones virtuales a físicas • Cada programa tiene su tabla de páginas residente en memoria que se indexa con el número de página virtual para obtener la dirección de la página física Virtual page number Page table Physical page or disk address Valid Physical memory 1 1 1 1 0 1 1 0 1 Disk storage 1 0 1 La tabla de páginas hace corresponder cada página de la memoria virtual a una página de la memoria física que estará en la memoria principal o en el disco. Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 72 4.4 M V I R T U A L Identificación de página: Tabla de páginas (2) • Traducción de direcciones: • En este ejemplo – Tamaño de página = 212 bytes = 4KB – Espacio de direcciones virtual = 232 bytes = 4GB – Espacio de direcciones físico = 230 bytes = 1 GB – Número de entradas en la tabla de páginas = 220 Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 73 4.4 M V I R T U A L Q3: Sustitución de páginas • Si el bit de validez de una página virtual es 0, se produce un fallo de página • Tratamiento de los fallos de página: 1. 2. 3. • Se Se Se – pasa el control al SO busca la página en el disco elige qué página de memoria reemplazar Siempre se utiliza el algoritmo LRU (El papel de SO) – Cuando se inicia un programa, el SO crea espacio en el disco para todas las páginas virtuales – También crea su correspondiente tabla de páginas – Gestiona los fallos de página Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 74 4.4 M V I R T U A L Q4: Estrategias de escritura • Política de escritura – Postescritura o write back. Otra política sería muy costosa. – Cuando se sustituye una página el bit de modificación o sucio (dirty bit) indica si la página ha de ser actualizada en disco o no. • Debe añadirse este bit a la tabla de páginas Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 75 4.4 M V I R T U A L Elección del tamaño de página • La decisión del tamaño de página implica una solución de compromiso entre aquellos factores que favorecen una página mayor frente a los que favorecen una página más pequeña • Ventajas de un tamaño de página grande – Menos páginas Æ Tabla de páginas más pequeña Æ ahorro de memoria – Transferencia más eficiente • Ventajas de un tamaño de página pequeño – Mejor aprovechamiento de la memoria por una menor fragmentación de la misma. – La mayoría de los procesos son pequeños: una página grande implica un tiempo mayor para invocar el proceso. Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 76 4.4 M V I R T U A L Traducción rápida de direcciones: TLB (1) • Mejora de la traducción de direcciones – El tiempo de acceso a la tabla de páginas (almacenada en memoria principal) es excesivo: Un acceso para obtener la dirección física de memoria y otro para obtener el dato – Mejora: Basándonos en la localidad de las direcciones hacer uso de una cache especial para guardar la traducción de las direcciones más recientemente usadas • Buffer de traducciones anticipadas (Translation-Lookaside Buffer o TLB) – Las traducciones más recientes se mantienen en una memoria especial (similar a una cache) de acceso rápido. Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 77 4.4 M V I R T U A L Traducción rápida de direcciones: TLB (2) V irtu a l p a ge nu mbe r TL B Va lid Ta g 1 1 P hy sic a l p a ge a d d re s s P h y s ic a l m e m o ry 1 1 • • 0 Estructura – Campo de etiqueta (tag) que almacena parte de la dirección virtual – Identificador del proceso – Campo de datos que almacena la Dirección física de la página – Bits de validez y dirty – Bits de protección 1 Pa g e ta b le P h y si ca l p a g e V a li d o r d is k a d d re s s 1 1 1 D is k sto r a g e 1 0 1 1 0 1 1 0 1 Método de ubicación de bloque – Totalmente asociativa Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 78 4.4 M V I R T U A L Esquema global de traducción de direcciones • Mecanismo global de traducción de direcciones en la jerarquía de memorias Fallo página Procesador DV Traducción DF Cache Fallo cache Acierto cache Bloque Datos DV: Dirección virtual DF: Dirección física Controlador de cache: Transferencia por hardware Memoria Principal Memoria Secundaria (Disco) Página Sistema Operativo: Transferencia por software Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 79 4.4 M V I R T U A L Esquema global de traducción de direcciones: Ejemplo • TLB y Cache en un R2000 Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 80 4.4 M V I R T U A L Combinación de eventos en cache, TLB y memoria virtual Caché TLB Tabla Páginas ¿ Es Posible? acierto fallo acierto acierto acierto acierto acierto fallo fallo fallo fallo fallo fallo acierto acierto acierto fallo fallo acierto acierto fallo acierto fallo fallo Posible. Acceso sin problemas. Posible. Si hay acierto en TLB no se comprueba en la tabla de páginas Posible Posible Posible. Fallo de página Imposible. No puede haber acierto en TLB si no está en memoria principal Imposible. No puede haber acierto en TLB si no está en memoria principal Imposible. No puede haber acierto en caché si el dato no está en memoria principal Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 81 4 Jerarquía de memorias: marco común Cache Correspondencia directa Q1 Ubicación de Asociativa por conjuntos bloque Memoria Virtual Totalmente asociativa TLB Totalmente asociativa Totalmente asociativa Indexar Q2 Identificación Búsqueda limitada de bloque Q3 Sustitución de bloque Q4 Estrategias de escritura Tabla separada de búsqueda (tabla Búsqueda total de páginas) Búsqueda total LRU LRU LRU Postescritura (write back) --- Azar Escritura directa (write through) + ubicar en escritura Postescritura (write back) + no ubicar en escritura Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 82