src: i.ytimg.com
Operand forwarding (or data forwarding) is an optimization in pipelined CPUs to limit performance deficits which occur due to pipeline stalls. A data hazard can lead to a pipeline stall when the current operation has to wait for the results of an earlier operation which has not yet finished.
Video Operand forwarding
Example
ADD A B C #A=B+C SUB D C A #D=C-A
If these two assembly pseudocode instructions run in a pipeline, after fetching and decoding the second instruction, the pipeline stalls, waiting until the result of the addition is written and read.
Maps Operand forwarding
Technical realization
The CPU control unit must implement logic to detect dependencies where operand forwarding makes sense. A multiplexer can then be used to select the proper register or flip-flop to read the operand from.
src: image2.slideserve.com
See also
- Feed forward (control)
src: slideplayer.com
References
src: image2.slideserve.com
External links
- Data Hazards
- Introduction to Pipelining
Source of the article : Wikipedia