Reorder Buffer (ROB)

Reorder Buffer (ROB)

Method to do Register Renaming .

  • Have register file same size as logical register file.
  • Use the Reorder buffer (see Extended Instruction Pipeline ) to keep track of uncertain register values.
  • On commit of instructions their speculative values become certain and are written back to the logical register file.

The Register Map Table stores the information if a logical register is avaiable in the logical register file or in the reoder buffer and the pointer to it there. The pointer is only needed if it is stored in the reorder buffer, since the logical register file is of same size and order as the logical registers.

Renaming #

  • Output register is renamed into Reorder buffer entry
  • Input registers
    • either unchanged if Register map table says the current values are in the logical register file
    • otherwise renamed into the Reorder buffer entry of the operand
  • If a speculative Reorder Buffer entry commits and is written to the logical register file, instructions in issue queue that still refer to the reorder buffer entry have to be rewritten to now refer to the logical register file.
Calendar October 22, 2023