Processor Pipeline Removal of Dependent Instructions

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

External memory accesses in processors can lead to stall conditions, particularly when subsequent instructions are dependent on the results of these accesses, which can hinder performance and reduce the benefits of multithreaded processing.

Innovation Solution

A processor implementation that stores an indication of external memory accesses in a data storage circuit, allowing dependent instructions to be removed from the execution pipeline, enabling non-dependent instructions from other threads to proceed, thereby maintaining in-order execution and reducing idle cycles.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the processor waits for external memory access to complete before executing subsequent dependent instructions, then instruction correctness is maintained, but processor performance deteriorates due to pipeline stalls

Engineering Contradiction:
Improveinstruction correctnessVSAvoidprocessor performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The processor speculatively executes subsequent instructions before the external memory access completes by predicting that the access will not be needed. If the prediction is correct, the instructions are already in the pipeline ready for execution. If the prediction is wrong, the instructions are simply discarded when the memory access completes, avoiding pipeline stalls while maintaining correctness.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The processor dynamically adjusts pipeline behavior based on memory access patterns and instruction dependencies. The system monitors whether subsequent instructions are dependent on external memory accesses and adaptively decides whether to stall or discard instructions, optimizing performance for different workload characteristics while ensuring correctness when dependencies exist.

Inventive Principle:
Principle #15Dynamics

2Productivity

If the processor discards subsequent dependent instructions to avoid stalls, then processor performance improves, but instruction correctness deteriorates

Engineering Contradiction:
Improveprocessor performanceVSAvoidinstruction correctness
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The processor implements feedback mechanisms that monitor memory access completion status and instruction dependency relationships. When an external memory access completes, the system checks whether any discarded instructions were actually dependent on the accessed data. This feedback loop ensures that instructions are only discarded when safe, maintaining correctness while enabling performance optimizations.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The processor introduces intermediary structures such as dependency tracking circuits and instruction validation mechanisms that mediate between the speculative instruction execution and the actual memory access results. These intermediaries verify whether discarded instructions were truly independent, providing a safety layer that prevents correctness errors while allowing aggressive performance optimizations.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If the processor stalls the execution pipeline during external memory access, then dependent instruction correctness is ensured, but multithreaded processing benefits are reduced

Engineering Contradiction:
Improvedependent instruction correctnessVSAvoidmultithreaded processing capability
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The processor segments the instruction stream into independent and dependent instruction groups. When an external memory access occurs, only instructions that are proven to be dependent on the access result are stalled or discarded, while independent instructions from the same or different threads continue execution. This segmentation allows selective pipeline management that preserves multithreaded benefits while ensuring dependent instruction correctness.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The processor changes the execution parameter of pipeline stages based on instruction dependency analysis. For independent instructions, the pipeline continues normal operation with full throughput. For dependent instructions, the pipeline applies stall or discard operations. This dynamic parameter adjustment enables the system to maintain multithreaded processing efficiency while ensuring correctness for dependent instructions.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS11656876B2Removal of dependent instructions from an execution pipeline
Publication Date: 2023.05.23 CADENCE DESIGN SYST INC
  • US11656876B2 patent drawing
  • US11656876B2 patent drawing
  • US11656876B2 patent drawing

AI summary

Techniques are disclosed relating to an apparatus, including a data storage circuit having a plurality of entries, and a load-store pipeline configured to allocate an entry in the data storage circuit in response to a determination that a first instruction includes an access to an external memory circuit. The apparatus further includes an execution pipeline configured to make a determination, while performing a second instruction and using the entry in the data storage circuit, that the second instruction uses a result of the first instruction, and cease performance of the second instruction in response to the determination.