Branch Prediction Using Hint Instructions to Reduce Hardware Complexity
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional multi-issue processors require complex and costly branch prediction mechanisms to predict a first taken branch instruction, leading to increased hardware complexity and chip area, as they need multiple comparison and directional prediction circuits for each instruction.
Innovation Solution
A branch prediction method and device that determines the first taken branch instruction using hint instructions or latest statistics, enabling branch prediction on at most one fetched instruction per clock cycle with a single set of comparator and direction predictor, reducing hardware complexity by using a multiplexer and single prediction logic module.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If multiple comparison and directional prediction circuits are used for each fetched instruction, then branch prediction accuracy is improved, but hardware complexity and chip area increase significantly
Solution Approach 1:
The patent segments the branch prediction function by identifying and isolating the first taken branch instruction from multiple fetched instructions. Instead of predicting all fetched instructions simultaneously, the system focuses prediction resources on only the first taken branch, dividing the prediction task into manageable portions and reducing the number of required prediction circuits.
Solution Approach 2:
The patent applies partial action by performing branch prediction only on the first taken branch instruction rather than all fetched instructions. This selective approach uses prediction resources efficiently, applying full prediction capability only where necessary (for the first taken branch) while using simpler handling for subsequent branches, thereby reducing overall hardware complexity while maintaining accuracy.
2Reliability
If multiple comparison and directional prediction circuits are used for each fetched instruction, then branch prediction accuracy is improved, but material and design costs increase
Solution Approach 1:
The patent segments the branch prediction function by identifying and isolating the first taken branch instruction from multiple fetched instructions. Instead of predicting all fetched instructions simultaneously, the system focuses prediction resources on only the first taken branch, dividing the prediction task into manageable portions and reducing the number of required prediction circuits.
Solution Approach 2:
The patent applies partial action by performing branch prediction only on the first taken branch instruction rather than all fetched instructions. This selective approach uses prediction resources efficiently, applying full prediction capability only where necessary (for the first taken branch) while using simpler handling for subsequent branches, thereby reducing overall hardware complexity while maintaining accuracy.
3Reliability
If multiple comparison and directional prediction circuits are used for each fetched instruction, then branch prediction capability is improved, but overall chip area increases
Solution Approach 1:
The patent segments the branch prediction function by identifying and isolating the first taken branch instruction from multiple fetched instructions. Instead of predicting all fetched instructions simultaneously, the system focuses prediction resources on only the first taken branch, dividing the prediction task into manageable portions and reducing the number of required prediction circuits.
Solution Approach 2:
The patent applies partial action by performing branch prediction only on the first taken branch instruction rather than all fetched instructions. This selective approach uses prediction resources efficiently, applying full prediction capability only where necessary (for the first taken branch) while using simpler handling for subsequent branches, thereby reducing overall hardware complexity while maintaining accuracy.
Data Source
AI summary
A branch prediction method, capable of predicting a first taken branch instruction within a plurality of fetched instructions, includes: determining whether one of the fetched instructions is the first taken branch instruction to be predicted according to hint instruction(s) or according to latest statistics of whether respective fetched instructions have been taken. The branch prediction method further includes: if one of the fetched instructions is determined to be the first taken branch instruction, performing branch prediction on the first taken branch instruction.


