流水线
概念
流水线是在执行程序时,多条指令并行处理。各种部件同时处理不同指令,已提高部件的利用率和指令的平均执行速度。
流水线计算
流水线周期 执行时间最长的一段(此题为2ns)
理论上:203ns
实际上:204ns
在实际操作过程中,不工整的时间片很短,1ns和2ns差别不大,所以在计算过程中,将每段认为是一个周期,都看成2ns来计算
k为几段 n为指令条数
吞吐率计算
吞吐率:单位时间内,流水线完成的任务数量或输出的结果数量
T P = 指令条数 流水线执行时间 TP=\dfrac{指令条数}{流水线执行时间} TP=流水线执行时间指令条数
流水线最大吞吐率:
T
P
m
a
x
=
lim
n
→
+
∞
n
(
k
+
n
−
1
)
Δ
t
=
1
Δ
t
TP_{max}=\lim_{n\rightarrow+\infty}\dfrac{n}{(k+n-1)\Delta t}=\dfrac{1}{\Delta t}
TPmax=n→+∞lim(k+n−1)Δtn=Δt1
结合上一题,吞吐率为
100
203
n
s
\dfrac{100}{203}ns
203100ns
流水线加速比
加速比:
S
=
不使用流水线执行时间
使用流水线执行时间
S=\dfrac{不使用流水线执行时间}{使用流水线执行时间}
S=使用流水线执行时间不使用流水线执行时间
上一题 S = 500 203 S=\dfrac{500}{203} S=203500
流水线效率
E
=
n
个任务占用的时间区
k
个流水线段的总时间区
=
T
0
k
T
k
E=\dfrac{n个任务占用的时间区}{k个流水线段的总时间区}=\dfrac{T_0}{kT_k}
E=k个流水线段的总时间区n个任务占用的时间区=kTkT0
每个流水线段的周期都相等时,效率往往最大
参考自王勇的视频教程,因为原视频没有版权,就不放链接了,怕下架,b站上有,差不多28小时,需要的可以自行查找