Branch Prediction Unit Access Control via Minimum Predictor Use
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing processors incur unnecessary power consumption due to frequent accesses of branch prediction functional blocks for instructions that do not involve control transfer instructions, as these blocks are accessed regardless of whether they are needed, leading to inefficiencies in power usage.
Innovation Solution
The implementation of a minimum predictor use (MPU) functional block that uses records associated with fetch groups to determine if subsequent groups include control transfer instructions, thereby preventing unnecessary accesses to the branch prediction functional block by storing and updating records in a cache, and using confidence information to decide when to block or allow accesses.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the branch prediction functional block is accessed for every fetch group, then branch prediction accuracy is maintained, but power consumption increases due to unnecessary accesses for non-control transfer instructions
Solution Approach 1:
The patent applies preliminary action by checking whether a fetch group contains control transfer instructions before accessing the branch prediction functional block. The processor identifies the presence or absence of control transfer instructions in advance, and only accesses the branch prediction unit when actually needed, thereby avoiding unnecessary power consumption while maintaining prediction accuracy when required
Solution Approach 2:
The patent implements partial action by selectively accessing the branch prediction functional block only for fetch groups that contain control transfer instructions, rather than accessing it for every fetch group. This partial access strategy maintains adequate branch prediction capability for control transfer instructions while significantly reducing unnecessary accesses for regular instructions, thus lowering power consumption
2Speed
If the branch prediction functional block is accessed frequently, then predicted resolutions are available early for directing execution paths, but unnecessary accesses occur for instructions that are not control transfer instructions
Solution Approach 1:
The processor performs preliminary identification of control transfer instructions in fetch groups before accessing the branch prediction functional block. By checking the instruction type in advance, the system ensures that branch prediction is only activated when needed, maintaining speed for actual control transfers while avoiding energy waste on unnecessary accesses
Solution Approach 2:
The patent extracts the branch prediction operation from the universal fetch group processing flow and applies it selectively only to fetch groups containing control transfer instructions. This extraction separates the necessary prediction operations from unnecessary ones, maintaining execution speed for control transfers while eliminating wasted energy on regular instructions
Data Source
AI summary
An electronic device handles accesses of a branch prediction functional block when executing instructions in program code. The electronic device includes a processor having the branch prediction functional block that provides branch prediction information for control transfer instructions (CTIs) in the program code and a minimum predictor use (MPU) functional block. The MPU functional block determines, based on a record associated with a given fetch group of instructions, that a specified number of subsequent fetch groups of instructions that were previously determined to include no CTIs or conditional CTIs that were not taken are to be fetched for execution in sequence following the given fetch group. The MPU functional block then, when each of the specified number of the subsequent fetch groups is fetched and prepared for execution, prevents corresponding accesses of the branch prediction functional block for acquiring branch prediction information for instructions in that subsequent fetch group.


