表达式运算顺序引发的流水线的学习笔记

下面的表达式有两种运算顺序:
a * b + c * d + e * f
顺序一:
a * b -> c* d -> (a * b) + (c * d) -> e * f -> (a * b) + (c * d) + (e * f)

顺序二:
a * b -> c* d -> e * f ->(a * b) + (c * d) -> (a * b) + (c * d) + (e * f)

这两种运算顺序在动态流水线和静态流水线的表现正好相反。首先写下这两种流水线的定义:
静态流水线:只能按一种方式连接,只有在按这种连接流入的所有的处理对象都流出流水线后,静态流水线才能重新进行连接以实现其他功能。

动态流水线:在同一段时间内,动态流水线中的各段可以实现多种连接,同时执行多种功能。

时空图帮助理解,可以看出静态流水线要进行乘法运算需要等加法所有数据流出后才能开始,动态流水线则不需要:
这里写图片描述

所以如果是在静态流水线中,顺序二要比顺序一更高效。而顺序二充分运用了动态流水线的特性,减少数据相关性(顺序二中最后一步的加法依赖前一步加法的运算结果,所以这里会有一段时间的等待)。

流水线的性能:
1、吞吐率
流水线单位时间输出结果的数量。
2、加速比
使用顺序处理方式处理一批对象所用的时间与使用流水处理方式处理同一批对象所用的时间比。
3、效率
流水线的效率是指流水线的设备利用率,它是流水线各段的实际工作时间之和与流水线各段被占用时间之和的比。

在瓶颈段处可以采用分离瓶颈段和重复设置瓶颈段的方法来提高流水线的吞吐量,但是相应的效率会降低。就像增加了工人来干活,相同任务能够用更短的时间来完成,但是因为流水线的环节加多了,每个工人的等待时间也就增加了。

流水线按等级分类可以分为:部件级流水线,处理机级流水线,系统级流水线。
部件级流水线如求阶差、对阶,尾数加减、规格化等子部件组成浮点加减运算部件流水线。
由取指、指令分析部件,指令执行部件组成的指令流水线就是典型的处理机级流水线。
系统流水线是指处理机之间的流水线,又称为宏流水线。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值