Dual Issue Queue Out-of-Order Execution for Energy Efficiency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data processing systems that execute instructions out-of-order face challenges in managing dependencies, leading to high costs and energy consumption due to the need for extensive out-of-order hardware components, as many instructions ultimately execute in order and do not benefit from reordering.

Innovation Solution

A data processing apparatus that divides instructions into two subsets, where one subset is executed out-of-order using out-of-order components to remove false dependencies, and the other subset is constrained to execute in order, reducing the need for extensive out-of-order hardware by using a dual issue queue system and dependency management circuitry to handle true and false dependencies.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If out-of-order hardware components are used to execute instructions out of order, then instruction execution flexibility and performance are improved, but device complexity and energy consumption increase significantly

Engineering Contradiction:
Improveinstruction execution performanceVSAvoidout-of-order hardware complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the instruction stream into two subsets: instructions that can execute in-order and instructions that require out-of-order execution. This segmentation allows the system to apply complex out-of-order handling only where necessary, reducing overall hardware complexity while maintaining performance benefits for critical instructions.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies different execution qualities to different instruction subsets: in-order execution for simple instructions and out-of-order execution for instructions requiring flexibility. This local differentiation optimizes resource usage by avoiding uniform application of complex out-of-order hardware to all instructions.

Inventive Principle:
Principle #3Local quality

2Productivity

If the size of out-of-order hardware components is increased to improve performance, then the instruction window size increases, but energy consumption and cost increase

Engineering Contradiction:
Improveinstruction window sizeVSAvoidenergy consumption
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The patent divides instructions into two subsets with different execution requirements, allowing the system to maintain a smaller out-of-order hardware footprint while still providing adequate instruction window capacity for instructions that truly benefit from out-of-order execution.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies out-of-order execution capability partially, only to the subset of instructions that require it, rather than providing full out-of-order capability for all instructions. This partial application reduces hardware size and energy consumption while maintaining sufficient performance.

Inventive Principle:
Principle #16Partial or excessive action

3Adaptability or versatility

If all instructions are processed through out-of-order components, then execution flexibility is maximized, but energy is wasted on instructions that execute in order anyway

Engineering Contradiction:
Improveexecution flexibilityVSAvoidenergy waste
Core Design Contradiction:
Adaptability or versatilityVSLoss of energy

Solution Approach 1:

The patent segments instructions into those that benefit from out-of-order execution and those that do not, allowing the system to bypass complex out-of-order components for instructions that will execute in-order anyway, thereby eliminating energy waste while preserving execution flexibility where needed.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent enables instructions to self-identify their execution requirements through the in-order/out-of-order detector, allowing the system to automatically route instructions appropriately without wasting energy on unnecessary out-of-order processing for in-order instructions.

Inventive Principle:
Principle #25Self-service

4Productivity

If a single large issue queue is used to manage all instructions, then instruction window capacity is maximized, but device complexity and cost increase

Engineering Contradiction:
Improveinstruction window capacityVSAvoidissue queue complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent divides the issue queue into two separate queues: one for in-order instructions and one for out-of-order instructions. This segmentation reduces the complexity of each individual queue while maintaining the total instruction window capacity, as each queue can be optimized for its specific instruction type.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies different queue management characteristics to different instruction subsets, with the in-order queue using simpler management and the out-of-order queue using more complex management only where necessary. This local differentiation reduces overall device complexity while maintaining capacity.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS10649780B2Data processing apparatus and method for executing a stream of instructions out of order with respect to original program order
Publication Date: 2020.05.12 THE RGT UNIV OF MICHIGAN
  • US10649780B2 patent drawing
  • US10649780B2 patent drawing
  • US10649780B2 patent drawing

AI summary

A data processing apparatus and method are provided for executing a stream of instructions out-of-order with respect to original program order. At least some of the instructions in the stream identify one or more architectural registers from a set of architectural registers. The apparatus comprises a plurality of out-of-order components configured to manage execution of a first subset of instructions out-of-order, the plurality of out-of-order components being configured to remove false dependencies between instructions in the first subset. The plurality of out-of-order components include a first issue queue into which the instructions in the first subset are buffered prior to execution. A second issue queue is used to buffer a second subset of instructions prior to execution, the second subset of instructions being constrained to execute in order. Issue control circuitry is configured to reference both issue queues in order to determine an order of execution of instructions, and is configured to constrain the order of execution of the first subset of instructions by true dependencies between the instructions in both the first and second issue queues, and to constrain the order of execution of the second subset of instructions by both the true dependencies and the false dependencies between the instructions in both the first and second issue queues. This approach provides improved performance and/or reduced energy consumption.