Register renaming (1)
Use a physical register file larger than the ISA logical one
Keep a mapping table logical - physical correspondence
Keep a free list of empty physical registers
When instruction is decoded
- Give a new name to result register from the free list
- Give source operands their physical names (from mapping table)
When a physical register has been read for the last time, return it to the free list
- Simpler to wait till logical register has been assigned a new name by a later instruction and that later instruction has been committed