An system and method for retiring instructions in a superscalar
microprocessor which executes a program comprising a set of instructions
having a predetermined program order, the retirement system for
simultaneously retiring groups of instructions executed in or out of
order by the microprocessor. The retirement system comprises a done block
for monitoring the status of the instructions to determine which
instruction or group of instructions have been executed, a retirement
control block for determining whether each executed instruction is
retirable, a temporary buffer for storing results of instructions
executed out of program order, and a register array for storing
retirable-instruction results. In addition, the retirement control block
further controls the retiring of a group of instructions determined to be
retirable, by simultaneously transferring their results from the
temporary buffer to the register array, and retires instructions executed
in order by storing their results directly in the register array. The
method comprises the steps of monitoring the status of the instructions
to determine which group of instructions have been executed, determining
whether each executed instruction is retirable, storing results of
instructions executed out of program order in a temporary buffer, storing
retirable-instruction results in a register array and retiring a group of
retirable instructions by simultaneously transferring their results from
the temporary buffer to the register array, and retiring instructions
executed in order by storing their results directly in the register
array.