Story Transcript
Arquitectura de Computadores II Clase #7 Facultad de Ingeniería Universidad de la República
Instituto de Computación Curso 2009
Veremos
Memoria virtual Resumen de ideas para mejorar performance
1
Recordemos: Jerarquía de Memoria Nivel Superior Registros
Más rápido
Instr. Operandos Cache Bloques Memoria Páginas Disco Archivos Cinta
Más grande Nivel Inferior
Paginación
Memoria dividida en frames de igual tamaño Procesos divididos en bloques de igual tamaño: páginas Asignar la cantidad de páginas requeridas por cada proceso El Sistema Operativo mantienen una lista de las frames libres Un proceso no necesita un espacio contiguo de frames Se utiliza una tabla para “llevar la cuenta” de las páginas usadas
2
Memoria Virtual
Paginación a demanda No se requiere que todas las páginas de un proceso estén en memoria principal Se cargan bajo demanda
Fallo de Página Página requerida no está en memoria Sistema Operativo debe traer la página nueva (swap in) Puede ser necesario descartar una página para hacer lugar (swap out) Seleccionar página a descartar basándose en la historia reciente
Memoria virtual: beneficios
No se necesita tener memoria suficiente para todos los procesos en ejecución Se puede hacer swap de páginas a demanda Entonces…
Se pueden ejecutar procesos más grandes que la memoria física disponible!
Usuario/programador ve una memoria mucho más grande
Memoria virtual
3
Diseño de un Sistema de Memoria Virtual Tamaño de los bloques de información que son transferidos desde almacenamiento secundario hacia principal (M) Si M está lleno, si se trae un nuevo bloque se debe liberar un espacio
política de reemplazo
Que región de M debe alojar el nuevo bloque
Los ítems que faltan deben ser traídos de memoria secundaria solo si ocurre un fallo
Organización de Paginado
política de alojamiento
política de carga en demanda espacio de direcciones físico (frames) y virtual (páginas) particionado en bloques de igual tamaño
Mapa de Direcciones
V = {0, 1, . . . , n - 1} espacio virtual de direcciones n>m M = {0, 1, . . . , m - 1} espacio físico de direcciones Existe una función MAP ( V --> M ) que toma los valores: MAP(a) = a‘
si el dato apuntado por la dirección virtual a está presente en la dirección física a' tal que a' pertenece a M
MAP(a) = vacío si el dato apuntado por la dirección virtual a no está presente en M a fallo por falta de ítem Espacio V manejador del fallo Procesador
a
Mecanismo Traslación de Direcc.
0
Memoria Principal
Memoria Secundaria
a'
dirección física
Responsabilidad del Sistema Operativo
4
Ejemplo:
Direcciones lógicas y físicas
Frames o marcos: bloques de memoria física Páginas: bloques de memoria virtual, usualmente almacenados en disco. Se cargan a frames libres de memoria física Traducción de memoria virtual a física
Tabla de páginas
Thrashing
Demasiados procesos en poca memoria Sistema Operativo ocupado todo el tiempo en swap Poco “trabajo real” del sistema
El disco trabaja mucho!
Soluciones
Buenos algoritmos de reemplazo Reducir cantidad de procesos en ejecución Más memoria!
5
Estructura de la Tabla de Páginas (1/2)
Tabla de páginas
Tamaño variable, potencialmente muy grande (ej. 4GB en sistemas con 32 bits de direcciones)
Pero se debe limitar el uso de memoria principal para almacenar Tablas de Páginas….
Entonces...se necesitan esquemas de paginación en niveles
Traducción de dirección virtual a dirección física
No se puede alojar en la CPU -> en memoria!
…se almacenan en memoria virtual
Directorio y tablas de páginas Tabla invertida
Estructura de la Tabla de Páginas (2/2)
Invertida: se utiliza un hash para indizar en la tabla
Tabla de hash usa encadenamiento (chaining)
Recordar: n> m n bits
Ventaja: porción fija de memoria real para tablas
Una entrada para cada frame de memoria física m bits
6
Translation Lookaside Buffer Virtual Address Physical Address Dirty Ref Valid Access
Cada referencia a memoria virtual causa dos accesos a memoria física
Fetch entrada a tabla de páginas Fetch datos (o programa)
Para acelerar el acceso se utiliza un cache especial para la tabla de páginas
TLB Menor tiempo de acceso, menor tiempo de traslación
El uso de TLBs permite reducir el #ciclos/accesos al cache mediante la superposición del acceso al cache con el acceso al TLB
Operación del TLB y el Cache
Dirección virtual
Bits más significativos usados para buscar en el TLB Bits menos significativos índice del cache
Acceso superpuesto al TLB y el cache funciona solamente si los bits de direcciones usados como índice del cache no cambian como resultado de la traslación de DV
Caches pequeñas, tamaño de página grande, o caches altamente asociativos
7
Fallo de Página
Página no está residente en memoria El Hardware debe detectar la situación y enviar un trap al Sistema Operativo para intentar resolver la situación
elegir una página a descartar (posiblemente salvándola en disco) traer la página del disco actualizar la tabla de páginas retornar el control al programa para que el HW pueda reintentar con éxito!
Tamaño de Página Optimo?
Mimimizar pérdida de almacenamiento
páginas pequeñas minimizan fragmentación interna páginas pequeñas aumentan el tamaño de la Tabla de Páginas
Minimizar tiempo de transferencia
páginas grandes (múltiples sectores del disco) amortizan costo del acceso Riesgo • se puede transferir información innecesaria
La tendencia generalizada es tener páginas grandes porque:
se tiene mucha RAM barata crece la diferencia de performance memoria / disco espacios de direccionamiento más grandes
8
Por qué memoria virtual?
Generalidad
allocation/deallocation de bloques de tamaño variable es costoso y lleva a fragmentación
Protección
posibilidad de correr programas más grandes que el tamaño de la memoria física
Manejo del Almacenamiento
aplicar permisos diferenciados a regiones del espacio de direcciones (R/O, Ex, . . .)
Flexibilidad
porciones del programa pueden ubicarse en cualquier lado, sin relocalización
Por qué memoria virtual?
retener solo las porciones más importantes del programa en memoria
E/S Concurrente
(2/2)
Eficiencia del almacenamiento
(1/2)
ejecución de otros procesos mientras se carga/descarta una página
Performance
Impacto en multiprogramación, impacto en lenguajes de alto nivel
9
Jerarquía de memoria: Resumen (1/2)
Principio de Localidad:
Los programas acceden una porción relativamente pequeña del espacio de direcciones en un instante dado. • Temporal • Espacial
Categorías fundamentales de Cache Misses:
Compulsivos por Conflicto: incrementar tamaño o asociatividad del cache por Capacidad: incrementar tamaño del cache de Coherencia: procesadores externos o dispositivos de E/S
Diseño del Cache
tamaño total, tamaño del bloque, asociatividad política de reemplazo política de escritura en hits (write-through, write-back)
Jerarquía de memoria: Resumen (2/2)
Caches, TLBs, Memoria Virtual se pueden estudiar examinando las respuestas a:
Donde se puede guardar el bloque? Cómo encontrar un bloque? Qué bloque se reemplaza en un miss? Cómo se manejan las escrituras?
Tablas de páginas mapean direcciones virtuales a físicas
TLBs son importantes para acelerar la traslación Misses del TLB son significativos en la performance del procesador!
La MV permite que muchos procesos puedan compartir la memoria sin tener que hacer “swap” al disco
El tiempo de CPU es una función de (ops, cache misses) vs. solamente f(ops)
Protección de MV es tan importante como la jerarquía de memoria!
Cómo se debe reflejar en los Compiladores, estructura de Datos, Algoritmos?
10
Una idea fija:
mejorar la performance
(1/2)
Algunas ideas que ya revisamos
Incrementar la frecuencia del reloj • Pero…los tiempos de acceso a memoria y E/S pueden ser un cuello de botella…
Ancho de los registros Ancho del bus de datos
Ancho del bus de direcciones
• Mayor tasa de transferencia • NO mejora la velocidad de acceso pero se puede direccionar más memoria directamente… • Programas mas grandes • Menos uso de la memoria virtual. OK!
Pipelining • Branch prediction • Delayed branch
Jerarquía de Memoria • L1 & L2 cache • Memoria virtual
Una idea fija:
mejorar la performance
(2/2)
Ideas de mejora
Hardware • Más, mejor, más rápido… • Compatibilidad…
Organización • Mejores ideas • Sencillez • No compatibilidad…
CISC vs. RISC
Muy diferentes filosofías Pero… La mayoría de los procesadores de hoy en día tienen características de ambos Ej. PowerPC y Pentium II o superior
11
Próxima clase
Próxima clase: arquitectura SPARC
12