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