Memory Dependence Prediction Circuit for Block-Atomic Dataflow

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In block-atomic dataflow architectures, efficient memory dependence prediction is challenging due to the lack of guaranteed instruction execution order, making it difficult to determine dependencies between load and store instructions, leading to potential memory dependence violations and processor stalls.

Innovation Solution

A memory dependence prediction circuit is introduced, utilizing a predictor table to track memory dependence violations, identifying store instructions with dependent load instructions, and delaying their execution to prevent violations, with a marker table and delay buffer coordinating the execution pipeline.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If out-of-order execution is implemented to improve processor performance, then productivity increases, but memory dependence violations occur due to unpredictable instruction execution order

Engineering Contradiction:
Improveprocessor performanceVSAvoidmemory dependence correctness
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent applies preliminary action by predicting memory dependencies between load and store instructions before execution occurs. The system identifies potential dependence violations in advance and prepares mitigation strategies, such as inserting serializing barriers or reordering instructions, to prevent violations before they compromise reliability.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements feedback mechanisms where the processor monitors actual instruction execution order and memory access patterns, then uses this information to refine its predictions of future memory dependencies. This feedback loop enables the system to adapt to out-of-order execution dynamics and improve both reliability and productivity over time.

Inventive Principle:
Principle #23Feedback

2Adaptability or versatility

If block-atomic dataflow architecture is used to enable flexible instruction execution, then adaptability improves, but memory dependence prediction becomes difficult due to lack of strict ordering

Engineering Contradiction:
Improveinstruction execution flexibilityVSAvoidmemory dependence detection
Core Design Contradiction:
Adaptability or versatilityVSDifficulty of detecting and measuring

Solution Approach 1:

The patent introduces intermediary structures such as prediction tables and dependency tracking buffers that mediate between the flexible block-atomic dataflow execution and the requirement for memory dependence prediction. These intermediaries capture and organize dependency information despite the lack of strict ordering, enabling the prediction mechanism to function effectively in the adaptive architecture.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If load and store instructions are buffered until block completion to maintain atomicity, then reliability improves, but processor stalls occur due to delayed instruction execution

Engineering Contradiction:
Improveblock atomicityVSAvoidexecution delay
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent applies partial action by selectively buffering only those load and store instructions that have predicted memory dependencies, rather than buffering all instructions in the block until completion. Instructions without predicted dependencies can proceed earlier, reducing unnecessary delays while maintaining reliability for dependent instructions through targeted buffering and serializing barriers.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS10684859B2Providing memory dependence prediction in block-atomic dataflow architectures
Publication Date: 2020.06.16 QUALCOMM INC
  • US10684859B2 patent drawing
  • US10684859B2 patent drawing
  • US10684859B2 patent drawing

AI summary

Providing memory dependence prediction in block-atomic dataflow architectures is provided, in one aspect, la a memory dependence prediction circuit. The memory dependence prediction circuit comprises a predictor table configured to store multiple predictor table entries, each comprising a store instruction identifier, a block reach set, and a load set. Using this data, the memory dependence prediction circuit determines, upon a fetch of an instruction block by an execution pipeline, whether the instruction block contains store instructions that reach dependent load instructions. If so, the store instructions are marked as having dependent load instructions to wake. In some aspects, the memory dependence prediction circuit is configured to determine whether the instruction block contains dependent load instructions reached by store instructions. If so, the memory dependence prediction circuit delays execution of the dependent load instructions.