资源预览内容
第1页 / 共15页
第2页 / 共15页
第3页 / 共15页
第4页 / 共15页
第5页 / 共15页
第6页 / 共15页
第7页 / 共15页
第8页 / 共15页
第9页 / 共15页
第10页 / 共15页
亲,该文档总共15页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
精选优质文档-倾情为你奉上1. 假设一条指令的执行过程分为“取指令”、“分析”和“执行”三段,每一段的时间分别是t、2t和3t。在下列各种情况下,分别写出连续执行n条指令所需要的时间表达式。顺序执行方式。仅“取指令”和“执行”重叠。“取指令”、“分析”和“执行”重叠。答:顺序执行方式t2t3t12.1212Tn(t2t3t)6nt仅“取指令”和“执行”重叠t2t3t12.1212T6t6t(n-1)(2t3t)(5n1)t“取指令”、“分析”和“执行”重叠t2t3t1234.12341234T6t6t(n-1)(3t)(3n3)t2. 一条线性流水线有4个功能段组成,每个功能段的延迟时间都相等,都为t。开始5个任务,每间隔一个t向流水线输入一个任务,然后停顿2个t,如此重复。求流水线的实际吞吐率、加速比和效率。答:123456789101112131415.1234567891011121314151234567891011121314151234567891011121314151234567891011121314151617181920212223我们可以看出,在(7n+1)t的时间内,可以输出5n个结果,如果指令的序列足够长(n),并且指令间不存在相关,那么,吞吐率可以认为满足:加速比为:从上面的时空图很容易看出,效率为:3. 用一条5个功能段的浮点加法器流水线计算。每个功能段的延迟时间均相等,流水线的输出端与输入端之间有直接数据通路,而且设置有足够的缓冲寄存器。要求用尽可能短的时间完成计算,画出流水线时空图,计算流水线的实际吞吐率、加速比和效率。答:首先需要考虑的是“10个数的和最少需要做几次加法?”,我们可以发现,加法的次数是不能减少的:9次;于是我们要尽可能快的完成任务,就只有考虑如何让流水线尽可能充满,这需要消除前后指令之间的相关。由于加法满足交换律和结合律,我们可以调整运算次序如以下的指令序列,我们把中间结果寄存器称为R,源操作数寄存器称为A,最后结果寄存器称为F,并假设源操作数已经在寄存器中,则指令如下:I1:R1A1+A2I2:R2A3+A4I3:R3A5+A6I4:R4A7+A8I5:R5A9+A10I6:R6R1+R2I7:R7R3+R4I8:R8R5+R6I9:FR7+R8这并不是唯一可能的计算方法。假设功能段的延迟为t。时空图如下(图中的数字是指令号):123456789123456789123456789123456789123456789123456789101112131415161718192021整个计算过程需要21t,所以吞吐率为:加速比为:效率为:4. 一条线性静态多功能流水线由6个功能段组成,加法操作使用其中的1、2、3、6功能段,乘法操作使用其中的1、4、5、6功能段,每个功能段的延迟时间均相等。流水线的输出端与输入端之间有直接数据通路,而且设置有足够的缓冲寄存器。用这条流水线计算向量点积,画出流水线时空图,计算流水线的实际吞吐率、加速比和效率。答:我们安排运算次序如下:把中间结果寄存器称为R,源操作数寄存器称为A、B,最后结果寄存器称为F,并假设源操作数已经在寄存器中,则指令如下:I1:R0A0*B0I8:R7R0+R1I2:R1A1*B1I9:R8R2+R3I3:R2A2*B2I10:R9R4+R5I4:R3A3*B3I11:R10R6+R7I5:R4A4*B4I12:R11R8+R9I6:R5A5*B5I13:FR10+R11I7:R6A6*B6假设功能段的延迟为t。时空图如下(图中的数字是指令号):12345678910111213123456712345678910111213891011121312345678910111213123456789101112131415161718192021222324整个计算过程需要24t,所以吞吐率为:加速比为:效率为:5. 一条有三个功能段的流水线如下图。每个功能段的延迟时间均相等,都为t。其中功能段S2的输出要返回到它自己的输入端循环一次。输出输入S3S2S1ttt如果每间隔一个t向流水线的输入端连续输入新任务,问这条流水线会发生什么情况?求这条流水线能够正常工作的最大吞吐率、加速比和效率。有什么办法能够提高这条流水线的吞吐率,画出新的流水线。答:如果每间隔一个t向流水线的输入端连续输入新任务,流水线S2功能段存在资源冲突。见下表:时间功能段t1t2t3t4t5S1X1X2X3X4X5S2X1X1,X2X2,X3X3,X4S3X1X2每间隔两个t向流水线的输入端连续输入新任务(如见下表所示)可获得最佳性能。时间功能段t1t2t3t4t5t6S1X1X2X3S2X1X1X2X2X3S3X1X2我们可以看出:在(2n+2)t的时间内,可以输出n个结果,如果指令的序列足够长(n),并且指令间不存在相关,那么,吞吐率为:加速比为:效率为:如要提高这条流水线的吞吐率,可采用:将功能段S2重复设置一次,见下图:输出S3ttt输入S2S2S1t6. 一条有4个功能段的非线性流水线,每个功能段的延迟时间都相等,都为20ns,它的预约表如下:时间流水段1234567S1S2S3S4 写出流水线的禁止向量和初始冲突向量。 画出调度流水线的状态图。 求流水线的最小启动循环和最小平均启动距离。 求平均启动距离最小的恒定循环。 求流水线的最大吞吐率。 按照最小启动循环连续输入10个任务,求流水线的实际吞吐率。 画出该流水线各功能段之间的连接图。答: 禁止向量F=(6,4,2);冲突向量C=()。 i=1i7i=3i7i=5i=3i7i=5i=5i7C0C1C2C3 简单循环平均启动距离1,7(C0-C1-C0)43,7(C0-C2-C0)55,7(C0-C3-C0)63,5,7(C0-C2-C3-C0)53,5(C0-C2-C3-C2-C3)45,3,7(C0-C3-C2-C0)55,3(C0-C3-C2-C3-C2)45(C0-C3-C3)57(C0-C0)7 流水线的最小启动循环为:(1,7)或(3,5)或(5,3),最小平均启动距离为4。 由上表可知:平均启动距离最小的恒定循环为(5)。 采用最小平均启动距离为4的最小启动循环可获得流水线的最大吞吐率,以(1,7)为例:(其他类似,最大吞吐率皆相同)当任务数为偶数2n时:当任务数为奇数2n+1时: 流水线的最大吞吐率为: 10个任务的实际吞吐率:利用上式可得(偶数个任务)TP10=1/4t=12.5M(任务/s)。 该流水线的连接图为:S1S2S3S41234567输入输出7. 一条由4个功能段组成的非线性流水线的预约表如下,每个功能段的延迟时间都为10ns。时间流水段123456S1S2S3S4写出流水线的禁止向量和初始冲突向量。画出调度流水线的状态图。求流水线的最小启动循环和最小平均启动距离。在流水线中插入一个非计算延迟功能段后,求该流水线的最佳启动循环及其最小平均启动距离。画出插入一个非计算延迟功能段后的流水线预约表(5行8列)。画出插入一个非计算延迟功能段后的流水线状态变换图。分别计算在插入一个非计算延迟功能段前、后的最大吞吐率。如果连续输入10个任务,分别计算在插入一个非计算延迟功能段前、
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号