Selective Instruction Pipeline Flush Controller for Processor Interrupts

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Instruction pipelining in processors faces performance penalties due to structural hazards like branch mispredictions, which increase with pipeline depth and require costly multi-path execution, leading to delays and reduced performance.

Innovation Solution

A selective instruction pipeline flush controller determines if the correct target address is present in the pipeline after a precise interrupt, allowing selective flushing of instructions back to that address, reducing the need for full pipeline refetching and minimizing performance penalties.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a deeper instruction pipeline is used to increase frequency scaling and performance, then processor throughput is improved, but the penalty from structural hazards increases

Engineering Contradiction:
Improveprocessor throughputVSAvoidhazard detection delay
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by checking whether the target address of a mispredicted branch is already present in the instruction pipeline before initiating a full flush. This advance check allows the system to prepare for potential hazards and take corrective action only when necessary, avoiding unnecessary pipeline stalls and maintaining higher throughput despite deeper pipeline depth.

Inventive Principle:
Principle #10Preliminary action

2Speed

If a deeper instruction pipeline is used, then frequency scaling is improved, but the number of instructions needing refetch after hazard increases

Engineering Contradiction:
Improvefrequency scalingVSAvoidinstruction refetch quantity
Core Design Contradiction:
SpeedVSLoss of substance

Solution Approach 1:

The patent extracts only the necessary portion of the pipeline for flushing by identifying the specific location where the target address exists and flushing only up to that point. This selective extraction approach minimizes the number of instructions that need to be refetched while still resolving the structural hazard, thereby reducing the loss of instructional work despite operating at higher frequencies with deeper pipelines.

Inventive Principle:
Principle #2Taking out (Extraction)

3Productivity

If multi-path execute is implemented to handle branch mispredictions, then performance is maintained, but device complexity increases

Engineering Contradiction:
Improveperformance maintenanceVSAvoidexecution path management
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent applies partial action by implementing a selective flushing mechanism that activates only when a branch misprediction occurs and the target address is not already in the pipeline. Instead of maintaining all possible execution paths simultaneously (excessive action), the system takes a partial approach by flushing only the necessary instructions, thereby maintaining performance with reduced complexity compared to full multi-path execution.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS10255074B2Selective flushing of instructions in an instruction pipeline in a processor back to an execution-resolved target address, in response to a precise interrupt
Publication Date: 2019.04.09 QUALCOMM INC
  • US10255074B2 patent drawing
  • US10255074B2 patent drawing
  • US10255074B2 patent drawing

AI summary

Selective flushing of instructions in an instruction pipeline in a processor back to an execution-determined target address in response to a precise interrupt is disclosed. A selective instruction pipeline flush controller determines if a precise interrupt has occurred for an executed instruction in the instruction pipeline. The selective instruction pipeline flush controller determines if an instruction at the correct resolved target address of the instruction that caused the precise interrupt is contained in the instruction pipeline. If so, the selective instruction pipeline flush controller can selectively flush instructions back to the instruction in the pipeline that contains the correct resolved target address to reduce the amount of new instruction fetching. In this manner, as an example, the performance penalty of precise interrupts can be lessened through less instruction refetching and reduced delay in instruction pipeline refilling when the instruction containing the correct target address is already contained in the pipeline.