La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Simulador didáctico de jerarquías de memoria

Presentaciones similares


Presentación del tema: "Simulador didáctico de jerarquías de memoria"— Transcripción de la presentación:

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

2 ¿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.

3 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.

4 2. Conceptos teóricos A continuación vamos a repasar algunos conceptos básicos.

5 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.

6 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.

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

8 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.

9 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.

10 Estrategias (I) Estrategias de búsqueda Estrategias de colocación
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.

11 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.

12 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.

13 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.

14 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.

15 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é.

16 Memoria caché multinivel
SIJEM implementa hasta 3 niveles de caché: Nivel 1: Separada en datos e instrucciones. Nivel 2 Nivel 3

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

18 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.

19 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.

20 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.

21 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.

22 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.

23 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

24 Transformación directa

25 Transformación asociativa-directa

26 Transformación asociativa directa con 2 TLB

27 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é

28 Estructura de la Jerarquía de memoria

29 Búsqueda de páginas

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

31 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 direcciones Transformació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 Caché nivel 1 habilitada

32 Ejem4.cfg Ejem5.cfg Ejem6.cfg Ejem7.cfg
Tamaño total memoria secundaria 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

33 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 Caché nivel 1 (L1) habilitada Tipo de caché L1 Separada en datos e instrucciones Organización de la caché L1 Política de reemplazamiento L1 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

34 Ejem8.cfg Ejem9cfg Ejem10.cfg Ejem11.cfg
Tamaño total memoria secundaria 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 asociativa Asociativa 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

35 Caché nivel 2 (L2) habilitada SI Organización de la caché L2
Completamente asociativa Asociativa 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 Tipo de caché L1 Separada en datos e instrucciones Organización de la caché L1 Política de reemplazamiento L1 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

36 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


Descargar ppt "Simulador didáctico de jerarquías de memoria"

Presentaciones similares


Anuncios Google