Straight Line Dependencies
i1: load r1, a; i2: add r2, r1, r1;
Assume a pipeline of Fetch/Decode/Execute/Mem/Writeback
When add is in the DECODE stage (which fetches r1), the load is in the EXECUTE stage and the true value of r1 has not been fetched yet! (r1 is fetched in the Mem stage)
Solve this by either stalling the ‘add’ until the value of r1 is ready, or by forwarding the value of r1 from the Mem stage to the Execute stage.