1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 计算机体系结构----指令流水线吞吐率 效率计算

计算机体系结构----指令流水线吞吐率 效率计算

时间:2022-08-04 04:38:04

相关推荐

计算机体系结构----指令流水线吞吐率 效率计算

每段时间相同

一条指令流水线被分为k段,每一段时间都为Δt\Delta tΔt,连续输入n条指令。

处理完n个任务所用的时间记作TkT_kTk​:

Tk=kΔt+(n−1)ΔtT_k=k\Delta t+(n-1)\Delta t Tk​=kΔt+(n−1)Δt

这个比较好理解,看时空图即可

吞吐率记作TPTPTP:

TP=nTk=nkΔt+(n−1)ΔtTP= \frac{n}{T_k}=\frac{n}{k\Delta t+(n-1)\Delta t} TP=Tk​n​=kΔt+(n−1)Δtn​

n个任务,用n除以总时间,就是每个任务的平均处理时间,平均多久处理一个任务,就是吞吐率。

效率:流水线中的设备实际使用时间与整个运行时间的比值,即流水线设备的利用率。

一共分为k段,需要k个设备,那么每个设备的效率我们记作eie_iei​

一个设备,在整个过程中,每一条指令都要使用一次,所以使用了n次,加上每一次都是Δt\Delta tΔt,所以就是nΔtn\Delta tnΔt

ei=nΔtTk=nΔtkΔt+(n−1)Δt=nk+n−1e_i=\frac {n\Delta t}{T_k}=\frac{n\Delta t}{k\Delta t+(n-1)\Delta t}=\frac{n}{k+n-1} ei​=Tk​nΔt​=kΔt+(n−1)ΔtnΔt​=k+n−1n​

(ps:注意,这个只符合,当一个设备每一条指令都会使用它的情况。飞此情况的,并不适用。其实还是从定义出发,效率就是所有设备的实际运行时间,与整个运行时间的比值,其实就是时空图里面被填满的格子,比上总的面积。)

那么整段流水线的效率呢,就是每一段的效率,加起来,求个平均值。

又因为这每一段的效率都一样,所以求均值和不求一样。故整段流水线的效率为:

E=e1+e2+...+ekk=ke1k=e1=nΔtTk=nk+n−1E=\frac{e_1+e_2+...+e_k}{k}=\frac{ke_1}{k}=e_1=\frac {n\Delta t}{T_k}=\frac{n}{k+n-1} E=ke1​+e2​+...+ek​​=kke1​​=e1​=Tk​nΔt​=k+n−1n​

这个结果其实还可以写作:

E=nΔtTk=TPΔtE=\frac {n\Delta t}{T_k}=TP\Delta t E=Tk​nΔt​=TPΔt

每段时间不同

一条指令流水线被分为k段,k段时间分别为e1,e2,...,eke_1,e_2,...,e_ke1​,e2​,...,ek​,连续输入n条指令。

处理完n个任务所用的时间记作TkT_kTk​:

Tk=∑i=1kΔti+(n−1)max(Δt1,Δt2,...,Δtk)T_k=\sum_{i=1}^{k}\Delta t_i +(n-1)max(\Delta t_1,\Delta t_2,...,\Delta t_k) Tk​=i=1∑k​Δti​+(n−1)max(Δt1​,Δt2​,...,Δtk​)

为什么是这样呢,看图。这个也好理解,直接看最长的那一段,从头到尾,最长的那一段一共执行了n次,那再观察时空图的末尾,最长的那一段过后,还执行了两小段,再观察时空图的开头,最长的那一段执行之前,还执行了一小段,这前后两部分,其实就是一个指令完整的执行流程,但不包括最长的那一段。所以啊,从n次执行中拿出来一个最长的,跟他们合在一起,就是一次完整的指令执行过程,所以最终的公式就是:一次完整的执行过程+(n-1)次最长的执行过程。

吞吐率TPTPTP:

TP=n∑i=1kΔti+(n−1)max(Δt1,Δt2,...,Δtk)TP=\frac{n}{\sum_{i=1}^{k}\Delta t_i +(n-1)max(\Delta t_1,\Delta t_2,...,\Delta t_k)} TP=∑i=1k​Δti​+(n−1)max(Δt1​,Δt2​,...,Δtk​)n​

效率:

先说一小段的效率eie_iei​

ei=nΔtiTk=nΔti∑i=1kΔti+(n−1)max(Δt1,Δt2,...,Δtk)e_i=\frac{n\Delta t_i}{T_k}=\frac{n\Delta t_i}{\sum_{i=1}^{k}\Delta t_i +(n-1)max(\Delta t_1,\Delta t_2,...,\Delta t_k)} ei​=Tk​nΔti​​=∑i=1k​Δti​+(n−1)max(Δt1​,Δt2​,...,Δtk​)nΔti​​

那总的效率E就是每一段的加起来,求均值

先看每一段加起来

e1+e2+...+ek=nΔt1Tk+nΔt2Tk+...=n∑i=1kΔtiTke_1+e_2+...+e_k=\frac{n\Delta t_1}{T_k}+\frac{n\Delta t_2}{T_k}+...=\frac{n\sum_{i=1}^{k}\Delta t_i}{T_k} e1​+e2​+...+ek​=Tk​nΔt1​​+Tk​nΔt2​​+...=Tk​n∑i=1k​Δti​​

再求均值,那就是除以k

E=n∑i=1kΔtikTk=n∑i=1kΔtik∑i=1kΔti+(n−1)max(Δt1,Δt2,...,Δtk)E=\frac{n\sum_{i=1}^{k}\Delta t_i}{kT_k}=\frac{n\sum_{i=1}^{k}\Delta t_i}{k \sum_{i=1}^{k}\Delta t_i +(n-1)max(\Delta t_1,\Delta t_2,...,\Delta t_k)} E=kTk​n∑i=1k​Δti​​=k∑i=1k​Δti​+(n−1)max(Δt1​,Δt2​,...,Δtk​)n∑i=1k​Δti​​

这个结果,里面那一部分其实就是TP,所以,还可以写为

E=TP1k∑i=1kΔtiE=TP\frac{1}{k} \sum_{i=1}^{k}\Delta t_i E=TPk1​i=1∑k​Δti​

瓶颈问题

我们把流水线中这种时间最长的段称为流 水线的瓶颈段。如图,S2S_2S2​就是瓶颈段。

解决瓶颈段有两个方法:

细分瓶颈段

重复设置瓶颈段

重复设置瓶颈段后的时空图:

9条指令

重复设置瓶颈段的缺点是:控制逻辑比较复杂,所需的硬件增加了。

加速比

加速比:完成同样一批任务,不使用流水线所用的时间与使用流水线所用

的时间之比。

使用流水线的时间是TPTPTP

不用流水线的时间,就是每一条指令所需时间加起来。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。