Handling Data Hazards
You can use data forwarding
- pass the data directly from stage 3 of the first add to stage 3 of the second add
Sometimes, you can do out-of-order execution
- reorder the instructions such that:
- maintain correctness
- avoid or reduce stalls