Definition
A Free List (FL) is a hardware FIFO used in a register-renaming stage to manage available physical destination registers, or Pdsts. The Pdst entries are initialized in the Free List when a processor core is powered on.
Role in register renaming
In a register-renaming design with a merged physical register file, logical register specifiers are replaced with physical register specifiers. For an instruction that produces a result, the Free List provides a free Pdst to rename the instruction's logical destination register. That Pdst is then sent to the Reservation Station, where the renamed instruction waits for execution. When the instruction executes, it updates the physical register identified by its Pdst.
The Free List is one of the hardware arrays in the register-renaming stage, alongside the Register Alias Table (RAT) and the Checkpoint Table (CKPT). The RAT tracks the most recent logical-to-physical register mappings, while the CKPT stores snapshots of the RAT for branch recovery.
Recovery behavior
On a pipeline flush caused by a mispredicted branch, the register-renaming state can be restored using a checkpoint. In that restoration process, the RAT is restored from the checkpoint associated with the offending branch, and the Pdsts allocated after that offending instruction are returned to the Free List.