计算机系统结构 第四篇(习题解答).docVIP

  • 6
  • 0
  • 约8.43千字
  • 约 15页
  • 2017-06-07 发布于湖北
  • 举报
1. 假设一条指令的执行过程分为“取指令”、“分析”和“执行”三段,每一段的时间分别是△t、2△t和3△t。在下列各种情况下,分别写出连续执行n条指令所需要的时间表达式。 ⑴ 顺序执行方式。 ⑵ 仅“取指令”和“执行”重叠。 ⑶ “取指令”、“分析”和“执行”重叠。 答: ⑴ 顺序执行方式 1 2 ...... 1 2 1 2 T==n(△t+2△t+3△t)=6n△t ⑵ 仅“取指令”和“执行”重叠 1 2 ...... 1 2 1 2 T=6△t+=6△t+(n-1)(2△t+3△t)=(5n+1)△t ⑶ “取指令”、“分析”和“执行”重叠 1 2 3 4 ...... 1 2 3 4 1 2 3 4 T=6△t+=6△t+(n-1)(3△t)=(3n+3)△t 2. 一条线性流水线有4个功能段组成,每个功能段的延迟时间都相等,都为△t。开始5个任务,每间隔一个△t向流水线输入一个任务,然后停顿2个△t,如此重复。求流水线的实际吞吐率、加速比和效率。 答: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ... 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 我们可以看出,在(7n+1)Δt的时间内,可以输出5n个结果,如果指令的序列足够长(n→∞),并且指令间不存在相关,那么,吞吐率可以认为满足: 加速比为: 从上面的时空图很容易看出,效率为: 3. 用一条5个功能段的浮点加法器流水线计算。每个功能段的延迟时间均相等,流水线的输出端与输入端之间有直接数据通路,而且设置有足够的缓冲寄存器。要求用尽可能短的时间完成计算,画出流水线时空图,计算流水线的实际吞吐率、加速比和效率。 答: 首先需要考虑的是“10个数的和最少需要做几次加法?”,我们可以发现,加法的次数是不能减少的:9次;于是我们要尽可能快的完成任务,就只有考虑如何让流水线尽可能充满,这需要消除前后指令之间的相关。由于加法满足交换律和结合律,我们可以调整运算次序如以下的指令序列,我们把中间结果寄存器称为R,源操作数寄存器称为A,最后结果寄存器称为F,并假设源操作数已经在寄存器中,则指令如下: I1: R1←A1+A2 I2: R2←A3+A4 I3: R3←A5+A6 I4: R4←A7+A8 I5: R5←A9+A10 I6: R6←R1+R2 I7: R7←R3+R4 I8: R8←R5+R6 I9: F←R7+R8 这并不是唯一可能的计算方法。假设功能段的延迟为Δt。时空图如下(图中的数字是指令号): 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 整个计算过程需要21Δt,所以吞吐率为: 加速比为: 效率为: 4. 一条线性静态多功能流水线由6个功能段组成,加法操作使用其中的1、2、3、6功能段,乘法操作使用其中的1、4、5、6功能段,每个功能段的延迟时间均相等。流水线的输出端与输入端之间有直接数据通路,而且设置有足够的缓冲寄存器。用这条流水线计算向量点积,画出流水线时空图,计算流水线的实际吞吐率、加速比和效率。 答: 我们安排运算次序如下:把中间结果寄存器称为R,源操作数寄存器称为A、B,最后结果寄存器称为F,并假设源操作数已经在寄存器中,则指令如下: I1: R0←A0*B0 I8: R7←R0+R1 I2: R1←A1*B1 I9: R8←R2+R3 I3: R2←A2*B2 I10: R9←R4+R5 I4: R3←A3*B3 I11: R10←R6+R7 I5: R4←A4*B4 I12: R11←R8+R9 I6: R5←A5*B5 I13: F←R10+R11 I7

文档评论(0)

1亿VIP精品文档

相关文档