9. Pipeline *

r=max⁑[ri]+d;1β‰€β…ˆβ‰€kr=max⁑[r_i ]+d ; 1β‰€β…ˆβ‰€k
r=rm+dr=r_m+d
rm≫dr_m≫d
r=rmr=r_m
r=max⁑[ri]+dr=max⁑[r_i ]+d
  • r : cycle time of an instruction pipeline

  • r_m : maximum stage delay/latency

  • d : time delay/ latency of a latch (time needed to advance singnals and data from one stage to the next stage)

  • k : number of stages in the instruction pipeline

  • Total time (T_k) required to execute all n instructions (with no branch)

Total time required to execute all n instructions

Tk=[k+(nβˆ’1)]rT_k=[k+(n-1)]r

Speed up

π‘†π‘˜=π‘†π‘’π‘žπ‘’π‘’π‘›π‘‘π‘–π‘Žπ‘™(π‘‡π‘–π‘šπ‘’)/𝑃𝑖𝑝𝑒𝑙𝑖𝑛𝑒(π‘‡π‘–π‘šπ‘’)𝑆_π‘˜=π‘†π‘’π‘žπ‘’π‘’π‘›π‘‘π‘–π‘Žπ‘™ (π‘‡π‘–π‘šπ‘’) /𝑃𝑖𝑝𝑒𝑙𝑖𝑛𝑒 (π‘‡π‘–π‘šπ‘’)
=π‘›π‘˜π‘Ÿ/[π‘˜+(π‘›βˆ’1)]π‘Ÿ =π‘›π‘˜π‘Ÿ/[π‘˜+(π‘›βˆ’1)]π‘Ÿ
=π‘›π‘˜/π‘˜+(π‘›βˆ’1)=π‘›π‘˜/π‘˜+(π‘›βˆ’1)

Latency

Latency = Cycle time x No. of pipeline stages.

Given an unpipelined processor with 10ns cycle time and pipeline latches with 0.5ns latency, what are the cycle times of pipelined versions of the processor with 2, 4, 8, and 16 stages if the datapath logic is evenly divided among the pipeline stages? Also, what is the latency of each of the pipelined versions of processor?

stage

cycle time

latency

2

10/2+0.5 = 5.5ns

10+2*0.5=11ns

4

10/4+0.5 = 3ns

10+4*0.5=12ns

8

10/8+0.5=1.625ns

10+8*0.5=14ns

16

10/16+0.5=1.125ns

10+16*0.5=18ns

Last updated

Was this helpful?