Processor Alias Queue Store Collision Detection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Out-of-order processors face inefficiencies due to speculative execution leading to memory violations and costly load instruction replays, as they struggle to accurately detect and prevent store collisions between load and store instructions.

Innovation Solution

A processor with a register alias table and reorder buffer that uses an alias queue to store and compare instruction pointers of colliding load and store instructions, providing dependency information to prevent subsequent memory violations by accurately identifying colliding instruction pairs.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If out-of-order speculative execution is used to improve processing throughput, then productivity increases, but memory violations and load instruction replays occur causing processing efficiency to deteriorate

Engineering Contradiction:
Improveprocessing throughputVSAvoidmemory access correctness
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system performs preliminary detection of store collisions by comparing instruction pointers against the alias queue before load instructions are executed. When a potential collision is detected, the load instruction is prevented from executing speculatively, avoiding memory violations and replays while maintaining out-of-order execution benefits.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The alias queue stores historical instruction pointer pairs from previous store collisions. The detection mechanism continuously monitors current instructions against this feedback information, dynamically adjusting execution decisions based on past collision patterns to prevent future memory violations.

Inventive Principle:
Principle #23Feedback

2Reliability

If store collision detection accuracy is improved to reduce memory violations, then reliability improves, but device complexity increases due to additional detection mechanisms

Engineering Contradiction:
Improvestore collision detection accuracyVSAvoiddetection mechanism complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

Instead of complex real-time analysis of instruction dependencies, the system uses instruction pointers as simplified copies/identifiers to represent instructions. These pointers are stored in the alias queue and compared against current instructions, providing accurate collision detection through simple pointer matching rather than complex dependency analysis.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The alias queue serves as an intermediary data structure between the store and load instruction streams. It mediates the collision detection process by storing historical instruction pointer pairs, allowing the system to detect collisions through simple comparisons rather than direct complex interaction between store and load execution paths.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Loss of time

If load instruction replays are prevented through accurate collision detection, then loss of time is reduced, but device complexity increases due to alias queue management

Engineering Contradiction:
Improveload instruction replay timeVSAvoidalias queue structure complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The alias queue stores simple instruction pointer values rather than complex instruction metadata. These pointers are lightweight, easy to compare, and can be quickly cleared or updated. The queue entries are short-lived, containing only the essential information needed for collision detection without maintaining complex state information.

Inventive Principle:
Principle #27Cheap short-living objects (Disposable)

Data Source

PatentUS10203957B2Processor with improved alias queue and store collision detection to reduce memory violations and load replays
Publication Date: 2019.02.12 VIA ALLIANCE SEMICON CO LTD
  • US10203957B2 patent drawing
  • US10203957B2 patent drawing
  • US10203957B2 patent drawing

AI summary

A register alias table for a processor including an alias queue, load and store comparators, and dependency logic. Each entry of the alias queue stores instruction pointers of a pair of colliding load and store instructions that caused a memory violation and a valid value. The store comparator compares the instruction pointer of a subsequent store instruction with those stored in the alias queue, and if a match occurs, indicates that a store index of the subsequent store instruction is valid. The load comparator determines whether the instruction pointer of a subsequent load instruction matches an instruction pointer stored in the alias queue. If so, dependency logic provides a store index, if valid, as dependency information for the subsequent load instruction.