Data Forwarding

How does data forwarding (bypassing) reduce the performance penalty of data hazards?

ADD R1, R2, R3   ; produces R1
SUB R4, R1, R5   ; needs R1
A

It predicts the value of R1 before ADD finishes computing it

B

It reorders the instructions so SUB executes before ADD

C

It routes the ALU result directly to the next instruction's input before it is written to the register file

D

It stalls the pipeline until ADD completes all five stages