Está en la página 1de 13

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

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

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

Ø Dirección virtual: Nº de página Desplazamiento ð Tamaño de una página: 2d palabras


P D ð Nº máximo de páginas (por proceso): 2p páginas
p bits 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 Desplazamiento ð Tamaño de un marco: 2d palabras


M D ð Nº total de marcos en MP: 2m marcos
m bits d bits
Ö Traducción de direcciones MP
Ø Necesario un mecanismo de correspondencia Marco M-1
para conocer en qué marco de página (M) de DV: Nº de página Desplazamiento
MP está ubicado una determinada página de
P
memoria virtual (P) Marco M D
Mecanismo de D
Ø Para un proceso J, en el instante de tiempo T, correspondencia
el mecanismo de correspondencia nos da:
M
M, si en el instante T la página P reside en MP
F(J,T,P) = DF: Nº de marco Desplazamiento
Fallo de página, en caso contrario Marco M+1

estructura y tecnología de computadores

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
Tipo de acceso MP
solicitado: RWX DV: Nº de página Desplazamiento Marco M-1
Reg. base
proceso J: Dir. Inicio TP

P
D Marco M D
Tabla de páginas del
P proceso J (2p entradas)
M
H C RWX Nº de marco

DF: Nº de marco Desplazamiento


≠ Marco M+1
Excepción TEST

H: Bit de acierto de referencia (Hit)


Ö Problemas de la traducción directa 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
ü Se duplica el tiempo de acceso a memoria C=0 ⇒ Marco modificado ⇒ necesita actualizarse en MS
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

Nº de página Desplazamiento MP
DV:
Marco M-1

Tabla de páginas asociativa P


Nº de página Nº de marco

D Marco M D
¿Hallada • •
• •
entrada? • • M
P M
Sí No
• •
• • DF: Nº de marco Desplazamiento
• •
Acceder Fallo de Marco M+1
a MP 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

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 2 bits 1 bit 2 bits Traducción directa


DV: P D DF: M D P D
Espacio virtual (32 palabras) Espacio físico (8 palabras) DV: 010 11
8 páginas 2 marcos de página
4 palabras/página 4 palabras/marco
Tabla de Páginas
Dir. ini. TP X + H M
MV MF
P D M D X 0 --
000 00 A0 0 00 A7 X+1 0 --
000 01 B0 0 01 B7 X+2 1 1
000 10 C0 0 10 C7
• • •
000 11 D0 0 11 D7 • • •
A1 A2 • • • DF: 1 11
001 00 1 00
B1 B2 X+7 1 0
001 01 1 01 M D
001 10 C1 1 10 C2
001 11 D1 1 11 D2 Traducción asociativa
010 00 A2
010 01 B2 P D
010 10 C2
D2 DV: 010 11
010 11


• Tabla de Páginas
111 00 A7
111 01 B7 Hallado P M
111 10 C7 010 1
111 11 D7
111 0
DF: 1 11
M D
estructura y tecnología de computadores
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: Nº de página Desplazamiento


Reg. base
proceso J:
Dir. Inicio TP TLB P
Tabla de Páginas Nº página Nº marco
(proceso J)
D
¿Hallada
entrada?
P M
No Sí M
P
H · · Nº Marco
Acceder Acceder
DF: Nº de marco Desplazamiento
a TP a MP
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

Reg. base
DV: Nº directorio Nº página Desplazamiento
proceso J: T P D
Dir. ini. tabla
directorios Tabla de Directorio
(proceso J) 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 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

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 Desplazamiento ð Tamaño máximo de un segmento: 2d palabras


S D ð 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
MP
Ö Traducción de direcciones
Ø Necesario un mecanismo de correspondencia DV: Nº de segmento Desplazamiento
para conocer en qué posición de MP comienza
el segmento (Dirección inicial del segmento) S D
Segmento S D
ð Para calcular la DF asociada a la DV se suma Mecanismo de
el desplazamiento a la dir. ini. del segmento correspondencia Dir. Ini.
Ø Para un proceso J, en el instante de tiempo T, Segmento
el mecanismo de correspondencia nos da:

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


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 MP
solicitado: RWX DV: Nº de segmento Desplazamiento
Reg. base
proceso J: Dir. Inicio TP
S D

Tabla de segmentos D
Segmento S
del proceso J (2s entradas)
S

H C RWX Long. Dir. ini. seg.


Excepción TEST Excepción
Test
(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

Zona usada
Gestión de zonas libres
mediante lista enlazada: 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
Ö Algoritmos de ubicación MP
Ø Primer ajuste Zona libre 20K

te
us
ð El segmento se ubica en la primera zona libre donde quepa

aj
Zona usada

er
im
ð Algoritmo simple pero poco óptimo Zona libre 7K

Pr
Ø Mejor ajuste Mejor ajuste
Zona usada
Ubicación de un
ð El segmento se ubica en la zona más pequeña donde quepa segmento de 13 K Zona libre 14K

ð Provoca fragmentación externa Pe


or Zona usada
aju
ü Quedan zonas libres de pequeño tamaño que no ste
Zona libre 30K
pueden ser usadas para ubicar otros segmentos
Ø Peor ajuste Zona usada

ð El segmento se ubica en la zona más grande donde quepa


ð Reduce el problema de la fragmentación externa
MP
Ø Retoños (binary-buddy) Punt. Sig.
ð Disponemos de n listas enlazadas en lugar de una sola Zona libre (tamaño 2k+1)
ü La lista k-ésima encadena huecos de tamaño 2k
Lista de punteros Zona usada
ð Para ubicar un segmento de tamaño 2k Punt. Sig.
0 Zona libre (tamaño 2k)
ü Asignar un hueco de la lista k-ésima •
• Zona usada
ð Si la lista k-ésima está vacía ⇒ tenemos dos soluciones •
Punt. Sig.
k Punt.
ü Dividir un hueco de la lista (k+1)-ésima en dos huecos Zona libre (tamaño 2k+1)
(retoños) de tamaño 2k k+1 Punt.

• Zona usada
ü Agrupar 2 huecos contiguos de la lista (k-1)-ésima •
Punt. Sig.
n-1 Zona libre (tamaño 2k)

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º segmento Nº página Desplazamiento ð Nº máximo de segmentos (por proceso): 2s
Ø 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 Desplazamiento ð Tamaño de un marco: 2d palabras


M D ð Nº total de marcos en MP: 2m marcos
m bits d bits
MP
Ö Traducción de direcciones
Marco M-1
Ø Necesario un mecanismo de correspondencia DV: Nº segmento Nº página Desplazamiento
para conocer en qué marco de página (M) de MP
está ubicada la página P del segmento S S P
Marco M D
Ø Para un proceso J, en el instante de tiempo T, Mecanismo de D
el mecanismo de correspondencia nos da: correspondencia

M, si en el instante T la página P del M


F(J,T,S,P) = segmento S reside en MP
DF: Nº de marco Desplazamiento
Fallo de página, en caso contrario Marco M+1

estructura y tecnología de computadores


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 DV: Nº segmento Nº página Desplazamiento


proceso J: S P D
Dir. ini. tabla
segmentos Tabla de Segmentos
(proceso J)
Tabla de Páginas
del segmento S
M
H · · Long. Dir ini. TP
DF: Nº de marco Desplazamiento
Bit de presencia en memoria
H · · Nº Marco
de la TP del segmento S
Bit de acierto del
marco de página

Excepción Long: longitud del segmento (nº de páginas que contiene)


Test Si P > Long. ⇒ nos salimos del segmento ⇒ excepción
(si P > Long.)
Ö 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

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 P D

TLB
Nº segmen. Nº página Nº marco D

¿Hallada M
entrada? S P M

No Sí
Acceder DF: Nº de marco Desplazamiento
a TS y a TP Acceder
a MP M

estructura y tecnología de computadores


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 DV: Nº de página desplazamiento
(emplaz. asoc. por cjtos.) está contenido en el
campo desplazamiento Nº de marco desplazamiento
ð Es posible acceder a la(s) etiqueta(s) de ese bloque DF:
o conjunto en paralelo con la traducción Etiqueta BóC P
ð Una vez completada la traducción se realiza
la comparación del campo etiqueta de la DF 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
Proceso 1 Cache Proceso 2
DV: x DV: x

DF: y DF: 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 MC MP MC
Marco k Marco k
Reemplazamiento
marco k

Coherencia MP-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 21 bits 10 bits 10 bits 10 bits 13 bits

Ø 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) TLB
ü 000···000: seg0
21 bits 13 bits
ü 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


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)
ð Utiliza DV de 46 bits (64 TB direccionables) DV (46 bits) DL (32 bits) DF (32 bits)
ð Genera una Dirección Lineal (DL) de 32 bits segmento desplaz. direct. página desplaz. Nº de marco desplaz.

ð Traducción de direcciones mediante TS


ð Tamaño del segmento: de 1 byte a 4 GB Tabla de
páginas
Ø Unidad de paginación (UP) Tabla de Tabla de
segmentos directorios
ð Utiliza DL de 32 bits (4GB direccionables)
ð Genera una DF 32 bits
ð Traducción de direcciones a dos niveles mixta TLB
ü Tabla de Directorios + TP (una por direct.) (32 ent.)
ü TLB de 32 entradas con las pág. más activas
Unidad de Unidad de
ð Tamaño de la página: 4 KB o 4 MB segmentación paginación
Ö 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

estructura y tecnología de computadores

También podría gustarte