Apparatus and method for retiring instructions in excess of the number of accessible write ports
First Claim
1. A reorder buffer comprising:
- an instruction storage device, wherein said instruction storage device is configured to store instruction results corresponding to a plurality of instructions, and wherein each of said plurality of instructions includes a register operand that corresponds to a register in a register file having a plurality of write ports; and
a control unit coupled to said instruction storage device, wherein said control unit is configured to select a subset of said plurality of instructions for retirement during a clock cycle;
wherein a number of instructions retired during said clock cycle exceeds a total number of said plurality of write ports of said register file.
0 Assignments
0 Petitions
Accused Products
Abstract
A superscalar microprocessor includes a reorder buffer to correctly handle dependency checking and multiple updates to the same destination. The reorder buffer stores instructions in program order, and retires instructions that have executed and the results obtained. When a instruction is retired, the results of the instruction are stored and the memory space in the reorder buffer is deallocated. The results of the retired instructions are stored to a register file via a retire bus. If the results of two or more retired instructions output to the same register in the register file, then only the newest instruction, the later instruction in the original program sequence, is stored to the program register. The register file has a plurality of write ports for the transfer of data via the retire bus. If two retired instructions output to the same register, then a write port is not utilized. The retire window is the number of instructions monitored for retirement. The present invention advantageously increases the size of the retire window. Accordingly, if two or more retired instructions output to the same register, an additional instruction from the retire window can be retired. The additional instruction utilizes the write port not used by the older of the instructions that output to the same register. Thereby, the reorder buffer is emptied at a faster rate and causes less instruction dispatch stalls.
61 Citations
20 Claims
-
1. A reorder buffer comprising:
-
an instruction storage device, wherein said instruction storage device is configured to store instruction results corresponding to a plurality of instructions, and wherein each of said plurality of instructions includes a register operand that corresponds to a register in a register file having a plurality of write ports; and
a control unit coupled to said instruction storage device, wherein said control unit is configured to select a subset of said plurality of instructions for retirement during a clock cycle;
wherein a number of instructions retired during said clock cycle exceeds a total number of said plurality of write ports of said register file. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. An apparatus for retiring instructions, comprising:
-
a register file, wherein said register file includes a plurality of registers, and wherein said register file includes a plurality of write ports; and
a reorder buffer coupled to said register file, wherein said reorder buffer includes;
an instruction storage device, wherein said instruction storage device is configured to store instruction results corresponding to a plurality of instructions, and wherein each of said plurality of instructions includes a register operand that corresponds to one of said plurality of registers; and
a control unit coupled to said instruction storage device, wherein said control unit is configured to select a subset of said plurality of instructions for retirement during a clock cycle;
wherein a number of instructions in said subset exceeds a total number of said plurality of write ports of said register file. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A method for retiring instructions in a reorder buffer, the method comprising:
-
storing, in said reorder buffer, instruction results corresponding to a plurality of instructions, wherein each of said plurality of instructions include a register operand that corresponds to a register in a register file;
selecting a subset of said plurality of instructions for retirement during a clock cycle, wherein a number of instructions in said subset exceeds a total number of write ports of said register file; and
retiring said subset of said plurality of instructions during said clock cycle. - View Dependent Claims (16, 17, 18, 19, 20)
updating one or more registers in said register file corresponding to said register operands within said subset of said plurality of instructions; and
if two or more register operands within said subset of said plurality of instructions correspond to a same register, updating said same register using only a newest, in program order, of said two or more register operands.
-
-
18. The method as recited in claim 15, further comprising:
-
determining a newest, in program order, instruction within said subset of said plurality of instructions to update a register using a set of bits attached to each instruction in said retirement window; and
if two or more register operands within said subset of said plurality of instructions correspond to a same register, updating said same register using only a newest, in program order, of said two or more register operands.
-
-
19. The method as recited in claim 18, wherein a number of bits in said set of bits is equal to said total number of write ports in said register file.
-
20. The method as recited in claim 15, further comprising:
assigning each instruction in said subset of said plurality of instructions to a write port of said register file, wherein each instruction in said subset of said plurality of instructions that is older than another instruction in said subset of said plurality of instructions and that corresponds to a same register are not assigned to a write port.
Specification