Branch prediction suppression

US2016110202A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2016110202-A1
Application numberUS-201414519697-A
CountryUS
Kind codeA1
Filing dateOct 21, 2014
Priority dateOct 21, 2014
Publication dateApr 21, 2016
Grant date

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 2 contains branch prediction circuitry 10 including a micro branch target buffer 28, a full branch target buffer 30 and a global history buffer 32. The branch target buffer entries 40 contain history data 42, 44 which indicates whether or not a number of the following blocks of program instructions, subsequent to and sequential to a block of program instruction identified by that branch target buffer entry containing a branch instruction, do themselves contain any branch instructions. If the history data 42, 44 indicates that the following blocks of program instructions do not contain branches, then the operation of the branch prediction circuitry 28, 30, 32 is suppressed for these following blocks of program instructions so as to save energy.

First claim

Opening claim text (preview).

We claim: 1 . Apparatus comprising: one or more branch prediction circuits to predict whether a given block of program instructions contains a branch instruction; and prediction suppression circuitry to use history data representing previous branch behaviour of a following block of program instructions sequentially following said given block of program instructions to suppress at least one of said one or more branch prediction circuits predicting whether said following block of program instructions contains a branch instruction. 2 . Apparatus as claimed in claim 1 , wherein said history data represents previous branch behaviour of a plurality of following blocks of program instructions sequentially following said given block and said prediction suppression circuitry uses history data to suppress at least one of said one or more branch prediction circuits predicting if one or more of said plurality of following blocks of program instructions contain a branch. 3 . Apparatus as claimed in claim 2 , wherein said plurality of following blocks of program instructions comprises two following blocks of program instructions. 4 . Apparatus as claimed in claim 1 , wherein said history data comprises a count of following blocks of program instructions predicted not to contain a branch. 5 . Apparatus as claimed in claim 1 , wherein said one or more branch prediction circuits comprise at least one branch target buffer to store branch target data specifying addresses of blocks of program instructions predicted to contain a branch. 6 . Apparatus as claimed in claim 5 , wherein said history data is part of said branch target data. 7 . Apparatus as claimed in claim 5 , wherein said at least one branch target buffer comprises a micro branch target buffer and a full branch target buffer, said micro branch target buffer to predict whether said given block of program instructions contains a branch more quickly than said full branch target buffer, and said full branch target buffer to store branch target data in respect of more blocks of program instructions than said micro branch target buffer. 8 . Apparatus as claimed in claim 7 , wherein said prediction suppression circuitry is controlled by said micro branch target buffer and uses said history data to suppress said full branch target buffer predicting if said following block of program instructions contains a branch. 9 . Apparatus as claimed in claim 7 , wherein both said micro branch target buffer and said full branch target buffer store at least some of said history data. 10 . Apparatus as claimed in claim 5 , wherein said at least one branch target buffer uses said history data to control said prediction suppression circuitry to suppress said at least one branch target buffer itself predicting if said following block of program instructions contains a branch. 11 . Apparatus as claimed in claim 7 , wherein said one or more branch prediction circuits include a global history buffer to predict taken and not taken behaviour of branch instructions and said prediction suppression circuitry uses said history data to suppress said global history buffer predicting if said following block of program instructions contains a branch. 12 . Apparatus as claimed in claim 1 , wherein said given block of program instructions and said following block of program instructions each contain a plurality of program instructions. 13 . Apparatus as claimed in claim 1 , wherein said given block of program instructions is a branch-containing block of program instructions predicted by said one or more prediction circuits to contain a branch. 14 . Apparatus as claimed in claim 13 , comprising history data generating circuitry to monitor if a block of program instructions following said branch-containing block of program instructions contains a branch and to generate said history data indicating if said block of program instructions following said branch-containing block of program instructions contains a branch. 15 . Apparatus comprising: one or more branch prediction means for predicting whether a given block of program instructions contains a branch instruction; and prediction suppression means for using history data representing previous branch behaviour of a following block of program instructions sequentially following said given block of program instructions to suppress at least one of said one or more branch prediction means predicting whether said following block of program instructions contains a branch instruction. 16 . A method comprising the steps of: predicting with one or more branch prediction circuits whether a given block of program instructions contains a branch instruction, wherein using history data representing previous branch behaviour of a following block of program instructions sequentially following said given block of program instructions to suppress at least one of said one or more branch prediction means predicting whether said following block of program instructions contains a branch instruction.

Assignees

Inventors

Classifications

  • G06F9/3844Primary

    using dynamic branch prediction, e.g. using branch history tables · CPC title

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

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

  • for instruction reuse, e.g. trace cache, branch target cache · 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 US2016110202A1 cover?
A data processing apparatus 2 contains branch prediction circuitry 10 including a micro branch target buffer 28, a full branch target buffer 30 and a global history buffer 32. The branch target buffer entries 40 contain history data 42, 44 which indicates whether or not a number of the following blocks of program instructions, subsequent to and sequential to a block of program ins…
Who is the assignee on this patent?
Advanced Risc Mach Ltd
What technology area does this patent fall under?
Primary CPC classification G06F9/3844. Mapped technology areas include Physics.
When was this patent published?
Publication date Thu Apr 21 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).