Reorder buffer (ROB)
The structure that lets an out-of-order CPU execute instructions in any order yet "retire" (make the results visible) in strict program order. It's what makes out-of-order execution correct and possible to undo on a misprediction.
Mechanic: when instructions are issued they're placed into the ROB in program order; they then execute as soon as their data is ready (out of order), but their results are held provisional in the ROB until they reach the top and retire in order. This solves two problems: (1) correctness — externally everything appears to happen in program order despite the internal reordering; (2) precise exceptions/speculation — if a branch was mispredicted or an exception occurs, all not-yet-retired (speculative) instructions can simply be discarded, as if they never happened. The ROB's size (hundreds of entries in modern cores) limits how many instructions can be "in flight" at once → a key factor for performance. The heart of the out-of-order machinery, tightly tied to register renaming. Related to out-of-order execution and retirement.