Triple-pass execution using a retire queue having a functional unit to independently execute long latency instructions and dependent instructions
First Claim
Patent Images
1. A microprocessor including an extended pipeline stage comprising:
- a main execution pipeline processing instructions and configured to forward long latency instructions to a retire queue, the main execution pipeline including an arithmetic logic unit (ALU), the long latency instructions being instructions taking more than one cycle to execute; and
the retire queue configured to store and execute the long latency instructions and third-pass instructions, wherein one or more of the third-pass instructions have data dependencies upon the long latency instructions, and wherein the third-pass instructions are determined to, when executed, not cause any exception events, the retire queue further comprising;
a graduate buffer configured to store the long latency instructions;
a reservation station configured to store the third-pass instructions and dependency indications of the third-pass instructions on the long latency instructions stored in the graduate buffer; and
a third-pass functional unit configured to receive result data of the long latency instructions and to execute the third-pass instructions using the result data, processing of the third-pass instructions being executed independently from the instructions in the main execution pipeline, wherein the third-pass functional unit comprises one or more additional ALUs separate from the main execution pipeline and the one or more additional ALUs execute the third-pass instructions.
1 Assignment
0 Petitions
Accused Products
Abstract
An execution pipeline architecture of a microprocessor employs a third-pass functional unit, for example, third-level of arithmetic logic unit (ALU) or third short-latency execution unit to execute instructions with reduced complexity and area cost of out-of-order execution. The third-pass functional unit allows instructions with long latency execution to be moved into a retire queue. The retire queue further includes the third functional unit (e.g., ALU), a reservation station and a graduate buffer. Data dependencies of dependent instructions in the retire queue is handled independently from the main pipeline.
-
Citations
21 Claims
-
1. A microprocessor including an extended pipeline stage comprising:
-
a main execution pipeline processing instructions and configured to forward long latency instructions to a retire queue, the main execution pipeline including an arithmetic logic unit (ALU), the long latency instructions being instructions taking more than one cycle to execute; and the retire queue configured to store and execute the long latency instructions and third-pass instructions, wherein one or more of the third-pass instructions have data dependencies upon the long latency instructions, and wherein the third-pass instructions are determined to, when executed, not cause any exception events, the retire queue further comprising; a graduate buffer configured to store the long latency instructions; a reservation station configured to store the third-pass instructions and dependency indications of the third-pass instructions on the long latency instructions stored in the graduate buffer; and a third-pass functional unit configured to receive result data of the long latency instructions and to execute the third-pass instructions using the result data, processing of the third-pass instructions being executed independently from the instructions in the main execution pipeline, wherein the third-pass functional unit comprises one or more additional ALUs separate from the main execution pipeline and the one or more additional ALUs execute the third-pass instructions. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method comprising:
-
fetching an instruction from a main execution pipeline, the main execution pipeline includes an arithmetic logic unit (ALU); determining whether the instruction is a long latency instruction, wherein a long latency instruction is an instruction that, when executed, causes a stall in the main execution pipeline; forwarding, responsive to determining the instruction is a long latency instruction, the instruction to a graduate buffer of a retire queue, wherein the graduate buffer is configured to store the long latency instruction; identifying a third-pass instruction in the main execution pipeline, the third-pass instruction depending only upon one or more instructions in the retire queue, wherein the third-pass instruction is determined to, when executed, not generate an exception; forwarding the identified third-pass instruction to a reservation station of the retire queue, wherein the reservation station is configured to store the third-pass instructions and dependency indications of the third-pass instructions on long-latency instructions stored in the graduate buffer; and executing the third-pass instruction in a third-pass functional unit of the retire queue, wherein the third-pass functional unit comprises one or more additional ALUs. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20, 21)
-
Specification