Data-Dependent Branch Prediction Using Memory Address Sequences

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing branch prediction mechanisms struggle to accurately predict the outcome of data-dependent branch instructions, which are influenced by data stored in memory, as the memory addresses are not available early enough in the processing pipeline to make timely predictions.

Innovation Solution

A data-dependent branch prediction mechanism that utilizes a branch prediction table to correlate memory addresses with branch outcomes, allowing predictions for subsequent instances based on observed sequences of memory addresses, even when the memory addresses are not available until later in the pipeline.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If memory addresses are used to predict data-dependent branch outcomes, then branch prediction accuracy is improved, but the complexity of the prediction mechanism increases

Engineering Contradiction:
Improvebranch prediction accuracyVSAvoidprediction mechanism complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The branch prediction mechanism is segmented into multiple specialized tables: a global history table for general branch patterns, a local history table for data-dependent branches using memory addresses, and a pattern history table for sequence recognition. This segmentation allows each table to specialize in specific prediction tasks, improving overall accuracy without requiring a single overly complex mechanism.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces memory addresses as an intermediary element to bridge the gap between data-dependent branch instructions and their outcomes. By using the memory address accessed by a load instruction as a key into the local history table, the system creates a predictable correlation between address sequences and branch outcomes, enabling accurate prediction without complex analysis of the actual data values.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Loss of time

If address prediction circuitry is added to predict memory addresses early, then branch prediction timing is improved, but device complexity and cost increase

Engineering Contradiction:
Improveprediction timingVSAvoidaddress prediction circuitry
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The patent performs preliminary action by recording sequences of memory addresses and their corresponding branch outcomes in the local history table during program execution. This pre-computed mapping allows the predictor to directly lookup predictions without needing complex real-time address prediction circuitry, achieving timely predictions through pre-prepared data structures.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

Instead of adding complex address prediction circuitry to predict addresses early in the pipeline, the patent creates a simplified copy of the address-outcome relationship in the local history table. The prediction mechanism copies relevant historical address sequences and outcomes into this table, allowing fast lookup without requiring the full complexity of predictive address generation hardware.

Inventive Principle:
Principle #26Copying

3Measurement precision

If sequences of memory addresses are correlated with branch outcomes, then data-dependent branch prediction accuracy is improved, but the storage requirements and table size increase

Engineering Contradiction:
Improvedata-dependent branch prediction accuracyVSAvoidstorage circuitry requirements
Core Design Contradiction:
Measurement precisionVSQuantity of substance

Solution Approach 1:

The patent applies local quality by creating a specialized local history table that only stores information relevant to data-dependent branches, rather than storing all possible branch information. The table is organized to store sequences of memory addresses specifically correlated with data-dependent branch outcomes, concentrating storage resources on the most critical prediction cases and avoiding waste on unrelated branch types.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent implements partial action by storing only the essential sequence of memory addresses and their corresponding branch outcomes in the local history table, rather than storing complete program context or all possible prediction variables. This selective storage of critical address sequences provides sufficient prediction accuracy for data-dependent branches without requiring excessive storage capacity.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS12468536B1Branch prediction
Publication Date: 2025.11.11 ARM LTD
  • US12468536B1 patent drawing
  • US12468536B1 patent drawing
  • US12468536B1 patent drawing

AI summary

An apparatus comprises storage circuitry to maintain a data-dependent branch prediction table comprising at least one data-dependent branch prediction entry. Each data-dependent branch prediction entry identifies a data-dependent branch instruction, a sequence start address identifying the start of a sequence of two or more memory addresses, and a sequence of observed branch outcomes for a sequence of instances of the data-dependent branch instruction, each instance of the data-dependent branch instruction having a branch outcome correlated with a corresponding memory address in the sequence of two or more memory addresses. Prediction circuitry is configured to use the sequence of branch outcomes provided by the given data-dependent branch prediction entry to predict a branch outcome of at least one subsequent instance of a given branch instruction.