isi374 arquitectura de computadores clase 22 jerarqu a de memoria pt 4
Download
Skip this Video
Download Presentation
ISI374 – Arquitectura de Computadores Clase 22: Jerarquía de memoria Pt.4

Loading in 2 Seconds...

play fullscreen
1 / 21

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


  • 101 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' ISI374 – Arquitectura de Computadores Clase 22: Jerarquía de memoria Pt.4' - garrison-camacho


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

ad