CS 3853 Computer Architecture Tomasulo Activity - Functional Unit
There are two types of floating point functional units for this activity: add and multiply.
The add functional unit handles add and subtract.
The multiply functional unit handles multiply and divide.
For this activity, we assume that adds and subtracts take 2 cycles, multiplies take 5 cycles, and divides take 10 cycles.
A free functional unit is given 2 floating point values to work on and a reservation station number.
It marks itself busy and calculates the result.
After waiting the appropriate number of cycles, it puts its result and the reservation station number on the CDB.
It then marks itself free.
Time for add or subtract: 2 cycles
Time for multiply: 5 cycles
Time for divide: 10 cycles
Values are put on the CDB the cycle after complete (if CDB is available)
Example: An add started in cycle n, finishes in cycle n+1, and puts the result on the CDB in cycle n+2