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

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

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

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

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

Departamento de Ingeniería de SistemasUniversidad de Antioquia

2010-1

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

ISI3

74 -

Arqu

itect

ura

de C

ompu

tado

res

(201

0-1)

2

Resumen

Memoria virtual

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

ISI3

74 -

Arqu

itect

ura

de C

ompu

tado

res

(201

0-1)

Memoria virtual3

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

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

ISI3

74 -

Arqu

itect

ura

de C

ompu

tado

res

(201

0-1)

Memoria virtual4

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

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

ISI3

74 -

Arqu

itect

ura

de C

ompu

tado

res

(201

0-1)

Modelo de memoria virtual5

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

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

ISI3

74 -

Arqu

itect

ura

de C

ompu

tado

res

(201

0-1)

Modelo de memoria virtual6

Memory Management Unit(MMU)

Physical page(Page frame)

Virtual page

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

ISI3

74 -

Arqu

itect

ura

de C

ompu

tado

res

(201

0-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

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

ISI3

74 -

Arqu

itect

ura

de C

ompu

tado

res

(201

0-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

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

ISI3

74 -

Arqu

itect

ura

de C

ompu

tado

res

(201

0-1)

Tabla de página9

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

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

ISI3

74 -

Arqu

itect

ura

de C

ompu

tado

res

(201

0-1)

Tabla de página10

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

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

ISI3

74 -

Arqu

itect

ura

de C

ompu

tado

res

(201

0-1)

Traducción empleando la tabla de página11

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

ISI3

74 -

Arqu

itect

ura

de C

ompu

tado

res

(201

0-1)

Mapeo de páginas a disco12

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

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

ISI3

74 -

Arqu

itect

ura

de C

ompu

tado

res

(201

0-1)

Esquema de reemplazo13

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

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

ISI3

74 -

Arqu

itect

ura

de C

ompu

tado

res

(201

0-1)

Tratamiento de las escrituras14

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

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

ISI3

74 -

Arqu

itect

ura

de C

ompu

tado

res

(201

0-1)

Traducción rápida empleando TLB15

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%

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

ISI3

74 -

Arqu

itect

ura

de C

ompu

tado

res

(201

0-1)

Traducción rápida empleando TLB16

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

ISI3

74 -

Arqu

itect

ura

de C

ompu

tado

res

(201

0-1)

Fallos en TLB17

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

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

ISI3

74 -

Arqu

itect

ura

de C

ompu

tado

res

(201

0-1)

Interacción cache/TLB18

Intrinsity FastMATH

Cache direccionada físicamente:Índice y etiquetas tomados de la dirección física

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

ISI3

74 -

Arqu

itect

ura

de C

ompu

tado

res

(201

0-1)

Interacción cache/TLB19

Diagrama de flujo del proceso de paginación virtual

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

ISI3

74 -

Arqu

itect

ura

de C

ompu

tado

res

(201

0-1)

Protección de memoria20

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)

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

ISI3

74 -

Arqu

itect

ura

de C

ompu

tado

res

(201

0-1)

Lecturas recomendadas21

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)http://www.ecs.umass.edu/ece/koren/architecture/Vmemory/try.html