Fetch Queue Flushing via Post-Fetch Correction Circuitry

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Control flow prediction in data processing is limited by the inaccuracy of control flow detection prediction circuitry, leading to potential pipeline flushes and performance degradation due to incorrect predictions about the presence and type of control flow instructions.

Innovation Solution

A data processing apparatus and method that includes control flow detection prediction circuitry, a fetch queue, an instruction cache, and post-fetch correction circuitry, which performs initial decoding and analysis to quickly flush the fetch queue based on the type and prediction information of fetched instructions, reducing the need for full pipeline flushes and maintaining bandwidth.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If control flow prediction circuitry is used to maintain pipeline bandwidth, then instruction fetching continues without waiting for branch resolution, but prediction inaccuracies cause pipeline flushes and performance degradation

Engineering Contradiction:
Improvepipeline bandwidthVSAvoidprediction accuracy
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent performs preliminary decoding of fetched instructions before full decode to early detect control flow instructions. This preliminary action allows the system to identify mispredictions sooner in the pipeline, enabling earlier corrective flushes and reducing the impact on overall pipeline bandwidth and performance.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system implements feedback by comparing prediction information with actual instruction types detected through preliminary decoding. When discrepancies are found (e.g., predicted no control flow but actual control flow instruction present), the system triggers corrective actions including selective flushes of the fetch queue, ensuring prediction accuracy is maintained while minimizing bandwidth loss.

Inventive Principle:
Principle #23Feedback

2Reliability

If full pipeline flushes are performed on prediction errors, then correctness is maintained, but processor cycles are wasted and performance degrades

Engineering Contradiction:
Improveinstruction correctnessVSAvoidprocessor cycles
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent segments the flush operation by selectively flushing only the portion of the fetch queue containing incorrectly fetched instructions rather than performing a complete pipeline flush. This segmentation is achieved by identifying the specific instruction causing the misprediction and flushing only subsequent instructions, thereby maintaining correctness while minimizing processor cycle loss.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system applies partial action by performing only the necessary flush operation required to correct the misprediction. Instead of excessive full pipeline flushes, the system flushes only the minimal required portion of the fetch queue, reducing wasted processor cycles while still ensuring instruction correctness.

Inventive Principle:
Principle #16Partial or excessive action

3Productivity

If fetch queue is flushed based on prediction information, then bandwidth is maintained by avoiding full pipeline flushes, but incorrect predictions may cause premature flushes

Engineering Contradiction:
Improveinstruction fetching bandwidthVSAvoidprediction verification accuracy
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

The system performs preliminary decoding as an intermediate verification step between fetching and full decoding. This preliminary action verifies prediction accuracy by checking actual instruction types against predictions before committing to flush decisions, reducing premature flushes caused by incorrect predictions while maintaining fetching bandwidth.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

Feedback mechanisms compare prediction information with actual decoded instruction types to verify prediction accuracy. This feedback loop prevents premature flushes by confirming whether predictions were correct before initiating corrective actions, thereby maintaining both bandwidth and measurement precision.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS11599361B2Flushing a fetch queue using predecode circuitry and prediction information
Publication Date: 2023.03.07 ARM LTD
  • US11599361B2 patent drawing
  • US11599361B2 patent drawing
  • US11599361B2 patent drawing

AI summary

A data processing apparatus is provided. It includes control flow detection prediction circuitry that performs a presence prediction of whether a block of instructions contains a control flow instruction. A fetch queue stores, in association with prediction information, a queue of indications of the instructions and the prediction information comprises the presence prediction. An instruction cache stores fetched instructions that have been fetched according to the fetch queue. Post-fetch correction circuitry receives the fetched instructions prior to the fetched instructions being received by decode circuitry, the post-fetch correction circuitry includes analysis circuitry that causes the fetch queue to be at least partly flushed in dependence on a type of a given fetched instruction and the prediction information associated with the given fetched instruction.