stringtranslate.com

Reordenar el buffer

Un búfer de reordenamiento ( ROB ) es una unidad de hardware que se utiliza en una extensión del algoritmo Tomasulo para respaldar la ejecución de instrucciones especulativas y fuera de orden . La extensión obliga a que las instrucciones se ejecuten en orden.

El búfer es un búfer circular (para proporcionar una cola de ordenamiento de instrucciones FIFO ) implementado como una matriz/vector (que permite el registro de resultados de las instrucciones a medida que se completan fuera de orden).

El algoritmo de Tomasulo consta de tres etapas: "Emitir", "Ejecutar" y "Escribir resultado". Como extensión del algoritmo, existe una etapa adicional de "Confirmación". Durante la etapa de confirmación, los resultados de las instrucciones se almacenan en un registro o en la memoria. La etapa de "Escribir resultado" se modifica para colocar los resultados en el búfer de reordenación. Para este fin, cada instrucción se etiqueta en la estación de reserva con su índice en el ROB.

El contenido del búfer se utiliza para las dependencias de datos de otras instrucciones programadas en el búfer. La cabecera del búfer se confirmará una vez que su resultado sea válido. Sus dependencias ya se habrán calculado y confirmado, ya que deben estar por delante de la instrucción en el búfer, aunque no necesariamente adyacentes a ella. Las dependencias de datos entre instrucciones normalmente detendrían el proceso mientras una instrucción espera sus valores dependientes. El ROB permite que el proceso continúe procesando otras instrucciones al tiempo que garantiza que los resultados se confirmen para evitar riesgos de datos como lectura antes de escritura (RAW), escritura antes de lectura (WAR) y escritura antes de escritura (WAW).

Hay campos adicionales en cada entrada del buffer para soportar el algoritmo extendido:

Las consecuencias del buffer de reordenamiento incluyen excepciones precisas y un control sencillo de la reversión de predicciones erróneas de direcciones de destino (ramificación o salto). Cuando la predicción de salto no es correcta o se encuentra una excepción no recuperable en el flujo de instrucciones, el ROB se borra de todas las instrucciones (al establecer la cola de la cola circular en la cabecera) y las estaciones de reserva se reinicializan.

Referencias

Enlaces externos