Una estación de reserva unificada , también conocida como programador unificado , es una característica descentralizada de la microarquitectura de una CPU que permite el cambio de nombre de registros y es utilizada por el algoritmo de Tomasulo para la programación dinámica de instrucciones . [1] [2]
Las estaciones de reserva permiten que la CPU obtenga y reutilice un valor de datos tan pronto como se haya calculado, en lugar de esperar a que se almacene en un registro y se vuelva a leer. Cuando se emiten instrucciones, pueden designar la estación de reserva desde la que quieren que se lea su entrada. Cuando varias instrucciones necesitan escribir en el mismo registro, todas pueden continuar y solo es necesario escribir realmente la última (lógicamente). Verifica si los operandos están disponibles ( RAW ) y si la unidad de ejecución está libre ( riesgo estructural ) antes de comenzar la ejecución.
Las instrucciones se almacenan con los parámetros disponibles y se ejecutan cuando están listas. Los resultados se identifican por la unidad que ejecutará la instrucción correspondiente. El cambio de nombre de registro implícito resuelve los riesgos de WAR y WAW . Dado que se trata de una estructura totalmente asociativa, tiene un costo muy alto en comparadores (es necesario comparar todos los resultados devueltos por las unidades de procesamiento con todas las direcciones almacenadas).
En el algoritmo de Tomasulo, las instrucciones se envían en secuencia a las estaciones de reserva, que almacenan en búfer la instrucción y los operandos de la instrucción. Si el operando no está disponible, la estación de reserva escucha en un bus de datos común hasta que el operando esté disponible. Cuando el operando está disponible, la estación de reserva lo almacena en búfer y puede comenzar la ejecución de la instrucción.
Cada unidad funcional (como un sumador o un multiplicador) tiene su propia estación de reserva correspondiente. La salida de la unidad funcional se conecta al bus de datos común, donde las estaciones de reserva escuchan los operandos que necesitan.