Register renaming is an technique performed by CPUs to map limited numbers of architecture registers (also called logical registers, e.g. rax, rbx, …) to a larger set of physical registers. This process is performed dynamically during execution.

The reasons CPUs implement register renaming instead of adding available architectural registers include 1

  • backward and forward compatibility
  • more available registers increasing the number of bit needed to encode each register
  • limiting the number of architectural registers reduces the cost of saving and restoring all the visible states
  • to break false dependencies between instructions that happened to use the same register names so that CPUs can process instructions out of order

See Also

Footnotes

  1. rename - Why do register renaming, when we can increase the number of registers in the architecture? - Stack Overflow