Slide 71 of 97
Notes:
Let’s view our code example, first in a non-pipelined fashion.
In cycle one, we do the first load using the .D units. In the second cycle, I do the first multiply; in the third cycle, I do the first add; in the fourth cycle, I'm doing my second load; in the fifth, my second multiply; the sixth, my second add; in the seventh, the third load; the eighth, the third multiply; and then the ninth, the third add.
So here we're just looking at three iterations of the loop taking nine cycles. If we showed all 5 iterations, we would see it would take 15 cycles to do this loop in non-pipelined fashion.
It is also apparent the functional units are not being used very much. For instance, the .D units are used in cycles 1, 4 and 7, but not in 2, 3, 5, 6, 8, or 9.