Branch target predictor

Branch target predictor

In computer architecture, a branch target predictor is the part of a processor that predicts the target of a conditional branch or unconditional jump instruction before that instruction has been fetched from the instruction cache. The instruction cache is a specialized kind of CPU cache.

Branch target prediction is not the same as branch prediction. Branch prediction attempts to guess whether the branch will be taken or not. Branch target prediction attempts to guess the target of the branch or unconditional jump before it is computed from parsing the instruction itself.

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.

References


Wikimedia Foundation. 2010.

Игры ⚽ Поможем сделать НИР

Look at other dictionaries:

  • Predictor de saltos — Saltar a navegación, búsqueda Un predictor de saltos es un mecanismo hardware utilizado en los procesadores que utilizan segmentación de la unidad de proceso para reducir ciclos de parada en el pipeline. Los saltos condicionales introducen… …   Wikipedia Español

  • Branch predictor — In computer architecture, a branch predictor is the part of a processor that determines whether a conditional branch in the instruction flow of a program is likely to be taken or not. This is called branch prediction. Branch predictors are… …   Wikipedia

  • Classic RISC pipeline — In the history of computer hardware, some early reduced instruction set computer central processing units (RISC CPUs) used a very similar architectural solution, now called a classic RISC pipeline. Those CPUs were: MIPS, SPARC, Motorola 88000,… …   Wikipedia

  • AMD K10 — The AMD K10 is AMD s latest microprocessor architecture. Though there were once reports that the K10 had been cancelled [http://www.theinquirer.net/?article=27421 AMD s K10 is delayed or dead] , The Inquirer] , the first third generation Opteron… …   Wikipedia

  • Segmentación de cauce — Se ha sugerido que este artículo o sección sea fusionado con Segmentación (informática) (discusión). Una vez que hayas realizado la fusión de artículos, pide la fusión de historiales aquí …   Wikipedia Español

  • Memory dependence prediction — is a technique, employed by high performance out of order execution microprocessors that execute memory access operations (loads and stores) out of program order, to predict true dependences between loads and stores at instruction execution time …   Wikipedia

  • Industrial and organizational psychology — Psychology …   Wikipedia

  • endocrine system, human — ▪ anatomy Introduction  group of ductless glands (gland) that regulate body processes by secreting chemical substances called hormones (hormone). Hormones act on nearby tissues or are carried in the bloodstream to act on specific target organs… …   Universalium

  • Hendrik Wade Bode — Infobox Scientist name = Hendrik Wade Bode image width = 162 caption = Hendrik Wade Bode birth date = birth date|1905|12|24|df=y death date = death date and age|1982|6|21|1905|12|24|df=y birth place = Madison, Wisconsin death place = Cambridge,… …   Wikipedia

  • TRIPS-Prozessor — Gehäuse des TRIPS Prozessors Der TRIPS Prozessor (Tera op, Reliable, Intelligently adaptive Processing System) ist ein Forschungsprozessor der University of Texas at Austin. Die Prozessorarchitektur ist so ausgelegt, dass sich weitere Kerne… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”