ISI374 – Arquitectura de Computadores Clase 22: Jerarquía de memoria Pt.4
ISI374 – Arquitectura de Computadores Clase 22: Jerarquía de memoria Pt.4 Departamento de...
-
Upload
saturnino-silvera -
Category
Documents
-
view
3 -
download
1
Transcript of ISI374 – Arquitectura de Computadores Clase 22: Jerarquía de memoria Pt.4 Departamento de...
ISI374 – Arquitectura de ComputadoresClase 22: Jerarquía de memoria Pt.4
Departamento de Ingeniería de SistemasUniversidad de Antioquia
2010-1
ISI3
74 -
Arqu
itect
ura
de C
ompu
tado
res
(201
0-1)
2
Resumen
Memoria virtual
ISI3
74 -
Arqu
itect
ura
de C
ompu
tado
res
(201
0-1)
Memoria virtual3
Contextualización
La memoria cache proporciona un acceso rápido a porciones de código y datos de un programa usados recientemente
De la misma manera, la memoria principal puede actuar como una “cache” para el almacenamiento secundario (normalmente implementado con discos magnéticos) Memoria virtual
El principio de localidad se aplica tanto a la memoria virtual como la memoria cache
Los programas comparten la memoria principal Cada programa posee su propio espacio de direcciones (espacio
virtual) Mecanismo de protección
Durante la ejecución, cada dirección virtual se traduce en una dirección física (una dirección en memoria principal)
La memoria virtual (hardware de CPU y SO) realiza la traducción del espacio virtual de direcciones de un programa al espacio de direcciones físicas
ISI3
74 -
Arqu
itect
ura
de C
ompu
tado
res
(201
0-1)
Memoria virtual4
Definiciones
Virtual address Dirección que corresponde a una posición en el espacio virtual de
direcciones usado por un programa El procesador genera direcciones virtuales
Physical address Dirección para acceder a memoria principal
Address translation (Address mapping) Proceso mediante el cual una dirección virtual se traduce en una
dirección física para acceder a la memoria principal Page
Bloque de memoria virtual Page fault
Fallo de memoria virtual: la página accedida no está en memoria principal
ISI3
74 -
Arqu
itect
ura
de C
ompu
tado
res
(201
0-1)
Modelo de memoria virtual5
Páginas de memoria se mapean de un espacio de direcciones virtual a un espacio de direcciones físico
El procesador genera direcciones virtuales La memoria principal se accede usando direcciones físicas Una página virtual se mapea en una página física Una página virtual puede no estar presente en memoria principal
(no estar mapeada a una dirección física) y residir en disco Las páginas físicas pueden compartirse haciendo que sus
direcciones virtuales apunten a la misma dirección física
ISI3
74 -
Arqu
itect
ura
de C
ompu
tado
res
(201
0-1)
Modelo de memoria virtual6
Memory Management Unit(MMU)
Physical page(Page frame)
Virtual page
ISI3
74 -
Arqu
itect
ura
de C
ompu
tado
res
(201
0-1)
Traducción de dirección virtual a dirección física
7
En memoria virtual, la dirección se divide en dos campos: Virtual page number: fragmento de la dirección virtual que se
traduce en dirección física Page offset: campo que no se modifica en el espacio de direcciones
físicas y que determina el tamaño de la página El número de páginas direccionables usando la dirección virtual
no tiene porqué ser igual que el número de páginas direccionables usando la dirección física
Tener un número de páginas virtuales mayor que el de páginas físicas produce la ilusión de una cantidad de memoria virtual enorme
ISI3
74 -
Arqu
itect
ura
de C
ompu
tado
res
(201
0-1)
Fallo de página (Page fault)8
Cada solicitud de acceso a memoria por parte del procesador requiere primero de una traducción de dirección virtual a dirección física
Cuando la página que contiene la palabra solicitada por el procesador no está en la memoria principal y tiene que ser traída desde el disco se dice que hay un fallo de página
Puede tomar millones de ciclos de reloj en procesarse (recordar que la memoria es casi 100 mil veces más veloz que el disco!!!)
El tratamiento del fallo lo hace el SO
Aspectos a tener en cuenta en el diseño del sistema de memoria virtual: La página debe ser suficientemente grande para amortizar el elevado tiempo
de acceso (tamaño típicos de 4 KB a 16 KB) Emplear organizaciones que reduzcan la tasa de fallos de página
» Emplazamiento completamente asociativo El tratamiento de los fallos de página se puede hacer mediante software (el
costo es muy pequeño comparado con el tiempo de acceso al disco)» Algoritmos de emplazamiento ingeniosos
La política de escritura write-through no funciona en memoria virtual» Se emplea write-back
ISI3
74 -
Arqu
itect
ura
de C
ompu
tado
res
(201
0-1)
Tabla de página9
Debido a la alta penalización de un fallo de página, es importante reducir la tasa de fallos de página
Optimización del emplazamiento de páginas El mapeo completamente asociativo le permite al SO reemplazar
cualquier página que él quiera cuando ocurre un fallo Se emplean algoritmos sofisticados y estructuras de datos
complejas para mantener un registro del uso de las páginas Una dificultad del emplazamiento completamente asociativo es
localizar una entrada en memoria (una búsqueda completa no es práctica)
Es posible localizar una página usando una tabla que indexe la memoria
Esta estructura se llama tabla de página y reside en memoria La tabla de página se direcciona usando el número de
página virtual para conocer el número de página física correspondiente
ISI3
74 -
Arqu
itect
ura
de C
ompu
tado
res
(201
0-1)
Tabla de página10
Cada programa posee su propia tabla de página, que mapea el espacio de direcciones virtual de ese programa a memoria principal
Para indicar la ubicación de la tabla de página en memoria se emplea un registro que apunta al comienzo de la tablaPage table register
Estado de un programa (Proceso)Tabla de página, contador de programa y registros
Un proceso se considera activo cuando está en posesión del procesador
Es el SO quien se encarga de hacer activo o inactivo a un proceso El espacio de direcciones del proceso (todos los datos que puede
acceder en memoria) está definido por su tabla de página En lugar de cargar toda la tabla de página, el SO carga el registro de
tabla de página del proceso que quiere hacer activo (además del banco de registros y el contador de programa)
ISI3
74 -
Arqu
itect
ura
de C
ompu
tado
res
(201
0-1)
Traducción empleando la tabla de página11
ISI3
74 -
Arqu
itect
ura
de C
ompu
tado
res
(201
0-1)
Mapeo de páginas a disco12
La dirección virtual no dice exactamente dónde está la página en el disco
Por lo tanto, es necesario mantener un registro que permita conocer la ubicación en disco de cada página en el espacio virtual de direcciones
Swap space: espacio en el disco reservado por el SO para todo el espacio de memoria virtual de un proceso
El SO también crea una estructura de datos para saber en qué parte del disco está almacenada cada página virtual
ISI3
74 -
Arqu
itect
ura
de C
ompu
tado
res
(201
0-1)
Esquema de reemplazo13
El SO crea una estructura de datos para saber cuáles procesos y cuáles direcciones virtuales usan cada página física
Cuando ocurre un fallo de página, si todas las páginas en memoria están en uso, el SO debe elegir una página a reemplazar
Para reducir la tasa de fallos de página, el SO intenta elegir una página a reemplazar asumiendo que no será requerida en un futuro cercano Esquema Least-recently used (LRU)
La página reemplazada se escribe en el espacio swap en disco
Implementar un esquema LRU completamente preciso es muy costoso
Sería necesario actualizar una estructura de datos en cada referencia a memoria
Para estimar las páginas LRU, el SO se vale de un bit de uso o referencia que se activa cuando se accede a la página
El SO limpia (pone en cero) periódicamente los bits de referencia y luego los lee para determinar cuáles páginas han sido accedidas
La página que conserve el bit de uso en cero no ha sido accedida recientemente
ISI3
74 -
Arqu
itect
ura
de C
ompu
tado
res
(201
0-1)
Tratamiento de las escrituras14
La escritura en el disco puede tomar millones de ciclos de reloj Un buffer de escritura, como en el caso de la cache, no sería
práctico En memoria virtual se implementa el esquema de escritura write-back (copy-back)
Copia la página completa en el disco cuando es reemplazada en memoria
La operación write-back, siendo más eficiente que escribir palabras individuales en el disco, aún es costosa
¿Cómo sabemos si una página en memoria debe ser escrita en disco cuando decidimos reemplazarla?
Se agrega un bit dirty en cada entrada de la tabla de página Este bit se activa cuando se escribe cualquier palabra en la página
Si el SO decide reemplazar una página, el bit dirty indica si la página debe escribirse en disco antes de que su ubicación en memoria sea cedida a otra página
ISI3
74 -
Arqu
itect
ura
de C
ompu
tado
res
(201
0-1)
Traducción rápida empleando TLB15
Cada acceso a memoria por parte de un programa consta de: Un acceso a memoria para obtener la dirección física
» Recordar que la tabla de página reside en memoria Un segundo acceso a memoria para obtener el dato
Pero los accesos a la tabla de página tienen buena localidad Cuando se realiza una traducción de un número de página virtual,
probablemente ésta sea requerida otra vez en un futuro cercano Los procesadores modernos emplean una cache para almacenar
las traducciones hechas recientemente y evitar el acceso a la tabla de página
Esta cache de traducción se llama Translation-lookaside buffer (TLB) Valores típicos para un TLB:
Tamaño: 16 – 512 entradas Tamaño de bloque: 1 – 2 entradas de la tabla de página Tiempo de acierto: 0.5 – 1 ciclo de reloj Penalización de fallo: 10 – 100 ciclos de reloj Tasa de fallos: 0.01% – 1%
ISI3
74 -
Arqu
itect
ura
de C
ompu
tado
res
(201
0-1)
Traducción rápida empleando TLB16
ISI3
74 -
Arqu
itect
ura
de C
ompu
tado
res
(201
0-1)
Fallos en TLB17
Cuando ocurre un fallo en TLB es necesario determinar si es un fallo de página o un simple fallo en TLB
Si la página está en memoria: El procesador carga la traducción desde la tabla de página en TLB y
repite la referencia
Si la página no está en memoria: El fallo en TLB implica un fallo de página El procesador invoca el SO mediante una excepción para que éste
traiga la página a memoria y actualice la tabla de página y TLB Luego, repite la referencia
ISI3
74 -
Arqu
itect
ura
de C
ompu
tado
res
(201
0-1)
Interacción cache/TLB18
Intrinsity FastMATH
Cache direccionada físicamente:Índice y etiquetas tomados de la dirección física
ISI3
74 -
Arqu
itect
ura
de C
ompu
tado
res
(201
0-1)
Interacción cache/TLB19
Diagrama de flujo del proceso de paginación virtual
ISI3
74 -
Arqu
itect
ura
de C
ompu
tado
res
(201
0-1)
Protección de memoria20
Una de las funciones más importantes de la memoria virtual es permitir que muchos procesos compartan la memoria, ofreciendo mecanismos de protección entre los procesos y el SO
Diferentes procesos pueden compartir partes de sus espacios de direcciones virtuales
Pero es necesario protegerlos ante accesos erráticos Los mecanismos de protección deben asegurar que aunque varios
procesos compartan la misma memoria, ninguno de ellos pueda escribir en el espacio de otro, con o sin intención
Requiere asistencia del SO Soporte hardware para que el SO implemente protección
Por lo menos dos modos de operación: modo usuario y modo supervisor privilegiado (kernel mode)
Instrucciones especiales para modificar el estado de un proceso (sólo en modo supervisor)
Mecanismos para el paso de modo usuario a supervisor y viceversa (Ej: instrucción syscall en MIPS)
ISI3
74 -
Arqu
itect
ura
de C
ompu
tado
res
(201
0-1)
Lecturas recomendadas21
Computer organization and architecture. Designing for performance, 6th ed., Chapter 4. W. Stallings. Pearson Education
Computer organization and design. The hardware/software interface, 3rd ed., Chapter 7. D. Patterson and J. Hennessy. Morgan Kaufmann Publishers
The essentials of computer organization and architecture, Chapter 6. L. Null and J. Lobur. Jones and Batlett Publishers
Hardware and computer organization. The software perspective, Chapter 14. A. Berger. Elsevier
Virtual memory simulator. I. Koren. Dept. of ECS. University of Massachusetts (Armherst)http://www.ecs.umass.edu/ece/koren/architecture/Vmemory/try.html