Branch prediction foretells the outcome of conditional branch instructions.
Excellent branch handling techniques are essential for today's and for future microprocessors.
Requirements of high performance branch handling:
- an early determination of the branch outcome (the so-called branch resolution),
- buffering of the branch target address in a BTAC,
- an excellent branch predictor (i.e. branch prediction technique) and speculative execution mechanism,
- often another branch is predicted while a previous branch is still unresolved, so the processor must be able to pursue two or more speculation levels,
- and an efficient rerolling mechanism when a branch is mispredicted (minimizing the branch misprediction penalty).