Caching override indicators for statistically biased branches to selectively override a global branch predictor

US11526359B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11526359-B2
Application numberUS-201816150372-A
CountryUS
Kind codeB2
Filing dateOct 3, 2018
Priority dateOct 3, 2018
Publication dateDec 13, 2022
Grant dateDec 13, 2022

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.

A data processing apparatus is provided that includes global-history prediction circuitry that provides a prediction of an outcome of a given control flow instruction based on a result of execution of one or more previous control flow instructions. Correction circuitry provides a corrected prediction of the global-history prediction circuitry in respect of the given control flow instruction and cache circuitry, separate from the correction circuitry, stores the corrected prediction in respect of the given control flow instruction.

First claim

Opening claim text (preview).

We claim: 1. A data processing apparatus comprising: global-history prediction circuitry to provide a prediction of an outcome of a given control flow instruction based on a result of execution of one or more previous control flow instructions; correction circuitry to store a corrected prediction of the global-history prediction circuitry in respect of the given control flow instruction; and detection circuitry to perform a determination of whether the given control flow instruction is performed in at least partial dependence on a random variable, wherein in response to the determination that the given control flow instruction is performed in at least partial dependence on a random variable, the detection circuitry is configured to store the corrected prediction in cache circuitry in association with the given control flow instruction and an indication of whether to use the corrected prediction, wherein in response to the determination that the given control flow instruction is performed in at least partial dependence on a random variable, the detection circuitry is configured to set the indication to indicate that the corrected prediction is to be used, otherwise, to set the indication to indicate that the corrected prediction is not to be used, wherein the cache circuitry is separate from the correction circuitry, and comprises at least one of: branch target prediction circuitry to store a prediction of a target of the given control flow instruction when the given control flow instruction is taken, in association with the corrected prediction and the indication of whether to use the corrected prediction, and an instruction cache to store the given control flow instruction in encoded form, in association with the corrected prediction and the indication of whether to use the corrected prediction, wherein the corrected prediction is provided in response to the control flow instruction without the correction circuitry being activated. 2. A data processing apparatus according to claim 1 , wherein the correction circuitry comprises bimodal prediction circuitry to provide the corrected prediction; and the corrected prediction is based on previous results of executing the given control flow instruction. 3. A data processing apparatus according to claim 2 , wherein the bimodal prediction circuitry comprises a taken table and an untaken table; the taken table comprises corrected predictions in respect of control flow instructions that are predicted taken by the global-history prediction circuitry; and the untaken table comprises corrected predictions in respect of control flow instructions that are predicted untaken by the global-history prediction circuitry. 4. A data processing apparatus according to claim 3 , wherein the detection circuitry is adapted to determine that the given control flow instruction is performed in at least partial dependence on a random variable in response to the corrected prediction in both the taken table and the untaken table being equal in respect of the given control flow instruction. 5. A data processing apparatus according to claim 1 , wherein the corrected prediction comprises a 1-bit value to indicate whether the given control flow instruction should be taken. 6. A data processing apparatus according to claim 1 , wherein the corrected prediction is stored as part of an encoding of the control flow instruction. 7. A data processing apparatus according to claim 1 , comprising: update circuitry to update the corrected prediction in response to the prediction of the global-history prediction circuitry being updated. 8. A data processing apparatus according to claim 1 , wherein the global-history prediction circuitry comprises TAGE prediction circuitry. 9. A data processing apparatus according to claim 1 , wherein the cache circuitry comprises a validity flag to indicate whether the corrected prediction should be used in place of the prediction. 10. A data processing method comprising: providing a prediction of an outcome of a given control flow instruction based on a result of execution of one or more previous control flow instructions; storing, at correction circuitry, a corrected prediction of the global-history prediction circuitry in respect of the given control flow instruction; and performing a determination, with detection circuitry, of whether the given control flow instruction is performed in at least partial dependence on a random variable, and in response to the determination that the given control flow instruction is performed in at least partial dependence on a random variable, storing the corrected prediction in cache circuitry in association with the given control flow instruction and an indication of whether to use the corrected prediction, wherein in response to the determination that the given control flow instruction is performed in at least partial dependence on a random variable, setting the indication to indicate that the corrected prediction is to be used, otherwise, setting the indication to indicate that the corrected prediction is not to be used, wherein the cache circuitry is separate from the correction circuitry, and comprises at least one of: branch target prediction circuitry storing a prediction of a target of the given control flow instruction when the given control flow instruction is taken, in association with the corrected prediction and the indication of whether to use the corrected prediction, and an instruction cache storing the given control flow instruction in encoded form, in association with the corrected prediction and the indication of whether to use the corrected prediction, wherein the corrected prediction is provided in response to the control flow instruction without the correction circuitry being activated.

Assignees

Inventors

Classifications

  • G06F9/3848Primary

    using hybrid branch prediction, e.g. selection between prediction techniques · CPC title

  • Recovery, e.g. branch miss-prediction, exception handling (error detection or correction G06F11/00) · CPC title

  • using address prediction, e.g. return stack, branch history buffer · CPC title

  • to perform operations for flow control · CPC title

  • for indirect branch instructions · 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 US11526359B2 cover?
A data processing apparatus is provided that includes global-history prediction circuitry that provides a prediction of an outcome of a given control flow instruction based on a result of execution of one or more previous control flow instructions. Correction circuitry provides a corrected prediction of the global-history prediction circuitry in respect of the given control flow instruction and…
Who is the assignee on this patent?
Advanced Risc Mach Ltd
What technology area does this patent fall under?
Primary CPC classification G06F9/3848. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Dec 13 2022 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 4 related publications on this page (citations in our corpus or others sharing the same primary CPC).