Predictive Instruction Dispatch Throttling for OOP Resource Overflow

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Out-of-order processors (OOPs) face resource overflows due to the decoupling of system resources from the dispatch and resource-freeing stages, leading to potential deadlocks and performance impacts, as there is no mechanism to communicate occupancy status in time to prevent overflows.

Innovation Solution

Implementing predictive instruction dispatch throttling by maintaining a running count of pending instructions and a resource usage threshold, where the decode stage extracts a proxy value indicating the number of instructions consuming a system resource, and the dispatch stage blocks younger instructions if the count exceeds the threshold, ensuring the system resource is not overloaded.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the system resource is provisioned to be large to prevent resource overflows, then the reliability of the processor is improved, but the power consumption and physical space requirements increase prohibitively

Engineering Contradiction:
Improveresource overflow preventionVSAvoidpower consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The decode stage performs preliminary action by extracting the proxy value and updating the running count before instructions are dispatched. This advance prediction and counting prevents resource overflows before they occur, eliminating the need for oversized resources while maintaining reliability.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The mechanism establishes feedback by having the dispatch stage monitor the running count (updated by decode stage) and throttle dispatching of younger instructions when the resource usage threshold is approached. This closed-loop control prevents resource overflows without requiring excessive resource provisioning.

Inventive Principle:
Principle #23Feedback

2Use of energy by moving object

If the system resource is provisioned to be adequate for most use cases, then the power consumption and physical space are reduced, but the processor may stall or experience deadlocks when the resource temporarily becomes fully occupied

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

Solution Approach 1:

The decode stage extracts proxy values and updates the running count in advance before dispatching instructions. This preliminary prediction allows the dispatch stage to proactively throttle younger instructions when the resource threshold is approached, preventing stalls and deadlocks while maintaining adequate resource sizing.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system dynamically adjusts the effective resource capacity by throttling dispatch based on the running count and resource usage threshold. This dynamic control allows the same physical resource to handle varying workloads without stalling, optimizing both resource utilization and throughput.

Inventive Principle:
Principle #15Dynamics

3Reliability

If the processor stalls instruction processing when the system resource becomes fully occupied, then the resource overflow is prevented, but the forward progress of older instructions is blocked causing deadlocks

Engineering Contradiction:
Improveresource overflow preventionVSAvoidinstruction processing delay
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The decode stage performs preliminary counting of pending instructions and updates the running count before dispatching. This advance prediction allows the dispatch stage to throttle younger instructions proactively, preventing resource overflows before they cause deadlocks and eliminating the need for reactive stalling.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The mechanism creates feedback where the dispatch stage monitors the running count (maintained by decode stage) and adjusts dispatching behavior accordingly. This closed-loop control prevents resource overflows proactively, avoiding the time loss associated with reactive stalling and deadlock prevention.

Inventive Principle:
Principle #23Feedback

4Reliability

If a communication path is provided between the system resource and dispatch stage to provide occupancy feedback, then the ability to prevent resource overflows is improved, but the relevant information is only available after instructions have already been dispatched

Engineering Contradiction:
Improveresource overflow preventionVSAvoiddispatch timing delay
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The decode stage performs preliminary action by extracting proxy values and updating the running count before instructions are dispatched. This advance prediction provides occupancy information to the dispatch stage proactively, eliminating the time delay associated with reactive feedback mechanisms.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The running count maintained by the decode stage acts as an intermediary that predicts future resource occupancy without requiring direct communication with the system resource. This intermediary mechanism provides timely dispatch information before instructions are dispatched, eliminating feedback delays.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentEP3857356B1Providing predictive instruction dispatch throttling to prevent resource overflows in out-of-order processor (OOP)-based devices
Publication Date: 2022.10.19 QUALCOMM INC
  • EP3857356B1 patent drawingFigure 1
  • EP3857356B1 patent drawingFigure 2A
  • EP3857356B1 patent drawingFigure 2B

AI summary

Providing predictive instruction dispatch throttling to prevent resource overflow in out-of-order processor (OOP)-based devices is disclosed. In this regard, an OOP-based device includes a system resource that may be consumed or otherwise occupied by instructions, as well as an execution pipeline comprising a decode stage and a dispatch stage. The OOP further maintains a running count and a resource usage threshold. Upon receiving an instruction block, the decode stage extracts a proxy value that indicates an approximate predicted count of instructions within the instruction block that will consume a system resource. The decode stage then increments the running count by the proxy value. The dispatch stage compares the running count to the resource usage threshold before dispatching any younger instruction blocks. If the running count exceeds the resource usage threshold, the dispatch stage blocks dispatching of younger instruction blocks until the running count no longer exceeds the resource usage threshold.