Out-of-Order Execution Hazard Restart Point Encoding

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Data processing apparatuses with out-of-order execution of instructions face challenges in managing data hazards, particularly Read After Write (RAW) hazards, which can lead to increased latency and power consumption due to unnecessary flushing of data values associated with validly executed instructions.

Innovation Solution

The apparatus includes decode circuitry that identifies potential hazard instructions and encodes information about a clean restart point into control signals, allowing for selective flushing of data values only after a RAW hazard is detected, thereby reducing latency and power consumption by restarting execution from the clean restart point without re-executing unnecessary instructions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If out-of-order execution is implemented to improve processing throughput, then productivity increases, but data hazards occur causing execution errors

Engineering Contradiction:
Improveinstruction throughputVSAvoiddata hazard prevention
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The decode circuitry performs preliminary analysis of the instruction block to identify potential hazard instructions before execution. It encodes clean restart point information into control signals in advance, so that when a data hazard is detected during execution, the system can immediately restart from the pre-calculated clean point without extensive flushing, thus maintaining both high throughput and reliability

Inventive Principle:
Principle #10Preliminary action

2Reliability

If data flushing is performed upon hazard detection to ensure correctness, then reliability is maintained, but latency increases due to re-execution of valid instructions

Engineering Contradiction:
Improvedata correctnessVSAvoidexecution latency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

Instead of flushing all data values uniformly when a hazard is detected, the system uses the encoded clean restart point information to selectively flush only the data values associated with instructions after that point. This localized flushing approach maintains data correctness for affected instructions while preserving valid data from earlier instructions, thereby reducing unnecessary re-execution and latency

Inventive Principle:
Principle #3Local quality

3Reliability

If comprehensive data flushing is performed to handle all potential hazards, then data correctness is ensured, but power consumption increases due to re-execution of instructions

Engineering Contradiction:
Improveoperand correctnessVSAvoidpower consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The system applies local quality by selectively flushing only the subset of data values that are actually affected by the detected data hazard, as determined by the clean restart point encoding. This prevents unnecessary re-execution of instructions whose data remains valid, thereby reducing power consumption while maintaining operand correctness for the affected instructions

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS11762664B2Determining a restart point in out-of-order execution
Publication Date: 2023.09.19 ARM LTD
  • US11762664B2 patent drawing
  • US11762664B2 patent drawing
  • US11762664B2 patent drawing

AI summary

There is provided a data processing apparatus comprising decode circuitry responsive to receipt of a block of instructions to generate control signals indicative of each of the block of instructions, and to analyse the block of instructions to detect a potential hazard instruction. The data processing apparatus is provided with decode circuitry to encode information indicative of a clean restart point into the control signals associated with the potential hazard instruction. The data processing apparatus is provided with data processing circuity to perform out-of-order execution of at least some of the block of instructions, and control circuitry responsive to a determination, at execution of the potential hazard instruction, that data values used as operands for the potential hazard instruction have been modified by out-of-order execution of a subsequent instruction, to restart execution from the clean restart point and to flush held data values from the data processing circuitry.