Register Renaming
Done in the Extended Instruction Pipeline . Mapping of physical registers to logical registers. This is done to prevent Anti dependencies (read …write) or Output dependencies (write … write) .
Two methods:
Comparison #
-
Allocatoin / release
- Merged register file
- allocation based on free list
- hard to decide if register is no longer needed
- ROB
- no free list
- release requires id of physical register
- instructions in issue queue need to be updated
- Merged register file
-
Transfer of data
- Merged register file
- Requre more read ports
- Less data transfers
- ROB
- Data fist stored in ROB and then transferred to register file then copied to the issue queue entry and then to then functional unit -> Many data transfers (cost energy)
- Merged register file