计算机体系结构:彻底弄懂流水线性能分析

题目简单概要

该类问题通常给出流水线的流水段的个数,以及各个流水段的时间(拍数),之后给出一个算术表达式,要求根据该算术表达式作出时空图,并求解流水线的吞吐率、加速比和效率。

通用步骤总结

①首先判断最优的求解顺序。题目中所给的算术表达式一般可以有多种求解顺序,比如最简单的X=A+B+C+D,就可以分成两种顺序进行求解:

第一种:先求A+B的结果,再求C+D的结果,最后将两个结果相加得到最终结果;
第二种:先求A+B的结果,然后将该结果与C相加,再将得到的结果与D相加。

这两种方式虽然都是执行了三次加法,但是第一种方法却更优。为什么呢?在此做一个定性分析:第二种方法在求解A+B的结果和C相加的时候,D只能等待运算完成以后才能参与加法,这个过程无疑会多消耗时间;而第一种方法,所有操作数可以认为全程都处于参与计算的状态,因此会更加节约时间。

一般来说,判断最优求解顺序的准则是:能够同时进行(并行)的工作越多越好!

②根据选定的求解顺序作出时空图。作时空图首先需要画出坐标轴和上面的刻度,流水线中一共有几个流水段那纵轴上就要有几个刻度。横轴上的刻度可以先只标注一部分,因为在作图时不知道横轴最远的刻度需要标注在哪。具体作图时按照逻辑顺序,一列一列地画出时空图中的方格

③根据时空图求解吞吐率、加速比和效率。作出时空图后可以方便地求解出吞吐率、加速比和效率。

吞吐率=任务个数/流水线执行完这些任务的总用时

任务个数其实就是执行的运算个数。比如A+B+C,里面就需要执行两次加法运算,因此任务个数就是2。执行完这些任务的总用时可以直接通过时空图中横轴最后一个端点对应的时间确定。

加速比=串行执行所有任务的总用时/流水线执行完这些任务的总用时

串行执行所有任务的总用时直接把每个任务的执行时间加在一起就行。

效率=时空图中的方格数/(流水线的总段数×流水线执行完所有任务的总拍数)

例题一

有一四段线性流水线,每功能段延时时间分别是△t1=△t3=△t4=△t, △t2=3△t。现在这个流水线上分别执行4个任务和40个任务。求实际吞吐率、效率和加速比。

解:以4个任务为例,首先作出该流水线的时空图如下所示:

在这里插入图片描述
首先计算实际吞吐率。考虑实际吞吐率的定义,即一定时间所完成的任务数与所消耗的时间的比值。对于第一种情况四个任务,消耗的时间可以通过时空图判断出来为15△t,因此实际吞吐率为4/15△t。
接下来计算效率。效率即时空图中的蓝色方格的面积之和与其所在的坐标图长方形区域的面积之比。因此可以得出,效率E=24/(4×15)=40%。
最后计算加速比。根据加速比的定义,加速比的大小即为使用流水线前和使用流水线后处理四个任务的时间比值。使用流水线之前,需要4*6=24拍,同时可以根据时空图得出使用流水线后只需要15拍即可完成四个任务,因此加速比=24/15=1.6。

当任务数较多,比如此时的四十个时,使用时空图就不那么方便了,因此需要借助于相关的公式。
同样首先计算吞吐率。处理四十个任务所需要的拍数=6△t+(40-1)*3△t=123△t,因此实际吞吐率=40/123△t。
可以利用如下公式计算完成指定个数任务所需的拍数:

时钟周期数=(任务数-1)×输出端相邻两个输出的间隔周期+单独执行一个任务所需的周期数

接下来计算效率:E=(6×40)/(123×4)×100%=20/41≈48.8%。
最后计算加速比:Sp=(6×40)/123≈1.95

可以看出,随着任务数的增多,加速比越来越接近最大加速比6/3=2。

例题二

以浮点加法运算为例(四段)各段时间相等,求:Z=A+B+C+D+E+F+G+H的TP、E、Sp。
由于任务量不是特别多,因此考虑先作出时空图如下所示
在这里插入图片描述
执行运算的流程如下图所示。之所以采用这种方式进行计算,是因为这样计算的时间消耗小于各个项逐一相加的方法。
在这里插入图片描述

首先计算实际吞吐率:完成的总任务数即加法的次数,为7次,总时间为15△t,因此实际吞吐率=7/15△t。
接下来计算效率:E=(7×4)/(15×4)=7/15。
最后计算加速比:SP=(4△t×7)/15=28/15≈1.87

例题三

在这里插入图片描述
判断最优的求解顺序。本题中的计算是将四组数字相加后再进行累乘,那么可行的计算顺序有两种:第一种是先将四组数据逐一相加后,最后再进行逐一相乘;第二种是每相加一组数据,就把这组数据的和与另一组数据的和相乘。
怎么判断哪一种方案更好呢?一个基本的原则是能够同时执行的部分(也就是并行的部分)越多越好
因此此处可以判断第一种方法更好,因为第二种方法再进行前面几组数据的运算时,排在后面的数据只能先等着,因此执行时间必然会更长。
按照判断出的最优求解顺序作出时空图。作时空图的方法是按照时间顺序,一次画时空图中的一列,直到完成整个运算过程。本题中的时空图如下所示:
在这里插入图片描述

计算吞吐率、加速比和效率。可以根据时空图直接计算得出,具体解析略,步骤如下:
在这里插入图片描述

例题四

在这里插入图片描述

时空图为

在这里插入图片描述

吞吐率、加速比和效率计算

在这里插入图片描述

如果本篇文章有看不懂的地方,请和我私信联系,谢谢!

  • 13
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
很抱歉,作为人工智能,我无法提供思维导。但我可以为您介绍一下流水线工作原理和冲突处理方法。 计算机体系结构流水线的工作原理: 流水线是一种计算机结构,用于提高指令处理速度。流水线将一个指令处理分成若干个流水段,每个流水段负责执行一个指令处理的一部分。同时,多条指令可以在不同的流水段同时处理,从而提高了处理效率。 流水线中一般包含以下五个流水段: 1. 取指令(IF):从内存中读取指令。 2. 指令译码(ID):将指令翻译为计算机可以理解的指令。 3. 执行指令(EX):执行指令的操作。 4. 存储访问(MEM):访问内存来获取数据。 5. 写回结果(WB):将执行的结果写回内存或寄存器中。 冲突处理方法: 1. 数据相关(Data Hazards):当一条指令需要用到另一条指令才能执行时,就会出现数据相关。 解决方法: ① 前推技术(Forwarding):让结果直接流动到需要的地方,绕过数据相关的指令。 ② 排队技术(Stalling):将流水线暂停,等待需要的数据指令完成。 2. 控制相关(Control Hazards):当分支指令的结果未知时,即分支指令的条件尚未满足,就会出现控制相关。 解决方法: ① 预测分支指令的结果,提前预测好接下来的指令,以减少等待时间。 ② 延迟槽技术(Delayed Branch):在分支指令之后加入一个无操作指令,使得下一条指令一定会执行。 以上是计算机体系结构流水线的相关与冲突处理方法的介绍,希望对您有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值