Load Instruction Queue Buffer Allocation via Pipeline Hazard Prediction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional processor systems face memory order violations and instruction pipeline hazards due to out-of-order execution, leading to inefficiencies and inaccuracies in processing load and store instructions.

Innovation Solution

A system comprising a prediction component and an execution component that predicts whether a load instruction is associated with an instruction pipeline hazard, allowing the load instruction to be allocated to a queue buffer only if it is not predicted to cause a hazard, and deferring allocation until a memory address is calculated, thereby minimizing memory order violations and reducing buffer size.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If out-of-order execution is implemented to increase processor throughput, then processing efficiency is improved, but memory order violations and instruction pipeline hazards occur

Engineering Contradiction:
Improveprocessor throughputVSAvoidmemory order accuracy
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent applies preliminary action by allocating load instructions to a queue buffer before execution, based on prediction of potential hazards. This advance allocation and tracking allows the system to detect and resolve memory order violations before they affect execution correctness, enabling out-of-order execution while maintaining reliability.

Inventive Principle:
Principle #10Preliminary action

2Speed

If load instructions are allocated to queue buffer without prediction, then processing speed is improved, but memory order violations increase

Engineering Contradiction:
Improveinstruction processing speedVSAvoidmemory ordering accuracy
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The system performs preliminary prediction of instruction pipeline hazards before allocating load instructions to the queue buffer. This advance assessment allows safe allocation of instructions that are unlikely to cause hazards while identifying those that need special handling, thus maintaining both speed and reliability.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements feedback by continuously monitoring allocated instructions in the queue buffer for potential memory order violations. When hazards are detected, the system adjusts allocation decisions for subsequent instructions, creating a closed-loop control that maintains memory ordering accuracy while maximizing processing throughput.

Inventive Principle:
Principle #23Feedback

3Reliability

If conventional hazard detection is used after violation occurs, then accuracy is maintained, but processing efficiency decreases due to re-execution

Engineering Contradiction:
Improvedata accuracyVSAvoidinstruction execution efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent shifts hazard detection to a preliminary stage by predicting potential instruction pipeline hazards before instructions are fully executed. This proactive approach identifies problematic instructions early, allowing for preventive measures rather than reactive re-execution, thus maintaining accuracy while improving efficiency.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system provides beforehand cushioning by maintaining a queue buffer that tracks allocated load instructions and their associated hazards. This buffer acts as a cushion that absorbs potential errors by detecting and isolating problematic instructions before they can cause incorrect data, preventing the need for costly re-execution.

Inventive Principle:
Principle #11Beforehand cushioning (Prior cushioning)

Data Source

PatentUS9880849B2Allocation of load instruction(s) to a queue buffer in a processor system based on prediction of an instruction pipeline hazard
Publication Date: 2018.01.30 AMPERE COMPUTING LLC
  • US9880849B2 patent drawing
  • US9880849B2 patent drawing
  • US9880849B2 patent drawing

AI summary

Various aspects provide for detecting ordering violations in a memory system. A system includes a prediction component and an execution component. The prediction component predicts whether a load instruction in the system is associated with an instruction pipeline hazard. The execution component allocates the load instruction to a queue buffer in the system in response to a prediction that the load instruction is not associated with the instruction pipeline hazard.