Hazards (Pipeline Hurdles)
•
Structural Hazard
◦
Hardware cannot support combination of instructions at once
•
Data Hazard
◦
Instruction depends on result of prior instruction still in the pipeline (missing socket)
•
Control Hazard
◦
Occurs when
◦
Pipelining of branches & other instruction that change the PC
◦
Common solution is to stall the pipeline until the hazard is resolved, inserting one or more “bubbles” in the pipeline
Two different instruction use same hardware in same cycle
Pause for a while and it will fix it self (stall)
Common Hazards:
1.
Memory
2.
Floating point - since many floating point instructions require many cycles, it’s easy for them to interfere with each other
3.
Starting up more of one type of instruction than there are resources.









