PipeLining in Microprocessors
PipeLining in Microprocessors
ENS 5257:
MICROPROCESSOR SYSTEMS
PRESENTATION BY
SAJID HAYAT
What Is Pipelining?
Pipelining is almost used by all of the
microprocessors now a days.
It enhances the performance of the system in terms
of throughput by overlapping the instructions.
A common example of a pipeline is a factory
making cars. Assume there are three stages of
making the car:
1. Engine
2. Body
3. Painting
For simplicity, we assume that each stage takes 1
hour.
If only one team of workers is working on the
car, it would take three hours for one car to be
completed.
If we have three teams, 1 st team can work on
engine
Upon completing stage 1, they can pass it on to
2nd team who can work on the body of the car.
On the same time as the body of the car is
being constructed, the first team is working on
the engine of the next car
As each stage takes 1 hour there is no waiting,
so we can produce one car per hour
3hrs 3hrs 3hrs
Engin
e
Body Paint
Engin
e
Body Paint
Engin
e
Body Paint
Engin
e
Body Paint
Engin
e
Body Paint
Engin
e
Body Paint
Execution Cycle
Control Hazards
The control hazard occurs if an instruction
changes the value of PC.
Eliminating the Pipeline Hazard
The pipeline hazard makes it necessary to
stall the pipeline
To eliminate the pipeline hazard some
instructions are allowed to proceed while
some are delayed.
The instructions issued before the stall are
allowed to be executed.
Conclusion
Pipelining increases the efficiency of the
processor considerably
The Pipeline Hazards must be addressed
properly
The performance gained by pipelining
depends on avoiding the Pipeline stalls
because they degrade the overall throughput
References
1. http://www.cs.iastate.edu/~prabhu/Tutorial/PIPELINE/ha
zards.html
2. http://arstechnica.com/features/2004/09/pipelining-2/
3. http://www.psut.edu.jo/sites/qaralleh/CO/co_doc/chapter
%208%20-%20%20Pipelining.ppt
4. www.engr.mun.ca/~venky/Pipelining
5. http://www.techrepublic.com/article/solutionbase-how-pip
elining-and-multiple-cores-help-speed-cpus/
Thank you