Scoreboard
The idea of a scoreboard is to keep track of the status of instructions,
functional units and registers.
The
scoreboard
consists of three parts:
Instruction Status
- keeps track of which steps of instruction execution have been completed.
Functional Unit Status
- indicates the state of each functional unit as instructions are issued
- Busy
-
indicates if the unit is busy or not
- Op
-
indicates the operation to perform
- Fi
-
the desitnation register specifier
- Fj, Fk
-
the source register specifiers
- Qj, Qk
-
which funtional units will produce the source register
- Rj, Rk
-
flags to indicate if source operand is ready
Register Status
- indicates which functional unit will produce each register value
with an outstanding write.
What happens in the pipeline?
- Issue
- Completes when:
- functional unit is not busy
- destination register not pending
- Updates:
- functional unit status
- register result status
- Read operands
-
- Execution
-
- Write results
- Completes when:
- no functional unit is waiting for this register from a different
functional unit
- Updates:
- sets all R fields for functional units waiting for this instruction.
to Overview.