"A pipeline processor consists of a sequence of processing circuits, called segments or stages, through which a stream of operands can be passed."Partial processing of the operands takes place in each segment.
"... a fully processed result is obtained only after an operand set has passed through the entire pipeline."
In everyday life, people do many tasks in stages. For instance, when we do the laundry, we place a load in the washing machine. When it is done, it is transferred to the dryer and another load is placed in the washing machine. When the first load is dry, we pull it out for folding or ironing, moving the second load to the dryer and start a third load in the washing machine. We proceed with folding or ironing of the first load while the second and third loads are being dried and washed, respectively. We may have never thought of it this way but we do laundry by pipeline processing.
Let us review Hayes' definition as it pertains to our laundry example. The washing machine is one "sequence of processing circuits" or a stage. The second is the dryer. The third is the folding or ironing stage.
Partial processing takes place in each stage. We certainly aren't done when the clothes leave the washer. Nor when they leave the dryer, although we're getting close. We must take the third step and fold (if we're lucky) or iron the cloths. The "fully processed result" is obtained only after the operand (the load of clothes) has passed through the entire pipeline.
We are often taught to take a large task and to divide it into smaller pieces. This may make a unmanageable complex task into a series of more tractable smaller steps. In the case of manageable tasks such as the laundry example, it allows us to speed up the task by doing it in overlapping steps.
This is the key to pipelining: Division of a larger task into smaller overlapping tasks.
Chen expressed it this way [STO75, p 376] when he wrote:
"A significant aspect of our civilization is the division of labor. Major engineering achievements are based on subdividing the total work into individual tasks which can be handled despite their inter-dependencies."Overlap and pipelining are essentially operation management techniques based on job sub-divisions under a precedence constraint."
Many authors, such as Tabak [TAB95, p 67], separate the pipeline into two categories.
The above definitions are correct but are based on a narrow perspective, consider only the central processor. There are other type of computing pipelines. Pipelines are used to compress and transfer video data. Another is the use of specialized hardware to perform graphics display tasks. Discussing graphics displays, Ware Myers wrote: [MYE84]
"...the pipeline concept ... transforms a model of some object into representations that successively become more machine-dependent and finally results in an image upon a particular screen.
This example of pipelining fits the definitions from Hayes and Chen but not the categories offered by Tabaz. These broader categories are beyond the scope of this paper and are mentioned only to alert the reader that different authors mean different things when referring to pipelining.
Tony Wesley
Comments to author: tony@tonywesley.com
Last Updated: November 26, 1995