Pontificia Universidad Católica de Chile
Escuela de Ingeniería
Departamento de Ciencia de la Computación
Arquitectura de Computadores
Clase 21
Memoria Virtual
IIC 2342
Semestre 2008-2
Rubén Mitnik
Objetivos
Capítulo 5 : Sistemas de Memoria – Memoria Virtual
Objetivos

Entender qué es la memoria virtual junto con sus ventajas

Entender la función de las distintas piezas de hardware
involucradas en el uso de la memoria virtual

Memory Managment Unit (MMU)

Transition Lookaside Buffer (TLB)
Entender el funcionamiento de la memoria virtual


R.Mitnik
Páginas y Marcos, Excepciones, y Swap
2
Arquitectura de Computadores
Índice
Capítulo 5 : Sistemas de Memoria
5.1 Sistemas de almacenamiento
5.2 Jerarquías de memoria
5.3 Tecnologías de memorias
5.4 Representación y formato de datos
5.5 Memoria caché
5.6 Memoria virtual
R.Mitnik
3
Arquitectura de Computadores
Memoria Virtual
Capítulo 5 : Sistemas de Memoria
Introducción
La memoria virtual permite desacoplar la memoria que la CPU
ve de la memoria física



Procesos no se preocupan de dónde están realmente
Distintos procesos pueden utilizar las mismas direcciones de
memoria



Permite utilizar más memoria que la disponible
Seguridad


R.Mitnik
e.g. varios procesos iguales corriendo en paralelo
procesos no conocen el espacio de memoria física de los demás
no pueden determinar la memoria física a utiliza
4
Arquitectura de Computadores
Memoria Virtual
Capítulo 5 : Sistemas de Memoria
Introducción

La memoria virtual permite desacoplar la memoria que la CPU
ve de la memoria física

Define dos espacios de direccionamiento: uno virtual (el que los
procesos ven) y uno físico (la memoria principal)

Por eficiencia se agrega un intermediario que traduce las
direcciones entre ambos espacios


R.Mitnik
Memroy Managment Unit (MMU)
CPU envía direcciones virtuales, MMU las transforma a
direcciones físicas
5
Arquitectura de Computadores
Introducción
Capítulo 5 : Sistemas de Memoria – Memoria Virtual
R.Mitnik
6
Arquitectura de Computadores
Memoria Virtual
Capítulo 5 : Sistemas de Memoria
Introducción
CPU envía direcciones virtuales, MMU las transforma a
direcciones físicas


¿Quién determina cómo se mapea de un espacio al otro?


El Sistema Operativo (SO)
¿Cómo mapea el Sistema Operativo?


R.Mitnik
MMU sólo se encarga de traducir direcciones
Diseña y mantiene una función F() (mapa de memoria) que
permite mapear direcciones entre los espacios virtual y físico.
7
Arquitectura de Computadores
Memoria Virtual
Capítulo 5 : Sistemas de Memoria
Implementación
Implementar un mapeo 1-1 es muy ineficiente



R.Mitnik
Mapear cada dirección virtual a una dirección real es costosísimo
Solución: Paginación
8
Arquitectura de Computadores
Memoria Virtual
Capítulo 5 : Sistemas de Memoria
Paginación
Cada página representa un conjunto de bytes


Todas las páginas tienen el mismo tamaño

El tamaño de las páginas viene dado por la arquitectura (e.g. 4Kb)

Las páginas tienen el mismo tamaño en ambos espacios (virtual y
físico)

En el espacio físico, las páginas virtuales se almacenan en marcos
físicos

El mapa de memoria queda representado como un mapa de
páginas
R.Mitnik
9
Arquitectura de Computadores
Memoria Virtual
Capítulo 5 : Sistemas de Memoria
Paginación
El mapa de memoria queda representado como un mapa de
páginas



R.Mitnik
Se representa como una tabla
Mapea las páginas virtuales a los marcos físicos de la memoria
10
Arquitectura de Computadores
Paginación
Capítulo 5 : Sistemas de Memoria – Memoria Virtual
Ejemplo:
Memoria Virtual: 16 páginas de 4K
Direcciones de 16 bits
Memoria Física: 8 páginas de 4K
Direcciones de 15 bits
R.Mitnik
11
Arquitectura de Computadores
Paginación
Capítulo 5 : Sistemas de Memoria – Memoria Virtual
Dirección
física
Dirección
virtual
MMU
Cómo mapea:
• Determina el número de la página virtual
correspondiente a la dirección requerida
• Determina el marco físico de dicha página
• En base a la posición relativa de la
dirección en la página, determina la
dirección física del requerimiento
R.Mitnik
12
Arquitectura de Computadores
Paginación
Capítulo 5 : Sistemas de Memoria – Memoria Virtual
Tablas de páginas
R.Mitnik
13
Arquitectura de Computadores
Paginación
Capítulo 5 : Sistemas de Memoria – Memoria Virtual
Mapeo utilizando MMU
R.Mitnik
14
Arquitectura de Computadores
Paginación: Ejemplo
Capítulo 5 : Sistemas de Memoria – Memoria Virtual
Memoria Virtual (16K)
14-16K
1
12-14K
0
10-12K
X
8-10K
X
6-8K
X
4-6K
X
2-4K
3
0-2K
2
R.Mitnik
Memoria física (8K)
15
3
6-8K
2
4-6K
1
2-4K
0
0-2K
Arquitectura de Computadores
Paginación: Ejemplo
Capítulo 5 : Sistemas de Memoria – Memoria Virtual
Memoria Virtual (16K)
14-16K
1
Memoria física (8K)
12-14K
0
10-12K
X
8-10K
X
6-8K
X
4-6K
X
2-4K
3
• Determina el marco correspondiente  2
0-2K
2
• Determina dirección física de la dirección virtual 0
3
6-8K
2
4-6K
1
2-4K
0
0-2K
• La MMU recibe la solicitud de la dirección 0
• 0 = primer valor de la página
Ej: La CPU pide el contenido
de la dirección de memoria 0.
R.Mitnik
• Primer valor del marco 2  4096
• Escribe 4096 en el bus de direcciones.
16
Arquitectura de Computadores
Paginación: Ejemplo
Capítulo 5 : Sistemas de Memoria – Memoria Virtual
Memoria Virtual (16K)
14-16K
1
Memoria física (8K)
12-14K
0
10-12K
X
8-10K
X
6-8K
X
4-6K
X
2-4K
3
• Determina el marco correspondiente  3
0-2K
2
• Determina dirección física de la dirección virtual 2050
3
6-8K
2
4-6K
1
2-4K
0
0-2K
• La MMU recibe la solicitud de la dirección 2050
• 2050 = tercer valor de la página correspondiente
Ej: La CPU pide el contenido de
la dirección de memoria 2050.
R.Mitnik
• Tercer valor del marco 3  6146
• Escribe 6146 en el bus de direcciones.
17
Arquitectura de Computadores
Paginación: Ejemplo
Capítulo 5 : Sistemas de Memoria – Memoria Virtual
Memoria Virtual (16K)
14-16K
1
12-14K
0
10-12K
X
8-10K
X
6-8K
X
4-6K
X
2-4K
3
0-2K
2
Memoria física (8K)
3
6-8K
2
4-6K
1
2-4K
0
0-2K
• La MMU recibe la solicitud de la dirección 4100
• Determina el marco correspondiente  No está
•Se genera una falta de página (page fault)
Ej: La CPU pide el contenido de
la dirección de memoria 4100.
R.Mitnik
18
Arquitectura de Computadores
Paginación
Capítulo 5 : Sistemas de Memoria – Memoria Virtual
Falta de Página (page fault)

Se genera cuando la MMU no puede mapear una dirección virtual a
una dirección física

Arroja una interrupción de software

Este inconveniente es transparente para el proceso
Sistema operativo determina qué hacer



Negar la solicitud (out of memory exception)
Buscar memoria disponible


Encuentra
No encuentra  se acabó la memoria física


R.Mitnik
Out of memory exception
Swap
19
Arquitectura de Computadores
Paginación: Ejemplo
Capítulo 5 : Sistemas de Memoria – Memoria Virtual
Memoria Virtual (16K)
14-16K
1
12-14K
0
10-12K
X
8-10K
X
6-8K
X
4-6K
X
2-4K
3
0-2K
2
Ej: La CPU pide el contenido de
la dirección de memoria 4100.
R.Mitnik
Memoria física (8K)
3
6-8K
2
4-6K
1
2-4K
0
0-2K
• La MMU recibe la solicitud de la dirección 4100
• Determina el marco correspondiente  No está
• Se genera una falta de página (page fault)
• Quita una página de un marco, guardándola en disco
(swap out)
20
Arquitectura de Computadores
Paginación: Ejemplo
Capítulo 5 : Sistemas de Memoria – Memoria Virtual
Memoria Virtual (16K)
14-16K
X
12-14K
0
10-12K
X
8-10K
X
6-8K
X
4-6K
1
2-4K
3
0-2K
2
Ej: La CPU pide el contenido de
la dirección de memoria 4100.
R.Mitnik
Memoria física (8K)
3
6-8K
2
4-6K
1
2-4K
0
0-2K
• La MMU recibe la solicitud de la dirección 4100
• Determina el marco correspondiente  No está
• Se genera una falta de página (page fault)
• SO quita una página de un marco, guardándola en
disco (swap out)
• SO asigna el marco a la página requerida,
cargándola de disco de existir previamente (swap in)
21
Arquitectura de Computadores
Paginación: Ejemplo
Capítulo 5 : Sistemas de Memoria – Memoria Virtual
Memoria Virtual (16K)
14-16K
X
Memoria física (8K)
12-14K
0
10-12K
X
8-10K
X
6-8K
X
4-6K
1
2-4K
3
• Determina el marco correspondiente  1
0-2K
2
• Determina dirección física de la dirección virtual 4100
3
6-8K
2
4-6K
1
2-4K
0
0-2K
• La MMU recibe la solicitud de la dirección 4100
• 4100= 5to valor de la página correspondiente
Ej: La CPU pide el contenido de
la dirección de memoria 4100.
R.Mitnik
• 5to valor del marco 1  2052
• Escribe 2052 en el bus de direcciones.
22
Arquitectura de Computadores
Paginación
Capítulo 5 : Sistemas de Memoria – Memoria Virtual
¿Cuántas tablas de páginas hay?
El sistema operativo mantiene una tabla de páginas independiente
para cada proceso




Procesos no se preocupan de donde están realmente
Distintos procesos pueden utilizar las mismas direcciones de memoria
Seguridad

Al cargar un proceso, el SO también carga en la MMU el mapa de
memoria asociado a dicho proceso

MMU sólo convierte!!!
R.Mitnik
23
Arquitectura de Computadores
Paginación
Capítulo 5 : Sistemas de Memoria – Memoria Virtual
Translation Lookaside Buffer (TLB)
Las tablas son muy grandes, por lo que se almacenan en la
memoria física


El sistema operativo no carga la MMU con el mapa del proceso

El sistema operativo le entrega un puntero a dicha tabla
Problema: Dobles accesos a memoria




R.Mitnik
Al llegar un requerimiento de memoria la MMU debe ir a buscar la
entrada correspondiente de la tabla a memoria
Luego hacer la traducción de dirección virtual a dirección física
Finalmente envía el requerimiento del proceso como dirección física
24
Arquitectura de Computadores
Translation Lookaside Buffer
Capítulo 5 : Sistemas de Memoria – Memoria Virtual
Translation Lookaside Buffer (TLB)
TLB


Hardware que permite un acceso rápido a los elementos más usados
de la tabla

Es una memoria caché especializada



R.Mitnik
Muy rápida
Fully associative
Pequeña (entre 32 y 1024 palabras)
25
Arquitectura de Computadores
Translation Lookaside Buffer
Capítulo 5 : Sistemas de Memoria – Memoria Virtual
Mapeo utilizando MMU y TLB
R.Mitnik
26
Arquitectura de Computadores
Resumen
Capítulo 5 : Sistemas de Memoria – Memoria Virtual
Resumen
Ventajas de la memoria virtual





Procesos no se preocupan de dónde están realmente
Distintos procesos pueden utilizar las mismas direcciones de memoria
Permite utilizar más memoria que la disponible
Seguridad
Piezas de hardware involucradas



Memory Managment Unit (MMU)
Translation Lookaside Buffer (TLB)
Paginación





R.Mitnik
Páginas
Marcos
Falta de página (page fault)
Swap in/out
27
Arquitectura de Computadores
Descargar

Arquitectura de Computadores