Load-Store Collision Detection in Speculative Out-of-Order Engines

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In speculative out-of-order processing engines, load-store collisions lead to pipeline flushing and re-dispatching of instructions, resulting in significant performance penalties due to incorrect speculative dispatch of load and store instructions.

Innovation Solution

A load-store collision detection system that includes a load pipeline, scheduler, and load-store queue, which compares load instruction virtual addresses with store instruction virtual addresses to assert a clear signal when a match occurs, preventing premature dispatch of dependent instructions and minimizing pipeline flushing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If load and store instructions are speculatively dispatched without address collision detection, then instruction dispatch throughput is improved, but pipeline flushing and re-dispatch penalties increase when collisions occur

Engineering Contradiction:
Improveinstruction dispatch throughputVSAvoidpipeline flushing penalty
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by detecting potential load-store address collisions before the load instruction completes execution. The load-store queue compares the load instruction's virtual address with store instruction virtual addresses early in the pipeline, allowing the system to preemptively invalidate speculatively dispatched load instructions and prevent pipeline flushing that would occur if collisions were detected later.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If load-store collision detection is implemented, then pipeline flushing is reduced, but device complexity increases due to additional queue and comparison logic

Engineering Contradiction:
Improvespeculative dispatch accuracyVSAvoidload-store queue structure
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The load-store queue serves multiple functions: it stores virtual addresses of in-flight store instructions, performs address collision detection with load instructions, and provides invalidation signals to the scheduler. This multi-functionality reduces the need for separate dedicated components for each function, thereby mitigating the increase in device complexity while improving speculative dispatch accuracy.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Device complexity

If load instructions are validated only at execution stage, then scheduler simplicity is maintained, but premature dispatch of dependent instructions occurs causing performance penalties

Engineering Contradiction:
Improvescheduler structureVSAvoidinstruction execution efficiency
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent implements feedback by having the load-store queue continuously monitor and compare addresses, then provide invalidation signals back to the scheduler when potential collisions are detected. This feedback mechanism allows the scheduler to adjust its dispatch decisions in real-time, preventing premature dispatch of dependent instructions while maintaining relatively simple scheduler structure.

Inventive Principle:
Principle #23Feedback

Data Source

PatentEP3091433B1System and method to reduce load-store collision penalty in speculative out of order engine
Publication Date: 2022.08.24 VIA ALLIANCE SEMICON CO LTD
  • EP3091433B1 patent drawingFigure 1
  • EP3091433B1 patent drawingFigure 2~3
  • EP3091433B1 patent drawingFigure 4~5

AI summary

A load-store collision detection system for a speculative out of order processing engine which includes a scheduler that dispatches instructions to multiple instruction pipelines. The instruction pipelines include a load pipeline that provides a load valid signal when a speculatively dispatched load instruction is executing. The load-store collision detection system includes comparator logic, broadcast logic, and kill logic. The comparator logic asserts a clear signal when a virtual address of the speculatively dispatched load instruction matches at least one store instruction virtual address of a previously dispatched store instruction whose corresponding store data is not ready yet. The broadcast logic broadcasts the load valid signal to the scheduler to enable dispatch of any instructions dependent upon the speculatively dispatched load instruction. The kill logic invalidates the load valid signal when the clear signal is asserted to avoid a load-store collision that reduces processing performance.