Load-Hit-Store Hazard Prediction in Out-of-Order Processor Cores

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In pipelined processors supporting out-of-order execution, load-hit-store hazards lead to significant resource consumption and performance penalties due to repeated rejection and reissue of load instructions, especially in program loops.

Innovation Solution

A processor core with a load-hit-store detection table that predicts potential hazards by storing address information for store instructions and tagging subsequent load instructions, allowing them to be executed only after the corresponding store operation is completed, thereby reducing rejections and reissues.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If load-hit-store hazard detection is performed in the load-store unit, then hazards are detected, but load instructions are rejected and reissued multiple times consuming resources

Engineering Contradiction:
Improvehazard detection accuracyVSAvoidinstruction throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies preliminary action by performing load-hit-store hazard detection in the instruction dispatch unit before instructions are issued to execution units. The dispatch unit checks the load-hit-store detection table for potential hazards and tags load instructions in advance, preventing rejected reissues later in the pipeline and maintaining high throughput while ensuring reliable hazard detection.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If rejected load instructions are reissued, then correct execution order is maintained, but issue queue space is consumed and resources are wasted

Engineering Contradiction:
Improveinstruction execution correctnessVSAvoidissue queue space
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The dispatch unit performs preliminary hazard detection and tags load instructions before they enter the issue queue. By identifying potential load-hit-store hazards in advance and tagging them with the corresponding store instruction's ITAG, the system prevents incorrect reissues and optimizes issue queue space utilization while maintaining execution correctness.

Inventive Principle:
Principle #10Preliminary action

3Loss of time

If load instructions are tagged with dependency flags, then reissue operations are prevented, but first issue rejection and flushing of newer instructions still occurs

Engineering Contradiction:
Improvereissue preventionVSAvoidinitial instruction execution
Core Design Contradiction:
Loss of timeVSProductivity

Solution Approach 1:

The patent applies preliminary action by performing hazard detection and tagging at dispatch time rather than waiting for execution. The dispatch unit checks the load-hit-store detection table immediately when decoding instructions, tags load instructions with matching store ITAGs before issuance, and prevents the initial rejection and flushing that would otherwise occur, thereby eliminating time loss without sacrificing productivity.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10209995B2Processor core including pre-issue load-hit-store (LHS) hazard prediction to reduce rejection of load instructions
Publication Date: 2019.02.19 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10209995B2 patent drawing
  • US10209995B2 patent drawing
  • US10209995B2 patent drawing

AI summary

A processor core supporting out-of-order execution (OOE) includes load-hit-store (LHS) hazard prediction at the instruction execution phase, reducing load instruction rejections and queue flushes at the dispatch phase. The instruction dispatch unit (IDU) detects likely LHS hazards by generating entries for pending stores in a LHS detection table. The entries in the table contain an address field (generally the immediate field) of the store instruction and the register number of the store. The IDU compares the address field and register number for each load with entries in the table to determine if a likely LHS hazard exists and if an LHS hazard is detected, the load is dispatched to the issue queue of the load-store unit (LSU) with a tag corresponding to the matching store instruction, causing the LSU to dispatch the load only after the corresponding store has been dispatched for execution.