Memoria Virtual

DISEÑO DE SISTEMAS DIGITALES EL-3310 I SEMESTRE 2008

ITCR – Diseño de Sistemas Digitales – 1/2008

Dr.-Ing. Paola Vega C.

Memoria Virtual ‰ Define la relación entre memoria principal y memoria secundaria – Permite crear la ilusión de una memoria principal de gran tamaño – Permite que programas compartan memoria principal de manera segura

Memoria virtual

L0

4-8 bytes (palabra)

L1

8-32 bytes (bloque)

Memoria principal

Memoria secundaria

ITCR – Diseño de Sistemas Digitales – 1/2008

1 - 4 bloques ≥1,024 bytes (sector de disco = página)

Dr.-Ing. Paola Vega C.

Memoria Virtual ‰ Memoria principal actúa como “cache” del disco duro – transparente al programador – memoria principal se reparte entre los procesos en ejecución

Memoria Principal

‰ Memoria virtual permite: – Que varios programas compartan la memoria de manera segura y eficiente – Correr programas de tamaño mayor que la memoria física (principal) – Colocar el código en cualquier parte de la memoria principal • asignar regiones no contiguas de memoria física a un programa

Disco Duro

Dr.-Ing. Paola Vega C.

ITCR – Diseño de Sistemas Digitales – 1/2008

Espacio de Direcciones ‰ Cada programa se compila en su propio espacio de direcciones – espacio virtual de direcciones – el programa puede accesar solamente sus propias páginas

Página/Segmento

Espacio de direcciones virtuales dividido en bloques – Páginas: tamaño fijo – Segmentos: tamaño variable

Página/ Segmento

Dirección virtual Procesador ITCR – Diseño de Sistemas Digitales – 1/2008

Palabras Memoria virtual Dr.-Ing. Paola Vega C.

Diseño de Memoria Virtual ‰ Tamaño de página: apropiado para atenuar pena de fallo – Ej: 4kB – 16 kB ‰ Técnicas de mapeo: debe reducir las faltas de página – Ej: mapeo totalmente asociativo ‰ Estrategias de escritura: debe reducir la pena de fallo – Post-escritura (Write-back, copy-back) ‰ En algunas memorias virtuales no se utiliza paginación sino segmentación – Número de segmento en registro de segmento se suma al offset de segmento para encontrar la dirección física dentro del segmento – Tamaño variable requiere revisión de límites de segmento ‰ Estrategia de reemplazo: LRU ⇒ el sistema operativo debe buscar la página en el disco y buscarle una ubicación en memoria principal Dr.-Ing. Paola Vega C.

ITCR – Diseño de Sistemas Digitales – 1/2008

Direccionamiento ‰ Requiere traducción de la dirección virtual a la dirección física (dirección de memoria principal)

Procesador Dirección virtual Dirección física

Memoria Principal

Métodos: -Traducción dinámica -Tabla de páginas

ITCR – Diseño de Sistemas Digitales – 1/2008

Disco Duro Memoria virtual

Dr.-Ing. Paola Vega C.

Traducción de Direcciones ‰ Una dirección virtual se traduce (mapea) a una dirección física por medio de hardware y software

‰ Cada acceso a memoria requiere primero una traducción de direcciones ‰ Traducción refuerza la protección del espacio de direcciones de un programa Dr.-Ing. Paola Vega C.

ITCR – Diseño de Sistemas Digitales – 1/2008

Compartiendo Memoria Principal ‰ Localidad inicial de cada página en memoria principal o en la memoria secundaria está contenida en la tabla de páginas del programa Espacio virtual de direcciones del programa 1 Memoria principal Disco duro

Espacio virtual de direcciones del programa 2

ITCR – Diseño de Sistemas Digitales – 1/2008

Dr.-Ing. Paola Vega C.

Direccionamiento por Tabla de Páginas ‰ Memoria virtual es totalmente asociativa – Búsqueda de página es impráctica – Solucionado por uso de tabla de páginas ‰ Tabla de páginas – Una tabla de páginas por programa – Almacenada en memoria principal – Indice de tabla = dirección de memoria virtual ‰ Direccionamiento de tabla de páginas – Registro de tabla se carga para apuntar el inicio de tabla – Direccionamiento base + desplazamiento ‰ Contenido de tabla de páginas – Traducción de la dirección de memoria virtual – Bit de validez: indica si la página está cargada en la memoria principal ITCR – Diseño de Sistemas Digitales – 1/2008

Dr.-Ing. Paola Vega C.

Tabla de Páginas

Apunta al inicio de la tabla de páginas del programa actual (base) + Desplazamiento = Localidad de tabla de páginas que debe leerse

ITCR – Diseño de Sistemas Digitales – 1/2008

Dr.-Ing. Paola Vega C.

Tabla de Páginas Contiene la traducción de las direcciones virtuales de las páginas correspondientes a cada programa: localidad inicial de cada página (de memoria principal o de memoria secundaria) Direccionamiento de memoria principal TP1 TP2

Dirección virtual

Dirección física

TPn

P1 P2 Pn Memoria Principal Dr.-Ing. Paola Vega C.

ITCR – Diseño de Sistemas Digitales – 1/2008

Tabla de Páginas Direccionamiento de disco duro

Dirección virtual

TP1 TP2

Dirección física

TPn

P1 P2 Pn

Memoria Principal Disco Duro

ITCR – Diseño de Sistemas Digitales – 1/2008

Dr.-Ing. Paola Vega C.

Acierto de Página Bit de validez 1

# página física Acierto de página

TP1

Dirección física

TP2

Dirección virtual

TPn

P1 P2 Pn Memoria Principal

Dr.-Ing. Paola Vega C.

ITCR – Diseño de Sistemas Digitales – 1/2008

Fallo de Página (falta de página) Bit de validez 0 Dirección virtual

# página física TP1 TP2

Dirección física

Fallo (falta de página)

TPn

P1 P2 Pn

Memoria Principal ITCR – Diseño de Sistemas Digitales – 1/2008

Disco Duro

Dr.-Ing. Paola Vega C.

Faltas de Página ‰ Bit de validez: – Uno, la página está almacenada en memoria principal – Cero, existe un falta de página ‰ Un fallo en la memoria virtual se denomina falta de página (page fault) ‰ El espacio de memoria virtual necesario para un proceso se reserva en disco = swap space – Reservado por el sistema operativo – Se crea una estructura de datos con la ubicación de cada página virtual en el disco – Esta estructura puede almacenarse en la tabla de página ‰ Páginas reemplazadas se almacenan en el swap space

ITCR – Diseño de Sistemas Digitales – 1/2008

Dr.-Ing. Paola Vega C.

Traducción Rápida de Direcciones ‰ Puesto que los bloques y las tablas están almacenados en la memoria principal, cada acceso a memoria principal requiere en realidad dos accesos: – Uno para accesar la tabla de página – Otro para accesar la dirección contenida en la tabla de página ‰ Solución: uso de un buffer de traducción (Translation Lookaside Buffer, TLB) – una pequeña cache que registra las traducciones recientemente usadas para evitar, en lo posible, el acceso a la tabla de páginas – Basado en principio de localidad – Si TLB es de mapeo directo o de conjunto asociativo • Indice = LSB de dirección virtual • Etiqueta = MSB de dirección virtual

ITCR – Diseño de Sistemas Digitales – 1/2008

Dr.-Ing. Paola Vega C.

Translation Lookaside Buffer Translation lookaside buffer

# página física TP1

Acierto de página Dirección física

Validez

Bit de validez

TP2 TPn

1 LSB de dirección virtual

P1 P2

Etiqueta = MSB de dirección virtual

Pn

Memoria Principal ITCR – Diseño de Sistemas Digitales – 1/2008

Dr.-Ing. Paola Vega C.

Translation Lookaside Buffer (TLB) ‰ Puede incluir también – Bit de referencia: • Se activa cuando una página se accesa • Permite reemplazo según algoritmo LRU • Se borra periódicamente – Bit de inconsistencia (dirty bit): • cuando hay inconsistencia entre memoria principal y el disco duro ‰ Tamaño típico de TLB no mayor que 128 a 256 entradas – Tiempo de acceso de TLB menor que el tiempo de acceso a cache – Puede utilizarse cualquier tipo de mapeo – Reemplazo puede ser aleatorio

ITCR – Diseño de Sistemas Digitales – 1/2008

Dr.-Ing. Paola Vega C.

TLB

ITCR – Diseño de Sistemas Digitales – 1/2008

Dr.-Ing. Paola Vega C.

TLB en la Jerarquía de Memoria ‰ TLB es una caché, puede presentar fallos – Causas de fallo: • la traducción no está almacenada en TLB (fallo en TLB) • falta de página ‰ Fallo de TLB – Página cargada en la memoria principal – Cargar información de traducción de la tabla de páginas al TLB = Decenas de ciclos ‰ Fallo de página – Página no está en memoria principal – Falla de página real! = Millones de ciclos ‰ Fallos de TLB son más frecuentes que fallos de página

ITCR – Diseño de Sistemas Digitales – 1/2008

Dr.-Ing. Paola Vega C.

Operación de la Jerarquía de Memoria Completa ‰ Puede basarse en: – Direcciones físicas • Indice de cache y etiquetas son partes de direcciones físicas • Requiere traducción de dirección virtual a física antes de acceso a cualquier nivel de jerarquía – Direcciones virtuales • Índice de cache y etiquetas son partes de direcciones virtuales • No requiere traducción para accesar cache • Ahorra un acceso a TLB ‰ NOTA: Los siguientes ejemplos se basan en una TLB totalmente asociativa

ITCR – Diseño de Sistemas Digitales – 1/2008

Dr.-Ing. Paola Vega C.

TLB en Jerarquía de Memoria

ITCR – Diseño de Sistemas Digitales – 1/2008

Dr.-Ing. Paola Vega C.

Memoria Virtual y Cache con Dirección Física Solicitud de acceso a MV Acierto

Bit de validez =0

Traducción de dirección

Acierto

Consulta a Cache

Acceso a cache

Fallo

Consulta TLB

No encontró etiqueta Causa de fallo?

Fallo

Acceso a MP

Consultar tabla de páginas

Transferencia de DD a MP Actualizar TLB Actualizar tabla de páginas Dr.-Ing. Paola Vega C.

ITCR – Diseño de Sistemas Digitales – 1/2008

Memoria Virtual y Cache con Dirección Virtual Solicitud de acceso a MV Acierto

Consulta a cache

Acceso a cache

Acierto

Traducción de dirección

Fallo

Consulta a TLB

Bit de validez =0

Fallo Causa de fallo?

No encontró etiqueta

Transferencia de MP a cache Transferencia de DD a MP

Consultar tabla de páginas

Actualizar tabla de páginas

Actualizar TLB

ITCR – Diseño de Sistemas Digitales – 1/2008

Dr.-Ing. Paola Vega C.

Combinaciones de Fallos y Aciertos Esta tabla asume una jerarquía de memoria en la que la cache se accesa con direcciones físicas TLB

Tabla de páginas

Cache

Cuándo se da

Acierto

Acierto

Acierto

Mejor de los casos: datos estaban en cache

Fallo

Acierto

Acierto

Pérdida de TLB, después de actualizar TLB datos se encuentran en cache

Fallo

Acierto

Fallo

Pérdida de TLB, después de actualizar TLB datos aún no se encuentran en cache

Fallo

Fallo

Fallo

Fallo de página (page fault)

Acierto

Fallo

Fallo

Imposible: no puede haber traducción en TLB si traducción no está en tabla de página

Acierto

Fallo

Acierto

Imposible: no puede haber traducción en TLB si traducción no está en tabla de página, dato no puede estar en cache si no está en memoria principal

Fallo

Fallo

Acierto

Imposible: dato no puede estar en cache si la página no está en memoria principal

ITCR – Diseño de Sistemas Digitales – 1/2008

Dr.-Ing. Paola Vega C.

Manejo de Fallos de TLB o Faltas de Página ‰ Se maneja por medio de excepciones ‰ Activación de excepción al final del mismo ciclo de reloj en que se da el acceso a memoria, para evitar – Escritura a registros • para que los registros no se reescriban con datos equivocados, lo que impediría reiniciar ejecución correctamente – Escritura a memoria • No escribir a memoria si hay fallo de página ‰ En caso de fallo en memoria de datos, la instrucción que causó el fallo debe detenerse hasta que se resuelva el fallo de página

ITCR – Diseño de Sistemas Digitales – 1/2008

Dr.-Ing. Paola Vega C.

Manejo de Faltas de Página 1. 2. 3. 4. 5. 6. 7.

8. 9.

Activar la interrupción de manejo de faltas de página Transferir el control al sistema operativo Guardar el valor actual del PC en el EPC (exception program counter) Almacenar el estado del programa – Tabla de páginas, PC y registros Obtener la dirección virtual que causó fallo de página Buscar la entrada de la tabla de página para leer la dirección física guardada en la tabla Elegir cuál página física se va a reemplazar en la memoria principal – Si la página a reemplazar es inconsistente, debe escribirse en el disco antes de reemplazarla Escribir la página referenciada del disco a memoria principal Retorno de interrupción

ITCR – Diseño de Sistemas Digitales – 1/2008

Dr.-Ing. Paola Vega C.

Ejemplo de Parámetros de Diseño de Memoria Virtual

Parámetro

Memoria virtual paginada

TLBs

Tamaño total

16,000 to 250,000 palabras

16 a 512 entradas

Tamaño total (kB)

250,000 a 1,000,000,000

0.25 a 16

Tamaño de bloque (B)

4000 a 64,000

4 a 32

Pena de fallo (ciclos de reloj)

10,000,000 a 100,000,000

10 a 1000

Tasas de pérdida

0.00001% a 0.0001%

0.01% a 2%

ITCR – Diseño de Sistemas Digitales – 1/2008

Dr.-Ing. Paola Vega C.