Possible Branch Processing Implementation
Support a branch instruction that looks like: Bcond r1, r2, someplace
- Conditions would be normal conditions (Beq, Bne, BLT, BLO, etc…)
Use one of the integer units for computing the branch condition
- Output go to both Fetch Unit and DRR
Allow up to BMAX outstanding speculative branches
- Each time encounter a speculative branch, MUST save alternate PC value (sequential if predict-taken, Branch target if predict not-taken) in order to recover from mis-prediction