16 Pipelining Flashcards
Stages of the fetch-execute cycle?
What is pipelining?
Pipelining is an implementation technique in which multiple tasks are executed simultaneously
Analogous to single-cycle datapath diagram?
Analogous to pipelined datapath diagram?
Pipelining performs stages concurrently.
Latency and Throughput changes of pipelining?
Latency The elapsed time from the start to the finish of a task. Latency is NOT improved by pipelining.
Throughput Number of instructions performed per unit of time. Pipelining IMPROVES the throughput.
Single-cycle datapath
Pipelined datapath
Latency
This is the elapsed time from start to finish of a particular instruction
Throughput
How many instructions can be completed per unit of time (usually a number of cycles)
Pipelining only improves ….
Pipelining only improves throughput
It doesn’t make the processor faster
It does allow more instructions to be completed within a window of time
Pipelining delay problems?
Then, the microprocessor needs to WAIT!
If the instructions MUST be completed in the correct order, then we need to wait for longer instructions to complete, e.g., Instruction 3 takes 2 cycles => need to wait
But what if we don’t need to wait (no data dependencies)?
- We can therefore carry out instructions “out of order” o In other words, if we are ready to go, then GO
- BUT, only if we don’t need to wait for a previous instruction to supply relevant data
- AND, we might need to wait later on when the data DOES become important/relevant
- This requires knowledge of the program flow
Single-cycle or non-pipelined processor?
Pipelined processor
Additions made to a pipelined processor?