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
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