branch prediction


branch prediction

[′branch prə‚dik·shən] (computer science) A method whereby a processor guesses the outcome of a branch instruction so that it can prepare in advance to carry out the instructions that follow the predicted outcome.

branch prediction

(processor, algorithm)A technique used in some processorswith instruction prefetch to guess whether a conditional branch will be taken or not and prefetch code from theappropriate location.

When a branch instruction is executed, its address and that ofthe next instruction executed (the chosen destination of thebranch) are stored in the Branch Target Buffer. Thisinformation is used to predict which way the instruction willbranch the next time it is executed so that instructionprefetch can continue. When the prediction is correct (and itis over 90% of the time), executing a branch does not cause apipeline break.

Some later CPUs simply prefetch both paths instead of tryingto predict which way the branch will go.

An extension of the idea of branch prediction is speculative execution.

branch prediction

In CPU instruction execution, predicting the outcome of a branch so that those instructions may be executed in parallel with the current instructions. If the CPU guesses the wrong branch, it will take extra machine cycles to go back and execute the correct one; however, on average, if the prediction algorithms are good, overall performance is increased. See predication and branch.