Técnicas Avanzadas de Emisión de Instrucciones en Arquitecturas Superescalares y VLIW
Clasificado en Informática
Escrito el en español con un tamaño de 3,22 KB
Conceptos Fundamentales en Procesadores Superescalares
- El número de **emisión** y los **tipos de instrucciones** que se pueden emitir juntas son los factores más importantes que diferencian a los **procesadores superescalares**.
Emisión de Múltiples Instrucciones con Planificación Dinámica
- La emisión de múltiples instrucciones también se puede aplicar a **máquinas con planificación dinámica**.
- Se comenzará con el **esquema del marcador** o con el **algoritmo de Tomasulo**.
- Se propone extender el algoritmo de Tomasulo para que soporte la **emisión de dos instrucciones por ciclo de reloj**, una entera y otra de **punto flotante**.
No se desea emitir instrucciones de la cola fuera de orden, ya que esto hace imposible la contabilidad del **fichero de registros**.
En su lugar, empleando estructuras de datos para los **registros de enteros** y de **punto flotante**, ambos tipos de instrucciones pueden ser emitidas a sus respectivas **estaciones de reserva**, siempre que las dos instrucciones de la cabeza de la **cola de instrucciones** no accedan al **mismo conjunto de registros**.
Sin embargo, este enfoque impide emitir dos instrucciones con una dependencia en el mismo ciclo de reloj. Esto es, por supuesto, cierto en el **caso superescalar**, donde claramente, es el **problema del compilador**.
Enfoque de Doble Emisión
- Primero, se puede utilizar **planificación por software** para asegurar que las **instrucciones dependientes** no aparezcan juntas.
Estrategias Adicionales para la Emisión de Instrucciones
- Un segundo enfoque es **segmentar la etapa de emisión de instrucciones** para que corra **dos veces más rápida que la frecuencia básica del reloj**. Esto permite **actualizar las tablas** antes de tratar la siguiente instrucción; entonces las dos instrucciones pueden comenzar la **ejecución simultáneamente**.
- El tercer enfoque: si no se emiten **múltiples instrucciones a la misma unidad funcional**, entonces solo serán las **instrucciones de carga y almacenamiento** las que creen dependencias entre las instrucciones que se deseen emitir juntas. Se pueden eliminar utilizando **colas para el resultado de una carga** y para el **operando fuente de un almacenamiento**.
- Como la **planificación dinámica** es más efectiva para **cargas y almacenamientos**, mientras que la **planificación estática** es altamente efectiva en **secuencias de código de registro-registro**, se podrá utilizar planificación estática para **eliminar completamente las estaciones de reserva** y contar con las **colas para cargas y almacenamientos**. Este estilo de organización de la máquina se ha denominado **arquitectura desacoplada** (*decoupled architecture*).
El Enfoque VLIW
- Nuestra **máquina superescalar DLX** puede emitir **dos instrucciones por ciclo de reloj**.
- Eso quizá podría extenderse a **tres o, como máximo, cuatro**, pero llega a ser difícil determinar si se pueden emitir tres o cuatro instrucciones, simultáneamente, sin conocer el orden de las instrucciones al ser buscadas de memoria ni las **dependencias** que puedan existir entre ellas.