典型习题和题例分析与解答.docx
《典型习题和题例分析与解答.docx》由会员分享,可在线阅读,更多相关《典型习题和题例分析与解答.docx(11页珍藏版)》请在冰豆网上搜索。
![典型习题和题例分析与解答.docx](https://file1.bdocx.com/fileroot1/2022-10/27/034aeea8-a086-4321-a207-935a780214fa/034aeea8-a086-4321-a207-935a780214fa1.gif)
典型习题和题例分析与解答
5.3典型习题和题例分析与解答
题5.1假设指令的解释分取指、分析和执行3步,每步的时间相应地为、、,
(1)分别计算下列几种情况下,执行完100条指令所需时间的一般关系式;
i.顺序方式;
ii.仅“执行x”与“取指x剩”重叠,
iii.仅“执行x”、“分析r+:
”,“取指。
+:
”重叠.
(2)分别在==2,=l及==5,=2两种情况下,计算出上述各结果。
[分析]可先按指令间所要求的时间关系画出指令间的时间重叠关系图,由图就可以列出各种情况下,计算100条指令所需时间的一般关系式。
再将给出的时间值代入,实际完成100条指令所需的时间就可以求得。
顺序方式工作的时间关系如图5.1所示。
图5.1顺序方式工作的时间关系图
仅“”与“”、重叠方式工作的时间关系如图5.2所示.
图5.2仅“”,与“”重叠方式工作的时间关系图
仅“”、“”、“”重叠方式工作的时间关系如图5.3所示.
图5.3仅“”、“”、“”重叠方式工作的时间关系图
[解答]
(1)计算执行完100条指令所需要的时间:
(i)顺序方式工作时为
(ii)仅“”,与“”重叠方式工作时为
(iii)仅“”、“”、“”重叠方式工作时为
(2)当==2、=l时,代入上面的各式,可求得100条指令执行所需要的时间是:
顺序方式工作时为500。
仅“”,与“”重叠方式工作时为401。
仅“”、“”、“”重叠方式工作时为203。
当==5,=2,代入上面的各式,可求得100条指令执行所需要的时间是:
顺序方式工作时为1200。
仅“”,与“”重叠方式工作时为705。
仅“”、“”、“”重叠方式工作时为510。
题5.2流水线由4个功能部件组成,每个功能部件的延迟时间为△t。
当输入10个数据后,间歇5△t,又输入10个数据,如此周期性地工作,求此时流水线的吞吐率,并画出其时空图。
[分析]所谓输入10个数据后.间歇5△t.又输入10个数据的含义应当是以输入时间为基准,即从第10个数据输入时算起.隔5△t后又开始输入新的一轮数据。
[解答]按题意可得4个功能部件流水时的时空关系.如图5.4所示.
①②③④⑤⑥⑦⑧⑨⑩①②
图5.4题5.2的流水时空图
所以,按周期性工作时的流水线平均吞吐宰为:
题5.3有一个浮点乘流水线如图5.5(a)所示,其乘积可直接返回输入端或暂存于相应缓冲寄存器中,画出实现A*B*C*D的时空图以及精入端的变化,并求出该流水线的吞吐率和效率;当流水线改为图5.5(b)形式实现同一计算时,求该流水线的效率及吞吐率。
[分析]为了减少运算过程中的操作数相关,A*B*C*D应改为采用((A*B)*
(C*D))的算法步骤进行运算。
[解答]按图5.5(a)组织.实现A*B*C,D的时空关系如图5.6所示。
吞吐率
效率
流水按图5.5(b)组织时,实现A*B*C*D的时空关系如图5.7所示。
吞吐率
效率
题5.4一个4段的双输入端规格化浮点加法流水线,每段经过时间10ns,输出可直接返回输入或将结果暂存于相应缓冲器中,问最少需经多少时间能求出,并画出时空图。
[分析]为了避免流水线的先写后读相关,使流水线性能尽可能高,需将
调整成
((((+)+(十))十(+))+((+)+(+)))
的算法步骤来进行。
[解答]按((((+)+(十))十(+))+((+)+(+)))
流水的时空图如图5.8所示.
由图5.8之时空图可知,求所需要的最少时间为170ns。
题5.5为提高流水线的效率可用哪两种主要途径来克服速度瓶颈?
现有3段流水线各段经过的时间依次为△t、3△t、△t。
(1)分别计算在连续输入3条指令时和30条指令时的吞吐率和效率。
(2)按两种逾径之一改进,画出你的流水线结构示意图.同时计算连续输入3条指令和30条指令时的吞吐率和效率。
(3)通过对
(1)、
(2)两小题的计算比较可得出什么结论?
[分析]根据题意可以看出,原3段的流水线工作起来仍可看成是一条线性流水线只是其中经过时间为3△t的段是瓶颈段,所以可以按
及
来求得和.其中,n为连续输入的指令数,m为3个段,,△=△t,=3△t,△=△t,△为瓶颈段经过时间,本题的△为3△t。
在改进流水性能时,无论是将瓶颈段2段细分成3个时间分别为△t的子段,还是用3个瓶颈段2段并联,计算吞吐率、效率时,只需将公式中的m由3改成5,△改成,△即可。
[解答]提高流水线效率,消除速度瓶颈主要有将瓶颈段再细分以及重复设置多个颈段并联工作,给其轮流分配任务的两种途径。
(1)在3段流水线,各段经过时间依次为△t、3△t、△t的情况下,连续流入3条指令
时,将n=3,m=3,△=△t,=3△t,△=△t,△=3△t代入,可得吞吐率,和效率为
而连续流入30条指令时,只需将上式之n改为30,其它参数不变,得
(2)若采取将2段细分成3个子段,每个子段均为△t,构成的流水线结构如图5.92所示。
连续流入3条指令时,将n=3,m=5,△=△=△代入,得
连续流入30条指令时,将n=30代入,其它参数不变,有
若采取将3个2段并联构成的流水线,其构成如图5.10所示。
连续流入3条指令及流入30条指令时的吞吐率,和效率所计算的结果分别与子过程细分的相同。
(3)将
(1)题的计算结果进行比较可以看出,只有当连续流入流水线的联指令越多时,流水线的实际吞吐率和效率才会提高。
将
(1)、
(2)题的计算结果进行比较,同样可以看出,无论采用瓶颈子过程再细分,还是将多个瓶颈子过程并联来消除流水线瓶颈,都只有在连续流入流水线的指令数越多时才能使实际吞吐率和效率得到显著的提高。
若连续流入流水线的指令数太少,消除流水线瓶颈虽可以提高流水线的实际吞吐率,而效率却可能下降。
题5.6有一个双输入端的加一乘双功能静态流水线,由经过时间为△t、2△t、2△t、△t的l、2、3、4四个子过程构成.加按1—2—4连接,乘按1—3—4连接,流水线,S出设有数据缓冲器,也可将数据直接返回输入.现要执行
A*(B+C*(D+E*F))+G*H
的运算,请调整计算顺序,画出能获得吞吐率尽量高的流水时空图,标出流水线入,出端数据的变化情况,求出完成全部运算的时间及此期间流水线的效率.如对流水线瓶颈子过程再细分,最少只需多少时间可完成全部运算?
若子过程3不能再细分,只能用并联方法改进,问流水线的效率为多少?
[分析]因为是加一乘双功能静态流水线,为了能有高的吞吐率,应减少流水线的功能切换次数。
因此,宜将算法调整成先一连串的乘,然后再切换成一连串的加.这样,将计算式展开成:
A*B+A*C*D+A*C*E*F+G*H
对于该表达式的计算,自然应先进行乘法流水.为了减少因先写后读相关而等待的时间,应尽量安排对计算式子项数量多的乘法先进行操作.此外,由于流水线中瓶颈子过程为2△t,所以,流水输入端最快也只能每隔2△t输入一组数据。
[解答]根据题意,对算法经调整后,能使流水吞吐宰尽量高的流水时空图如图5.11所示。
图中已标出了流水线入、出端的数据变化情况.
根据图5.11的流水时空图,可以看出,完成全部运算的时间为2△t。
在此期间的流水线效率
如果现在将瓶颈子过程2和3均细分成两个子过程.则时空图如图5.12所示。
图5.12子过程细分后的沈水线时空图
由田5.12可见,完成全部运算最少需要18△t的时间即可。
现在若干过程3不能再细分了,只能用2个子过程3通过并联来改进,则其时空图如图5.13所示。
完成全部运算时的流水线效率
题5.7现在长度为8的向量A和B,请分别画出在下列4种结构的处理器上求点积A•B的时空图,并求完成全部结果的最少时钟拍数。
设处理器中每个部件的输出均可直接送到任何部件的输入端或存入缓冲器,其间的传送延时不计,指令和源操作数均能连续提供。
(1)处理器有一个乘法部件和一个加法部件,不能同时工作,部件内也只能顺序方式工作,完成一次加法或乘法均只需5拍;
(2)与
(1)基本相同,只是乘法部件和加法部件可并行;
(3)处理器有一个乘、加功能静态流水线,乘、加均由5个部件流水段构成,各段经过时间要1拍;
(4)处理器有乘、加两条流水线,可同时工作,各由5段构成,每段经过时间为1拍。
[分析]长度为8的向量A和B的点积为
共需做8次乘法和7次加法。
[解答]
(1)乘法部件和加法部件不能同时工作,部件内也只能顺序方式工作时的时空图如图5.14所示。
由图5.14向量点积A•B运算的时空图可知,完成全部运算最少为
(2)乘法部件和加法部件可以并行的时空关系所示。
解题算法步骤为
向量点积运算全部完成需45拍。
(3)处理器有乘、加双功能静态流水线,完成点积运算的流水时空关系
解题算法步骤为
完成向量点积运算需要30拍。
(4)乘、加两条流水线可同时工作,完成点积运算的流水时空田如图5.17所示。
在此流水线上,所用的解题算法步骤为
全部完成向量点积运算共需26拍。
题5.8试总结IBM360/91解决流水控制的一般方法、途径和特点。
I
[解答]采用流水控制的方法是总线式分布处理。
解决流水控制的途径如下:
(1)在各个寄存器中设置忙位标志来判断是否相关。
当寄存器正在使用时,置该寄存器的忙位标志为“1”当寄存器被释放时,其忙位标志清成“0”。
因此,访问寄存器时,先看忙位标志,如为“1”,表示相关。
(2)设置多条流水线,让它们并行地工作,同时在分布于各流水线的入、出端上分别设置若干个保存站来缓冲存放信息。
(3)通过分布设置的站号来控制相关专用通路的连接。
(4)相关专用通路采用总线方式,相关后通过更改站号来实现不同相关专用通路的连接.
(5)设置多条流水线,让其并行工作,流水线输入端设置多组保存站,这样,就可以实现沈水线的异步流动。
解决流水控制的特点:
(1)不必对进入流水线各条指令的源操作数地址和目的操作数地址做两两配对的比较,就可判知是否发生了相关。
所以,相关判断的控制大大简化。
(2)对于异步流动的先写后读、先读后写及写一写三类相关都能很方便且不加区分地予以解决.
(3)相关专用通路采用总线方式,使该通路可以为各种相关所共用,大大简化了硬件.
(4)多条流水线采取异步并行,且多条相关的指令可以一直链接下去,使系统有高的性能.
题5.9在一个5段的流水线处理机上需经9拍才能完成一个任务,其预约表如表5.1所示.
分别写出延迟禁止表F、冲突向量c;画出流水线状态转移图,求出最小平均延迟及流水线的最大吞吐率及其调度方案.按此流水调度方案输入6个任务,求实际吞吐率.
[分析]二维的预约表其实就是一个任务在流水时的时空图.在求出最佳调度方案后,要按此流水调度方案输入6个任务时,只需按调度间隔时间点将这个二维预约表顺次地叠合在一起即可.
[解答]对预约表中各个行中打“√”的拍数求出差值,并将这些差值汇集在一起,就可得到延迟禁止表
F={1,3,4,8}
由延迟禁止表F可转换得初始冲突向量
C=(10001101)
由状态转移图,从初始状态开始沿箭头走向,构成从调度意义上延迟拍数成周期性重复出现的拍数循。
按此方案进行任务调度,必然是无冲突的。
这样,可列出各种调度方案,并计算出相应调度方案的平均延迟。