Processor Branch Predictor Controller Power Optimization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Branch predictors in electronic devices are inefficient due to the unnecessary computational effort and electrical power consumption associated with generating multiple predictions for control transfer instructions, many of which are discarded, especially in repetitive program code execution.
Innovation Solution
A predictor controller manages a record of prediction functional blocks to selectively use only those that have previously made accurate predictions for specific control transfer instructions, reducing unnecessary work by disabling unused prediction functional blocks and conserving power.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If multiple prediction functional blocks are used to generate predictions for control transfer instructions, then prediction accuracy is improved, but electrical power consumption and computational effort increase
Solution Approach 1:
The system dynamically adjusts the number of prediction functional blocks activated based on the characteristics of each control transfer instruction. The predictor controller selectively enables only the necessary prediction functional blocks for each CTI, transforming the static configuration into a dynamic one that adapts to specific prediction needs, thereby reducing unnecessary power consumption while maintaining accuracy.
Solution Approach 2:
Different prediction functional blocks are selectively applied to different control transfer instructions based on their specific characteristics. Instead of uniformly activating all prediction blocks for all CTIs, the system applies prediction functionality locally and selectively where needed, optimizing the balance between accuracy and power consumption for each individual prediction scenario.
2Reliability
If multiple prediction functional blocks generate predictions for each control transfer instruction, then prediction coverage is improved, but computational effort and processing time increase
Solution Approach 1:
The system extracts and activates only the specific prediction functional blocks needed for each control transfer instruction, rather than having all blocks process every instruction. This selective extraction approach maintains comprehensive prediction coverage for different CTI types while removing unnecessary computational overhead, thereby improving processing throughput.
Solution Approach 2:
The system applies partial action by activating only the necessary subset of prediction functional blocks for each CTI based on its characteristics. This avoids the excessive action of having all prediction blocks process every instruction, optimizing the balance between prediction coverage and processing efficiency.
3Reliability
If all prediction functional blocks are activated for every control transfer instruction, then prediction reliability is maintained, but electrical power consumption increases
Solution Approach 1:
The system transitions from a static activation model to a dynamic one where the predictor controller continuously adjusts which prediction functional blocks are active based on real-time analysis of control transfer instruction characteristics. This dynamic approach maintains prediction reliability by activating appropriate blocks while minimizing energy waste by deactivating unnecessary ones.
Solution Approach 2:
The system discards the activation of prediction functional blocks that are not needed for specific control transfer instructions, recovering electrical power that would otherwise be wasted. The predictor controller identifies and discards unnecessary block activations while maintaining the necessary prediction reliability through selective block usage.
Data Source
AI summary
An electronic device includes a processor, a branch predictor in the processor, and a predictor controller in the processor. The branch predictor includes multiple prediction functional blocks, each prediction functional block configured for generating predictions for control transfer instructions (CTIs) in program code based on respective prediction information, the branch predictor configured to select, from among predictions generated by the prediction functional blocks for each CTI, a selected prediction to be used for that CTI. The predictor controller keeps a record of prediction functional blocks from which the branch predictor previously selected predictions for CTIs. The predictor controller uses information from the record for controlling which prediction functional blocks are used by the branch predictor for generating predictions for CTIs.


