Program Order Queue for Multi-Queue Processor Dependency Management

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Processor architectures face challenges in managing instruction dependencies efficiently, leading to power inefficiencies in out-of-order processors and limited execution throughput in in-order processors, particularly due to the need for complex register renaming and dependency analysis logic.

Innovation Solution

The implementation of a program order queue (POQ) data structure that tracks the program order of instructions across multiple queues, allowing for eager instruction dispatch while preserving dependency integrity without the need for register renaming or power-hungry comparison logic, thereby enabling efficient handling of write-after-write, read-after-write, and read-after-read dependencies.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If out-of-order processor architecture is used to improve execution throughput, then instruction level parallelism increases, but power consumption increases significantly

Engineering Contradiction:
Improveexecution throughputVSAvoidpower consumption
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The processor architecture segments instruction queues into multiple independent queues (e.g., queue 0, queue 1, etc.), each capable of independent operation. This segmentation allows the system to achieve out-of-order execution benefits while maintaining simpler, more power-efficient control logic within each queue, avoiding the need for complex global dependency management.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A program order queue (POQ) is introduced as an intermediary data structure to track instruction dependencies and program order information. The POQ acts as a mediator between multiple independent instruction queues and the execution units, enabling dependency management without requiring complex register renaming or comparison logic in each queue, thus reducing overall power consumption.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Use of energy by moving object

If in-order processor architecture is used to maintain power efficiency, then power consumption is reduced, but execution throughput decreases

Engineering Contradiction:
Improvepower efficiencyVSAvoidexecution throughput
Core Design Contradiction:
Use of energy by moving objectVSProductivity

Solution Approach 1:

The processor implements dynamic instruction queue selection where the dispatcher can choose from multiple instruction queues based on readiness conditions and dependency status. This dynamic approach allows the system to maintain in-order execution within each queue (preserving power efficiency) while achieving out-of-order execution across queues (improving throughput), adapting to runtime conditions without complex global coordination.

Inventive Principle:
Principle #15Dynamics

3Adaptability or versatility

If register renaming logic is implemented to manage instruction dependencies, then dependency handling capability improves, but device complexity increases

Engineering Contradiction:
Improvedependency handling capabilityVSAvoidregister renaming logic complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

Instead of implementing complex register renaming logic that creates and manages multiple renamed register versions, the system uses a program order queue that copies and tracks program order information and dependency relationships. This copying approach maintains dependency handling capability while avoiding the complexity of full register renaming infrastructure, including rename tables and allocation logic.

Inventive Principle:
Principle #26Copying

4Measurement precision

If content addressable memory-based schedulers are used to manage instruction dispatch, then instruction scheduling accuracy improves, but power consumption increases

Engineering Contradiction:
Improveinstruction scheduling accuracyVSAvoidpower consumption
Core Design Contradiction:
Measurement precisionVSUse of energy by moving object

Solution Approach 1:

The system replaces expensive content addressable memory (CAM) structures with simpler, disposable data structures in the program order queue that track instruction state and dependencies. These simpler structures are updated and discarded as instructions progress through execution, providing sufficient scheduling accuracy without the high power consumption associated with CAM-based schedulers that require continuous maintenance of large lookup tables.

Inventive Principle:
Principle #27Cheap short-living objects (Disposable)

Data Source

PatentEP3716056B1Apparatus and method for program order queue (POQ) to manage data dependencies in processor having multiple instruction queues
Publication Date: 2022.12.21 INTEL CORP
  • EP3716056B1 patent drawingFigure 1A
  • EP3716056B1 patent drawingFigure 1B
  • EP3716056B1 patent drawingFigure 2A~2B

AI summary

In one embodiment, an apparatus includes: a plurality of registers; a first instruction queue to store first instructions; a second instruction queue to store second instructions; a program order queue having a plurality of portions each associated with one of the plurality of registers, each of the portions having entries to store a state of an instruction, the state comprising an encoding of a use of the register by the instruction and a source instruction queue for the instruction; and a dispatcher to dispatch for execution the first and second instructions from the first and second instruction queues based at least in part on information stored in the program order queue, to manage instruction dependencies between the first instructions and the second instructions. Other embodiments are described and claimed.