Im working on the following question: Suppose an instruction can be carried out in 3 stages, the stages taking 3 ns, 7 ns, and 10 ns, respectively. (a) What is the maximum execution rate without pipelining? (b) What speedup is possible with pipelining?
I have managed to get the following answers is it correct? a) For a non-pipeline system these 3 stages can be carried out one after another. Total time required is (3+7+10)ns=20 ns Now to computer 100 instruction time required = 100*20=2000 ns
b) A very interesting feature of pipeline is that in pipeline all the stages have same length. In the given problem we have a stage, which takes 10 ns, which is largest. We will equate is value with the pipeline stages. So now each pipeline stage is of length 10 ns to execute. Now total latency time= 20*2 ns= 40 ns. There is an overhead associated with this. Lets assume overhead is of 2 ns. So total time to execute one stage of pipeline is 22 ns. Speed up is (3+7+10)/10=2.0