Wednesday, March 20, 2013

Pipelining



Pipelining


Pipelining is an implementation technique where multiple instructions are overlapped in execution.
The computer pipeline is divided in stages.
Each stage completes a part of an instruction in parallel.
The stages are connected one to the next to form a pipe - instructions enter at one end, progress through the stages, and exit at the other end.



Pipelining does not decrease the time for individual instruction execution.
Instead, it increases instruction throughput.
The throughput of the instruction pipeline is determined by how often an instruction exits the pipeline.
Because the pipe stages are hooked together, all the stages must be ready to proceed at the same time.
We call the time required to move an instruction one step further in the pipeline a machine cycle . 
Thelength of the machine cycle is determined by the time required for the slowest pipe stage.
 
The pipeline designer's goal is to balance the length of each pipeline stage .
If the stages are perfectly balanced, then the time per instruction on the pipelined machine is equal to
Time per instruction on nonpipelined machine
Number of pipe stages
Under these conditions, the speedup from pipelining equals the number of pipe stages.
Usually, however, the stages will not be perfectly balanced; besides, the pipelining itself involves some overhead.

Pipelining is also called pipeline processing.
The pipeline is divided into segments and each segment can execute its operation concurrently with the other segments.
When a segment completes an operation, it passes the result to the next segment in the pipeline and fetches the next operation from the preceding segment.
The final results of each instruction emerge at the end of the pipeline in rapid succession.

No comments:

Post a Comment