Parallel Instruction Fetch and Decode for Branch Stall Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern processors face challenges in consistently fetching and decoding instructions to keep back end units busy due to imperfect branch prediction and cache misses, leading to pipeline flushes and increased power consumption, especially with wider and deeper pipelines.

Innovation Solution

The processor fetches and decodes two in-order sequences of instructions concurrently, one being a reconvergent sequence based on control flow transfer operations, allowing parallel execution to improve pipeline utilization and reduce stalls.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the processor waits for condition evaluation to determine branch direction, then branch accuracy is improved, but instruction fetching and decoding speed deteriorates

Engineering Contradiction:
Improvebranch direction accuracyVSAvoidinstruction fetching and decoding speed
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

The processor performs preliminary fetching and decoding of instructions along multiple possible branch paths before the branch condition is evaluated. By preparing instruction sequences in advance for both taken and not-taken paths, the processor eliminates the need to wait for condition evaluation, thus maintaining high fetching speed while ensuring accurate branch direction is determined later for commit validation.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The processor dynamically switches between fetching/decoding instructions for different branch outcomes based on predicted branch direction. The fetch and decode units can adaptively change which instruction sequence they are processing, allowing the system to optimize for the most likely execution path while maintaining the capability to handle the actual outcome when the condition is evaluated.

Inventive Principle:
Principle #15Dynamics

2Productivity

If the processor uses wider and deeper pipelines to improve throughput, then instruction processing capacity is improved, but power consumption increases

Engineering Contradiction:
Improveinstruction processing capacityVSAvoidpower consumption
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The processor performs fetching and decoding operations partially in parallel for multiple branch outcomes, rather than fully executing all possible paths. This partial action allows the pipeline to remain busy and utilize its capacity efficiently, improving throughput, while avoiding the excessive power consumption that would result from fully committing all speculative paths.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

By maintaining multiple fetch and decode streams in parallel, the processor ensures continuous useful action in the pipeline even when branch outcomes are uncertain. This continuity keeps the wide and deep pipeline fully utilized, maximizing processing capacity while the parallel nature allows efficient resource sharing that mitigates power consumption increases.

Inventive Principle:
Principle #20Continuity of useful action

3Productivity

If the processor performs parallel fetch and decode of multiple instruction sequences, then pipeline utilization is improved, but device complexity increases

Engineering Contradiction:
Improvepipeline utilizationVSAvoidfetch and decode unit complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The processor segments the fetch and decode functionality into separate, independent units that can operate in parallel. Rather than one complex unified fetch-decode unit, the system uses multiple simpler segmented units that each handle specific instruction sequences, reducing the complexity of individual units while achieving high pipeline utilization through parallel operation.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The fetch and decode units are designed with multi-functionality to handle different types of instructions and branch outcomes. Each unit can universally process various instruction sequences, reducing the need for specialized dedicated hardware for each function, thus lowering overall device complexity while maintaining high pipeline utilization through flexible parallel operation.

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

Data Source

PatentEP4671975A1Processors, methods, and systems fetch and decode at least two in-order sequences of instructions in parallel
Publication Date: 2025.12.31 INTEL CORP
  • EP4671975A1 patent drawingFigure 1
  • EP4671975A1 patent drawingFigure 2
  • EP4671975A1 patent drawingFigure 3

AI summary

A processor of an aspect includes a front end unit. The front end unit is to fetch and decode in parallel a first in-order sequence of instructions and a second in-order sequence of instructions. The first in-order sequence of instructions occurs before the second in-order sequence of instructions in program order. The processor also includes a back end unit coupled with the front end unit. The back end unit is to execute decoded instructions provided from the front end unit. Other processors, methods, systems, and instructions are disclosed.