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 1 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 página – Bloque de memoria virtual – Fallo 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 2 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 Virtu al a d dre ss 3 1 3 0 29 28 2 7 1 5 14 13 1 2 1 1 10 9 8 Virtual p ag e n um ber 3 2 10 Pa ge o ffse t Tran sla tio n 2 9 2 8 27 1 5 14 13 1 2 1 1 10 9 8 P hy sical pa ge n u mbe r 3 2 10 Pa ge o ffse t Ph ysica l a dd re ss Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria 71 3 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 Valid Page table Physical page or disk address 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.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 5 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 6 4.4 M V I R T U A L Traducción rápida de direcciones: TLB (2) TL B V irtu a l p a ge nu m ber Va lid Ta g P hy sica l p a g e a d d re s s 1 1 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 ra 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 Datos DV: Dirección virtual DF: Dirección física Bloque 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 7 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 8 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 9