0% encontró este documento útil (0 votos)
408 vistas3 páginas

Algoritmo de Tomasulo

El algoritmo de Tomasulo maximiza la eficiencia de las unidades funcionales mediante la ejecución fuera de orden de las instrucciones. Utiliza una tabla de alias de registros (RAT) y estaciones de reserva (RS) para controlar las dependencias de datos y permitir que las instrucciones se ejecuten tan pronto como sus operandos estén disponibles, independientemente del orden de emisión original. El proceso consiste en las etapas de emisión, captura y despacho, donde las instrucciones se emiten a las unidades funcionales una vez que se resuelven sus
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
408 vistas3 páginas

Algoritmo de Tomasulo

El algoritmo de Tomasulo maximiza la eficiencia de las unidades funcionales mediante la ejecución fuera de orden de las instrucciones. Utiliza una tabla de alias de registros (RAT) y estaciones de reserva (RS) para controlar las dependencias de datos y permitir que las instrucciones se ejecuten tan pronto como sus operandos estén disponibles, independientemente del orden de emisión original. El proceso consiste en las etapas de emisión, captura y despacho, donde las instrucciones se emiten a las unidades funcionales una vez que se resuelven sus
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Introducción

Algoritmo de Tomasulo

-Unidades de punto flotante (algoritmos)


-CDB: Bus común de datos para conectar las estaciones de reserva (RS), Tabla de alias de
registros (RAT), register file, LD/ST Unit

RAT: Nos ayuda con el etiquetado de los registros para poder ejecutar fuera de orden las
instrucciones bajo el método de asignado de alias. Lleva un control de las dependencias de
datos en tiempo de ejecución. Lleva un control de los valores de los registros actualizados.

Register File
Tabla de valores de los registros.

Modelo Productor - Consumidor (Source /sink):

Tiene como objetivo maximizar la eficiencia de las unidades funcionales.


Se dividen partes de hardware para que las diferentes regiones controlan diferentes partes
de la producción de instrucciones.
Posee estructuras llamadas estaciones de reserva que llevan el control de las dependencias
existentes para cada ciclo de operación. Las unidades funcionales deben recibir ya las
instrucciones listas para ejecutar, de lo contrario no pueden recibir tal instrucción hasta que
no se encuentre lista.

Ciclo de Vida de una Instrucción en un procesador Multi/uniciclo


● Fetch
● Decode
● Execution
● Memory
● Write Back

Ejecución Fuera de Orden

● Fetch
● Decode
● Issue (emisión instrucciones): Verifica si los operandos se están utilizando.
● Capture: Resuelve dependencias en estaciones de reserva (RS).
● Dispatch: enviar la instrucción para que sea ejecutada (la envía a UF).
● Memoria
● Broadcast: Actualiza estructuras vía CDB (Common Data Bus)
● ROB (Reorder Buffer)
Etapa Issue (Emisión de Instrucciones)

● Se asume que el procesador tiene:


○ 2​ Unidades Funcionales (ADD/SUB) y (MUL/DIV)
○ 5​ Estaciones de Reserva ( 3 ADD/SUB) y (2 MUL/DIV)

Cuando se pueden emitir instrucciones?


Cuando haya espacios en las unidades de reserva (están de-codificadas).

Procedimiento para la Emisión de instrucciones

- Revisa de instrucción en cola.


- Verifica si hay espacio en las unidades de reserva, de lo contrario necesita
esperar a que haya un espacio.
- Revisa tipo de instrucción (ADD, MUL, DIV, SUB Etc.).
- Verifica si hay una dependencia con instrucciones anteriores.
- Si no hay dependencias emite la instrucción, activa la bandera de busy.
- Si hay dependencias, espera a que se termina de ejecutar la instrucción de la
que dependen.
- Al haber registros asociados a estaciones de reserva, la RAT actualiza el
alias del registro para llevar control a quienes debe devolver los valores.
- Realiza la operación y se obtiene el resultado asociado a la etiqueta.
- Actualiza en el register file( los valores de F en la figura de register file).
Etapa de Captura

- En la primera parte del ciclo se captura el dato (se lee el último resultado en
el buffer del CBD), en la segunda se despacha la instrucción a la unidad de
ejecución (etapa de Dispatch).
- Al colocarse ese resultado en el CBD, se realiza un match de la etiqueta
relacionada con este con todas las dependencias, se elimina esta y se
actualiza en las tablas de las estaciones de reserva. Luego se resetea la
bandera de busy al actualizar el CBD( es más seguro quitarla en la etapa de
dispatch) .

También podría gustarte