Checking for issue
Split the ID stage into:
- Issue : decode instructions; check for structural hazards (stall if there are any). Instructions pass in this stage in order
- Read operands: wait until no data hazards then read operands
After the ID stage, the instruction enters an EX stage as before
Note that now WAR and WAW hazards may occur
R1 = R2/ R3 (long latency)
R2 = R1 + R4 (stall because of RAW on R1)
R4 = R7 - R8 (can be issued, executed and completed before the other 2; WAR hazard on R4)