Memoria Virtual

Anuncio
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.
Descargar