Thank you all for your answers.
I think everything is clear with me. Here is what I consider the answer -
Question-1: - Why the execution of the pipeline depends on the slowest step
It is clearly seen that at each stage, each stage must wait for the completion of the slowest stage. Thus, the total time after which each instruction completes is limited by the wait time. (In my example, after a space of 10 ns)
Question-2: - What is the total lead time of the program
I wanted to know how long a particular program containing 3 NOT commands would take to execute , how long it would take for 3 instructions to execute , which is obviously 30 ns related to the fact that each instruction will be completed every 10 ns.
Now suppose that I1 is selected in the pipeline, then 4 more commands are already executed in it. 4 instructions complete in 40 ns. After that, I1, I2, I3 are executed in the order of 30 ns. (Assuming there are no conveyor stalls)
This gives 30 + 40 = 70 ns.
In fact, for an n command program, k-stage piping
I think this is (n + k-1) * C * T
where C = no. clk cycles at the slowest stage T = cycle time
Please read my understanding .... to find out if I think something is wrong and so I can accept my own answer.
source share