| Table 4.7 Branch management techniques. |
|
| Approach | What It Does | Cost | Effect on Branch Delay (Taken Branch) | Effect on Branch Prediction |
| Speedup | | | | |
| Early CC set | Determine outcome of tested condition early | Nil | Can save up to a cycle | None |
| Delayed branch | " | Small | " | None |
| Branch adder | Determine target address early | Small | Generally saves a cycle | None |
| Prediction | | | | |
| Static: | Use branch opcode or test to predict outcome | Small | None | 6070% accurate |
| Dynamic: | | | | |
| History | Records outcome of each branch | Some increase in I-cache size | None | 7090+% accurate |
| Branch table buffer | Stores last target inst for each branch in a special associative table | Can be significant for large tables | Can reduce to zero | 7090+% accuracy; depends on size and application |