Processor Dispatch Queue Segmentation for Instruction Throughput

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In processor instruction pipelines, operations that require resources for a long time can stall, reducing performance by holding up subsequent operations in the dispatch queue, even if those subsequent operations have available resources.

Innovation Solution

Implementing a temporary queue (Store/Load Allocation Queue, SLAQ) to hold operations that lack necessary resources, allowing other operations behind them to proceed, thereby improving instruction throughput by releasing resources and enabling earlier execution of dependent operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If operations are held in the dispatch queue until resources are available, then resource availability is ensured, but processor performance deteriorates due to stalls in subsequent operations

Engineering Contradiction:
Improveresource availabilityVSAvoidprocessor performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The dispatch queue is segmented into two separate queues: a first queue for operations awaiting resource availability and a second queue for operations ready for immediate execution. This segmentation allows independent management of operations based on their resource readiness status, enabling subsequent operations to proceed without being blocked by operations that require long-term resource holding.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A temporary queue serves as an intermediary structure between the dispatch queue and execution units. Operations that require resources for extended periods are moved to this temporary queue, acting as a buffer that prevents them from blocking the dispatch queue. This intermediary mechanism decouples the resource allocation process from the instruction flow, allowing operations behind the held operation to be dispatched without delay.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If operations awaiting resources are held in the dispatch queue, then resource allocation control is maintained, but instruction throughput decreases due to prolonged stalling

Engineering Contradiction:
Improveresource allocation controlVSAvoidinstruction throughput
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The dispatch queue is divided into a first queue for operations awaiting resources and a second queue for operations ready for execution. This segmentation enables the system to maintain resource allocation control for operations in the first queue while simultaneously allowing high-throughput execution of operations in the second queue, thus resolving the contradiction between control and throughput.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Operations are preliminarily classified and routed to appropriate queues based on their resource readiness status before execution. By performing this preliminary sorting action, the system ensures that resource allocation control is applied only where necessary while preventing unnecessary stalls, thereby maintaining both control and high instruction throughput.

Inventive Principle:
Principle #10Preliminary action

3Device complexity

If a single queue is used for dispatch, then queue management is simplified, but resource bottlenecks cause stalls that reduce overall execution efficiency

Engineering Contradiction:
Improvequeue management complexityVSAvoidexecution efficiency
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The single dispatch queue is segmented into multiple specialized queues (first queue for resource-awaiting operations, second queue for ready operations). Although this increases structural complexity, it eliminates resource bottlenecks by allowing independent processing of operations in different queues, thereby significantly improving execution efficiency and preventing stalls.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The queue structure is made dynamic by allowing operations to be transferred between the first queue and second queue based on resource availability. This dynamic behavior enables the system to adapt to changing resource conditions, optimizing execution efficiency without requiring complex static reconfiguration, thus balancing complexity and performance.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS9817667B2Techniques for scheduling operations at an instruction pipeline
Publication Date: 2017.11.14 ADVANCED MICRO DEVICES INC
  • US9817667B2 patent drawing
  • US9817667B2 patent drawing
  • US9817667B2 patent drawing

AI summary

A dispatch stage of a processor core dispatches designated operations (e.g. load/store operations) to a temporary queue when the resources to execute the designated operations are not available. Once the resources become available to execute an operation at the temporary queue, the operation is transferred to a scheduler queue where it can be picked for execution. By dispatching the designated operations to the temporary queue, other operations behind the designated operations in a program order are made available for dispatch to the scheduler queue, thereby improving instruction throughput at the processor core.