SMPCache

SMPCache

Simulador de Sistemas de Memoria Caché en Multiprocesadores Simétricos


Computer Organization & Architecture
SMPCache ha sido elegido por William Stallings como herramienta de simulación para la realización de proyectos de estudiante en el libro "Computer Organization & Architecture", 6ª edición, 2003, Prentice-Hall.
Ver la sección Documentación para más detalles.

Nuevo SMPCache 2.0 !!!        

English English Version


Indice

Descripción general.
Características principales.
Obtenerlo gratis.
Versiones del simulador.
Imágenes.
Trazas de memoria.
Creando sus propios ficheros de traza de memoria.
Documentación.
Utilidades para SMPCache.
Universidades y Centros de Investigación usando SMPCache.
Proyectos de Estudiante de otras Universidades usando SMPCache.
Artículos de Investigación de otras Universidades usando SMPCache.
Autores.

Descripción general

SMPCache es un simulador mediante trazas para el análisis y la docencia de sistemas de memoria caché en multiprocesadores simétricos. La simulación se apoya en un modelo construido de acuerdo con los principios básicos arquitectónicos de estos sistemas. El simulador posee una interfaz gráfica completa y amigable, y opera en sistemas PC con Windows. Las experiencias docentes, durante los últimos años (desde 1998),  nos han demostrado los beneficios del simulador con fines didácticos. Por un lado, los estudiantes lo han utilizado para experimentar los diferentes aspectos teóricos sobre memorias cachés y multiprocesadores en los cursos oficiales de Arquitectura de Computadores. Algunos de los parámetros que pueden estudiar con el simulador son: Localidad de los programas; influencia del número de procesadores, de los protocolos de coherencia caché, de los esquemas para arbitración del bus, de la función de correspondencia, de las políticas de reemplazo, del tamaño de caché (bloques en caché), del número de conjuntos en caché (para cachés asociativas por conjuntos), del número de palabras por bloque (tamaño del bloque de memoria), del ancho de palabra,... Por otro lado, los estudiantes pueden construir una versión reducida del simulador. Para ello, se les da un conjunto de enunciados. Estos enunciados explican, paso a paso, todas las operaciones y algoritmos que los alumnos deben utilizar para construir un simulador similar a SMPCache. Además, los alumnos pueden usar SMPCache como referencia para testear sus propios simuladores. La construcción del simulador obliga a los estudiantes a conocer en profundidad las consideraciones teóricas sobre sistemas de memoria caché, y particularmente dentro de entornos multiprocesador (coherencia caché, protocolos de coherencia caché,...). De esta forma, hemos observado que los alumnos adquieren un conocimiento mejor y más amplio sobre estos aspectos. En conclusión, la utilización del simulador es una innovación en las clases prácticas que produce una mejora en la calidad de la educación.

Inicialmente, el simulador fue concebido como una herramienta orientada a la docencia de memorias cachés. Sin embargo, el potencial del sistema desarrollado ha probado su utilidad en el análisis de programas y estrategias de diseño de sistemas de memoria en multiprocesadores. Las características anteriores permiten que el simulador sea usado para comprender el diseño de organizaciones que ejecutan de forma óptima un determinado tipo de programas paralelos o  para mejorar el modo de operación de una arquitectura paralela concreta.
Inicio

Características principales

El simulador ofrece las posibilidades de configuración resumidas en la tabla siguiente.
 
Procesadores en el SMP 1, 2, 3, 4, 5, 6, 7 u 8
Protocolos de coherencia caché MSI, MESI (Illinois) o Dragon
Algoritmos de arbitración del bus Aleatorio, LRU o LFU
Anchos de palabra (en bits) 8, 16, 32 ó 64
Palabras en un bloque 1, 2, 4, 8, 16, 32, 64, 128, 256, 512 ó 1024
Bloques en memoria principal 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536, 131072, 262144, 524288, 1048576, 2097152 ó 4194304
Bloques en caché 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024 ó 2048
Funciones de correspondencia Directa, asociativa por conjuntos o totalmente asociativa
Conjuntos de caché (para asociativa por conjuntos) 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024 ó 2048
Algoritmos de reemplazo Aleatorio, LRU, FIFO o LFU
Políticas de escritura Post-escritura (por protocolos de coherencia utilizados)
Niveles de caché 1
Referencias A palabras de memoria
Tamaño de bloque máximo 8 Kb
Tamaño de memoria principal máximo 32 Gb
Tamaño de caché máximo (sin etiquetas, bits de estado, campos de cómputo,...) 16 Mb
Las distintas selecciones que se hacen en el simulador para configurar una organización determinada pueden guardarse en ficheros ASCII de datos para una futura carga, evitando así la realización de numerosas selecciones para configurar la misma arquitectura. Más aún, es posible establecer una configuración inicial por defecto para el simulador.

SMPCache presenta, mediante datos estadísticos y todo tipo de gráficas, medidas de interés como:

  • Número de transacciones en el bus (dependen del protocolo de coherencia caché).
  • Número de transferencias de bloques a través del bus.
  • Tráfico en el bus teniendo en cuenta las dos medidas anteriores.
  • Número de transiciones de estado (cada bloque en caché tiene un estado asociado).
  • Número de transiciones de estado según el estado origen y el destino.
  • Accesos a memoria realizados, desglosándolos en: captura de instrucción, lectura de dato o escritura de dato.
  • Número de aciertos y fallos de caché, así como frecuencia de aciertos y fallos.
  • Todos estos datos se muestran a muy distintos niveles de visión, aunque siempre teniendo en cuenta la interrelación de todos los elementos del sistema. Podemos, por tanto, realizar una simulación:
  • Observando el sistema multiprocesador completo y todos los bloques de memoria.
  • Observando una caché en particular y todos los bloques de memoria.
  • Observando el sistema multiprocesador completo, pero sólo un bloque de memoria en particular.
  • Observando una caché en particular y un bloque de memoria concreto.
  • Exiten tres tipos de simulación del sistema de memoria, admitiéndose el cambio de un tipo de simulación a otro en mitad de la misma:
  • Paso a paso. Permite simular el sistema de memoria jerárquico paso a paso, es decir, según se va produciendo cada acceso a memoria.
  • Con punto de interrupción. Permite simular la evolución del sistema de memoria sin interrupciones hasta llegar a un número concreto de accesos a memoria.
  • Ejecución completa. Permite simular el sistema de memoria jerárquico mediante una ejecución completa de todas las trazas de memoria cargadas en los procesadores existentes.
  • También existe la posibilidad de abortar la simulación en cualquier instante, con el objeto de corregir algún detalle de la organización.
    Inicio

    Instrucciones para obtenerlo gratis

    El simulador está disponible de forma gratuita, con fines docentes y de investigación, para universidades y centros de investigación. Sin embargo, es necesario registrarse. De esta forma, se garantiza al usuario registrado el derecho a usar el simulador SMPCache con fines docentes y de investigación, prohibiendo cualquier comercialización o transacción no autorizada. Además, con esta registración el usuario será avisado cuando aparezcan nuevas versiones actualizadas.

    Para obtener SMPCache los pasos a seguir son:

  • Obtener la licencia de SMPCache.
  • Rellenarla, firmarla y sellarla.
  • Enviar la licencia vía correo-e (mavega@unex.es, versión escaneada de la licencia rellena) o correo postal (por favor, ver la dirección en la propia licencia).
  • En pocos días recibirá un correo-e con la versión solicitada de SMPCache (consiste en un fichero ejecutable para Windows, los ficheros de ayuda asociados, y una colección de trazas de memoria).
  • Inicio

    Versiones del simulador

    En la actualidad están disponibles dos versiones del simulador:
  • Versión 1.0: Es la versión en Español del simulador.
  • Versión 2.0: Es la versión en Inglés del simulador. Nuevo!!!
  • Aunque ambas versiones son similares, la nueva versión (v 2.0) incluye algunas mejoras: mejoras en la interfaz gracias al uso de los nuevos avances en lenguajes visuales, corrección de algunos "bugs" encontrados en la primera versión, etc. La sección siguiente muestra algunas imágenes de ambas versiones.
    Inicio

    Imágenes

    Estas son algunas imágenes de SMPCache versión 1.0 (versión en Español): Estas son algunas imágenes de SMPCache versión 2.0 (versión en Inglés):

    Trazas de memoria

    Trazas uniprocesador

    Podríamos empezar estudiando los algoritmos y conceptos básicos que están presentes en todo sistema de memoria caché, uniprocesador o multiprocesador. Por tanto, podríamos configurar el simulador SMPCache con un único procesador, y utilizar trazas uniprocesador. Para este primer grupo de experimentos podríamos considerar trazas de algunos benchmarks del SPEC’92 (Hydro, Nasa7, Cexp, Mdljd, Ear, Comp, Wave, Swm y UComp), según tests reales efectuados sobre un sistema MIPS R2000. Estas trazas representan una amplia variedad de programas de aplicación “reales”, y provienen del Parallel Architecture Research Laboratory (PARL), New Mexico State University (NMSU), donde fueron proporcionadas por Nadeem Malik de IBM. Estas trazas, con el formato correcto para SMPCache, están incluidas en su copia del simulador. La tabla siguiente ofrece un resumen de los datos más importantes sobre las trazas.
     
     
    Nombre
    Clasificación
    Lenguaje
    Comentarios
    Hydro
    Coma flotante
    (precisión doble)
    Fortran
    Astrofísica: Usa las ecuaciones hidrodinámicas de Naiver Stokes para cálculos asociados con reactores galácticos
    Nasa7
    Coma flotante
    (precisión doble)
    Fortran
    Colección de 7 núcleos (kernels) con operaciones utilizadas frecuentemente en aplicaciones de la NASA, tales como transformadas de Fourier y manipulaciones de matrices. Para cada núcleo, el programa genera sus propios datos de entrada, computa el núcleo y compara el resultado con el resultado esperado
    Cexp
    Entero
    C
    Porción de un compilador C de Gnu que manifiesta un comportamiento fuertemente aleatorio
    Mdljd
    Coma flotante
    (precisión doble)
    Fortran
    Resuelve las ecuaciones de movimiento para un modelo de 500 átomos interactuando a través del potencial idealizado de Lennard-Jones. Se trata de un programa numérico que manifiesta un comportamiento mixto entre aleatorio y de bucle
    Ear
    Coma flotante
    (precisión simple)
    C
    Simula el oido humano: Realiza una conversión sobre un fichero de sonido usando FFTs (transformadas rápidas de Fourier) y otras funciones de la biblioteca matemática
    Comp
    Entero
    C
    Utiliza codificación Lempel-Ziv para compresión de datos. Comprime un fichero de 1 Mb en 20 veces su tamaño
    Wave
    Coma flotante
    (precisión simple)
    Fortran
    Resuelve las ecuaciones de Maxwell y las ecuaciones de movimiento en partículas electromagnéticas
    Swm
    Coma flotante
    (precisión simple)
    Fortran
    Resuelve un sistema de ecuaciones para el agua superficial utilizando aproximaciones de diferencias finitas en una matriz 256*256
    UComp
    Entero
    C
    Versión descompresora de Comp

     

    Trazas multiprocesador

    Después de analizar los algoritmos y conceptos básicos que están presentes en todo sistema de memoria caché (uniprocesador o multiprocesador), podríamos estudiar ciertos aspectos teóricos relacionados con sistemas multiprocesador (protocolos de coherencia caché, influencia del número de procesadores, etc.). En estos experimentos, por tanto, podríamos configurar el simulador SMPCache con más de un procesador, y utilizar trazas multiprocesador con decenas de millones de accesos a memoria (referencias) para cuatro benchmarks (FFT, Simple, Speech y Weather). Estas trazas fueron proporcionadas por David Chaiken (entonces del MIT) para el NMSU PARL. Estas trazas representan varias aplicaciones paralelas reales (las trazas FFT, Simple y Weather se generaron utilizando el esquema “post-mortem” implementado por Mathews Cherian y Kimming So en IBM). La tabla siguiente resume los datos principales de cada traza.
     
     
    Nombre
    Referencias
    Lenguaje
    Comentarios
    FFT
    7.451.717
    Fortran
    Aplicación paralela que simula la dinámica de fluidos utilizando la FFT
    Simple
    27.030.092
    Fortran
    Versión paralela de la aplicación SIMPLE
    Speech
    11.771.664
    ---
    Kirk Johnson y David Kranz (ambos del MIT) son los responsables de esta traza
    Weather
    31.764.036
    Fortran
    Versión paralela de la aplicación WEATHER, la cual se utiliza para el pronóstico del tiempo. La versión serie procede del NASA Space Flight Center, Greenbelt Md.

    Estas trazas, con el formato correcto para SMPCache, pueden ser descargadas desde la tabla siguiente. Por motivos de espacio, las trazas han sido comprimidas: primero con WinAce Archiver, y después con WinZip. Por tanto, usando WinZip, descomprima los ficheros en algún directorio, y obtendrá programas ".exe". Éstos son archivos SFX de WinAce, es decir, luego debería ejecutar estos programas ya que son archivos autodescomprimibles.


    Nombre de la traza
    Número de procesadores
    Ficheros
    FFT
    1
    FFT1.zip   (1.606 Kb)

    2
    FFT2.zip   (1.807 Kb)

    4
    FFT4.zip   (1.914 Kb)

    8
    FFT8.zip   (2.065 Kb)
    Simple
    1
    Simple1.zip   (10.457 Kb)

    2
    Simple2.zip   (8.042 Kb)

    4
    Simple4.zip   (7.682 Kb)

    8
    Simple8.zip   (8.020 Kb)
    Weather
    1
    Weather1.zip   (6.382 Kb)

    2
    Weather2.zip   (7.639 Kb)

    4
    Weather4.zip   (9.388 Kb)

    8
    Weather8.zip   (9.833 Kb)
    Speech
    8
    Speech8.zip   (6.722 Kb)
    Inicio

    Creando sus propios ficheros de traza de memoria

    Existen varias formas para crear sus propios ficheros de traza de memoria:
  • Los ficheros de traza de memoria para SMPCache son ficheros de datos ASCII (con la extensión “.prg”), por tanto, puede crearlos y editarlos utilizando un editor de texto común. De esta forma, puede crear, por ejemplo, ficheros de traza de memoria con fines docentes (con alguna característica especial). El simulador incluye, en su directorio de instalación, algunos ficheros de traza pequeños creados con un editor para estudiar varios casos especiales de los protocolos MSI, MESI (Illinois) y Dragon.
  • Es fácil crear ficheros de traza para operaciones básicas con vectores en C++. El siguiente fichero es un ejemplo de programa en C++ para generar este tipo de trazas de memoria: trazas.cpp. Este fichero fue proporcionado por Fernando Pardo de la Universidad de Valencia (España).
  • Puede crear trazas de memoria mediante otras herramientas u obtener trazas de memoria de otros sitios web o bases de datos de trazas, como NMSU PARL. Este es el caso para las trazas en la sección Trazas de memoria. Luego, puede convertir estas trazas al formato de SMPCache. Por favor, vaya a la sección Utilidades para SMPCache para encontrar un interesante conversor de formatos de traza.
  • Inicio

    Documentación

    SMPCache ha sido elegido por William Stallings como herramienta de simulación para la realización de proyectos de estudiante en el libro "Computer Organization & Architecture", 6ª edición, 2003, Prentice-Hall (Apéndice C: Projects for Teaching Computer Organization and Architecture). Este libro ha sido tres veces ganador del premio al mejor libro de texto de Informática e Ingeniería del año, concedido por la TAAA -Textbook and Academic Authors Association- (la última vez que ha ganado este premio ha sido con la 6ª edición, 2003). El CD-ROM con Recursos para Instructores de este libro incluye una colección de proyectos de simulación además de un manual para SMPCache.

    También puede obtener información detallada sobre la utilidad del simulador en los artículos siguientes:
    Inicio

    Utilidades para SMPCache

    Estas son algunas utilidades para SMPCache:
    Inicio

    Universidades y Centros de Investigación usando SMPCache

     

    Más de 400 Universidades y Centros de Investigación ya usan SMPCache:


    Proyectos de Estudiante de otras Universidades usando SMPCache

    Por favor, recuerde que el CD-ROM con Recursos para Instructores del libro "Computer Organization & Architecture" (6ª edición, 2003, Prentice-Hall) incluye una amplia colección de proyectos de simulación además de un manual para SMPCache (ver la sección Documentación). En esta sección incluimos algunos proyectos de estudiante proporcionados por profesores de otras Universidades:
    Inicio

    Artículos de Investigación de otras Universidades usando SMPCache

    En esta sección incluimos algunos artículos de investigación que usan SMPCache. Estos artículos han sido escritos por investigadores de otras Universidades. Para artículos escritos por los autores de SMPCache, por favor, vea la sección Documentación.
    Inicio


    Actualización: 1998-2018
    Correo-e
    Enviar comentarios a: mavega@unex.es