某流水线浮点加法器分为5级,若每一级所需要的时间分别是6ns、7ns、 8ns、9ns和6ns,则此流水线的最大加速比为(12)。若每一级的时间均为7ns,则最大加速比为(13)。

admin2019-05-04  25

问题 某流水线浮点加法器分为5级,若每一级所需要的时间分别是6ns、7ns、 8ns、9ns和6ns,则此流水线的最大加速比为(12)。若每一级的时间均为7ns,则最大加速比为(13)。

选项 A、4.1
B、5
C、5.6
D、6.2

答案B

解析 流水线技术把一件任务分解为若干顺序执行的子任务,不同的子任务由不同的执行机构负责执行,而这些机构可以同时并行工作。在任一时刻,任一任务只占用其中一个执行机构,这样就可以实现多个任务的重叠执行,以提高工作效率。
   (1)指令流水线
   计算机中一条指令的执行需要若干步,通常采用流水线技术来实现指令的执行,以提高CPU性能。典型的指令执行共分7个阶段:①计算指令地址,修改程序计数器PC;②取指,即从存储器中取出指令;③指令译码:④计算操作数地址;⑤取操作数:⑥执行指令:⑦保存结果。对指令执行阶段的划分也可以把取指作为第一阶段,其他阶段顺序前移,而在最后一个阶段计算下一条指令的地址。若假定指令执行的各个阶段的执行时间相同,都是一个周期。执行一条指令就需要花费7个周期的时间。采用流水线技术以后,当满负荷时,每个周期都能从流水线上完成一条指令,性能约改善到原来的7倍。实际上,流水线技术对性能的提高程度取决于其执行顺序中最慢的一步。例如,在指令执行的7个阶段中,如果访问存储器需要4个周期,而其他操作只需一个周期,一条指令的执行共需访存三次再加上4个单周期的执行段,所以共需要16个周期。采用流水线以后,由于受限于访存操作,4个周期才能完成一条指令的执行,因此性能提高到原来的4倍。
    (2)运算操作流水线
   计算机在执行各种运算操作时也可以应用流水线技术来提高运算速度。例如执行浮点加法运算,可以把它分成3个阶段:对阶、尾数相加和结果规格化。流水线的3个阶段用锁存器进行分割,锁存器用来在相邻两段之间保持处理的中间结果,以供下一阶段使用。这样在满负荷时,该流水线可以同时处理3条浮点加法指令。
   流水线的关键之处在于重叠执行。为了得到高的性能表现,流水线应该满负荷工作,即各个阶段都要同时并行地工作。但是在实际情况中,流水线各个阶段可能会相互影响,阻塞流水线,使其性能下降。阻塞主要由以下两种情形引起:执行转移指令和共享资源冲突。
   (1)转移指令的影响
   通常在顺序执行指令的情况下,当CPU取一条指令时,流水线的地址计算部件可以独立地把当前PC值加上当前指令长度来计算下一条指令的地址,从而可以并行地工作,但是当流水线执行一条转移指令时,就会引起流水线的阻塞。因为在该转移指令完成之前,流水线都不能确定出下一条指令的地址。所以为了保证指令的正确执行,必须把取指段和指令地址计算段互锁。在取出转移指令后,立即锁住指令地址计算段,直到转移指令执行完成。互锁阶段流水线处于等待状态,不能满负荷工作,因而性能下降。
   (2)共享资源访问冲突
   当多条指令以流水线方式重叠执行时,由于可能会引起对共享的寄存器或存储器资源访问次序的变化,因此将导致冲突,这种情况又称为数据相关。为了避免冲突,就需要把相互有关的指令进行阻塞,这样就会引起流水线效率的下降。一般说来指令流水线级数越多,越容易导致数据相关,阻塞流水线。
   在流水线中,因为在同一时刻,有多个任务在重叠地执行,虽然完成一个任务的时间与单独执行该任务相近(甚至由于分段的缘故,可能更多一些),但是从整体上看完成多个任务所需的时间则大大减少。
   由给定条件可知,如果不采用流水线方式,则平均一条指定的执行时间为 6+7+8+9+6=36ns。而采用了流水线后,平均一条指定的执行时间为9ns(取五级中时间最长的那一级),因此最大加速比为36/9=4。
   若每一级的时间均为7ns,则加速比为7×5/7=5。
转载请注明原文地址:https://kaotiyun.com/show/3rLZ777K
0

最新回复(0)