Backslice Branch Pre-Resolution for Hard-to-Predict Branches

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing branch prediction mechanisms struggle with hard-to-predict branches, leading to latency, correctness issues, and high mis-prediction rates, particularly in modern computer systems.

Innovation Solution

A software-provided hardware-managed backslice execution method where a compiler generates a sequence of instructions to predict branch outcomes, which are pre-computed by hardware before execution, allowing selective engagement based on misprediction rates.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If existing branch prediction mechanisms are used, then branch prediction is performed, but misprediction rates are high and latency increases

Engineering Contradiction:
Improvebranch prediction accuracyVSAvoidlatency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent pre-computes branch outcomes using a backslice (sequence of instructions) before the actual branch execution point. The compiler generates and executes the backslice in advance to determine the branch outcome, storing it in a branch outcome table. This preliminary action allows the processor to use pre-determined outcomes instead of relying on traditional branch prediction, thereby reducing misprediction rates and improving accuracy without significant latency penalty.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If hard-to-predict branches are handled by traditional methods, then branch execution continues, but correctness issues and high misprediction rates occur

Engineering Contradiction:
Improvebranch outcome correctnessVSAvoidmprediction rate
Core Design Contradiction:
ReliabilityVSLoss of information

Solution Approach 1:

The backslice execution pre-determines branch outcomes by actually executing the sequence of instructions that lead to the branch condition evaluation. This preliminary execution produces correct branch outcomes based on actual runtime conditions rather than predictions, thereby improving correctness and reducing misprediction rates for hard-to-predict branches.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If branch outcomes are pre-computed, then prediction accuracy improves, but system complexity increases

Engineering Contradiction:
Improvebranch prediction accuracyVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent introduces a backslice as an intermediary mechanism between the branch instruction and the branch outcome determination. The backslice is a sequence of instructions that computes the branch condition in advance, acting as a mediator that bridges the gap between traditional branch prediction and actual branch execution. This intermediary approach improves accuracy without requiring fundamental changes to the processor architecture.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system dynamically selects whether to use pre-computed branch outcomes from the branch outcome table or to use traditional branch prediction mechanisms. The branch resolution logic adapts based on the availability and validity of pre-computed outcomes, providing dynamic behavior that optimizes performance while managing complexity.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS12578968B2Systems and methods for branch pre-resolution by software-provided hardware-managed backslice execution
Publication Date: 2026.03.17 HUAWEI TECH CO LTD
  • US12578968B2 patent drawing
  • US12578968B2 patent drawing
  • US12578968B2 patent drawing

AI summary

Apparatus, systems, and methods for branch pre-resolution by software-provided hardware-managed backslice execution may be provided. According to an aspect, a method may be provided. The method may include receiving a plurality of instructions. The method may further include identifying a load-dependent branch (LDB) from the plurality of instructions. The method may further include generating a sequence of instructions associated with the LDB, the sequence of instructions being sufficient to either produce or predict a branch outcome of the LDB. The method may further include identifying a program counter (PC) of the LDB.