Upload
diego-palma-fuentes
View
221
Download
0
Tags:
Embed Size (px)
Citation preview
ARQUITECTURA DE COMPUTADORES
Semestre A-2009
Clase 21
La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and Design (The hardware / software interface), 4ta Edición, de David A. Patterson y John L. Hennessy. Editorial Morgan Kaufmann
AGENDA
• La Memoria Virtual• Memory Management Unit (MMU)
07/09 – 11/09 Jerarquía de memoriaJerarquía de Memoria y
Proyecto
14-09 – 18/09Memoria virtual y la
MMU3er Examen Parcial
Memoria Virtual• Al igual que las caches para el acceso rápido de las
instrucciones y datos, la memoria RAM puede actuar como “cache” de la memoria secundaria.
• Objetivos:
– Que los procesos puedan compartir la memoria de forma eficiente y segura. Proceso = Programa en ejecución.
– Eliminar a los programas los límites de una memoria principal pequeña.
– Protección.
• Cada programa se ejecuta (funciona) dentro de su propio espacio de direcciones: Un rango de localidades de memoria accesibles sólo por este programa.
Memoria Virtual
• La memoria virtual implementa la traducción del espacio de direcciones de un programa a direcciones físicas.
• Esta traducción asegura la protección de los espacios de direcciones.
• Se libera al programador de la responsabilidad de manejar dos niveles de memoria.
Memoria Virtual
• Un bloque de memoria virtual lo denominaremos Página.• Un fallo (miss) en la memoria virtual lo denominaremos
Fallo de página.
• El procesador produce una dirección virtual que es traducida en una dirección física.
Memoria Virtual• La memoria virtual facilita la carga de programas, al
poder realizar sin complicaciones relocalizaciones.• En memoria virtual, las direcciones son picadas en
Número de página virtual y Desplazamiento de página
Memoria Virtual
• Un fallo de página suele tomar millones de ciclos de reloj. Por esta razón:
1. Las páginas suelen ser grandes: De 4 a 64 KB.2. Se prefieren las jerarquías que reducen los fallos de
página (Ej: Caches totalmente asociativas).3. Los fallos de página se manejan por software.4. Se utiliza write-back (Write-through resulta
impensable)
• Veamos: Técnicas de organización de la memoria
Particiones fijas
Particiones variables
Memoria Virtual y la MMU
• Usar la DRAM como una cache de la Mem. Secundaria:– El espacio de direcciones de un proceso puede exceder la
capacidad de la memoria física disponible– La suma de todos los espacios de direcciones de múltiples
procesos puede exceder la capacidad de la memoria física
• Simplificar el manejo de la memoria– Múltiples procesos residen en memoria principal. Cada proceso
con su propio espacio de direcciones.– Sólo el código y datos “activos” se encuentran realmente en
memoria.– Se reserva más memoria para el proceso a medida que se
requiere
Protección
• Un proceso no puede interferir con otro– Ellos operan en diferentes espacios de
direcciones
• Los procesos de usuario no pueden accesar información del sistema de forma directa
• Cada sección de espacios de direcciones tiene sus permisos
Memory Management Unit
• Provee los servicios principales de gestión de tareas• Considera que cada programa corre en su espacio
privado• La MMU simplifica la programación de tareas de
aplicación proveyendo recursos para el manejo de la memoria virtual– Actúa como un traductor: Convierte direcciones (lógicas) de
programas y datos a direcciones físicas reales– Permite la reubicación de los programas con direcciones virtuales
a cualquier parte de la memoria
Memory Management Unit
CPU MMUMemoriaPrincipal
Direcciónlógica
Direcciónfísica
• Traduce direcciones
• A continuación: Formas de implementar la Memoria Virtual
Manejo de Memoria basada en Segmentación
• El programa ve su memoria como un conjunto de segmentos: Programa principal, datos, pila, tabla de símbolos, variables globales, etc.
• Cada programa tiene su propio conjunto de segmentos privados
• Cada acceso a memoria es realizado a través de un selector de segmento y una compensación (offset) dentro del segmento
• Así, cada programa tiene su propia vista privada de la memoria y puede coexistir transparentemente con otros programas
Generación de dirección basada en segmentos
• Base: Dirección base del segmento• Dirección lógica: Compensación dentro del segmento• Borde: Límite del segmento• SDT: Almacena la información de acceso y otra sobre el segmento
Selector de segmento Dirección lógica
Base
Tabla descriptora de segmentos (SDT)
Dirección física
Borde
>?
Falla de acceso (Excepción)
+
Paging (Paginación)
• El área de la Memoria Lógica puede ser mayor que la Memoria Física
• Se ubica parte de la Memoria Lógica en Memoria Secundaria
• Se divide la memoria física en partes iguales (Chunks)• Un chunk de la Memoria Virtual (Lógica) se puede
asignar a cualquier (un) chunk de la Memoria Física (“página”)
• Una página ocupa típicamente 4 u 8 KB• Un comportamiento totalmente asociativo generaría
búsquedas muy lentas. • Por esto, se utilizan tablas de páginas
Memoria paginada
Traducción El hardware convierte las direcciones virtuales en direcciones físicas a través de una tabla de búsquedas operada por el sistema operativo (Tabla de páginas)
CPU
Tabla de páginasMemoria
Almacenamiento adicional
01
N-1
01
P-1
Direcciones virtuales
Direcciones físicas
Fallo de página
• El CPU genera una dirección virtual que la tabla de páginas indica que no está en memoria
• Se invoca al manejador de excepciones del S.O. para que mueva la data de disco (o memoria secundaria) a memoria– Se suspende el proceso actual– El S.O. controla el traslado y ubicación de la
información
• Espacio swap: Espacio en disco reservado para el espacio de memoria virtual completo de un proceso.
Manejo de múltiples procesos
• Cada proceso tiene su propio espacio de direcciones virtuales– El S.O. controla cómo se asignan las páginas
virtuales a la memoria física– Una tabla de páginas para cada proceso– Cada programa puede comenzar en la misma
dirección (Dirección virtual)
• Un proceso no debe accesar páginas no asignadas a este
Traducción de la dirección de página
Base de página i
Página virtual Compensación
Concatenar
Página física Compensación
Tabla de páginas
Operaciones de la tabla de páginas
• Traducción
• Cálculo de la dirección física (Bit de validez: 0, 1)
• Protección:– Read-only, read-write, execute– Soporta múltiples modos de operación
Integración de la MV a la Cache
• La mayoría de las caches:– Son accedidas a través de la dirección física– Permite que múltiples procesos tengan bloques en la cache al
mismo tiempo– La cache no requiere preocuparse de problema de protección:
Ya que los derechos de acceso son chequeados como parte de la traducción de la dirección
CPU CacheMemoriaPrincipalTraducción
DV DF
datos
hit
miss
Memoria Virtual y Cache
• Realizar la traducción de la dirección antes de la búsqueda en la Cache– Pero esto podría incluir un acceso a memoria
• Solución: Las entradas a la tabla de páginas también pueden estar en Cache
Translation Lookaside Buffer (TLB)
• Pequeña cache en la MMU• Guarda las direcciones usadas recientemente para evitar
el acceso a la tabla de páginas.• Mapea números de páginas virtuales a números de
páginas físicas• Contiene entradas de las tablas de páginas para una
cantidad pequeña de página• Valores típicos:
– Tamaño: 16 – 512 entradas– Tamaño del bloque: 1 a 2 entradas (de 4 a 8 bytes c/u)– Tiempo de Hit: 0,5 a 1 ciclo de reloj– Miss rate: 0,01% a 1%– Miss penalty: De 10 a 100 ciclos de relog
Traducción con el TLB
CPUBúsqueda TLB Cache
MemoriaPrincipal
Traducción
DV hit DV
datos
hitmiss
miss
CacheL2
(SRAM)
Jerarquía de memorias típica
Control
Datapath
MemoriaSecundaria
(Disco)
Componentes On-Chip
RegF
ile
MemoriaPrincipal(DRAM)
Data
Cache
InstrC
ache
ITLB
DT
LB
eDRAM
Velo. (%Ciclos): ½’s 1’s 10’s 100’s 1,000’s
Tamaño (bytes): 100’s K’s 10K’s M’s G’s a T’s
Costo: Mayor Menor