Branch prediction power reduction

US9547358B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9547358-B2
Application numberUS-201213458513-A
CountryUS
Kind codeB2
Filing dateApr 27, 2012
Priority dateApr 27, 2012
Publication dateJan 17, 2017
Grant dateJan 17, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

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.

First claim

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

Assignees

Inventors

Classifications

  • Conditional branch instructions · CPC title

  • Cross-Sectional Technologies · mapped topic

  • G06F1/3243Primary

    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

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9547358B2 cover?
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…
Who is the assignee on this patent?
Aggarwal Aneesh, Segelken Ross, Wasson Paul, and 1 more
What technology area does this patent fall under?
Primary CPC classification G06F1/3243. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jan 17 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).