SlideShare una empresa de Scribd logo
1 de 13
Descargar para leer sin conexión
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.
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
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
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
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
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
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
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:
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
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.
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
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
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)

Más contenido relacionado

Destacado

Séptima clase, clase 17-5, Fijación Segmentada
Séptima clase, clase 17-5, Fijación SegmentadaSéptima clase, clase 17-5, Fijación Segmentada
Séptima clase, clase 17-5, Fijación SegmentadaLeonardo Antoniassi
 
Arquitectura Web FISI UNMSM
Arquitectura Web FISI UNMSMArquitectura Web FISI UNMSM
Arquitectura Web FISI UNMSMJulio Pari
 
C7 memoria virtual_ssoo_mododecompatibilidad_
C7 memoria virtual_ssoo_mododecompatibilidad_C7 memoria virtual_ssoo_mododecompatibilidad_
C7 memoria virtual_ssoo_mododecompatibilidad_Julio Pari
 
Segmentación Memoria Virtual
Segmentación Memoria VirtualSegmentación Memoria Virtual
Segmentación Memoria VirtualAna Brooks
 
Manual para elaborar plan de mercadeo(1)
Manual para elaborar plan de mercadeo(1)Manual para elaborar plan de mercadeo(1)
Manual para elaborar plan de mercadeo(1)El que sabe
 

Destacado (8)

Tema3 procesos
Tema3 procesos Tema3 procesos
Tema3 procesos
 
Séptima clase, clase 17-5, Fijación Segmentada
Séptima clase, clase 17-5, Fijación SegmentadaSéptima clase, clase 17-5, Fijación Segmentada
Séptima clase, clase 17-5, Fijación Segmentada
 
Exposicion como invertir en la bolsa
Exposicion como invertir en la bolsaExposicion como invertir en la bolsa
Exposicion como invertir en la bolsa
 
Arquitectura Web FISI UNMSM
Arquitectura Web FISI UNMSMArquitectura Web FISI UNMSM
Arquitectura Web FISI UNMSM
 
C7 memoria virtual_ssoo_mododecompatibilidad_
C7 memoria virtual_ssoo_mododecompatibilidad_C7 memoria virtual_ssoo_mododecompatibilidad_
C7 memoria virtual_ssoo_mododecompatibilidad_
 
Memoria virtual
Memoria virtualMemoria virtual
Memoria virtual
 
Segmentación Memoria Virtual
Segmentación Memoria VirtualSegmentación Memoria Virtual
Segmentación Memoria Virtual
 
Manual para elaborar plan de mercadeo(1)
Manual para elaborar plan de mercadeo(1)Manual para elaborar plan de mercadeo(1)
Manual para elaborar plan de mercadeo(1)
 

Similar a Tema14

Similar a Tema14 (20)

Administracion de Memoria
Administracion de MemoriaAdministracion de Memoria
Administracion de Memoria
 
Memoria 3
Memoria 3Memoria 3
Memoria 3
 
Paginación y Segmentación
Paginación y SegmentaciónPaginación y Segmentación
Paginación y Segmentación
 
Administracion de-memorias
Administracion de-memoriasAdministracion de-memorias
Administracion de-memorias
 
Memoria2
Memoria2Memoria2
Memoria2
 
13691765(1).ppt
13691765(1).ppt13691765(1).ppt
13691765(1).ppt
 
Repaso de Arquitectura de Computadoras Carretero
Repaso de Arquitectura de Computadoras CarreteroRepaso de Arquitectura de Computadoras Carretero
Repaso de Arquitectura de Computadoras Carretero
 
Memoria Soporte Hw
Memoria Soporte HwMemoria Soporte Hw
Memoria Soporte Hw
 
Logica digital
Logica digitalLogica digital
Logica digital
 
Problemas m3
Problemas m3Problemas m3
Problemas m3
 
8 so-teo-administracion memoria
8 so-teo-administracion memoria8 so-teo-administracion memoria
8 so-teo-administracion memoria
 
ARQUITECTURA INTERNA DE UNA MÁQUINA RUDIMENTARIA
ARQUITECTURA INTERNA DE UNA MÁQUINA RUDIMENTARIAARQUITECTURA INTERNA DE UNA MÁQUINA RUDIMENTARIA
ARQUITECTURA INTERNA DE UNA MÁQUINA RUDIMENTARIA
 
administracion de memoria y archivos
administracion de memoria y archivosadministracion de memoria y archivos
administracion de memoria y archivos
 
administración de memoria y archivos
administración de memoria y archivosadministración de memoria y archivos
administración de memoria y archivos
 
Cap3
Cap3Cap3
Cap3
 
Cap3
Cap3Cap3
Cap3
 
Memoria virtual
Memoria virtualMemoria virtual
Memoria virtual
 
Memoria virtual
Memoria virtualMemoria virtual
Memoria virtual
 
Memoria virtual
Memoria virtualMemoria virtual
Memoria virtual
 
Memoria virtual
Memoria virtualMemoria virtual
Memoria virtual
 

Más de Juan Timoteo Cori

Relacionmultas cco tsc-jul-01
Relacionmultas cco tsc-jul-01Relacionmultas cco tsc-jul-01
Relacionmultas cco tsc-jul-01Juan Timoteo Cori
 
Guia para acreditacion de carreras de ingenieria
Guia para acreditacion de carreras de ingenieriaGuia para acreditacion de carreras de ingenieria
Guia para acreditacion de carreras de ingenieriaJuan Timoteo Cori
 
Malla curricular ingenieriaindustrial
Malla curricular ingenieriaindustrialMalla curricular ingenieriaindustrial
Malla curricular ingenieriaindustrialJuan Timoteo Cori
 
El afán de los humanos por conseguir adivinar el futuro para tomar
El afán de los humanos por conseguir adivinar el futuro para tomarEl afán de los humanos por conseguir adivinar el futuro para tomar
El afán de los humanos por conseguir adivinar el futuro para tomarJuan Timoteo Cori
 
Plan estrategico institucional_2012_2016
Plan estrategico institucional_2012_2016Plan estrategico institucional_2012_2016
Plan estrategico institucional_2012_2016Juan Timoteo Cori
 
      integracion usabilidad
      integracion  usabilidad       integracion  usabilidad
      integracion usabilidad Juan Timoteo Cori
 
Vea230e otr auditoria_de_usabilidad_v01r00
Vea230e otr auditoria_de_usabilidad_v01r00Vea230e otr auditoria_de_usabilidad_v01r00
Vea230e otr auditoria_de_usabilidad_v01r00Juan Timoteo Cori
 
Usabilidad de sitios web dedicados al comercio electrónico en buenos aires
Usabilidad de sitios web dedicados al comercio electrónico en buenos airesUsabilidad de sitios web dedicados al comercio electrónico en buenos aires
Usabilidad de sitios web dedicados al comercio electrónico en buenos airesJuan Timoteo Cori
 
Tesis web transaccionales-rof
Tesis web transaccionales-rofTesis web transaccionales-rof
Tesis web transaccionales-rofJuan Timoteo Cori
 
Edutec e n34-gonzales_acosta_moyares
Edutec e n34-gonzales_acosta_moyaresEdutec e n34-gonzales_acosta_moyares
Edutec e n34-gonzales_acosta_moyaresJuan Timoteo Cori
 

Más de Juan Timoteo Cori (20)

Relacionmultas cco tsc-jul-01
Relacionmultas cco tsc-jul-01Relacionmultas cco tsc-jul-01
Relacionmultas cco tsc-jul-01
 
multas operadores
multas operadoresmultas operadores
multas operadores
 
Tupa2009 anexo1
Tupa2009 anexo1Tupa2009 anexo1
Tupa2009 anexo1
 
Guia para acreditacion de carreras de ingenieria
Guia para acreditacion de carreras de ingenieriaGuia para acreditacion de carreras de ingenieria
Guia para acreditacion de carreras de ingenieria
 
Estándares tipo-valorativo
Estándares tipo-valorativoEstándares tipo-valorativo
Estándares tipo-valorativo
 
Convalidacion acreditacion
Convalidacion acreditacionConvalidacion acreditacion
Convalidacion acreditacion
 
Malla curricular ingenieriaindustrial
Malla curricular ingenieriaindustrialMalla curricular ingenieriaindustrial
Malla curricular ingenieriaindustrial
 
essalud
essaludessalud
essalud
 
Nivel cump metas
Nivel cump metasNivel cump metas
Nivel cump metas
 
El afán de los humanos por conseguir adivinar el futuro para tomar
El afán de los humanos por conseguir adivinar el futuro para tomarEl afán de los humanos por conseguir adivinar el futuro para tomar
El afán de los humanos por conseguir adivinar el futuro para tomar
 
requerimientos
requerimientos requerimientos
requerimientos
 
Conflicto social
Conflicto socialConflicto social
Conflicto social
 
Plan estrategico institucional_2012_2016
Plan estrategico institucional_2012_2016Plan estrategico institucional_2012_2016
Plan estrategico institucional_2012_2016
 
aplicaciones moviles
aplicaciones  movilesaplicaciones  moviles
aplicaciones moviles
 
Variables internas
Variables internasVariables internas
Variables internas
 
      integracion usabilidad
      integracion  usabilidad       integracion  usabilidad
      integracion usabilidad
 
Vea230e otr auditoria_de_usabilidad_v01r00
Vea230e otr auditoria_de_usabilidad_v01r00Vea230e otr auditoria_de_usabilidad_v01r00
Vea230e otr auditoria_de_usabilidad_v01r00
 
Usabilidad de sitios web dedicados al comercio electrónico en buenos aires
Usabilidad de sitios web dedicados al comercio electrónico en buenos airesUsabilidad de sitios web dedicados al comercio electrónico en buenos aires
Usabilidad de sitios web dedicados al comercio electrónico en buenos aires
 
Tesis web transaccionales-rof
Tesis web transaccionales-rofTesis web transaccionales-rof
Tesis web transaccionales-rof
 
Edutec e n34-gonzales_acosta_moyares
Edutec e n34-gonzales_acosta_moyaresEdutec e n34-gonzales_acosta_moyares
Edutec e n34-gonzales_acosta_moyares
 

Último

Mapas Conceptuales finales Rubén finales.pptx
Mapas Conceptuales finales Rubén finales.pptxMapas Conceptuales finales Rubén finales.pptx
Mapas Conceptuales finales Rubén finales.pptxjose880240
 
Presentacion Seguridad y Privacidad en la Web
Presentacion Seguridad y Privacidad en la WebPresentacion Seguridad y Privacidad en la Web
Presentacion Seguridad y Privacidad en la Webfernandalunag19
 
Antenas, tipos de antenas, diseño basico de una antena y parámetros.pdf
Antenas, tipos de antenas, diseño basico de una antena y parámetros.pdfAntenas, tipos de antenas, diseño basico de una antena y parámetros.pdf
Antenas, tipos de antenas, diseño basico de una antena y parámetros.pdfperezreyesalberto10
 
P7_E1_DanielPoza.pdf Los avances en los sistemas de comunicascion y su difusi...
P7_E1_DanielPoza.pdf Los avances en los sistemas de comunicascion y su difusi...P7_E1_DanielPoza.pdf Los avances en los sistemas de comunicascion y su difusi...
P7_E1_DanielPoza.pdf Los avances en los sistemas de comunicascion y su difusi...danielpoza1
 
Corte de luz 2024 Guayaquil Guayas ecuad
Corte de luz 2024 Guayaquil Guayas ecuadCorte de luz 2024 Guayaquil Guayas ecuad
Corte de luz 2024 Guayaquil Guayas ecuadJonathanHctorSilvaRo
 
tabla-bacterias-1-0-179241-downloadable-3772106.pdf
tabla-bacterias-1-0-179241-downloadable-3772106.pdftabla-bacterias-1-0-179241-downloadable-3772106.pdf
tabla-bacterias-1-0-179241-downloadable-3772106.pdfssuser58a6321
 
¡Descubre el Poder del Masaje Holístico en nuestra Primera Sesión del Seminar...
¡Descubre el Poder del Masaje Holístico en nuestra Primera Sesión del Seminar...¡Descubre el Poder del Masaje Holístico en nuestra Primera Sesión del Seminar...
¡Descubre el Poder del Masaje Holístico en nuestra Primera Sesión del Seminar...CENECOnline
 
Emprende en SPA Segundo día CENEC Mexico
Emprende en SPA Segundo día CENEC MexicoEmprende en SPA Segundo día CENEC Mexico
Emprende en SPA Segundo día CENEC MexicoCENECOnline
 

Último (8)

Mapas Conceptuales finales Rubén finales.pptx
Mapas Conceptuales finales Rubén finales.pptxMapas Conceptuales finales Rubén finales.pptx
Mapas Conceptuales finales Rubén finales.pptx
 
Presentacion Seguridad y Privacidad en la Web
Presentacion Seguridad y Privacidad en la WebPresentacion Seguridad y Privacidad en la Web
Presentacion Seguridad y Privacidad en la Web
 
Antenas, tipos de antenas, diseño basico de una antena y parámetros.pdf
Antenas, tipos de antenas, diseño basico de una antena y parámetros.pdfAntenas, tipos de antenas, diseño basico de una antena y parámetros.pdf
Antenas, tipos de antenas, diseño basico de una antena y parámetros.pdf
 
P7_E1_DanielPoza.pdf Los avances en los sistemas de comunicascion y su difusi...
P7_E1_DanielPoza.pdf Los avances en los sistemas de comunicascion y su difusi...P7_E1_DanielPoza.pdf Los avances en los sistemas de comunicascion y su difusi...
P7_E1_DanielPoza.pdf Los avances en los sistemas de comunicascion y su difusi...
 
Corte de luz 2024 Guayaquil Guayas ecuad
Corte de luz 2024 Guayaquil Guayas ecuadCorte de luz 2024 Guayaquil Guayas ecuad
Corte de luz 2024 Guayaquil Guayas ecuad
 
tabla-bacterias-1-0-179241-downloadable-3772106.pdf
tabla-bacterias-1-0-179241-downloadable-3772106.pdftabla-bacterias-1-0-179241-downloadable-3772106.pdf
tabla-bacterias-1-0-179241-downloadable-3772106.pdf
 
¡Descubre el Poder del Masaje Holístico en nuestra Primera Sesión del Seminar...
¡Descubre el Poder del Masaje Holístico en nuestra Primera Sesión del Seminar...¡Descubre el Poder del Masaje Holístico en nuestra Primera Sesión del Seminar...
¡Descubre el Poder del Masaje Holístico en nuestra Primera Sesión del Seminar...
 
Emprende en SPA Segundo día CENEC Mexico
Emprende en SPA Segundo día CENEC MexicoEmprende en SPA Segundo día CENEC Mexico
Emprende en SPA Segundo día CENEC Mexico
 

Tema14

  • 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)