Patent ID: 8219784

Claim:
A computer-implemented method for managing an out of order dispatched instruction queue in a microprocessor, the computer-implemented method comprising: fetching, by a superscalar microprocessor capable of out of order execution and out of order retirement, a set of instructions within a plurality of sets of instructions, where the set of instructions is fetched by an instruction fetch unit within the superscalar microprocessor, and wherein each instruction in the set of instructions is represented by a sequence of numbers for identification; assigning, by the superscalar microprocessor, a group identification number tag and a target identification number tag to each instruction within the set of instructions being processed by the superscalar microprocessor, wherein the assigning of the group identification number tag and the target identification number tag is performed inside the instruction fetch unit, and wherein the group identification number tag and the target identification number tag are identifiers assigned to each instruction within the set of instructions prior to dispatching the set of instructions to an instruction queue, and wherein the group identification number tag is issued to each instruction within a particular set of instructions and is used to indicate which particular set of instructions an instruction belongs to, and wherein the target identification number tag is issued to each instruction within the particular set of instructions and is used to indicate where a particular instruction is sequentially located within an original sequence of the particular set of instructions; pre-decoding, by the superscalar microprocessor, information associated with the group identification number tag and the target identification number tag for each instruction within the set of instructions one cycle prior to dispatching the set of instructions to the instruction queue to form pre-decoded information, wherein the pre-decoded information associated with the group identification number tag and the target identification number tag is stored in execution units within the superscalar microprocessor; dispatching, by the superscalar microprocessor, instructions within the set of instructions out of order to the instruction queue; and re-ordering, by the superscalar microprocessor, the instructions within the set of instructions after executing the set of instructions utilizing the pre-decoded information associated with the group identification number tag and the target identification number tag for each instruction within the set of instructions to place the set of instructions back in the original sequence, wherein the target identification number tag is re-set every time all instructions corresponding to a same group identification number are executed and retired.