Backslice Branch Pre-Resolution for Hard-to-Predict Branches
Find Innovative SolutionsGenerate 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
Engineering Contradiction Analysis
1Reliability
If existing branch prediction mechanisms are used, then branch prediction is performed, but misprediction rates are high and latency increases
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.
2Reliability
If hard-to-predict branches are handled by traditional methods, then branch execution continues, but correctness issues and high misprediction rates occur
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.
3Reliability
If branch outcomes are pre-computed, then prediction accuracy improves, but system complexity increases
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.
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.
Data Source
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.


