Hi
Pipelining is breaking down a process into chunk of tasks and utilize the gaps in the task get more throughput.
Week No | Raw Material | Make Body | Add Engine | Add Paint Work | Add Upholstery | Finished Car |
1 | --> | | | | | |
2 | --> | --> | | | | |
3 | --> | --> | --> | | | |
4 | --> | --> | --> | --> | | |
5 | --> | --> | --> | --> | --> | |
6 | --> | --> | --> | --> | --> | --> |
7 | --> | --> | --> | --> | --> | --> |
you see, it took 6 weeks to build the first car, but after 6th week there will be a new car out through the door. This is Pipelining, you don't let the resource waiting instead keep it working.
The same principle applies to computing, in terms of executing instructions in computing.
you can also use the same principle in software (using threads, Producer, consumer ques, etc) especially assembly line automation applications to control productions such as scan barcode, check product and apply expiry date. So by the time application checks the first product, it is also scan the barcode of the second item.
I hope this helps.
Regards
Jegan