MANAGING INSTRUCTION ORDER IN A PROCESSOR PIPELINE
First Claim
1. A method for executing instructions in a processor, the method comprising:
- classifying, in at least one stage of a pipeline of the processor, operations to be performed by instructions, the classifying including;
classifying a first set of operations as operations for which out-of-order execution is allowed, andclassifying a second set of operations as operations for which out-of-order execution with respect to one or more specified operations is not allowed, the second set of operations including at least store operations; and
selecting results of instructions executed out-of-order to commit the selected results in-order, the selecting including, for a first result of a first instruction and a second result of a second instruction executed before and out-of-order relative to the first instruction;
determining which stage of the pipeline stores the second result, andcommitting the first result directly from the determined stage over a forwarding path, before committing the second result.
6 Assignments
0 Petitions
Accused Products
Abstract
Executing instructions in a processor includes classifying, in at least one stage of a pipeline of the processor, operations to be performed by instructions. The classifying includes: classifying a first set of operations as operations for which out-of-order execution is allowed, and classifying a second set of operations as operations for which out-of-order execution with respect to one or more specified operations is not allowed, the second set of operations including at least store operations. Results of instructions executed out-of-order are selected to commit the selected results in-order. The selecting includes, for a first result of a first instruction and a second result of a second instruction executed before and out-of-order relative to the first instruction: determining which stage of the pipeline stores the second result, and committing the first result directly from the determined stage over a forwarding path, before committing the second result.
21 Citations
16 Claims
-
1. A method for executing instructions in a processor, the method comprising:
-
classifying, in at least one stage of a pipeline of the processor, operations to be performed by instructions, the classifying including; classifying a first set of operations as operations for which out-of-order execution is allowed, and classifying a second set of operations as operations for which out-of-order execution with respect to one or more specified operations is not allowed, the second set of operations including at least store operations; and selecting results of instructions executed out-of-order to commit the selected results in-order, the selecting including, for a first result of a first instruction and a second result of a second instruction executed before and out-of-order relative to the first instruction; determining which stage of the pipeline stores the second result, and committing the first result directly from the determined stage over a forwarding path, before committing the second result. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A processor, comprising:
-
circuitry in at least one stage of a pipeline of the processor configured to classify operations to be performed by instructions, the classifying including; classifying a first set of operations as operations for which out-of-order execution is allowed, and classifying a second set of operations as operations for which out-of-order execution with respect to one or more specified operations is not allowed, the second set of operations including at least store operations; and circuitry in at least one stage of the pipeline of the processor configured to select results of instructions executed out-of-order to commit the selected results in-order, the selecting including, for a first result of a first instruction and a second result of a second instruction executed before and out-of-order relative to the first instruction; determining which stage of the pipeline stores the second result, and committing the first result directly from the determined stage over a forwarding path, before committing the second result. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
Specification