To install click the Add extension button. That's it.

The source code for the WIKI 2 extension is being checked by specialists of the Mozilla Foundation, Google, and Apple. You could also do it yourself at any point in time.

4,5
Kelly Slayton
Congratulations on this excellent venture… what a great idea!
Alexander Grigorievskiy
I use WIKI 2 every day and almost forgot how the original Wikipedia looks like.
Live Statistics
English Articles
Improved in 24 Hours
Added in 24 Hours
Languages
Recent
Show all languages
What we do. Every page goes through several hundred of perfecting techniques; in live mode. Quite the same Wikipedia. Just better.
.
Leo
Newton
Brights
Milds

Branch target predictor

From Wikipedia, the free encyclopedia

In computer architecture, a branch target predictor is the part of a processor that predicts the target, i.e. the address of the instruction that is executed next, of a taken conditional branch or an unconditional branch instruction before the target of the branch instruction is computed by the execution unit of the processor.

Branch target prediction is not the same as branch prediction which attempts to guess whether a conditional branch will be taken or not-taken (i.e., binary).

In more parallel processor designs, as the instruction cache latency grows longer and the fetch width grows wider, branch target extraction becomes a bottleneck. The recurrence is:

  • Instruction cache fetches block of instructions
  • Instructions in block are scanned to identify branches
  • First predicted taken branch is identified
  • Target of that branch is computed
  • Instruction fetch restarts at branch target

In machines where this recurrence takes two cycles, the machine loses one full cycle of fetch after every predicted taken branch. As predicted branches happen every 10 instructions or so, this can force a substantial drop in fetch bandwidth. Some machines with longer instruction cache latencies would have an even larger loss. To ameliorate the loss, some machines implement branch target prediction: given the address of a branch, they predict the target of that branch. A refinement of the idea predicts the start of a sequential run of instructions given the address of the start of the previous sequential run of instructions.

This predictor reduces the recurrence above to:

  • Hash the address of the first instruction in a run
  • Fetch the prediction for the addresses of the targets of branches in that run of instructions
  • Select the address corresponding to the branch predicted taken

As the predictor RAM can be 5–10% of the size of the instruction cache, the fetch happens much faster than the instruction cache fetch, and so this recurrence is much faster. If it were not fast enough, it could be parallelized, by predicting target addresses of target branches.

YouTube Encyclopedic

  • 1/3
    Views:
    4 807
    23 680
    6 416
  • BTB Branch Target Buffer - Georgia Tech - HPCA: Part 1
  • Lecture 11 - Branch Prediction - Carnegie Mellon - Computer Architecture 2013 - Onur Mutlu
  • Dynamic branch prediction (CS)

Transcription

See also

Further reading

  • Driesen; Hölzle (1992), Accurate Indirect Branch Prediction
  • Ertl; Gregg (2001), The Behavior of Efficient Virtual Machine Interpreters on Modern Architectures

External links


This page was last edited on 12 April 2024, at 05:39
Basis of this page is in Wikipedia. Text is available under the CC BY-SA 3.0 Unported License. Non-text media are available under their specified licenses. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc. WIKI 2 is an independent company and has no affiliation with Wikimedia Foundation.