Pipelining - computer architecture:
The Pipeline Defined
According to John Hayes
"A pipeline processor consists of a sequence of processing circuits, called stages or segments, through which a stream of operands may be passed.
"Partial processing of the operands takes place in each segment.
"... a fully processed result is achieved only after an operand set has passed through the whole pipeline."
In daily life, people perform many tasks in stages. For examples, when we perform the laundry, we put a load in the washing machine. When it is completed, it is transferred to the dryer and another load is put in the washing machine. When the initial load is dry, we pull it out for another work like folding or ironing, by moving the 2nd load to the dryer and begin a third load in the washing machine. We carry on with folding or ironing of the first load at the same time as the second and third loads are being dried and washed, respectively. We might have never thought of it this way but we do laundry by pipeline processing.
A Pipeline is a series of various stages, where some task is completed at each stage. The work is not completed until it has passed through the all stages.
Take a review of Hayes' definition as it pertains to our laundry example. The washing machine is 1 "sequence of processing circuits" or can say a stage. The second sequence is the dryer. And the third is the folding or ironing stage.
Partial processing is done in each stage. We surly aren't done when the clothes leave the washer. Neither when they leave the dryer, we just getting close. We have to take the third step and fold (if we're lucky) or iron the cloths. The "fully processed result" is gained only after the operand (the load of clothes) has passed through the whole pipeline.
We are frequently taught to take a big task and to divide it into smaller. It may make a unmanageable composite task into a series of more tractable smaller steps. In the particular case of manageable tasks such as the laundry instance, it permits us to speed up the task by doing it in overlapping steps.
This is the key to pipelining: Division of a big task into smaller overlapping tasks.
"An important aspect of our civilization is the division of labor. Chief engineering achievements are based on subdividing the entire work into individual tasks which can be handled in spite of their inter-dependencies.
"Overlap and pipelining are important operation management techniques based on job sub-divisions under a precedence constraint."