CS 3853 Computer Architecture Tomasulo Activity - Reservation Station Add and Mult
A reservation station has two inputs and produces an output.
These reservation stations use 2 floating point register values and produces and output to be stored in a third floating point register.
- An Add reservation station can be used to do an add or a subtract.
- A Multiply reservation station can be used to do an multiply or a divide.
- Each reservation station has a ID: Add1, Add2, Add3, ..., Mult1, Mult2, Mult3, ...
Initialization: Mark yourself free
Inputs: You are given:
- An operation to perform (fadd, fsub or fmul, fdiv)
- Two source register numbers (in order)
- A destination register number
On Issue:
- Mark yourself busy
- Get source register values or reservation station IDs from the register file
- Reserve the destination register by giving the register file your ID and the destination register number.
After Issue:
- If either or both inputs are reservation station IDs, monitor the CDB for values until both are available
- Wait for an appropriate functional unit to be available (fadd or fmult)
- Give the source values and the operation to the functional unit and wait for the result
- Put the result along with your ID on the CDB.
- Mark yourself free when you see your ID on the CDB