← Back to Patent Explorer
US5799165A Expired / Lapsed US ⏱️ 0.0 years remaining

Out-of-order processing that removes an issued operation from an execution pipeline upon determining that the operation would cause a lengthy pipeline delay

Assignee: Advanced Micro Devices Inc
•
Filing: 1996-05-16
•
Granted: 1998-08-25
•
Expires: 2016-05-16
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A superscalar microprocessor includes a scheduler which contains storage for information related to operations and scan logic for selecting operations for out-of-order execution by a set of execution units. To provide fast operation, the selection is made without regard for the availability of operands which are required for execution of the operation but may be unavailable pending completion of an operation. An operand forward stage, which follows the issue stage, selects sources for an operand which may be a register file or a sourcing operation in the scheduler, completed or not. The scheduler contains all information describing the sourcing operations and forwards an operand value and information indicating the state of a sourcing operations. The state information indicates whether the sourcing operation is complete and execution of the issued operation can continue. The state also indicates a wait until the sourcing operation will complete. If the wait is too long, the issued operation is bumped so that another operation can be executed. This reduces pipeline hold ups and increase execution unit utilization.

Inventors

  • 👤 John G. Favor
  • 👤 Amos Ben-Meir

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-03 08:52
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/30; G06F9/38; G06F9/3802; G06F9/3812; G06F9/3836; G06F9/3838; G06F9/384; G06F9/3854; G06F9/3856; G06F9/3858

Claims Analysis

Total Claims: 30
Claim 1
Independent Claim 257 words
A method for out-of-order execution of operations, comprising: selecting a first operation for issue to an execution unit, wherein the first operation is first in program order of all operations that are eligible for selection during a first clock cycle and can be executed by the execution unit; advancing the first operation to a first stage of an execution pipeline for the execution unit, wherein during the first stage operands required for execution of the first operation are to be forwarded to the execution unit if the operands are available, and wherein being in the first stage makes the first operation ineligible for selection during a second clock cycle; selecting a second operation for issue to the execution unit, wherein the second operation is first in program order of all operations that are eligible for selection during the second clock cycle and can be executed by the execution unit; determining availability of operands for the first operation, wherein the availability of operands indicates whether forwarding operands to the first operation would require that the first operation remain in the first stage for more than a threshold time; removing the first operation from first stage if the first operation would be in the first stage for more than the threshold time, wherein removing the first operation from the first stage makes the first operation eligible for selection during a third clock cycle and makes the first stage available for another operation; and advancing the second operation to the first stage in response to the first operation being removed.
Claim 2
Independent Claim 257 words
A method for out-of-order execution of operations, comprising: selecting a first operation for issue to an execution unit, wherein the first operation is first in program order of all operations that are eligible for selection during a first clock cycle and can be executed by the execution unit; advancing the first operation to a first stage of an execution pipeline for the execution unit, wherein during the first stage operands required for execution of the first operation are to be forwarded to the execution unit if the operands are available, and wherein being in the first stage makes the first operation ineligible for selection during a second clock cycle; selecting a second operation for issue to the execution unit, wherein the second operation is first in program order of all operations that are eligible for selection during the second clock cycle and can be executed by the execution unit; determining availability of operands for the first operation, wherein the availability of operands indicates whether forwarding operands to the first operation would require that the first operation remain in the first stage for more than a threshold time; removing the first operation from first stage if the first operation would be in the first stage for more than the threshold time, wherein removing the first operation from the first stage makes the first operation eligible for selection during a third clock cycle and makes the first stage available for another operation; and advancing the second operation to the first stage in response to the first operation being removed.
Claim 3
Dependent Claim 13 words
The method of claim 1, wherein the threshold time is one clock cycle.
Claim 4
Dependent Claim 30 words
The method of claim 1, wherein the first operation precedes the second operation in program order and the method further comprises executing the second operation before executing the first operation.
Claim 5
Dependent Claim 43 words
The method of claim 1, wherein a scheduler that performs the steps of selecting the first operation and selecting the second operation, comprises a sequence of entries with each entry containing memory fields that store information concerning an operation associated with the entry.
Claim 6
Dependent Claim 103 words
The method of claim 4, wherein determining availability of operands for the first operation comprises: broadcasting from a first entry, associated with the first operation, a signal identifying an operand required for execution of the first operation; forwarding from a second entry, which is associated with a third operation that alters the operand and precedes the first operation in the program order, a state signal indicating an execution stage for the third operation; determining from the state signal a minimum time until execution of the third operation is complete thereby making the operand available; and comparing the minimum time to the threshold time.
Claim 7
Dependent Claim 13 words
The method of claim 5, wherein broadcasting occurs during the first clock cycle.
Claim 8
Dependent Claim 18 words
The method of claim 6, wherein the forwarding, determining, and comparing steps occur during the second clock cycle.
Claim 9
Dependent Claim 27 words
The method of claim 1, wherein the second clock cycle immediately follows the first clock cycle, and the third clock cycle immediately follows the second clock cycle.
Claim 10
Dependent Claim 16 words
The method of claim 1, further comprising executing the first operation with a second execution unit.
Claim 11
Dependent Claim 40 words
The method of claim 9, wherein the first operation precedes the second operation in program order and the method further comprises holding up the second operation if results from the first operation are required for completion of the second operation.
Claim 12
Dependent Claim 64 words
The method of claim 1, wherein determining whether availability of operands for the first operation comprises: identifying a third operation that is being executed to generate a first of the operands for the first operation; identifying a current stage of execution of the third operation; and determining from the current stage, a minimum time until the first operand is available for the first operation.
Claim 13
Dependent Claim 297 words
A computer system comprising: a memory subsystem which stores data and instructions; and a processor operably coupled to access the data and instructions stored in the memory subsystem, wherein the processor comprises: a scheduling reservoir containing information associated with operations; an execution unit that implements at least part of a pipeline for execution of operations; issue selection logic coupled to the scheduling reservoir and associated with the execution unit, wherein each clock cycle, the issue selection logic selects from the scheduling reservoir an entry associated with an operation that is first in program order of all operations that are associated with entries in the scheduling reservoirs can be executed by the execution unit and are eligible for selection during the clock cycle; operand selection logic coupled to the execution unit, wherein each clock cycle, the operand selection logic identifies sources of operands for an operation currently in a first stage of the pipeline; and logic for setting state fields of the entries in the scheduling reservoir, wherein in response an entry being selected by the issue selection logic and the pipeline not being held up, the logic changes a state field of the selected entry from a first state indicating an associated operation is eligible for selection to a second state indicating the associated operation is ineligible for selection thereby advancing the associated operation into the pipeline, and in response to determining that an operand required for an operation currently in the first stage will be unavailable for more than a threshold time, changes the state field of an entry associated with the operation currently in the first stage back to the first state thereby removing the operation from the pipeline, making the operation eligible for selection, and allowing another operation to advance to the first stage.
Claim 14
Dependent Claim 297 words
A computer system comprising: a memory subsystem which stores data and instructions; and a processor operably coupled to access the data and instructions stored in the memory subsystem, wherein the processor comprises: a scheduling reservoir containing information associated with operations; an execution unit that implements at least part of a pipeline for execution of operations; issue selection logic coupled to the scheduling reservoir and associated with the execution unit, wherein each clock cycle, the issue selection logic selects from the scheduling reservoir an entry associated with an operation that is first in program order of all operations that are associated with entries in the scheduling reservoirs can be executed by the execution unit and are eligible for selection during the clock cycle; operand selection logic coupled to the execution unit, wherein each clock cycle, the operand selection logic identifies sources of operands for an operation currently in a first stage of the pipeline; and logic for setting state fields of the entries in the scheduling reservoir, wherein in response an entry being selected by the issue selection logic and the pipeline not being held up, the logic changes a state field of the selected entry from a first state indicating an associated operation is eligible for selection to a second state indicating the associated operation is ineligible for selection thereby advancing the associated operation into the pipeline, and in response to determining that an operand required for an operation currently in the first stage will be unavailable for more than a threshold time, changes the state field of an entry associated with the operation currently in the first stage back to the first state thereby removing the operation from the pipeline, making the operation eligible for selection, and allowing another operation to advance to the first stage.
Claim 15
Dependent Claim 18 words
The computer system of claim 12, wherein the processor and the memory subsystem are components of a motherboard.
Claim 16
Dependent Claim 40 words
The computer system of claim 13, wherein the motherboard further comprises a backplane bus operably connected to the processor, and wherein the computer system further comprises one or more devices on cards connected to the motherboard via the backplane bus.
Claim 17
Dependent Claim 17 words
The computer system of claim 12, further comprising a parallel device interface operably coupled to the processor.
Claim 18
Dependent Claim 18 words
The computer system of claim 15, further comprising a printer connected to the processor via the parallel interface.
Claim 19
Dependent Claim 17 words
The computer system of claim 12, further comprising a serial device interface operably coupled to the processor.
Claim 20
Dependent Claim 18 words
The computer system of claim 17, further comprising a modem connected to the processor via the serial interface.
Claim 21
Dependent Claim 16 words
The computer system of claim 12, further comprising a graphics adapter operably coupled to the processor.
Claim 22
Dependent Claim 19 words
The computer system of claim 19, further comprising a video display connected to the processor via the graphics adapter.
Claim 23
Dependent Claim 18 words
The computer system of claim 12, further comprising a local area network adapter operably coupled to the processor.
Claim 24
Dependent Claim 20 words
The computer system of claim 21, further comprising a network of devices connected to the processor via the network adapter.
Claim 25
Dependent Claim 16 words
The computer system of claim 12, further comprising a disk controller operably coupled to the processor.
Claim 26
Dependent Claim 19 words
The computer system of claim 23, further comprising a hard disk connected to the processor via the disk controller.
Claim 27
Dependent Claim 19 words
The computer system of claim 23, further comprising a floppy disk connected to the processor via the disk controller.
Claim 28
Dependent Claim 273 words
A processor comprising: a scheduling reservoir containing information associated with operations; an execution unit that implements at least a part of a pipeline for execution of operations; issue selection logic coupled to the scheduling reservoir and associated with the execution unit, wherein each clock cycle, the issue selection logic selects from the scheduling reservoir an entry associated with an operation that is first in program order of all operations that are associated with entries in the scheduling reservoir, can be executed by the execution unit, and are eligible for selection during the clock cycle; operand selection logic coupled to the execution unit, wherein each clock cycle, the operand selection logic identifies sources of operands for an operation currently in a first stage of the pipeline; and logic for setting state fields of the entries in the scheduling reservoir, wherein in response an entry being selected by the issue selection logic and the pipeline not being held up, the logic changes a state field of the selected entry from a first state indicating an associated operation is eligible for selection to a second state indicating the associated operation is ineligible for selection thereby advancing the associated operation into the pipeline of the execution unit, and in response to determining that an operand required for an operation currently in the first stage will be unavailable for more than a threshold time, changes the state field of an entry associated with the operation currently in the first stage back to the first state thereby removing the operation from the pipeline, making the operation eligible for selection, and allowing another operation to advance to the first stage.
Claim 29
Dependent Claim 273 words
A processor comprising: a scheduling reservoir containing information associated with operations; an execution unit that implements at least a part of a pipeline for execution of operations; issue selection logic coupled to the scheduling reservoir and associated with the execution unit, wherein each clock cycle, the issue selection logic selects from the scheduling reservoir an entry associated with an operation that is first in program order of all operations that are associated with entries in the scheduling reservoir, can be executed by the execution unit, and are eligible for selection during the clock cycle; operand selection logic coupled to the execution unit, wherein each clock cycle, the operand selection logic identifies sources of operands for an operation currently in a first stage of the pipeline; and logic for setting state fields of the entries in the scheduling reservoir, wherein in response an entry being selected by the issue selection logic and the pipeline not being held up, the logic changes a state field of the selected entry from a first state indicating an associated operation is eligible for selection to a second state indicating the associated operation is ineligible for selection thereby advancing the associated operation into the pipeline of the execution unit, and in response to determining that an operand required for an operation currently in the first stage will be unavailable for more than a threshold time, changes the state field of an entry associated with the operation currently in the first stage back to the first state thereby removing the operation from the pipeline, making the operation eligible for selection, and allowing another operation to advance to the first stage.
Claim 30
Dependent Claim 40 words
The processor of claim 26, wherein changing the value in the state field of the selected entry from the first state to the second state advances the operation associated with the selected entry to the first stage of the pipeline.

References Cited (Backward Citations)

US5121488A Cited
US4891753A Cited
EP0357188A2 Cited
EP0396892A2 Cited
US5555384A Cited
US5150470A Cited
US5408658A Cited
US5497499A Cited
US5463745A Cited
US5519864A Cited
US5590352A Cited
US5555432A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2001-08-24 2002-02-23 2002-08-25 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2005-08-24 2006-02-23 2006-08-25 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2009-08-24 2010-02-23 2010-08-25 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag