Control Dependencies
Control Dependencies (ie. branches) are a major obstacle to instruction level parallelism
- In a pipelined machine, normally have branch condition computation done as EARLY as possible in the pipeline in order to lessen the impact of incorrect branch prediction (taken or not taken)
Conditional branch instructions are 20% for general purpose code, 5-10% for scientific code.