La simulación de microarquitectura es una técnica importante en la investigación de arquitectura de computadoras y la enseñanza de la informática . Es una herramienta para modelar el diseño y el comportamiento de un microprocesador y sus componentes, como la ALU , la memoria caché , la unidad de control y la ruta de datos, entre otros. La simulación permite a los investigadores explorar el espacio de diseño, así como evaluar el rendimiento y la eficiencia de nuevas características de microarquitectura. Por ejemplo, varios componentes de microarquitectura, como los predictores de bifurcación , el búfer de reordenamiento y la caché de trazas , pasaron por numerosos ciclos de simulación antes de convertirse en componentes comunes en los microprocesadores actuales. Además, la simulación también permite a los educadores impartir cursos de organización y arquitectura de computadoras con experiencias prácticas.
Para la simulación a nivel de sistema del hardware informático, consulte la simulación completa del sistema .
Clasificación
La simulación de microarquitectura se puede clasificar en varias categorías según el tipo de entrada y el nivel de detalle. En concreto, la entrada puede ser un rastro recopilado de la ejecución de un programa en un microprocesador real (lo que se denomina simulación basada en rastros) o el propio programa (lo que se denomina simulación basada en ejecución).
Una simulación basada en trazas [ 1 ] lee una secuencia fija de registros de traza desde un archivo como entrada. Estos registros de traza suelen representar referencias de memoria, resultados de bifurcaciones o instrucciones de máquina específicas, entre otros. Si bien se sabe que una simulación basada en trazas es relativamente rápida y sus resultados son altamente reproducibles, también requiere un espacio de almacenamiento muy grande. Por otro lado, una simulación basada en ejecución [ 2 ] lee un programa y simula la ejecución de instrucciones de máquina sobre la marcha. Un archivo de programa suele ser varias órdenes de magnitud menor que un archivo de traza. Sin embargo, la simulación basada en ejecución es mucho más lenta que la basada en trazas porque tiene que procesar cada instrucción una por una y actualizar todos los estados de los componentes de la microarquitectura involucrados. Por lo tanto, la selección de tipos de entrada para la simulación es una compensación entre espacio y tiempo. En particular, una traza muy detallada para una simulación de alta precisión requiere un espacio de almacenamiento muy grande, mientras que una simulación basada en ejecución muy precisa tarda mucho tiempo en ejecutar todas las instrucciones del programa.
Además de los tipos de entrada, el nivel de detalle también puede utilizarse para clasificar la simulación. En concreto, un software que simula la ejecución de un programa en un microprocesador ciclo a ciclo se denomina simulador de precisión de ciclo , mientras que un simulador de conjunto de instrucciones solo modela la ejecución de un programa en un microprocesador desde la perspectiva de un planificador de instrucciones, con una estimación aproximada de la temporización de la ejecución. La mayoría de las clases de informática en arquitectura de computadoras con prácticas emplean simuladores de conjunto de instrucciones como herramientas didácticas, mientras que los simuladores de precisión de ciclo se utilizan principalmente en proyectos de investigación debido a su complejidad y consumo de recursos.
Usos
Los simuladores de microarquitectura se utilizan para diversos fines. Permiten a los investigadores evaluar sus ideas sin necesidad de fabricar un microprocesador real, lo cual resulta costoso y requiere mucho tiempo. Por ejemplo, simular un microprocesador con miles de núcleos y múltiples niveles de memoria caché tiene un coste muy bajo en comparación con la fabricación de un prototipo. Los investigadores también pueden experimentar con diversas configuraciones de la jerarquía de caché utilizando diferentes modelos en el simulador, en lugar de tener que fabricar un nuevo chip cada vez que quieran probar algo diferente.
Otro uso del simulador de microarquitectura es en la educación. [ 3 ] Dado que un curso de arquitectura de computadoras enseña a los estudiantes muchas características diferentes de los microprocesadores y sus arquitecturas, el simulador de microarquitectura es ideal para modelar y experimentar con diferentes características y arquitecturas a lo largo de un semestre. Por ejemplo, los estudiantes pueden comenzar con un simulador de microarquitectura que modela un diseño de microprocesador simple al inicio del semestre. A medida que avanza el semestre, se pueden modelar y agregar al simulador características adicionales, como la segmentación de instrucciones , el cambio de nombre de registros , las estaciones de reserva , la ejecución fuera de orden y el marcador , a medida que se introducen en clase. El simulador de microarquitectura proporciona la flexibilidad de reconfiguración y prueba con costos mínimos.
Ejemplos
- Shade [ 4 ] (simulador de conjunto de instrucciones basado en trazas)
- SimpleScalar [ 5 ] [ 6 ] (simulador basado en la ejecución, con precisión de ciclo)
- SPIM [ 7 ] (simulador de conjunto de instrucciones impulsado por la ejecución)
- SMTSIM [ 8 ] (simulador basado en la ejecución, con precisión de ciclo)
- Multi2Sim (2007)
- GPGPU-Sim (2007), derivado de SimpleScalar
Referencias
- ↑ Uhlig, RA, & Mudge, TN (2004). Simulación de memoria basada en trazas: una revisión. ACM Computing Surveys , 29(2), 128-170.
- ↑ Burger, D., & Austin, TM (1997). El conjunto de herramientas Simplescalar versión 2.0. Computer Architecture News , 25(3), 13-25.
- ↑ Skadron, K. (1996). Un curso introductorio sobre microprocesadores para el aprendizaje de arquitectura informática avanzada. En Actas de la Conferencia ACM SIGCSE de 2002, 152-156.
- ↑ Cmelik, RF, & Keppel, D. (1994). Shade: Un simulador rápido de conjunto de instrucciones para la elaboración de perfiles de ejecución. ACM SIGMETRICS Performance Evaluation Review , 22(1), 128-137.
- ↑ Austin, T., Larson, E., & Ernst, D. (2002). SimpleScalar: Una infraestructura para el modelado de sistemas informáticos. IEEE Computer Magazine , 35(2), 59-67.
- ↑ D. Burger y TM Austin. El conjunto de herramientas SimpleScalar, versión 2.0. http://www.simplescalar.com , 1997.
- ↑ Patterson, DA, & Hennessy, JL (2011). Organización y diseño de computadoras: la interfaz hardware/software , Morgan Kaufmann.
- ↑ Tullsen, DM (1996). Simulación y modelado de un procesador multihilo simultáneo. En Actas de la 22.ª Conferencia Anual del Grupo de Medición por Computadora.
Enlaces externos
- El sitio web oficial de SimpleScalar
- El sitio web oficial de SPIM
- El simulador multihilo SMTSIM
- Arquitectura de computadoras
- Software de simulación