Friends this subject is must study for every ETC,CSE & Electrical Engg aspirant.So Starting With Some Basics Will POst Some Projects also On ACA.Thank you. Pipelining
Like assembly line. The worker at the front of the line doesn't wait until the first unit is assembled before starting the next.
worker1: steam tortilla, add beans worker2: add salsa, cheese, guac worker3: take money While worker2 adds ingredients, worker1 can start on the second burrito. While worker3 rings up the purchase, worker 2 can continue on the second burrito, and worker1 can start on the third.
For a large number of burritos over a continuous busy stretch, the workers can make burritos almost 3 times as fast, assuming each step requires the same amount of time.
t1 t2 t3 t4 t5 t6 t7 t8 worker1 u1 u2 u3 u4 u5 u6 - - worker2 - u1 u2 u3 u4 u5 u6 - worker3 - - u1 u2 u3 u4 u5 u6 When they are not all kept busy, the benefit is reduced. (bubble in the pipeline).
t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 ... worker1 u1 u2 u3 u4 u5 u6 - u7 - - ... worker2 - u1 u2 u3 u4 u5 u6 - u7 - ... worker3 - - u1 u2 u3 u4 u5 u6 - u7 ... A non-pipelined version of the same unit would behave as follows:
t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 ... worker1 u1 - - u2 - - u3 - - u4 worker2 - u1 - - u2 - - u3 - - worker3 - - u1 - - u2 - - u3 - The speed of pipeline limited by speed of slowest segment. If it takes 20 seconds to steam a tortilla and add the beans, 10 seconds to add the other ingredients, and 14 seconds to ring it up, then all stages will take 20 seconds in the pipeline.
In a computer, everything is synchronized by a clock anyway, so this isn't really introducing a new limitation.
Speedup for n tasks in a k-stage pipeline
n * tn non-pipeline time Speedup = ---------------- (k + n - 1) * tp pipeline time (See bottom row of space-time diagram)
100 burritos in a 3-person pipeline: