Register renaming – Scheme 1: File of physical registers
At decode:
- Rename the result register (get from free list; update mapping table). If none available, we have a structural hazard
When a physical register has been read for the last time, return it to the free list
- Have a counter associated with each physical register (+ when a source logical register is renamed to physical register; - when instruction uses physical register as operand; release when counter is 0)
- Simpler to wait till logical register has been assigned a new name by a later instruction and that later instruction has been committed