Re-order buffer

A re-order buffer (ROB) is a hardware unit used in an extension to Tomasulo's algorithm to support out-of-order and speculative instruction execution.

There are three stages to the Tomasulo algorithm: "Issue", "Execute", "Write Result".

Its dependencies will have already been calculated and committed since they must be ahead of the instruction in the buffer though not necessarily adjacent to it.

There are additional fields in every entry of the buffer to support the extended algorithm: The consequences of the re-order buffer include precise exceptions and easy rollback control of target address mis-predictions (branch or jump).

When jump prediction is not correct or a nonrecoverable exception is encountered in the instruction stream, the ROB is cleared of all instructions (by setting the circular queue tail to the head) and reservation stations are re-initialized.