Tema 14. - Universidad Complutense de Madrid

Anuncio
1
Estructura y Tecnología de Computadores
Módulo F. El subsistema de memoria
Tema 14. Memoria virtual
José Manuel Mendías Cuadros
Dpto.
Dpto. Arquitectura de Computadores y Automática
Universidad Complutense de Madrid
2
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.
estructura y tecnología de computadores
3
1. introducción
Concepto
Ö 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)
Ejemplo
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
Fundamento de la memoria virtual
Ö 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
estructura y tecnología de computadores
4
1. introducción
Té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
estructura y tecnología de computadores
5
2. memoria virtual paginada
Fundamentos
Ö Espacio virtual de direcciones
Ø Se divide en páginas de tamaño fijo
Nº de página
P
Ø Dirección virtual:
Desplazamiento
D
p bits
ð Tamaño de una página: 2d palabras
ð Nº máximo de páginas (por proceso): 2p páginas
d bits
Ö Espacio físico de direcciones
Ø Se divide en marcos de página del mismo tamaño que una página
Ø Dirección física:
Nº de marco
M
Desplazamiento
D
m bits
ð Tamaño de un marco: 2d palabras
ð Nº total de marcos en MP: 2m marcos
d bits
Ö Traducción de direcciones
MP
Ø 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)
Marco M-1
DV:
Nº de página
Desplazamiento
P
Marco M
Mecanismo de
correspondencia
Ø Para un proceso J, en el instante de tiempo T,
el mecanismo de correspondencia nos da:
D
D
M
M, si en el instante T la página P reside en MP
F(J,T,P) =
DF: Nº de marco Desplazamiento
Marco M+1
Fallo de página, en caso contrario
estructura y tecnología de computadores
6
2. memoria virtual paginada
Té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
Reg. base
proceso J: Dir. Inicio TP
Tipo de acceso
solicitado:
MP
RWX
DV:
Nº de página
Desplazamiento
Marco M-1
P
P
H C RWX Nº de marco
Excepción
≠
D
Tabla de páginas del
proceso J (2p entradas)
Marco M
D
M
DF: Nº de marco Desplazamiento
TEST
Ö Problemas de la traducción directa
Marco M+1
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
Ø La TP debe almacenarse en memoria principal
C: Bit de limpieza de la entrada (Clear)
ð Se requieren dos accesos a MP por cada referencia
C=1 ⇒ Marco no modificado ⇒ no necesita actualizarse
C=0 ⇒ Marco modificado ⇒ necesita actualizarse en MS
ü Se duplica el tiempo de acceso a memoria
RWX: Tipo de acceso permitido : lectura/escritura/ejecución
ð 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
estructura y tecnología de computadores
7
2. memoria virtual paginada
Técnicas de traducción de direcciones (cont
.)
(cont.)
Ö 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
DV:
Nº de página
Marco M-1
P
Tabla de páginas asociativa
Nº de página
MP
Desplazamiento
Nº de marco
Marco M
D
¿Hallada
entrada?
Sí
Acceder
a MP
•
•
•
P
•
•
•
No
•
•
•
M
•
•
•
D
M
DF: Nº de marco Desplazamiento
Marco M+1
Fallo de
página
Ö 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
estructura y tecnología de computadores
8
2. memoria virtual paginada
Técnicas de traducción de direcciones: ejemplo
Ö Comparación de los mecanismos de traducción directa y asociativa
3 bits
DV:
P
2 bits
D
Espacio virtual (32 palabras)
8 páginas
4 palabras/página
1 bit 2 bits
M
DF:
Traducción directa
P
D
DV: 010 11
D
Espacio físico (8 palabras)
2 marcos de página
4 palabras/marco
Dir. ini. TP
P D
MV
000
000
000
000
001
001
001
001
010
010
010
010
00
01
10
11
00
01
10
11
00
01
10
11
A0
B0
C0
D0
A1
B1
C1
D1
A2
B2
C2
D2
111
111
111
111
00
01
10
11
A7
B7
C7
D7
M D
0
0
0
0
1
1
1
1
00
01
10
11
00
01
10
11
MF
A7
B7
C7
D7
A2
B2
C2
D2
X
Tabla de Páginas
+
X
X+1
X+2
•
•
•
X+7
H
M
0
0
1
--1
•
•
•
•
•
•
1
0
DF: 1
M
11
D
DF: 1
M
11
D
Traducción asociativa
P
D
DV: 010 11
•
•
•
estructura y tecnología de computadores
Tabla de Páginas
Hallado
P
M
010
1
111
0
9
2. memoria virtual paginada
Técnicas de traducción de direcciones (cont
.)
(cont.)
Ö 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
DV:
Reg. base
proceso J:
Nº de página
P
TLB
Dir. Inicio TP
Tabla de Páginas
(proceso J)
Desplazamiento
Nº página Nº marco
D
¿Hallada
entrada?
P
No
H · · Nº Marco
Acceder
a TP
M
Sí
P
Acceder
a MP
M
DF: Nº de marco Desplazamiento
M
Ö Problemas de la traducción mixta
Ø Debemos seguir almacenando una TP por proceso en MP (ocupa mucho espacio)
estructura y tecnología de computadores
10
2. memoria virtual paginada
Técnicas de traducción de direcciones (cont
.)
(cont.)
Ö 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
DV: Nº directorio Nº página Desplazamiento
Reg. base
proceso J:
Dir. ini. tabla
directorios
T
Tabla de Directorio
(proceso J)
P
D
Una página de la TP
(correspondiente
al directorio D)
M
H · · Dir ini. Pág.
DF: Nº de marco Desplazamiento
H · · Nº Marco
Bit de presencia en memoria
de la página del directorio T
Bit de acierto del
marco de página
estructura y tecnología de computadores
11
2. memoria virtual paginada
Elección del tamaño de la página
Ö 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
IBM360/67
MC68020
MIPS R2000/3000
Alpha 21064
Pentium
Tamaño Página
4KB
256 bytes a 32 KB
4KB
8KB
4KB o 4 MB
estructura y tecnología de computadores
12
2. memoria virtual paginada
Políticas de emplazamiento de páginas en MP
Ö 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 reemplazamiento de páginas
Ö 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)
estructura y tecnología de computadores
13
2. memoria virtual paginada
Políticas de búsqueda de páginas
Ö 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 actualización de la MS
Ö 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
estructura y tecnología de computadores
14
3. memoria virtual segmentada
Fundamentos
Ö Espacio virtual de direcciones
Ø Se divide en segmentos de tamaño variable
Ø Dirección virtual:
Nº de segmento
S
Desplazamiento
D
ð Tamaño máximo de un segmento: 2d palabras
ð Nº máximo de segmentos (por proceso): 2s.
s bits
d bits
Ø 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:
DV:
Nº de segmento
Desplazamiento
S
Mecanismo de
correspondencia
D
Dir. Ini.
Segmento
Dir. ini. segmento, si en el instante T el segmento S reside en MP
F(J,T,S) =
Fallo de segmento, en caso contrario
Ö 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)
estructura y tecnología de computadores
MP
Segmento S
D
15
3. memoria virtual segmentada
Té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
Tipo de acceso
solicitado:
Reg. base
proceso J: Dir. Inicio TP
RWX
S
S
≠
D
Tabla de segmentos
del proceso J (2s entradas)
H C RWX
Excepción
MP
DV: Nº de segmento Desplazamiento
Segmento S
D
Long. Dir. ini. seg.
TEST
Test
Excepción
(si D > Long.)
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
Políticas de reemplazamiento,
reemplazamiento, búsqueda y actualización de segmentos
Ö Similares a MV paginada
estructura y tecnología de computadores
16
3. memoria virtual segmentada
Polí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
MP
Punt.
Punt. Sig. Tamaño
Zona libre
Gestión de zonas libres
mediante lista enlazada:
Zona usada
Punt. Sig. Tamaño
Zona libre
Zona usada
Punt. Sig. Tamaño
estructura y tecnología de computadores
17
3. memoria virtual segmentada
Técnicas de ubicación de segmentos
MP
Ö Algoritmos de ubicación
Zona libre 20K
aj
us
te
Ø 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
Pr
im
er
Zona usada
Zona libre 7K
Mejor ajuste
Ubicación de un
segmento de 13 K
Zona usada
Zona libre 14K
Pe
or
aju
ste
Zona usada
Zona libre 30K
Zona usada
MP
Punt. Sig.
Zona libre (tamaño 2k+1)
Lista de punteros
ð 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
Zona usada
Punt. Sig.
Zona libre (tamaño 2k)
0
•
•
•
k
k+1
Zona usada
Punt. Sig.
Punt.
Zona libre (tamaño 2k+1)
Punt.
•
•
•
Zona usada
Punt. Sig.
Zona libre (tamaño 2k)
n-1
estructura y tecnología de computadores
18
4. memoria virtual segmentada/paginada
segmentada/paginada
Fundamentos
Ö 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
ð Nº máximo de segmentos (por proceso): 2s
Nº segmento Nº página Desplazamiento
Ø Dirección virtual:
P
S
D
ð Tamaño máximo de un segmento: 2p páginas
ð Tamaño de cada página: 2d palabras
s bits
p bits
d bits
Ø 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:
Nº de marco
M
m bits
Desplazamiento
D
ð Tamaño de un marco: 2d palabras
ð Nº total de marcos en MP: 2m marcos
d bits
MP
Ö 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:
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
estructura y tecnología de computadores
Marco M-1
DV: Nº segmento Nº página Desplazamiento
S
P
Mecanismo de
correspondencia
Marco M
D
M
DF: Nº de marco Desplazamiento
Marco M+1
D
19
4. memoria virtual segmentada/paginada
segmentada/paginada
Técnicas de traducción de direcciones
Ö 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
Reg. base
proceso J:
Dir. ini. tabla
segmentos
DV: Nº segmento Nº página Desplazamiento
S
D
P
Tabla de Segmentos
(proceso J)
Tabla de Páginas
del segmento S
M
H
· · Long. Dir ini. TP
DF: Nº de marco Desplazamiento
H · · Nº Marco
Bit de presencia en memoria
de la TP del segmento S
Bit de acierto del
marco de página
Ø
Ø
Ø
Ø
Excepción
(si P > Long.)
Test
Ö Observaciones
Long: longitud del segmento (nº de páginas que contiene)
Si P > Long. ⇒ nos salimos del segmento ⇒ excepción
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
estructura y tecnología de computadores
20
4. memoria virtual segmentada/paginada
segmentada/paginada
Técnicas de traducción de direcciones (cont
.)
(cont.)
Ö 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
DV: Nº segmento Nº página Desplazamiento
S
D
P
TLB
D
Nº segmen. Nº página Nº marco
¿Hallada
entrada?
No
Acceder
a TS y a TP
S
P
Sí
Acceder
a MP
estructura y tecnología de computadores
M
M
DF: Nº de marco Desplazamiento
M
21
5. interrelación MV-MP-MC
Acceso a la cache en un sistema con memoria virtual
Ö El acceso a la cache puede realizarse utilizando
Ø Direcciones físicas
Ø Direcciones virtuales
Cache de direcciones físicas
Ö 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
DV:
Nº de página
Nº de marco
desplazamiento
desplazamiento
DF:
Etiqueta
BóC
P
No varía
estructura y tecnología de computadores
22
5. interrelación MV-MP-MC
Cache de direcciones virtuales
Ö 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
DV:
DF:
Proceso 1
x
y
Cache
DV:
DF:
Proceso 2
x
z
Ø Solución
ð Añadir en la etiqueta de la cache un identificador del proceso al que pertenece ese bloque
estructura y tecnología de computadores
23
5. interrelación MV-MP-MC
Mantenimiento de la coherencia entre MC y MP
Ö 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
MP
Marco k
MC
MP
Marco k
Reemplazamiento
marco k
Coherencia MP-MC
MC
Incoherencia MP-MC
Ö Solución
Ø Invalidar todos los bloques de cache que se ven afectados por esa modificación en la MP
DMA y memoria virtual
Ö 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
estructura y tecnología de computadores
24
6. ejemplos
Memoria virtual en el ALPHA 21064
Ö Memoria virtual paginada
Traducción a tres niveles
Ø 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
21 bits
10 bits
10 bits
10 bits
13 bits
Ö 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)
estructura y tecnología de computadores
TLB
21 bits
13 bits
25
6. ejemplos
Memoria virtual en el PENTIUM
Ö Dispone de hardware de segmentación y hardware de paginación activables por separado
Ø Unidad de segmentación (US)
DV (46 bits)
ð Utiliza DV de 46 bits (64 TB direccionables)
segmento
desplaz.
ð 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
Tabla de
Ø Unidad de paginación (UP)
segmentos
ð 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
Unidad de
ð Tamaño de la página: 4 KB o 4 MB
segmentación
Ö Existen 4 formas de ver la memoria
DF (32 bits)
DL (32 bits)
Nº de marco desplaz.
direct. página desplaz.
Tabla de
directorios
Tabla de
páginas
TLB
(32 ent.)
Unidad de
paginación
Ø 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
estructura y tecnología de computadores
Descargar