Separate Alias Queues for Store Data and Address Dependency Prediction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Out-of-order processors experience memory violations and load misses due to the out-of-order execution of load and store instructions, where the store instruction modifies data affecting subsequent load operations, leading to instruction replay and memory violations, which existing solutions fail to accurately predict and prevent effectively.

Innovation Solution

A processor circuit with a first and second alias queue module and a pattern detection module that records and matches next sequential instruction pointer values for store data and store address instructions to determine dependencies, ensuring that load instructions are executed after their corresponding store instructions, thereby reducing load misses and memory violations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If out-of-order execution is used to improve processor performance, then execution speed is improved, but memory violations and load misses occur due to incorrect execution order

Engineering Contradiction:
Improveprocessor execution speedVSAvoidmemory access correctness
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The patent applies preliminary action by recording the program order of load and store instructions in advance using alias queue modules before out-of-order execution occurs. The system captures the original sequential execution order and uses it to guide the reordering process, ensuring that load instructions only execute after their dependent store instructions have completed, thus preventing memory violations while maintaining performance benefits

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements feedback through a pattern detection module that continuously monitors executed instructions and updates dependency patterns. When a load instruction executes, the system checks against recorded patterns to determine if any pending store instructions should block its execution. This feedback loop ensures correct memory access ordering while allowing maximum out-of-order execution, resolving the contradiction between speed and reliability

Inventive Principle:
Principle #23Feedback

2Measurement precision

If alias queue modules record Nsip values for both StD and StA instructions separately, then prediction accuracy is improved, but device complexity increases

Engineering Contradiction:
Improvedependency prediction accuracyVSAvoidalias queue structure complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent applies segmentation by dividing the alias queue into separate modules: one dedicated to recording store data (StD) instruction patterns and another for store address (StA) instruction patterns. Each module independently tracks Nsip values for its specific instruction type, allowing the system to accurately distinguish between data dependencies and address dependencies. This segmentation improves prediction accuracy by preventing confusion between different dependency types while keeping each module's structure simple and manageable

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10747542B2Load store dependency predictor using separate alias tables for store address instructions and store data instructions
Publication Date: 2020.08.18 VIA ALLIANCE SEMICON CO LTD
  • US10747542B2 patent drawing
  • US10747542B2 patent drawing
  • US10747542B2 patent drawing

AI summary

A processor circuit and an operation method thereof are provided. The processor circuit includes a first alias queue module, a second alias queue module, and a pattern detection module. The pattern detection module is coupled to the first alias queue module and the second alias queue module. When a next sequential instruction pointer value of a store data instruction of the first alias queue module is matched, and a next sequential instruction pointer value of a store address instruction of the second alias queue module is matched, the pattern detection module determines that the load instruction depends on the store data instruction or the store address instruction according to a pattern value corresponding to the store data instruction.