Branch Prediction Circuitry for Non-Contiguous Blocks

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional branch prediction methods often result in bandwidth wastage due to the assumption that the next block to be executed follows the current block, leading to unnecessary flushes when a branch occurs in the current block, thereby reducing the effective bandwidth of the predictor.

Innovation Solution

The proposed solution involves an apparatus and method that perform simultaneous branch predictions on non-contiguous blocks, using branch sequence circuitry to guide the predictions based on the most recently encountered block, which may contain a predicted taken branch, and updating a lookup table with confidence levels to improve prediction accuracy and reduce flushes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If branch prediction is performed on contiguous blocks (X and X+1), then the predictor structure is simple and easy to implement, but bandwidth is wasted due to unnecessary flushes when a branch occurs in block X

Engineering Contradiction:
Improveimplementation simplicityVSAvoidbandwidth waste
Core Design Contradiction:
Ease of manufactureVSLoss of energy

Solution Approach 1:

The patent segments the block selection process by introducing a selection mechanism that chooses between contiguous blocks (X+1) and non-contiguous blocks (Y) based on branch prediction outcomes. This segmentation allows the system to switch between different block prediction strategies, optimizing bandwidth utilization while maintaining implementation feasibility through modular architecture.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements dynamic block selection where the predictor adapts its behavior based on runtime conditions. The selection circuitry dynamically determines whether to predict contiguous block X+1 or non-contiguous block Y based on branch outcomes, enabling the system to optimize bandwidth usage in real-time while handling diverse control flow patterns effectively.

Inventive Principle:
Principle #15Dynamics

2Productivity

If branch prediction is performed on non-contiguous blocks simultaneously, then useful bandwidth of the predictor is improved, but the complexity of the predictor increases

Engineering Contradiction:
Improveuseful bandwidthVSAvoidpredictor complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by pre-calculating and storing multiple potential target blocks (both contiguous X+1 and non-contiguous Y) in advance. The selection circuitry has pre-prepared the necessary block references and selection logic, enabling rapid switching between different block predictions without adding significant runtime complexity, thus improving bandwidth while controlling complexity.

Inventive Principle:
Principle #10Preliminary action

3Measurement precision

If flush is performed when a branch occurs in block X, then prediction accuracy is maintained, but throughput is reduced due to wasted prediction cycles

Engineering Contradiction:
Improveprediction accuracyVSAvoidprediction throughput
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent converts the harmful effect of branch-induced flushes into a benefit by using the branch outcome information to intelligently select between contiguous and non-contiguous blocks. Instead of simply flushing and wasting cycles, the system leverages the branch information to guide selection, turning what would be wasted prediction capacity into useful bandwidth by predicting appropriate non-contiguous blocks that are more likely to be executed.

Inventive Principle:
Principle #22Blessing in disguise (Convert harm into benefit)

Data Source

PatentUS10853076B2Performing at least two branch predictions for non-contiguous instruction blocks at the same time using a prediction mapping
Publication Date: 2020.12.01 ARM LTD
  • US10853076B2 patent drawing
  • US10853076B2 patent drawing
  • US10853076B2 patent drawing

AI summary

An apparatus is provided to perform branch prediction in respect of a plurality of instructions divided into a plurality of blocks. Receiving circuitry receives references to at least two blocks in the plurality of blocks. Branch prediction circuitry performs at least two branch predictions at a time. The branch predictions are performed in respect of the at least two blocks and the at least two blocks are non-contiguous.