Este documento describe los conceptos fundamentales de la memoria virtual paginada. Explica que la memoria virtual permite a los programas utilizar un espacio de direcciones más grande que la memoria física disponible mediante la división del espacio virtual en páginas y la traducción de direcciones virtuales a direcciones físicas. Detalla diferentes técnicas para realizar esta traducción como la traducción directa, asociativa y mixta. También cubre temas como el tamaño de página óptimo, políticas de reemplazo y emplaz
1. 1
Estructura y Tecnología deEstructura y Tecnología de ComputadoresComputadores
Módulo F.Módulo F. El subsistema de memoria
Tema 14. Memoria virtualTema 14. Memoria virtual
José Manuel Mendías CuadrosJosé Manuel Mendías Cuadros
DptoDpto. Arquitectura de Computadores y Automática. Arquitectura de Computadores y Automática
Universidad Complutense de MadridUniversidad Complutense de Madrid
2
estructura y tecnología deestructura y tecnología de computadorescomputadores
1. Introducción
Concepto y fundamentos. Técnicas de gestión de la memoria virtual.
2. Memoria virtual paginada
Fundamentos. Técnicas de traducción de direcciones: directa, asociativa, mixta y a varios
niveles. Tamaño de página. Políticas de emplazamiento de páginas. Políticas de
reemplazamiento de páginas: aleatorio, FIFO, FINUFO, LFU y LRU. Políticas de búsqueda
de páginas: bajo demanda, página sucesora y con predicción. Políticas de actualización.
3. Memoria virtual segmentada
Fundamentos. Técnicas de traducción de direcciones: directa. Políticas de emplazamiento
de segmentos: primer ajuste, mejor ajuste, peor ajuste y retoños.
4. Memoria virtual segmentada/paginada
Fundamentos. Técnicas de traducción de direcciones: directa, asociativa, mixta
5. Interrelación MV-MP-MC
Acceso a la cahe en un sistema con memoria virtual: cache de direcciones físicas y cache
de direcciones virtuales. Coherencia entre Mc y Mp. DMA y memoria virtual
6. Ejemplos
Alpha 21064. Pentium.
2. 3
estructura y tecnología deestructura y tecnología de computadorescomputadores
1. introducción1. introducción
Ö Un computador se dice que emplea memoria virtual cuando el espacio de direcciones que
utilizan los programas durante su ejecución es mayor que el espacio de direcciones físicas
disponible en memoria principal (MP)
ConceptoConcepto
PC basado en procesador Pentium II con 128MB de MP
Ø Procesador capaz de gestionar direcciones de 46 bits ⇒ 64 TB de memoria virtual direccionables
ð Los programas pueden trabajar con dir. virtuales de 46 bits y direccionar un espacio virtual de 64 TB
Ø La MP está limitada a 128MB ⇒ admite direcciones de hasta 27 bits
ð Necesario traducir las direcciones virtuales de 46 bits y a direcciones físicas de 27 bits
Ejemplo
Ö El espacio de direcciones virtuales (instrucciones y datos) que maneja un programa se divide en bloques
Ø En un instante dado, en MP sólo se encuentran unos pocos bloques del programa (los más utilizados últimamente)
ð Se explota la localidad espacial y temporal
Ø El resto de bloques se mantienen en memoria secundaria (área de “swap” del disco)
Ø Se van trayendo nuevos bloques a la MP según se van necesitando
Ö Objetivos de la memoria virtual
Ø Permite disponer de un espacio de direcciones superior al real
ð Los programas pueden tener un tamaño mayor que el espacio disponible en memoria física
ð La gestión de la memoria virtual es transparente al programador/usuario
Ø Permite compartir eficientemente la memoria (en entornos multiproceso)
ð La memoria física se reparte entre los procesos que se ejecutan en la máquina
ð Cada proceso puede tener su propio espacio de direcciones virtuales independiente del resto de procesos
Fundamento de la memoria virtual
4
estructura y tecnología deestructura y tecnología de computadorescomputadores
1. introducción1. introducción
Técnicas de gestión de la memoria virtualTécnicas de gestión de la memoria virtual
Ö Traducción de direcciones
Ø ¿Cómo traducir una dirección virtual a una dirección física?
ð Memoria virtual paginada
ð Memoria virtual segmentada
ð Memoria virtual segmentada/paginada
Ö Emplazamiento de bloques en memoria física
Ø ¿En qué parte de la MP se ubican los nuevos bloques que traemos de memoria secundaria?
ð Primer ajuste
ð Mejor ajuste
ð Peor ajuste
ð Retoños (binary buddy)
Ö Reemplazamiento de bloques
Ø ¿Qué bloque quitamos de MP cuando hay necesitamos espacio para llevar un bloque nuevo?
ð Aleatorio
ð FIFO
ð FINUFO
ð LRU
ð LFU
Ö Búsqueda de bloques
Ø ¿Cuándo nos llevamos un nuevo bloque de memoria secundaria a memoria física?
ð Bajo demanda
ð Anticipativo
3. 5
estructura y tecnología deestructura y tecnología de computadorescomputadores
2. memoria virtual paginada2. memoria virtual paginada
FundamentosFundamentos
Ö Espacio virtual de direcciones
Ø Se divide en páginas de tamaño fijo
Ø Dirección virtual:
Ö Espacio físico de direcciones
Ø Se divide en marcos de página del mismo tamaño que una página
Ø Dirección física:
Ö Traducción de direcciones
Ø Necesario un mecanismo de correspondencia
para conocer en qué marco de página (M) de
MP está ubicado una determinada página de
memoria virtual (P)
Ø Para un proceso J, en el instante de tiempo T,
el mecanismo de correspondencia nos da:
Nº de página
P
Desplazamiento
D
p bits d bits
ð Tamaño de una página: 2d
palabras
ð Nº máximo de páginas (por proceso): 2p
páginas
Nº de marco
M
Desplazamiento
D
m bits d bits
ð Tamaño de un marco: 2d
palabras
ð Nº total de marcos en MP: 2m
marcos
Mecanismo de
correspondencia
Nº de página Desplazamiento
P
M
Nº de marco Desplazamiento
D
DV:
DF:F(J,T,P) =
M, si en el instante T la página P reside en MP
Fallo de página, en caso contrario
MP
Marco M
Marco M-1
Marco M+1
D
6
estructura y tecnología deestructura y tecnología de computadorescomputadores
2. memoria virtual paginada2. memoria virtual paginada
Técnicas de traducción de direccionesTécnicas de traducción de direcciones
Ö Traducción directa
Ø Idea básica: existe una tabla de páginas (TP) por cada proceso J
ð La TP contiene una entrada por cada posible página del proceso J ⇒ 2p
entradas por proceso
ð La entrada P-ésima de la TP contiene el marco de página, M, dónde está ubicada la página P (si está en MP)
ð La TP de un determinado proceso J está apuntada por un registro base asignado a ese proceso
Ö Problemas de la traducción directa
Ø La TP debe almacenarse en memoria principal
ð Se requieren dos accesos a MP por cada referencia
ü Se duplica el tiempo de acceso a memoria
ð La TP puede ser de gran tamaño
ü Ejemplo:
DV de 32 bits con páginas de 1K ⇒ 222
pág. por proceso ⇒ TP de 222
entradas por proceso
Nº de página Desplazamiento
P
M
Nº de marco Desplazamiento
D
DV:
DF:
Nº de marcoRWXH C
Tabla de páginas del
proceso J (2p entradas)
Dir. Inicio TP
Reg. base
proceso J:
P
RWX
Tipo de acceso
solicitado:
TEST
≠
Excepción
H: Bit de acierto de referencia (Hit)
H=1 ⇒ Acierto (página en MP) ⇒ Nº de marco válido
H=0 ⇒ Fallo de página ⇒ Nº de marco inválido
C: Bit de limpieza de la entrada (Clear)
C=1 ⇒ Marco no modificado ⇒ no necesita actualizarse
C=0 ⇒ Marco modificado ⇒ necesita actualizarse en MS
RWX: Tipo de acceso permitido : lectura/escritura/ejecución
MP
Marco M
Marco M-1
Marco M+1
D
4. 7
estructura y tecnología deestructura y tecnología de computadorescomputadores
2. memoria virtual paginada2. memoria virtual paginada
Técnicas de traducción de direcciones (Técnicas de traducción de direcciones (contcont.).)
Ö Traducción asociativa
Ø Objetivo: Reducir el tamaño de la TP
Ø Idea básica: Sólo es necesario mantener una entrada en la TP para aquellas páginas que están en MP
ð La TP tiene una entrada por cada marco de página en MP
Ö Problemas de la traducción asociativa
Ø No es posible el acceso directo a la TP
ð Necesario comparar en nº de página con todas las entradas de la TP (1 comparador de p bits por entrada)
ð Necesitamos una TP de acceso asociativo
ü El coste de las memorias asociativas es muy elevado
ð Ejemplo: MP de 64M (DF de 26 bits) con marcos de 1K ⇒ TP asociativa de 216
(64K) entradas
Nº de página Desplazamiento
P
M
Nº de marco Desplazamiento
D
DV:
DF:
Tabla de páginas asociativa
P M
Nº de página Nº de marco
•
•
•
•
•
•
•
•
•
•
•
•
¿Hallada
entrada?
Sí No
Acceder
a MP
Fallo de
página
MP
Marco M
Marco M-1
Marco M+1
D
8
estructura y tecnología deestructura y tecnología de computadorescomputadores
2. memoria virtual paginada2. memoria virtual paginada
Técnicas de traducción de direcciones: ejemploTécnicas de traducción de direcciones: ejemplo
DV: P D
3 bits 2 bits
DF: M D
1 bit 2 bits
000 00 A0
P D
000 01 B0
000 10 C0
000 11 D0
001 00 A1
001 01 B1
001 10 C1
001 11 D1
010 00 A2
010 01 B2
010 10 C2
010 11 D2
111 00 A7
111 01 B7
111 10 C7
111 11 D7
•
•
•
MV
0 00 A7
M D
0 01 B7
0 10 C7
0 11 D7
1 00 A2
1 01 B2
1 10 C2
1 11 D2
MF
Ö Comparación de los mecanismos de traducción directa y asociativa
Traducción directa
DV: 010 11
P D
Dir. ini. TP X + H M
0
0
1
1
Espacio virtual (32 palabras)
8 páginas
4 palabras/página
Espacio físico (8 palabras)
2 marcos de página
4 palabras/marco
•
•
•
•
•
•
•
•
•
--
1
0
--
Tabla de Páginas
X
X+1
X+2
X+7
1 11
M D
DF:
DV: 010 11
P D
P M
010
111 0
1
Tabla de Páginas
1 11
M D
DF:
Traducción asociativa
Hallado
5. 9
estructura y tecnología deestructura y tecnología de computadorescomputadores
2. memoria virtual paginada2. memoria virtual paginada
Ö Traducción mixta
Ø Objetivo: Reducir el tamaño de la tabla asociativa para reducir su coste
Ø Idea básica:
ð Se mantiene una pequeña tabla asociativa con las páginas más activas: TLB (Translation Look-Ahead Buffer)
ü Tamaño típico de la TLB: 32 - 4K entrada
ü TLB de pequeño tamaño ⇒ puede implementarse con tecnología más rápida ⇒ menor tiempo acceso
ð Por otro lado se debe guardar la TP completa
ü Para traducir una dirección cuya entrada no se encuentre en la TLB
Ö Problemas de la traducción mixta
Ø Debemos seguir almacenando una TP por proceso en MP (ocupa mucho espacio)
Técnicas de traducción de direcciones (Técnicas de traducción de direcciones (contcont.).)
Nº MarcoH · ·
Tabla de Páginas
(proceso J)
Nº de página Desplazamiento
P
M
Nº de marco Desplazamiento
D
DV:
DF:
TLB
Nº página Nº marco
P M
¿Hallada
entrada?
No Sí
Acceder
a MP
Acceder
a TP
Dir. Inicio TP
Reg. base
proceso J:
M
P
10
estructura y tecnología deestructura y tecnología de computadorescomputadores
2. memoria virtual paginada2. memoria virtual paginada
Ö Traducción a varios niveles
Ø Objetivo: Resolver el problema del almacenamiento de la TP
Ø Idea básica: Dividir la TP, a su vez, en páginas (paginación de la TP)
ð Algunas páginas de la TP pueden residir en MP (no necesariamente contiguas)
ð El resto de páginas pueden residir en MS
ð Se utiliza una tabla de directorios que almacena las direcciones de comienzo las páginas de la TP
ü La tabla de directorios se almacena en MP
ü La dirección virtual se divide en tres campos: DV=(Nº de Directorio, Nº de Página, Desplazamiento)
ð Este mecanismo se puede combinar con el uso de una TLB
ð La paginación de la TP se puede realizar a varios niveles
Técnicas de traducción de direcciones (Técnicas de traducción de direcciones (contcont.).)
Nº página Desplazamiento
P
M
Nº de marco Desplazamiento
D
DV:
DF:
Dir ini. Pág.H · ·
Tabla de Directorio
(proceso J)
Dir. ini. tabla
directorios
Reg. base
proceso J:
Bit de presencia en memoria
de la página del directorio T
Nº MarcoH · ·
Una página de la TP
(correspondiente
al directorio D)
Nº directorio
T
Bit de acierto del
marco de página
6. 11
estructura y tecnología deestructura y tecnología de computadorescomputadores
2. memoria virtual paginada2. memoria virtual paginada
Ö Es necesario tener en cuenta diversos factores
Ø Tamaño de las unidades de transferencia con memoria secundaria
ð Es conveniente que el tamaño de la página coincida con un nº entero de sectores
ð De esta forma se optimiza tanto el uso como el tiempo de acceso a MS
Ø Tamaño de la tabla de páginas
ð Si el tamaño de la página aumenta ⇒ el tamaño de la TP disminuye
Ø Tamaño medio de las entidades lógicas del programa
ð Si el tamaño de la página es similar al tamaño medio de las entidades lógicas del programa
⇒ se aprovecha al máximo la localidad espacial
Ø Fragmentación interna
ð Cuando aumenta el tamaño de página la cantidad de memoria no usada en la última página crece
Ö Ejemplos
Computador Tamaño Página
IBM360/67 4KB
MC68020 256 bytes a 32 KB
MIPS R2000/3000 4KB
Alpha 21064 8KB
Pentium 4KB o 4 MB
Elección del tamaño de la páginaElección del tamaño de la página
12
estructura y tecnología deestructura y tecnología de computadorescomputadores
2. memoria virtual paginada2. memoria virtual paginada
Ö Todas las páginas son de igual tamaño y coinciden con el tamaño de los marcos de página
Ø Emplazamiento trivial
ð Una página se puede ubicar en cualquier marco de página libre
ð No existen unas alternativas mejores que otras
Políticas de emplazamiento de páginas en MPPolíticas de emplazamiento de páginas en MP
Ö Cuando no hay ningún marco de página libre es necesario reemplazar alguna de las páginas de MP
Ö Principales algoritmos de reemplazamiento
Ø Aleatorio
ð La página a reemplazar se seleeciona aleatoriamente
Ø FIFO (Firt-In-First-Out)
ð La página a reemplazar es la que lleva más tiempo en MP
ð Gestión: cola actualizada en cada fallo de página
Ø FINUFO (Firt-In-Not-Used-First-Out)
ð La página a reemplazar es la que lleva más tiempo en MP siempre que no haya sido usada recientemente
ð Gestión: cola circular + bit de uso
Ø LFU (Least-Frecuently-Used)
ð La página a reemplazar es la que menos veces ha sido utilizada
ð Problema: tiende a reemplazar las páginas que se han cargado en MP más recientemente
ð Gestión: cola ordenada por cantidad de referencias de referencias
Ø LRU (Least-Recently-Used)
ð La página a reemplazar es la que lleva más tiempo sin ser utilizada
ð Gestión: pila reordenada en cada referencia (la última página referenciada se coloca en la base de la pila)
Políticas dePolíticas de reemplazamientoreemplazamiento de páginasde páginas
7. 13
estructura y tecnología deestructura y tecnología de computadorescomputadores
2. memoria virtual paginada2. memoria virtual paginada
Ö Necesario decidir cuándo nos llevamos las páginas de MS a MP
Ö Principales algoritmos de búsqueda
Ø Búsqueda bajo demanda
ð Una página se se lleva a MP sólo cuando produce un fallo de referencia
Ø Prebúsqueda de la página sucesora
ð Cuando la página P produce un fallo de referencia, se llevan a memoria las páginas P y P+1
Ø Prebúsqueda con predicción
ð Cada página P tiene asociada una predicción PRED(P)
ü Inicialmente PRED(P) = P+1
ð Cuando la página P produce un fallo de referencia, se llevan a MP las páginas P y Q = PRED(P)
ü Si tras llevar P y Q a MP, la página Q no ha sido referenciada y se produce un fallo de la página R ≠ Q
entonces se actualiza PRED(P) = R
Políticas de búsqueda de páginasPolíticas de búsqueda de páginas
Ö Necesario mantener la coherencia entre MP y MS
Ø Cuando se modifica una página en MP es necesario actualizar esa misma página en MP
Ö La política de actualización que se usa en memoria virtual es la post-escritura
Ø Una página modificada se actualiza en MS solamente cuando se reemplaza
Ø Motivo: el tiempo de acceso a MS (tiempo de acceso a disco) es muy grande
ð La política de escritura directa no resulta eficiente
Políticas de actualización de la MSPolíticas de actualización de la MS
14
estructura y tecnología deestructura y tecnología de computadorescomputadores
3. memoria virtual3. memoria virtual segmentadasegmentada
FundamentosFundamentos
Ö Espacio virtual de direcciones
Ø Se divide en segmentos de tamaño variable
Ø Dirección virtual:
Ø Los campos S y D son de tamaño fijo, pero un segmento puede tener una longitud variable entre 0 y 2d
palabras
Ö Espacio físico de direcciones
Ø No está particionado a priori ⇒ Un segmento puede comenzar y terminar en cualquier posición de MP
Ö Traducción de direcciones
Ø Necesario un mecanismo de correspondencia
para conocer en qué posición de MP comienza
el segmento (Dirección inicial del segmento)
ð Para calcular la DF asociada a la DV se suma
el desplazamiento a la dir. ini. del segmento
Ø Para un proceso J, en el instante de tiempo T,
el mecanismo de correspondencia nos da:
Ö Ventajas de la MV segmentada
Ø El tamaño de los segmentos se puede adaptar al tamaño de las entidades lógicas de los programas
ð Elimina problema de fragmentación interna (no se desaprovecha el espacio de los segmentos)
Nº de segmento
S
Desplazamiento
D
s bits d bits
ð Tamaño máximo de un segmento: 2d
palabras
ð Nº máximo de segmentos (por proceso): 2s
.
F(J,T,S) =
Dir. ini. segmento, si en el instante T el segmento S reside en MP
Fallo de segmento, en caso contrario
Mecanismo de
correspondencia
Nº de segmento Desplazamiento
S D
DV:
MP
Segmento S D
Dir. Ini.
Segmento
8. 15
estructura y tecnología deestructura y tecnología de computadorescomputadores
3. memoria virtual3. memoria virtual segmentadasegmentada
Técnicas de traducción de direccionesTécnicas de traducción de direcciones
Ö Traducción directa
Ø Idea básica: existe una tabla de segmentos (TS) por cada proceso J
ð La TS contiene una entrada por cada posible segmento del proceso J ⇒ 2s
entradas por proceso
ð La entrada S-ésima de la TS contiene la dirección inicial de MP donde comienza el segmento S (si está en MP)
ð La TS de un determinado proceso J está apuntada por un registro base asignado a ese proceso
H: Bit de acierto de referencia (Hit) →→ igual que MV paginada
C: Bit de limpieza de la entrada (Clear) →→ igual que MV paginada
RWX: Tipo de acceso permitido →→ igual que MV paginada
Long: longitud del segmento (nº de palabras que contiene)
Si D > long. ⇒ nos salimos del segmento ⇒ excepción
Nº de segmento Desplazamiento
S
DV:
Dir. ini. seg.RWXH C
Tabla de segmentos
del proceso J (2s entradas)
Dir. Inicio TP
Reg. base
proceso J:
S
RWX
Tipo de acceso
solicitado:
TEST
≠
Excepción
MP
Segmento S D
Long.
D
Test Excepción
(si D > Long.)
Políticas dePolíticas de reemplazamientoreemplazamiento, búsqueda y actualización de segmentos, búsqueda y actualización de segmentos
Ö Similares a MV paginada
16
estructura y tecnología deestructura y tecnología de computadorescomputadores
3. memoria virtual3. memoria virtual segmentadasegmentada
Políticas de emplazamiento de segmentosPolíticas de emplazamiento de segmentos
Ö Cuando se produce un fallo de segmento es necesario buscar una ubicación en MP adecuada
Ø Emplazamiento no trivial
ð Los segmentos pueden ser de tamaño distinto
ð Los “huecos” o zonas libres existentes en MP también son también de distintos tamaños
Ö Gestión de zonas libres de memoria
Ø Las zonas de memoria libre se suelen gestionar mediante una lista enlazada
ð Tenemos un puntero que apunta a la primera zona libre de memoria
ð Al comienzo de cada zona libre tenemos una cabecera que almacena:
ü El tamaño de esa zona de memoria
ü Un puntero con la dirección de comienzo de la siguiente zona libre
Punt. Sig. Tamaño
Zona libre
Zona usada
Punt. Sig. Tamaño
Zona libre
Zona usada
Punt. Sig. Tamaño
MP
Punt.
Gestión de zonas libres
mediante lista enlazada:
9. 17
estructura y tecnología deestructura y tecnología de computadorescomputadores
3. memoria virtual3. memoria virtual segmentadasegmentada
Técnicas de ubicación de segmentosTécnicas de ubicación de segmentos
Ö Algoritmos de ubicación
Ø Primer ajuste
ð El segmento se ubica en la primera zona libre donde quepa
ð Algoritmo simple pero poco óptimo
Ø Mejor ajuste
ð El segmento se ubica en la zona más pequeña donde quepa
ð Provoca fragmentación externa
ü Quedan zonas libres de pequeño tamaño que no
pueden ser usadas para ubicar otros segmentos
Ø Peor ajuste
ð El segmento se ubica en la zona más grande donde quepa
ð Reduce el problema de la fragmentación externa
Ø Retoños (binary-buddy)
ð Disponemos de n listas enlazadas en lugar de una sola
ü La lista k-ésima encadena huecos de tamaño 2k
ð Para ubicar un segmento de tamaño 2k
ü Asignar un hueco de la lista k-ésima
ð Si la lista k-ésima está vacía ⇒ tenemos dos soluciones
ü Dividir un hueco de la lista (k+1)-ésima en dos huecos
(retoños) de tamaño 2k
ü Agrupar 2 huecos contiguos de la lista (k-1)-ésima
MP
Punt. Sig.
Zona usada
Punt. Sig.
Zona libre (tamaño 2k+1)
Zona usada
Punt. Sig.
Zona libre (tamaño 2k+1)
Zona libre (tamaño 2k)
Punt. Sig.
Zona usada
Zona libre (tamaño 2k)
Punt.
Punt.
0
k
k+1
n-1
•
•
•
•
•
•
Lista de punteros
Zona libre 20K
Zona usada
Zona libre 7K
Zona usada
Zona libre 14K
Zona usada
Zona libre 30K
Zona usada
Ubicación de un
segmento de 13 K
Prim
erajuste
Mejor ajuste
Peor ajuste
MP
18
estructura y tecnología deestructura y tecnología de computadorescomputadores
4. memoria virtual4. memoria virtual segmentadasegmentada/paginada/paginada
FundamentosFundamentos
Ö Espacio virtual de direcciones
Ø Se divide en segmentos de tamaño variable
Ø Cada segmento está compuesto por un número variable de páginas de igual tamaño
Ø Dirección virtual:
Ø Los campos S, D y P son de tamaño fijo, pero un segmento puede tener una longitud variable entre 0 y 2p
páginas
Ö Espacio físico de direcciones
Ø Se divide en marcos de página del mismo tamaño que una página
Ø Dirección física:
Ö Traducción de direcciones
Ø Necesario un mecanismo de correspondencia
para conocer en qué marco de página (M) de MP
está ubicada la página P del segmento S
Ø Para un proceso J, en el instante de tiempo T,
el mecanismo de correspondencia nos da:
Nº segmento
S
Desplazamiento
D
s bits d bits
ð Nº máximo de segmentos (por proceso): 2s
ð Tamaño máximo de un segmento: 2p
páginas
ð Tamaño de cada página: 2d
palabras
F(J,T,S,P) =
M, si en el instante T la página P del
segmento S reside en MP
Fallo de página, en caso contrario
Nº página
P
p bits
Nº de marco
M
Desplazamiento
D
m bits d bits
ð Tamaño de un marco: 2d
palabras
ð Nº total de marcos en MP: 2m
marcos
Mecanismo de
correspondencia
Nº página Desplazamiento
P
M
Nº de marco Desplazamiento
D
DV:
DF:
MP
Marco M
Marco M-1
Marco M+1
D
Nº segmento
S
10. 19
estructura y tecnología deestructura y tecnología de computadorescomputadores
4. memoria virtual4. memoria virtual segmentadasegmentada/paginada/paginada
Ö Traducción directa
Ø Idea básica:
ð Existe una tabla de segmentos (TS) por cada proceso J
ð Cada entrada de la TS almacena la dirección de comienzo de la tabla de páginas (TP) de ese segmento
ð La TP del segmento S contiene una entrada por cada página P de ese segmento
Ö Observaciones
Ø Los bits de tipo de acceso (RWX) pueden estar en la TS o en La TP
Ø La TS está compactada en MP
Ø Las TPs correspondientes a distintos segmentos pueden estar dispersas en la MP y algunas pueden residir en MS
Ø Igualmente, las páginas de un mismo segmento no tienen por qué cargarse en posiciones consecutivas de MP y
algunas pueden residir en MS
Técnicas de traducción de direccionesTécnicas de traducción de direcciones
Nº página Desplazamiento
P
M
Nº de marco Desplazamiento
D
DV:
DF:
Dir ini. TPH · ·
Tabla de Segmentos
(proceso J)
Dir. ini. tabla
segmentos
Reg. base
proceso J:
Bit de presencia en memoria
de la TP del segmento S
Nº segmento
S
Bit de acierto del
marco de página
Long.
Nº MarcoH · ·
Tabla de Páginas
del segmento S
Test Excepción
(si P > Long.)
Long: longitud del segmento (nº de páginas que contiene)
Si P > Long. ⇒ nos salimos del segmento ⇒ excepción
20
estructura y tecnología deestructura y tecnología de computadorescomputadores
4. memoria virtual4. memoria virtual segmentadasegmentada/paginada/paginada
Ö Traducción mixta
Ø Se mantiene una pequeña tabla asociativa (TLB) con las páginas más activas
Ø Por otro lado debemos guardar la TS (en MP) y las TPs de los distintos segmentos (en MP o MS)
ð Para traducir una dirección cuya entrada no se encuentre en la TLB
Técnicas de traducción de direcciones (Técnicas de traducción de direcciones (contcont.).)
M
Nº de marco Desplazamiento
D
DF:
¿Hallada
entrada?
No Sí
Acceder
a MP
Acceder
a TS y a TP
M
Nº página Desplazamiento
P D
DV: Nº segmento
S
TLB
Nº página Nº marco
P MS
Nº segmen.
11. 21
estructura y tecnología deestructura y tecnología de computadorescomputadores
5.5. interrelacióninterrelación MV-MP-MCMV-MP-MC
Ö El acceso a la cache puede realizarse utilizando
Ø Direcciones físicas
Ø Direcciones virtuales
Acceso a la cache en un sistema con memoria virtualAcceso a la cache en un sistema con memoria virtual
Ö Idea básica
Ø El acceso a la cache se realiza utilizando direcciones físicas
Ö Problema
Ø Los programas generan direcciones virtuales
ð Para acceder a la cache de direcciones físicas es necesario primero realizar la traducción DV → DF
ð Aumenta los retardos, ya que la traducción de direcciones y el acceso a la cache se realizan en serie
Ö Posible mejora
Ø En ocasiones es posible solapar parcialmente la traducción
de direcciones con el acceso a la cache
Ø Si el campo bloque (emplaz. directo) o conjunto
(emplaz. asoc. por cjtos.) está contenido en el
campo desplazamiento
ð Es posible acceder a la(s) etiqueta(s) de ese bloque
o conjunto en paralelo con la traducción
ð Una vez completada la traducción se realiza
la comparación del campo etiqueta de la DF
Cache de direcciones físicas
DV: Nº de página desplazamiento
DF:
Nº de marco desplazamiento
Etiqueta PB ó C
No varía
22
estructura y tecnología deestructura y tecnología de computadorescomputadores
5.5. interrelacióninterrelación MV-MP-MCMV-MP-MC
Ö Idea básica
Ø Permite acceder a la cache usando directamente la DV
Ø Acelera el acceso a la cache eliminando el tiempo de traducción DV → DF
Ö Problema
Ø Colisiones
ð Cada proceso tiene su propio espacio de direcciones virtuales
ð Dos procesos pueden generar DV idénticas que se refieren a DF distintas
ð Sin embargo, ambas DV accederán a la misma posición de cache
Ø Solución
ð Añadir en la etiqueta de la cache un identificador del proceso al que pertenece ese bloque
Cache de direcciones virtuales
x
Proceso 1
DV:
yDF:
x
Proceso 2
DV:
zDF:
Cache
12. 23
estructura y tecnología deestructura y tecnología de computadorescomputadores
Ö Cuestiones planteadas
Ø ¿Qué ocurre cuando se reemplaza una página en MP y algún bloque de es página estaba en MC?
Ø ¿Qué ocurre cuando un DMAC ordena escribir sobre un bloque de MP que está en MC?
Ö En ambos casos se produce un problema de incoherencia entre la MP y la MC
Ø El contenido de la MP ha variado y por tanto MP y la MC no contienen la misma información
Ö Solución
Ø Invalidar todos los bloques de cache que se ven afectados por esa modificación en la MP
5.5. interrelacióninterrelación MV-MP-MCMV-MP-MC
Mantenimiento de la coherencia entre MC y MPMantenimiento de la coherencia entre MC y MP
MP MC
Marco k
Coherencia MP-MC
MP MC
Marco k
Incoherencia MP-MC
Reemplazamiento
marco k
Ö Cuestión planteada
Ø ¿Un controlador DMA debe utilizar direcciones virtuales o físicas?
Ö Solución: debe emplear direcciones virtuales
Ø El DMAC controla las transferencias de un bloque hacia/desde posiciones consecutivas de memoria
Ø Para ello emplea registro de direcciones que se incrementa/decrementa después de cada transferencia
Ø Si el DMAC usa direcciones físicas y el bloque a transferir no cabe en una sola página sería necesario acceder a dos
páginas distintas que no tienen por qué estar ubicadas en posiciones consecutivas de memoria
DMA y memoria virtualDMA y memoria virtual
24
estructura y tecnología deestructura y tecnología de computadorescomputadores
6. ejemplos6. ejemplos
Ö Memoria virtual paginada
Ø MV dividida en páginas de 8KB
Ø MF dividida en marcos de página de 8KB
Ø Traducción de direcciones mixta
ð Tres niveles de tablas de páginas
ð TLB de 32 entradas
Ö Espacio virtual de direcciones
Ø Dividido en 3 regiones o segmentos
ð Dos regiones de usuario (seg0, seg1)
ü 243
bytes (8TB) cada una
ð Una región para el sistema operativo (kseg)
ü 243
bytes (8TB)
Ø Direcciones virtuales de 64 bits
ð Los 21 bits más significativos para especificar la región
(con 3 habría suficiente)
ü 000···000: seg0
ü 100···000: kseg
ü 111···111: seg1
ð Los 43 bits menos significativos para especificar la
dirección dentro de la región
ü 30 bits para especificar en nº de página
ü 13 bits de desplazamiento (8KB por página)
Ö Espacio físico de direcciones
Ø Direcciones físicas de 34 bits (16 GB)
ð 21 bits para especificar el nº de marco
ð 13 bits para especificar el desplazamiento (8KB por marco)
Memoria virtual en el ALPHA 21064Memoria virtual en el ALPHA 21064
Traducción a tres niveles
TLB
21 bits21 bits 10 bits10 bits 10 bits10 bits 10 bits10 bits 13 bits13 bits
13 bits13 bits21 bits21 bits
13. 25
estructura y tecnología deestructura y tecnología de computadorescomputadores
6. ejemplos6. ejemplos
Ö Dispone de hardware de segmentación y hardware de paginación activables por separado
Ø Unidad de segmentación (US)
ð Utiliza DV de 46 bits (64 TB direccionables)
ð Genera una Dirección Lineal (DL) de 32 bits
ð Traducción de direcciones mediante TS
ð Tamaño del segmento: de 1 byte a 4 GB
Ø Unidad de paginación (UP)
ð Utiliza DL de 32 bits (4GB direccionables)
ð Genera una DF 32 bits
ð Traducción de direcciones a dos niveles mixta
ü Tabla de Directorios + TP (una por direct.)
ü TLB de 32 entradas con las pág. más activas
ð Tamaño de la página: 4 KB o 4 MB
Ö Existen 4 formas de ver la memoria
Ø Memoria no segmentada y no paginada (desactivadas US y UP)
ð DV = DF (32 bits)
ü No existe mecanismo de traducción
ü Los programas generan direcciones de 32 bits que se interpretan como direcciones físicas
Ø Memoria segmentada no paginada (activada US, desactivada UP)
ð DV (46 bits) → DL = DF (32 bits)
ü La DV se traduce a una dirección lineal que se utiliza como DF para acceder a MP
Ø Memoria paginada no segmentada (activada UP, desactivada US)
ð DV (32 bits) → DF (32 bits)
ü Los programas generan DV de 32 bits que se traducen a una DF también de 32 bits
Ø Memoria segmentada/paginada (activadas US y UP)
ð DV (46 bits) → DL (32 bits) → DF (32 bits)
ü La unidad de segmentación traduce la DV de 46 bits a una DL de 32 bits
ü La unidad de paginación traduce la DL de 32 bits a una DF de 32 bits
Memoria virtual en el PENTIUMMemoria virtual en el PENTIUM
Unidad de
segmentación
segmento desplaz.
DV (46 bits)
Tabla de
segmentos
direct. desplaz.
DL (32 bits)
página
Tabla de
directorios
Tabla de
páginas
Unidad de
paginación
TLB
(32 ent.)
Nº de marco desplaz.
DF (32 bits)