Branch prediction power reduction
First Claim
Patent Images
1. A microprocessor comprising:
- fetch logic configured to interact with instruction memory to retrieve instruction data for execution;
a branch prediction unit operatively coupled with the fetch logic, including;
a branch controller configured to (1) predict that a branch will be taken in an instruction fetched from the instruction memory, and during an instruction fetch of instruction data from a target location of the branch (2) power up the branch prediction unit from a powered-down state when a branch presence indication for the target location of the branch indicates that instruction data stored at the target location includes a branch instruction, and (3) maintain the branch prediction unit in the powered-down state during the instruction fetch of instruction data from the target location when the branch presence indication for the target location of the branch indicate that instruction data stored at the target location does not include a branch instruction.
1 Assignment
0 Petitions
Accused Products
Abstract
In one embodiment, a microprocessor is provided. The microprocessor includes a branch prediction unit. The branch prediction unit is configured to track the presence of branches in instruction data that is fetched from an instruction memory after a redirection at a target of a predicted taken branch. The branch prediction unit is selectively powered up from a powered-down state when the fetched instruction data includes a branch instruction and is maintained in the powered-down state when the fetched instruction data does not include an instruction branch in order to reduce power consumption of the microprocessor during instruction fetch operations.
68 Citations
20 Claims
-
1. A microprocessor comprising:
-
fetch logic configured to interact with instruction memory to retrieve instruction data for execution; a branch prediction unit operatively coupled with the fetch logic, including; a branch controller configured to (1) predict that a branch will be taken in an instruction fetched from the instruction memory, and during an instruction fetch of instruction data from a target location of the branch (2) power up the branch prediction unit from a powered-down state when a branch presence indication for the target location of the branch indicates that instruction data stored at the target location includes a branch instruction, and (3) maintain the branch prediction unit in the powered-down state during the instruction fetch of instruction data from the target location when the branch presence indication for the target location of the branch indicate that instruction data stored at the target location does not include a branch instruction. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method implemented in a microprocessor including instruction memory and a branch prediction unit operatively coupled with the instruction memory, the method comprising:
-
predicting that a branch will be taken in an instruction fetched from the instruction memory; looking up a branch presence indication for a target location of the branch that indicates whether instruction data stored at the target location includes a branch instruction; during an instruction fetch of instruction data from the target location of the branch, powering up the branch prediction unit from a powered-down state when the branch presence indication for the target location of the branch indicates that instruction data stored at the target location includes a branch instruction; and maintaining the branch prediction unit in the powered-down state during the instruction fetch of instruction data from the target location when the branch presence indication for the target location of the branch indicates that instruction data stored at the target location does not include a branch instruction. - View Dependent Claims (12, 13, 14, 15, 16)
-
-
17. A microprocessor comprising:
-
a branch prediction unit comprising; a buffer configured to store branch presence bits corresponding to each target address of branch instructions that are fetched from an instruction cache, where the branch presence bits indicate whether instruction data stored at a target address includes a branch instruction; and a branch controller configured to (1) predict that a branch will be taken in an instruction fetched from the instruction cache, during an instruction fetch of instruction data from a target address of the branch, (2) power up the branch prediction unit from a powered down state when branch presence bits for the target address of the branch indicate that instruction data stored at the target address includes a branch instruction to look up a branch prediction for the branch instruction, and (3) maintain the branch prediction unit in the powered-down state during the instruction fetch of instruction data from the target address when the branch presence bits for the target address of the branch indicate that instruction data stored at the target address does not include a branch instruction; and a branch prediction validation unit configured to (1) after instruction data is fetched from the instruction cache, validate the fetched instruction data for the presence of a branch instruction, (2) if there is no branch instruction in the fetched instruction data, update the branch presence bits to maintain the branch prediction unit in the powered-down state during an instruction fetch of instruction data from the target address, or (3) if there is a branch instruction in the fetched instruction data, update the branch presence bits to power up the branch prediction unit to look up a branch prediction during an instruction fetch of instruction data from the target address. - View Dependent Claims (18, 19, 20)
-
Specification