您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 机械/模具设计 > 典型习题和题例分析与解答
5.3典型习题和题例分析与解答题5.1假设指令的解释分取指、分析和执行3步,每步的时间相应地为t取指、t分析、t执行,(1)分别计算下列几种情况下,执行完100条指令所需时间的一般关系式;i.顺序方式;ii.仅“执行x”与“取指x剩”重叠,iii.仅“执行x”、“分析r+:”,“取指。+:”重叠.(2)分别在t取指=t分析=2,t执行=l及t取指=t执行=5,t分析=2两种情况下,计算出上述各结果。[分析]可先按指令间所要求的时间关系画出指令间的时间重叠关系图,由图就可以列出各种情况下,计算100条指令所需时间的一般关系式。再将给出的时间值代入,实际完成100条指令所需的时间就可以求得。顺序方式工作的时间关系如图5.1所示。取指k分析k执行k取指k+1分析k+1执行k+1取指k+2分析k+2执行k+2图5.1顺序方式工作的时间关系图仅“执行k”与“取指k+1”、重叠方式工作的时间关系如图5.2所示.取指k分析k执行k取指k+1分析k+1执行k+1取指k+2分析k+2执行k+2图5.2仅“执行k”,与“取指k+1”重叠方式工作的时间关系图仅“执行k”、“分析k+1”、“取指k+2”重叠方式工作的时间关系如图5.3所示.取指k分析k执行k取指k+1分析k+1执行k+1取指k+2分析k+2执行k+2图5.3仅“执行k”、“分析k+1”、“取指k+2”重叠方式工作的时间关系图[解答](1)计算执行完100条指令所需要的时间:(i)顺序方式工作时为100(ttt取指分析执行)(ii)仅“执行k”,与“取指k+1”重叠方式工作时为10099maxttttt取指分析取指执行执行,(iii)仅“执行k”、“分析k+1”、“取指k+2”重叠方式工作时为max98maxmax,ttttttttt取指分析取指取指分析执行执行分析执行,,,(2)当t取指=t分析=2、t执行=l时,代入上面的各式,可求得100条指令执行所需要的时间是:顺序方式工作时为500。仅“执行k”,与“取指k+1”重叠方式工作时为401。仅“执行k”、“分析k+1”、“取指k+2”重叠方式工作时为203。当t取指=t执行=5,t分析=2,代入上面的各式,可求得100条指令执行所需要的时间是:顺序方式工作时为1200。仅“执行k”,与“取指k+1”重叠方式工作时为705。仅“执行k”、“分析k+1”、“取指k+2”重叠方式工作时为510。题5.2流水线由4个功能部件组成,每个功能部件的延迟时间为△t。当输入10个数据后,间歇5△t,又输入10个数据,如此周期性地工作,求此时流水线的吞吐率,并画出其时空图。[分析]所谓输入10个数据后.间歇5△t.又输入10个数据的含义应当是以输入时间为基准,即从第10个数据输入时算起.隔5△t后又开始输入新的一轮数据。[解答]按题意可得4个功能部件流水时的时空关系.如图5.4所示.①②③④⑤⑥⑦⑧⑨⑩①②图5.4题5.2的流水时空图所以,按周期性工作时的流水线平均吞吐宰为:105147pTtt题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△t输入1211514部件10987654321098765432109876543210987654321111312111098765432114321时间(△t)吞吐率313pTt效率35531313tt流水按图5.5(b)组织时,实现A*B*C*D的时空关系如图5.7所示。吞吐率311pTt效率35531111tt题5.4一个4段的双输入端规格化浮点加法流水线,每段经过时间10ns,输出可直接返回输入或将结果暂存于相应缓冲器中,问最少需经多少时间能求出10ii=1A,并画出时空图。[分析]为了避免流水线的先写后读相关,使流水线性能尽可能高,需将10ii=1A调整成((((1A+2A)+(3A十4A))十(jt9A+10A))+((5A+6A)+(7A+8A)))的算法步骤来进行。[解答]按((((1A+2A)+(3A十4A))十(8A9A+10A))+((5A+6A)+(7A+8A)))流水的时空图如图5.8所示.由图5.8之时空图可知,求10ii=1A所需要的最少时间为170ns。题5.5为提高流水线的效率可用哪两种主要途径来克服速度瓶颈?现有3段流水线各段经过的时间依次为△t、3△t、△t。(1)分别计算在连续输入3条指令时和30条指令时的吞吐率和效率。(2)按两种逾径之一改进,画出你的流水线结构示意图.同时计算连续输入3条指令和30条指令时的吞吐率和效率。(3)通过对(1)、(2)两小题的计算比较可得出什么结论?[分析]根据题意可以看出,原3段的流水线工作起来仍可看成是一条线性流水线只是其中经过时间为3△t的段是瓶颈段,所以可以按1(1)pmijinTtnt及11(1)miimijintmtnt来求得pT和.其中,n为连续输入的指令数,m为3个段,,△1t=△t,2t=3△t,△3t=△t,△jt为瓶颈段经过时间,本题的△jt为3△t。在改进流水性能时,无论是将瓶颈段2段细分成3个时间分别为△t的子段,还是用3个瓶颈段2段并联,计算吞吐率、效率时,只需将公式中的m由3改成5,△jt改成,△it即可。[解答]提高流水线效率,消除速度瓶颈主要有将瓶颈段再细分以及重复设置多个颈段并联工作,给其轮流分配任务的两种途径。(1)在3段流水线,各段经过时间依次为△t、3△t、△t的情况下,连续流入3条指令时,将n=3,m=3,△1t=△t,2t=3△t,△3t=△t,△jt=3△t代入,可得吞吐率pT,和效率为13352311(1)pmijinTttttnt1135531111(1)miimijintttmtnt而连续流入30条指令时,只需将上式之n改为30,其它参数不变,得31303015529346(301)pijiTttttt3052539246tt(2)若采取将2段细分成3个子段,每个子段均为△t,构成的流水线结构如图5.92所示。连续流入3条指令时,将n=3,m=5,△it=△jt=△t代入,得51333527(31)piiiTttttt5133515575717iittttt连续流入30条指令时,将n=30代入,其它参数不变,有5130301552917(301)piiiTttttt3051553417tt若采取将3个2段并联构成的流水线,其构成如图5.10所示。连续流入3条指令及流入30条指令时的吞吐率pT,和效率所计算的结果分别与子过程细分的相同。(3)将(1)题的计算结果进行比较可以看出,只有当连续流入流水线的联指令越多时,流水线的实际吞吐率和效率才会提高。将(1)、(2)题的计算结果进行比较,同样可以看出,无论采用瓶颈子过程再细分,还是将多个瓶颈子过程并联来消除流水线瓶颈,都只有在连续流入流水线的指令数越多时才能使实际吞吐率和效率得到显著的提高。若连续流入流水线的指令数太少,消除流水线瓶颈虽可以提高流水线的实际吞吐率pT,而效率却可能下降。题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。在此期间的流水线效率1122334455667788)))))))abababababababab(((((((如果现在将瓶颈子过程2和3均细分成两个子过程.则时空图如图5.12所示。图5.12子过程细分后的沈水线时空图由田5.12可见,完成全部运算最少需要18△t的时间即可。现在若干过程3不能再细分了,只能用2个子过程3通过并联来改进,则其时空图如图5.13所示。完成全部运算时的流水线效率241216183ttt题5.7现在长度为8的向量A和B,请分别画出在下列4种结构的处理器上求点积A•B的时空图,并求完成全部结果的最少时钟拍数。设处理器中每个部件的输出均可直接送到任何部件的输入端或存入缓冲器,其间的传送延时不计,指令和源操作数均能连续提供。(1)处理器有一个乘法部件和一个加法部件,不能同时工作,部件内也只能顺序方式工作,完成一次加法或乘法均只需5拍;(2)与(1)基本相同,只是乘法部件和加法部件可并行;(3)处理器有一个乘、加功能静态流水线,乘、加均由5个部件流水段构成,各段经过时间要1拍;(4)处理器有乘、加两条流水线,可同时工作,各由5段构成,每段经过时间为1拍。[分析]长度为8的向量A和B的点积为811223344556677881iiiABababababababababab共需做8次乘法和7次加法。[解答](1)乘法部件和加法部件不能同时工作,部件内也只能顺序方式工作时的时空图如图5.14所示。由图5.14向量点积A•B运算的时空图可知,完成全部运算最少为857575(拍)(2)乘法部件和加法部件可以并行的时空关系所示。解题算法步骤为1122334455667788)))))))abababababababab(((((((向量点积运算全部完成需45拍。(3)处理器有乘、加双功能静态流水线,完成点积运算的流水时空关系解题算法步骤为1122334455667788)))abababababababab(((()((()))完成向量点积运算需要30拍。(4)乘、加两条流水线可同时工作,完成点积运算的流水时空田如图5.17所示。在此流水线上,所用的解题算法步骤为1122775566334488)))(()abababababababab((((())())全部完成向量点积运算共需26拍。题5.8试总结IBM360/91解决流水控制的一般方法、途径和特点。I[解答]采用流水控制的方法是总线式分布处理。解决流水控制的途径如下:(1)在各个寄存器中设置忙位标志来判断是否相关。当寄存器正在使用时,置该寄存器的忙位标志为“1”当寄存
本文标题:典型习题和题例分析与解答
链接地址:https://www.777doc.com/doc-6141318 .html