La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

ISI374 – Arquitectura de Computadores Clase 22: Jerarquía de memoria Pt.4 Departamento de Ingeniería de Sistemas Universidad de Antioquia 2010-1.

Presentaciones similares


Presentación del tema: "ISI374 – Arquitectura de Computadores Clase 22: Jerarquía de memoria Pt.4 Departamento de Ingeniería de Sistemas Universidad de Antioquia 2010-1."— Transcripción de la presentación:

1 ISI374 – Arquitectura de Computadores Clase 22: Jerarquía de memoria Pt.4 Departamento de Ingeniería de Sistemas Universidad de Antioquia

2 ISI374 - Arquitectura de Computadores (2010-1) 2 Resumen Memoria virtual

3 ISI374 - Arquitectura de Computadores (2010-1) Memoria virtual 3 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

4 ISI374 - Arquitectura de Computadores (2010-1) Memoria virtual 4 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

5 ISI374 - Arquitectura de Computadores (2010-1) Modelo de memoria virtual 5 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

6 ISI374 - Arquitectura de Computadores (2010-1) Modelo de memoria virtual 6 Memory Management Unit (MMU) Physical page (Page frame) Virtual page

7 ISI374 - Arquitectura de Computadores (2010-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

8 ISI374 - Arquitectura de Computadores (2010-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

9 ISI374 - Arquitectura de Computadores (2010-1) Tabla de página 9 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

10 ISI374 - Arquitectura de Computadores (2010-1) Tabla de página 10 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 tabla Page 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)

11 ISI374 - Arquitectura de Computadores (2010-1) Traducción empleando la tabla de página 11

12 ISI374 - Arquitectura de Computadores (2010-1) Mapeo de páginas a disco 12 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

13 ISI374 - Arquitectura de Computadores (2010-1) Esquema de reemplazo 13 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

14 ISI374 - Arquitectura de Computadores (2010-1) Tratamiento de las escrituras 14 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

15 ISI374 - Arquitectura de Computadores (2010-1) Traducción rápida empleando TLB 15 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%

16 ISI374 - Arquitectura de Computadores (2010-1) Traducción rápida empleando TLB 16

17 ISI374 - Arquitectura de Computadores (2010-1) Fallos en TLB 17 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

18 ISI374 - Arquitectura de Computadores (2010-1) Interacción cache/TLB 18 Intrinsity FastMATH Cache direccionada físicamente: Índice y etiquetas tomados de la dirección física

19 ISI374 - Arquitectura de Computadores (2010-1) Interacción cache/TLB 19 Diagrama de flujo del proceso de paginación virtual

20 ISI374 - Arquitectura de Computadores (2010-1) Protección de memoria 20 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)

21 ISI374 - Arquitectura de Computadores (2010-1) Lecturas recomendadas 21 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)


Descargar ppt "ISI374 – Arquitectura de Computadores Clase 22: Jerarquía de memoria Pt.4 Departamento de Ingeniería de Sistemas Universidad de Antioquia 2010-1."

Presentaciones similares


Anuncios Google