Pipeline hazards
Hazards reduce the performance from the ideal speedup gained by pipelines:
Structural hazard: Resource conflict. Hardware cannot support all possible combinations of instructions in simultaneous overlapped execution.
Data hazard: When an instruction depends on the results of the previous instruction.
Control hazard: Due to branches and other instructions that affect the PC.