Selectable and hierarchical power management
US-2024385668-A1 · Nov 21, 2024 · US
US9547358B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9547358-B2 |
| Application number | US-201213458513-A |
| Country | US |
| Kind code | B2 |
| Filing date | Apr 27, 2012 |
| Priority date | Apr 27, 2012 |
| Publication date | Jan 17, 2017 |
| Grant date | Jan 17, 2017 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
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.
Opening claim text (preview).
The invention claimed is: 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. 2. The microprocessor of claim 1 , where the branch presence indication is characterized by one or more first branch presence bits that are stored in a buffer of the branch prediction unit, and where the branch controller is configured to in response to a new target location being allocated in the buffer, set second branch presence bits for the new instruction data at the new target location to power up the branch prediction unit during an instruction fetch of the new instruction data from the new target address. 3. The microprocessor of claim 2 , further comprising: a branch prediction validation unit configured to (1) after instruction data at the target location of the branch is fetched from the instruction memory, validate the fetched instruction data for the presence of a branch prediction, (2) if there is no branch instruction in the fetched instruction data, update the second branch presence bits to maintain the branch prediction unit in the powered-down down state during an instruction fetch of instruction data from the target location, or (3) if there is a branch instruction in the fetched instruction data, update the second branch presence bits to power up the branch prediction unit during an instruction fetch of instruction data from the target location. 4. The microprocessor of claim 3 , where the branch prediction validation unit is configured to (1) determine whether the branch prediction unit was powered up during an instruction fetch of instruction data from the target location of the branch, (2) if the branch prediction unit was powered down and a branch was detected in the fetched instruction data, re-fetch the branch instruction, and (3) power up the branch prediction unit to look up a branch prediction for the branch instruction in the instruction data at the target location of the branch. 5. The microprocessor of claim 2 , where the branch prediction unit includes a branch target buffer that stores target locations for direct branches and the associated branch presence indications. 6. The microprocessor of claim 5 , where the branch controller is configured to power up the branch target buffer to look up the branch presence indication and a prediction of target location for the branch instruction. 7. The microprocessor of claim 2 , where the branch prediction unit includes an indirect target buffer that stores target locations for indirect branches and the associated branch presence indications. 8. The microprocessor of claim 1 , where the branch presence indication indicates a type of branch instruction and the branch controller is configured to power up designated prediction structures within the branch prediction unit from a powered-down state based on the type of branch instruction indicated by the branch presence indication. 9. The microprocessor of claim 1 , where the branch prediction unit is powered up or maintained in a powered-down state at the same time as a look up of a data array of an instruction cache that stores the instruction data in the target location of the branch. 10. The microprocessor of claim 1 , where the branch presence indication is characterized by two branch presence bits, each of the two branch presence bits representing a different data half of a cacheline associated with the target location of the branch. 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. 12. The method of claim 11 , where the branch presence indication is characterized by one or more first branch presence bits that are stored in a branch target buffer of the branch prediction unit and the method further comprises: in response to a new target location being allocated in the branch target buffer, setting second branch presence bits for new instruction data at the new target location to power up the branch prediction unit during an instruction fetch of instruction data from the new target location. 13. The method of claim 12 , further comprising: after instruction data at the target location of the branch is fetched from the instruction memory, validating the fetched instruction data for the presence of a branch instruction; and if there is no branch instruction in the fetched instruction data, updating the second branch presence bits to maintain the branch prediction unit in the powered-down state during an instruction fetch of instruction data from the target location; or if there is a branch instruction in the fetched instruction data, update the second branch presence bits to power up the branch prediction unit during an instruction fetch of instruction data from the target location. 14. The method of claim 11 , where the branch presence indication indicates a type of branch instruction, and the method comprises: powering up designated prediction structures within the branch prediction unit from a powered-down state based on the type of branch instruction indicated by the branch presence indication. 15. The method of claim 11 , further comprising: determining whether the branch prediction unit was powered up during an instruction fetch of instruction data from the target location of the branch; if the branch prediction unit was powered down and a branch was detected in the fetched instruction data, re-fetching the branch instruction; and powering up the branch prediction unit to look up a branch prediction for the branch instruction in the instruction data at the target location of the branch. 16. The method of claim 11 , where the branch prediction unit is powered up or maintained in a powered-down state at the same time as a look up of a data array of an instruction
Conditional branch instructions · CPC title
Cross-Sectional Technologies · mapped topic
Power saving in microcontroller unit · CPC title
for indirect branch instructions · CPC title
Energy efficient computing, e.g. low power processors, power management or thermal management · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.