SIJEM Simulador didáctico de jerarquías de memoria Fernando Alesanco Pérez.

36
SIJEM Simulador didáctico de jerarquías de memoria Fernando Alesanco Pérez

Transcript of SIJEM Simulador didáctico de jerarquías de memoria Fernando Alesanco Pérez.

Page 1: SIJEM Simulador didáctico de jerarquías de memoria Fernando Alesanco Pérez.

SIJEM

Simulador didáctico de jerarquías de memoria

Fernando Alesanco Pérez

Page 2: SIJEM Simulador didáctico de jerarquías de memoria Fernando Alesanco Pérez.

¿Qué es SIJEM?

SIJEM es un simulador de jerarquías de memoria. Ilustra los siguientes conceptos:

Direcciones virtuales y direcciones reales. Paginación

– Mecanismos de traducción de direcciones.– Uso de TLBs.– Estrategias de búsqueda, colocación y reemplazamiento.

Jerarquías de memoria– Memoria secundaria y principal– Memoria caché multinivel– Estrategias de colocación, reemplazamiento y coherencia.

Page 3: SIJEM Simulador didáctico de jerarquías de memoria Fernando Alesanco Pérez.

Objetivos

Su objetivo es servir de apoyo al aprendizaje de los conceptos de memoria virtual y jerarquías de memoria, fundamentales en materias como Sistemas Operativos y Arquitectura de Computadores.

Page 4: SIJEM Simulador didáctico de jerarquías de memoria Fernando Alesanco Pérez.

2. Conceptos teóricos

A continuación vamos a repasar algunos conceptos básicos.

Page 5: SIJEM Simulador didáctico de jerarquías de memoria Fernando Alesanco Pérez.

Memoria virtual

El término memoria virtual se refiere a la capacidad de direccionar un espacio de almacenamiento mucho mayor que el disponible en la memoria principal de un determinado sistema.

De esta manera es posible ejecutar uno o varios programas cuyo tamaño sea mayor que el de la memoria principal.

Page 6: SIJEM Simulador didáctico de jerarquías de memoria Fernando Alesanco Pérez.

Direcciones virtuales y reales

La clave de un sistema de memoria virtual está en discernir entre las direcciones virtuales y las direcciones reales.

– Direcciones virtuales: Son generadas por el proceso en ejecución.

– Direcciones reales: Son las disponibles en memoria principal.

El sistema de memoria virtual debe encargarse de traducir las direcciones virtuales a direcciones reales mientras el proceso está en ejecución.

Page 7: SIJEM Simulador didáctico de jerarquías de memoria Fernando Alesanco Pérez.

Paginación

Transformación en bloques– La información (datos e instrucciones) se agrupa en

bloques que contienen elementos de información de los cuales el sistema conoce exactamente donde han sido colocados en el almacenamiento real.

– El tamaño de estos bloques determina la técnica utilizada: Paginación: bloques de tamaño fijo (Páginas). Segmentación: bloques de tamaño variable (Segmentos).

SIJEM únicamente implementa la paginación.

Page 8: SIJEM Simulador didáctico de jerarquías de memoria Fernando Alesanco Pérez.

Mecanismos de traducción

SIJEM implementa tres tipos de mecanismos de traducción de direcciones:

– Transformación directa La tabla de páginas contiene una entrada para cada una de

las páginas de la memoria virtual de este proceso.– Transformación asociativa-directa con TLB conjunta

Añade un pequeño almacenamiento asociativo capaz de mantener un pequeño porcentaje de la tabla de páginas (TLB).

– Transformación asociativa-directa con TLB dividida Divide la TLB en dos: instrucciones y datos para aprovechar el

principio de localidad.

Page 9: SIJEM Simulador didáctico de jerarquías de memoria Fernando Alesanco Pérez.

Jerarquías de memoria

Para decidir que páginas deben estar en memoria principal y cuáles en memoria secundaria se utilizan un conjunto de estrategias:

– Estrategias de búsqueda Tratan los casos en que una página debe ser traída desde

memoria secundaria a memoria principal.– Estrategias de colocación

Tratan del lugar dentro de memoria principal donde se colocará una nueva página.

– Estrategias de reemplazamiento Deciden que página se debe trasladar desde el memoria

principal a memoria secundaria cuando la memoria principal está llena.

Page 10: SIJEM Simulador didáctico de jerarquías de memoria Fernando Alesanco Pérez.

Estrategias (I)

Estrategias de búsqueda– Paginación por demanda

Las páginas son traídas desde memoria secundaria hasta memoria principal cuando son referidas por el proceso en ejecución.

– Paginación anticipada El sistema predice que páginas deben ser traídas desde el almacenamiento

secundario al primario, sin que éstas tengan que ser referenciadas explícitamente por el proceso (por ej: la página siguiente).

Estrategias de colocación– First FIT

Se van colocando las páginas consecutivamente desde la posición de memoria más baja.

Estrategias de reemplazamiento– FIFO (First In-First Out):

Se reemplaza aquella página que ha estado durante más tiempo en memoria.

Page 11: SIJEM Simulador didáctico de jerarquías de memoria Fernando Alesanco Pérez.

Memoria caché (I)

La memoria principal es un recurso de acceso bastante lento, así que para paliar esta espera se utiliza una memoria de acceso muy rápido que se intercala entre el procesador y la memoria principal, la memoria caché.

Su función es almacenar la información usada en el pasado, pues es muy posible que se necesite usarla en un futuro próximo.

Page 12: SIJEM Simulador didáctico de jerarquías de memoria Fernando Alesanco Pérez.

Memoria caché (II)

A la hora de decidir que páginas entrarán en memoria caché se plantean el siguiente conjunto de estrategias:

– Estrategias de colocación: Tratan la posición donde debe ser colocada la página dentro

de la memoria caché.– Estrategias de reemplazamiento:

Deciden que página se debe reemplazar cuando la posición de memoria caché es solicitada por una nueva página.

– Estrategias de coherencia: Tratan la coherencia entre los datos que han sido modificados

cuando la página se encontraba en caché y los datos contenidos en la memoria principal.

Page 13: SIJEM Simulador didáctico de jerarquías de memoria Fernando Alesanco Pérez.

Memoria caché: Estrategias (I)

Estrategias de colocación– Mapeado directo

Cada bloque de memoria principal tiene un sólo lugar donde ser colocado en memoria caché según la fórmula

– (Bloque de memoria principal) MOD (Número de bloques en caché) – Memoria completamente asociativa

Un bloque de memoria principal puede ser colocado en cualquier lugar de la memoria caché.

– Memoria asociativa por conjuntos A un bloque de memoria principal le corresponde un conjunto de

bloques en memoria caché, de manera que puede ser colocado en cualquier bloque dentro del conjunto.

– (Bloque de memoria principal) MOD (Número de conjuntos en caché) Si un conjunto tiene n bloques se denomina Memoria Asociativa por

Conjuntos de N-Vias.

Page 14: SIJEM Simulador didáctico de jerarquías de memoria Fernando Alesanco Pérez.

Memoria caché: Estrategias (II)

Estrategias de reemplazamiento– Azar: Se reemplaza una página seleccionada al azar. – FIFO (First In-First Out): Se reemplaza aquella página que ha

estado durante más tiempo en memoria. – LRU (Least Recently Used): Se reemplaza aquella página que

lleva más tiempo en memoria sin ser usada.– Clock: Se reemplaza aquella página que ha estado durante más

tiempo en memoria. – LFU (Least Frecuently Used): Se reemplaza aquella página de

memoria que haya sido usada el menor número de veces.– NUR (Not Used Recently): Se reemplaza aquella página de

memoria que no haya sido usada recientemente, usando dos factores: referencia y modificación.

Page 15: SIJEM Simulador didáctico de jerarquías de memoria Fernando Alesanco Pérez.

Memoria caché: Estrategias (III)

Estrategias de coherencia:– Write-Through (Escritura Directa): Una escritura

actualiza tanto la copia en memoria principal como la copia en caché.

– Write-Back (Escritura retardada): Sólo se actualiza la copia en caché. La memoria principal será actualizada cuando el bloque (línea) sea reemplazado en caché.

Page 16: SIJEM Simulador didáctico de jerarquías de memoria Fernando Alesanco Pérez.

Memoria caché multinivel

SIJEM implementa hasta 3 niveles de caché:

– Nivel 1: Separada en datos e instrucciones.

– Nivel 2– Nivel 3

Page 17: SIJEM Simulador didáctico de jerarquías de memoria Fernando Alesanco Pérez.

3. Programa

A continuación vamos a mostrar las opciones que nos ofrece el programa.

Page 18: SIJEM Simulador didáctico de jerarquías de memoria Fernando Alesanco Pérez.

Interfaz de usuario

La interfaz de usuario es similar a la de cualquier programa Windows.

Todas las operaciones se realizan a través de un asistente que nos guía en el proceso de configurar y ejecutar la simulación.

En todo momento tenemos disponible un botón de ayuda.

Page 19: SIJEM Simulador didáctico de jerarquías de memoria Fernando Alesanco Pérez.

Asistente

La herramienta básica del programa es el asistente, que se compone de tres pasos:

– Configurar: Inicia el asistente de configuración para elegir todos los parámetros de la simulación.

– Cargar programa: Permite elegir el fichero de traza sobre el que realizaremos la simulación.

– Simular: Permite elegir el tipo de simulación que vamos a realizar.

Page 20: SIJEM Simulador didáctico de jerarquías de memoria Fernando Alesanco Pérez.

Asistente: Configurar

Se compone de una serie de ventanas a través de las cuales podremos configurar:

– Parámetros de memoria principal y secundaria.– Mecanismo de traducción de direcciones y

paginación.– Niveles 1, 2 y 3 de memoria caché.

Todos los parámetros pueden ser introducidos a mano o utilizando un fichero creado anteriormente.

Page 21: SIJEM Simulador didáctico de jerarquías de memoria Fernando Alesanco Pérez.

Asistente: Cargar programa

A través de esta ventana elegimos la traza del programa a simular.

Existen dos tipos de ficheros de traza:– Fichero de direcciones (extensión .trd)

Contiene las direcciones virtuales referenciadas por el programa.

– Fichero de páginas (extensión .trp) Contiene las páginas referenciadas por el programa.

Page 22: SIJEM Simulador didáctico de jerarquías de memoria Fernando Alesanco Pérez.

Asistente: Simular

A través de esta ventana elegimos el tipo de simulación que deseamos realizar.

Hay dos tipos:– Traducción de direcciones

Muestra el proceso de traducción de direcciones virtuales a direcciones reales según el método elegido durante la configuración.

– Búsqueda de páginas Muestra el proceso de búsqueda de páginas dentro de

la jerarquía de memoria.

Page 23: SIJEM Simulador didáctico de jerarquías de memoria Fernando Alesanco Pérez.

Traducción de direcciones

Están implementados 3 tipos de mecanismos de traducción de direcciones virtuales a direcciones reales:– Transformación directa– Transformación asociativa-directa con TLB

conjunta– Transformación asociativa-directa con TLB

dividida

Page 24: SIJEM Simulador didáctico de jerarquías de memoria Fernando Alesanco Pérez.

Transformación directa

Page 25: SIJEM Simulador didáctico de jerarquías de memoria Fernando Alesanco Pérez.

Transformación asociativa-directa

Page 26: SIJEM Simulador didáctico de jerarquías de memoria Fernando Alesanco Pérez.

Transformación asociativa directa con 2 TLB

Page 27: SIJEM Simulador didáctico de jerarquías de memoria Fernando Alesanco Pérez.

Búsqueda de direcciones

Simula la búsqueda de una dirección generada por la CPU en la jerarquía de memoria

En esta ventana se muestran:– Dirección generada por la CPU– Memoria principal– Diferentes niveles de caché

Page 28: SIJEM Simulador didáctico de jerarquías de memoria Fernando Alesanco Pérez.

Estructura de la Jerarquía de memoria

Page 29: SIJEM Simulador didáctico de jerarquías de memoria Fernando Alesanco Pérez.

Búsqueda de páginas

Page 30: SIJEM Simulador didáctico de jerarquías de memoria Fernando Alesanco Pérez.

Ejercicios de ejemplo

A continuación vamos a pasar a realizar una serie de ejercicios de ejemplo para conocer el simulador.

Page 31: SIJEM Simulador didáctico de jerarquías de memoria Fernando Alesanco Pérez.

Ejem1.cfg Ejem2.cfg Ejem3.cfg

Tamaño total memoria secundaria 1024 Kbytes

Tiempo acceso memoria secundaria 10000 ciclos

Ancho bus memoria principal-memoria secundaria

20 bits

Tiempo acceso bus memoria principal-memoria secundaria

1500 ciclos

Tamaño total memoria principal 64 Kbytes

Tamaño página 4 Kbytes

Tiempo acceso memoria principal 1000 ciclos

Traducción de direccionesTransformación

directa

Transformación asociativa directa con

TLB conjunta

Transformación asociativa directa con

TLB dividida

Carga de páginas Por demanda

Coherencia Escritura directa

Tamaño bloque caché 0 bytes

Caché nivel 3 habilitada NO

Caché nivel 2 habilitada NO

Caché nivel 1 habilitada NO

Page 32: SIJEM Simulador didáctico de jerarquías de memoria Fernando Alesanco Pérez.

Ejem4.cfg Ejem5.cfg Ejem6.cfg Ejem7.cfg

Tamaño total memoria secundaria 4194304 Kbytes (4Gbytes)

Tiempo acceso memoria secundaria 10000 ciclos

Ancho bus memoria principal-memoria secundaria

32 bits

Tiempo acceso bus memoria principal-memoria secundaria

1500 ciclos

Tamaño total memoria principal 1024 Kbytes

Tamaño página 4 Kbytes

Tiempo acceso memoria principal 1000 ciclos

Traducción de direcciones Transformación directa

Carga de páginas Por demanda

Coherencia Escritura directa

Tamaño bloque caché 1024 bytes (1KB)

Caché nivel 3 (L3) habilitada SI

Organización de la caché L3 Mapeado directo Completamente asociativa

Política de reemplazamiento L3 No influye AZAR FIFO LRU

Tamaño de la caché L3 16 Kbytes

Tiempo de acceso a la caché L3 100 ciclos

Ancho bus caché L3 a nivel superior 20 bits

Tiempo acceso bus caché L3 a nivel superior 50 ciclos

Número de vias de la caché de nivel 3 No influye

Page 33: SIJEM Simulador didáctico de jerarquías de memoria Fernando Alesanco Pérez.

Caché nivel 2 (L2) habilitada SI

Organización de la caché L2 Mapeado directo Completamente asociativa

Política de reemplazamiento L2 No influye AZAR FIFO LRU

Tamaño de la caché L2 8 Kbytes

Tiempo de acceso a la caché L2 50 ciclos

Ancho bus caché L2 a nivel superior 14 bits

Tiempo acceso bus caché L2 a nivel superior 25 ciclos

Número de vias de la caché de nivel 2 No influye

Caché nivel 1 (L1) habilitada SI

Tipo de caché L1 Separada en datos e instrucciones

Organización de la caché L1 Mapeado directo Completamente asociativa

Política de reemplazamiento L1 No influye AZAR FIFO LRU

Tamaño de la caché L1 4 Kbytes de datos y 4 Kbytes de instrucciones

Tiempo de acceso a la caché L1 10 ciclos

Ancho bus caché L1 a nivel superior 13 bits

Tiempo acceso bus caché L1 a nivel superior 5 ciclos

Número de vías de la caché L1 No influye

Page 34: SIJEM Simulador didáctico de jerarquías de memoria Fernando Alesanco Pérez.

Ejem8.cfg Ejem9cfg Ejem10.cfg Ejem11.cfg

Tamaño total memoria secundaria 4194304 Kbytes (4Gbytes)

Tiempo acceso memoria secundaria 10000 ciclos

Ancho bus memoria principal-memoria secundaria

32 bits

Tiempo acceso bus memoria principal-memoria secundaria

1500 ciclos

Tamaño total memoria principal 1024 Kbytes

Tamaño página 4 Kbytes

Tiempo acceso memoria principal 1000 ciclos

Traducción de direcciones Transformación directa

Carga de páginas Por demanda

Coherencia Escritura directa

Tamaño bloque caché 1024 bytes (1KB)

Caché nivel 3 (L3) habilitada SI

Organización de la caché L3 Completamente asociativaAsociativa por cjtos

de 2 vías

Política de reemplazamiento L3 LFU NUR CLOCK AZAR

Tamaño de la caché L3 16 Kbytes

Tiempo de acceso a la caché L3 100 ciclos

Ancho bus caché L3 a nivel superior 20 bits

Tiempo acceso bus caché L3 a nivel superior 50 ciclos

Page 35: SIJEM Simulador didáctico de jerarquías de memoria Fernando Alesanco Pérez.

Caché nivel 2 (L2) habilitada SI

Organización de la caché L2 Completamente asociativaAsociativa por

cjtos de 2 vías

Política de reemplazamiento L2 LFU NUR CLOCK AZAR

Tamaño de la caché L2 8 Kbytes

Tiempo de acceso a la caché L2 50 ciclos

Ancho bus caché L2 a nivel superior 14 bits

Tiempo acceso bus caché L2 a nivel superior 25 ciclos

Número de vias de la caché de nivel 2 No influye

Caché nivel 1 (L1) habilitada SI

Tipo de caché L1 Separada en datos e instrucciones

Organización de la caché L1 Completamente asociativaAsociativa por

cjtos de 2 vías

Política de reemplazamiento L1 LFU NUR CLOCK AZAR

Tamaño de la caché L1 4 Kbytes de datos y 4 Kbytes de instrucciones

Tiempo de acceso a la caché L1 10 ciclos

Ancho bus caché L1 a nivel superior 13 bits

Tiempo acceso bus caché L1 a nivel superior 5 ciclos

Número de vías de la caché L1 No influye

Page 36: SIJEM Simulador didáctico de jerarquías de memoria Fernando Alesanco Pérez.

Ficheros de traza

Proceden de trazas del benchmark SPEC2000

Descripción

Crafty Programa de ajedrez

Eon_cook Programa de ray tracing sobre una tetera

Facerec Programa de reconocimiento de caras

Gcc Compilador de C y C++

Mesa Librería de gráficos 3D

Vortex Base de datos