Merged Register File (MRF)
A method of Register Renaming .
- When writing to an logical register:
- select free physical register and update the mapping
- When reading from an logical register:
- replace logical register with the physical register from the mapping
- When to free a physical register?
- it was written, and no further instruction will read it (impossible to know)
- The next instruction that writes to the logical register commits
Architecture #
- Called merged register file since it contains speculative results as well as certain ones.
- Free physical registers are managed in a Free List
- The Register map table stores for each logical register the latest physical register
Renaming #
- Input registers
- looked up in the Register map table
- Output registers
- replaced with a fresh physical register and add mapping in the register map table
If no free physical register is available for the result, stall the instruction