Pipelining is a technique of decomposing a sequential process into suboperations, with each subprocess being executed in a special dedicated segment that operates concurrently with all other segments.
The overlapping of computation is made possible by associating a register with each segment in the pipeline.
The registers provide isolation between each segment so that each can operate on distinct data simultaneously.
Perhaps the simplest way of viewing the pipeline structure is to imagine that each segment consists of an input register followed by a combinational circuit.
 The register holds the data.
 The combinational circuit performs the suboperation in the particular segment.
A clock is applied to all registers after enough time has elapsed to perform all segment activity.
The pipeline organization will be demonstrated by means of a simple example:

 To perform the combined multiply and add operations with a stream of numbers
A_{i} * B_{i} + C_{i} for i = 1, 2, 3, …, 7
Each suboperation is to be implemented in a segment within a pipeline.
R1 ß A_{i}, R2 ß B_{i} Input A_{i} and B_{i}
R3 ß R1 * R2, R4 ß C_{i } Multiply and input C_{i}
R5 ß R3 + R4 Add C_{i} to product
Each segment has one or two registers and a combinational circuit as shown in 92.
The five registers are loaded with new data every clock The effect of each clock is shown in Table 41.
Fig 41: Example of pipeline processing
Table 41: Content of Registers in Pipeline Example
General Considerations
 Any operation that can be decomposed into a sequence of suboperations of about the same complexity can be implemented by a pipeline processor.
 The general structure of a foursegment pipeline is illustrated in 42.
 We define a task as the total operation performed going through all the segments in the pipeline.
 The behavior of a pipeline can be illustrated with a spacetime diagram.
 It shows the segment utilization as a function of time.
Fig 42: Four Segment Pipeline
 The spacetime diagram of a foursegment pipeline is demonstrated in 43.
 Where a ksegment pipeline with a clock cycle time t_{p} is used to execute n tasks.
 The first task T_{1} requires a time equal to kt_{p} to complete its operation.
 The remaining n1 tasks will be completed after a time equal to (n1)t_{p}
 Therefore, to complete n tasks using a ksegment pipeline requires k+(n1) clock cycles.
 Consider a nonpipeline unit that performs the same operation and takes a time equal to t_{n} to complete each task.
 The total time required for n tasks is nt_{n}.
Fig 43: Spacetime diagram for pipeline
 The speedup of a pipeline processing over an equivalent nonpipeline processing is defined by the ratio S = nt_{n}/(k+n1)t_{p} .
 If n becomes much larger than k1, the speedup becomes S = t_{n}/t_{p}.
 If we assume that the time it takes to process a task is the same in the pipeline and nonpipeline circuits, i.e., t_{n} = kt_{p}, the speedup reduces to S=kt_{p}/t_{p}=k.
 This shows that the theoretical maximum speed up that a pipeline can provide is k, where k is the number of segments in the pipeline.
 To duplicate the theoretical speed advantage of a pipeline process by means of multiple functional units, it is necessary to construct k identical units that will be operating in parallel.
 This is illustrated in 44, where four identical circuits are connected in parallel.
 Instead of operating with the input data in sequence as in a pipeline, the parallel circuits accept four input data items simultaneously and perform four tasks at the same time.
Fig 44: Multiple functional units in parallel
 There are various reasons why the pipeline cannot operate at its maximum theoretical rate.
 Different segments may take different times to complete their sub operation.
 It is not always correct to assume that a non pipe circuit has the same time delay as that of an equivalent pipeline circuit.
 There are two areas of computer design where the pipeline organization is
 Arithmetic pipeline
 Instruction pipeline