Keys to Efficient Branch Processing
Compute the Branch Target Address as early as possible
Test Branch Condition as early as possible
Usually can compute the BTA earlier than the Branch Condition, so then have the choice of speculatively executing the taken-path or not-taken path
- Correct prediction of the branch before the condition is actually known Results in no branch penalty
SuperScalar/VLIW architectures make any branch penalty worse because the number of clocks between branches goes down!