Two solutions
 
 
- Stall the pipeline
- 
- When a data hazard is detected, stall the instruction which needs the updated register value until the new value has been written to the register file
- Too much performance penalty!
 
 
- Data Forwarding (or Bypassing)
- 
- The register value exists in the pipeline - simply send it to where it is needed!