Branch Prediction Unit Access Control via Sequential Fetch Logic
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing processors waste energy by accessing branch prediction functional blocks for non-control transfer instructions, leading to unnecessary power consumption.
Innovation Solution
Implementing a sequential fetch logic that uses records to determine the number of fetch groups without control transfer instructions and prevents access to the branch prediction unit, reducing power consumption by powering down relevant components when not needed.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the branch prediction functional block is accessed for all instructions to ensure predicted resolutions are available, then the reliability of instruction execution is improved, but the energy consumption increases due to unnecessary accesses for non-control transfer instructions
Solution Approach 1:
The patent applies preliminary action by pre-determining whether a fetch group contains control transfer instructions before accessing the branch prediction unit. The processor identifies CTIs in advance and uses this information to conditionally enable or disable branch prediction accesses, avoiding unnecessary energy consumption while ensuring predictions are available when needed.
Solution Approach 2:
The patent implements dynamics by making the branch prediction unit's operational state dynamic rather than static. The unit is selectively activated or deactivated based on the actual presence of control transfer instructions in each fetch group, allowing the system to adapt its energy consumption profile to the actual computational needs of the executing code.
2Speed
If the branch prediction unit is continuously active to handle all instructions, then the speed of instruction processing is maintained, but the energy waste increases due to redundant operations on non-CTI instructions
Solution Approach 1:
The patent applies the extraction principle by separating the branch prediction functionality from the universal instruction processing path. Instead of having all instructions trigger branch prediction accesses, the system extracts and identifies only control transfer instructions that actually require branch prediction, thereby eliminating redundant operations and reducing energy loss.
Solution Approach 2:
The patent implements partial action by providing branch prediction services only to the extent actually needed - specifically for control transfer instructions. Rather than applying branch prediction uniformly to all instructions (excessive action), the system selectively applies it only where necessary, reducing energy consumption while maintaining adequate processing speed for critical paths.
Data Source
Figure 1
Figure 2
Figure 3~4
AI summary
An electronic device is described that handles control transfer instructions (CTIs) when executing instructions in program code. The electronic device has a processor that includes a branch prediction functional block and a sequential fetch logic functional block. The sequential fetch logic functional block determines, based on a record associated with a CTI, that a specified number of fetch groups of instructions that were previously determined to include no CTIs are to be fetched for execution in sequence following the CTI. When each of the specified number of fetch groups is fetched and prepared for execution, the sequential fetch logic prevents corresponding accesses of the branch prediction functional block for acquiring branch prediction information for instructions in that fetch group.