- 1、本文档共208页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[精品]流水和现处理器技术
第五章 重叠、流水和现代处理器技术;主要内容:
基本问题
流水线技术
向量流水技术
现代处理器技术
;基本问题;基本问题;顺序执行方式
一条指令的执行过程:取指令-分析-执行
执行n条指令所用的时间为:
如每段时间都为t,则执行n条指令所用的时间为:T=3nt
主要优点:控制简单,节省设备。
主要缺点:执行指令的速度慢,功能部件的利用率很低。;
此时,执行n条指令的时间为:T=(2+2n)t
主要优点:指令的执行时间缩短功能部件的利用率明显提高
主要缺点:需要增加一些硬件控制过程稍复杂;二次重叠执行方式;;;;主要内容:
基本问题
流水线技术
向量流水技术
现代处理器技术
;流水线技术;流水线的分类;多功能流水线是指同一流水线的各段之间可以通过不同的连接方式实现多种不同的运算或功能。;按多功能流水线的各段能否允许同时用多种不同功能连接流水,可把流水线分为静态流水线和动态流水线。
静态流水线在某一时间内各段只能按一种功能连接流水。
动态流水线的各段在同一时间内可按不同运算或功能连接。;可同时进行浮点加、减运算和定点乘法运算的流水线;从流水线中各功能段之间是否有反馈回路,可以把流水线分为线性流水线和非线性流水线。;流水线的表示方法;2、一种指令流水线
一般4至12个流水段,等于及大于8个流水段的称为超流水线处理机。
;3、流水线的时空图
采用“时空图”表示流水线的工作过程。
一条简单流水线的时空图:; 一个浮点加法器流水线的时空图(由求阶差、对阶、尾数加和规格化4个流水段组成):;在流水线的每一个功能部件的后面都要有一个缓冲器,称为锁存器、闸门寄存器等,它的作用是保存本流水段的执行结果。
各流水段的时间应尽量相等,否则回引起阻塞、断流等。
只有连续提供同类任务才能充分发挥流水线的效率。
在流水线的每一个流水线段中都要设置一个流水锁存器。
流水线需要有“装入时间”和“排空时间”。只有流水线完全充满时,整个流水线的效率才能得到充分发挥。;衡量流水线性能的主要指标有:吞吐率、加速比和效率
1、吞吐率???Though Put)
求流水线吞吐率的最基本公式:
TP = n / Tkn为任务数, Tk为完成n个任务所用时间
各段执行时间相等,输入连续任务情况下完成n个连续任务需要的总时间为: Tk= (k+n-1) Dt k为流水线的段数,D t为时钟周期;1; 吞吐率:最大吞吐率为:
各段执行时间不相等、输入连续任务情况下:吞吐率为:
最大吞吐率为:;流水线各段执行时间不相等的解决办法;一是将“瓶颈”流水段细分(如果可分的话):
二是将 “瓶颈”流水段重复设置:;流水段重复设置的流水线;2、加速比(Speedup)
计算流水线加速比的基本公式:S = 顺序执行时间T0 / 流水线执行时间Tk
各段执行时间相等,输入连续任务情况下加速比为:
最大加速比为:
各段执行时间不等,输入连续任务情况下实际加速比为:;K=6;3、效率(Efficiency)
计算流水线效率的一般公式:
各流水段执行时间相等,输入n个连续任务流水线的效率为:
流水线的最高效率为:
;1; 各流水段执行时间不等,输入n个连续任务流水线的效率为:;S1;流水线的吞吐率、加速比与效率的关系:
因为
因此:E=TP· Dt ,S=k·E;4、流水线性能分析举例
对于单功能线性流水线,输入连续任务的情况,通过上面给出的公式很容易计算出流水线的吞吐率、加速比和效率。
例5.2:用一条4段浮点加法器流水线求8个浮点数的和:Z=A+B+C+D+E+F+G+H;解:Z = [(A+B) + (C+D)] + [(E+F) + (G+H)];7个浮点加法共用了15个时钟周期。流水线的吞吐率为:
流水线的加速比为:
流水线的效率为:
;什么是非线性流水线?
如果存在反馈回路,当一个任务在流水线中流过时,在同一个流水段中可能要经过多次。不能每一个时钟周期向流水线输入一个新任务。这样的流水线就是非线性流水线。
非线性流水线的调度问题就是要解决要隔多少个时钟周期向流水线输入一个新任务才能使流水线 的各个流水段都不发生冲突。
表示一个非线性流水线需要用到连接图和预约表。;S1;S1;预约表横坐标表示流水线的时钟周期,纵坐标表示流水线的各个流水段,中间有“X”表示该流水段在这一个时钟周期处于工作状态,空白表示该流水段在这一个时钟周期不工作。
一行中可以有多个“X”,表示一个任务在不同时钟周期重复使用了同一流水段;一列中有多个“X”表示在同一个时钟周期同时占用了多个流水段。预约表的行数是流水线的段数,
文档评论(0)