Isi374 arquitectura de computadores clase 22 jerarqu a de memoria pt 4
This presentation is the property of its rightful owner.
Sponsored Links
1 / 21

ISI374 – Arquitectura de Computadores Clase 22: Jerarquía de memoria Pt.4 PowerPoint PPT Presentation


  • 65 Views
  • Uploaded on
  • Presentation posted in: General

ISI374 – Arquitectura de Computadores Clase 22: Jerarquía de memoria Pt.4. Departamento de Ingeniería de Sistemas Universidad de Antioquia 2010-1. Resumen. Memoria virtual. Memoria virtual. Contextualización

Download Presentation

ISI374 – Arquitectura de Computadores Clase 22: Jerarquía de memoria Pt.4

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Isi374 arquitectura de computadores clase 22 jerarqu a de memoria pt 4

ISI374 – Arquitectura de ComputadoresClase 22: Jerarquía de memoria Pt.4

Departamento de Ingeniería de Sistemas

Universidad de Antioquia

2010-1


Resumen

Resumen

  • Memoria virtual


Memoria virtual

Memoria virtual

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


Memoria virtual1

Memoria virtual

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

  • Physicaladdress

    • Dirección para acceder a memoria principal

  • Addresstranslation (Addressmapping)

    • 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


Modelo de memoria virtual

Modelo de memoria virtual

  • 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


Modelo de memoria virtual1

Modelo de memoria virtual

Memory Management Unit

(MMU)

Virtual page

Physical page

(Page frame)


Traducci n de direcci n virtual a direcci n f sica

Traducción de dirección virtual a dirección física

  • 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


Fallo de p gina page fault

Fallo de página (Page fault)

  • 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


Tabla de p gina

Tabla de página

  • 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áginay 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


Tabla de p gina1

Tabla de página

  • 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 tableregister

  • 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)


Traducci n empleando la tabla de p gina

Traducción empleando la tabla de página


Mapeo de p ginas a disco

Mapeo de páginas a disco

  • 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


Esquema de reemplazo

Esquema de reemplazo

  • 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-recentlyused (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


Tratamiento de las escrituras

Tratamiento de las escrituras

  • 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


Traducci n r pida empleando tlb

Traducción rápida empleando TLB

  • 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%


Traducci n r pida empleando tlb1

Traducción rápida empleando TLB


Fallos en tlb

Fallos en TLB

  • 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


Interacci n cache tlb

Interacción cache/TLB

  • IntrinsityFastMATH

Cache direccionada físicamente:

Índice y etiquetas tomados de la dirección física


Interacci n cache tlb1

Interacción cache/TLB

  • Diagrama de flujo del proceso de paginación virtual


Protecci n de memoria

Protección de memoria

  • 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 (kernelmode)

    • 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)


Lecturas recomendadas

Lecturas recomendadas

  • Computer organization and architecture. Designing for performance, 6th ed., Chapter 4. W. Stallings. Pearson Education

  • Computerorganization and design. The hardware/software interface, 3rd ed., Chapter 7. D. Patterson and J. Hennessy. Morgan KaufmannPublishers

  • The essentials of computer organization and architecture, Chapter 6. L. Null and J. Lobur. Jones and Batlett Publishers

  • Hardware and computerorganization. The software perspective, Chapter 14. A. Berger. Elsevier

  • Virtual memorysimulator. I. Koren. Dept. of ECS. University of Massachusetts (Armherst)

    http://www.ecs.umass.edu/ece/koren/architecture/Vmemory/try.html


  • Login