考虑具有五个阶段而没有任何分支预测的指令流水线:获取指令(FI),解码指令(DI),获取操作数(FO),执行指令(EI)和写入操作数(WO)。 FI,DI,FO,EI和WO的级延迟分别为5 ns,7 ns,10 ns,8 ns和6 ns。每个阶段之后都有中间存储缓冲区,每个缓冲区的延迟为1 ns。在该流水线处理器中执行包含12条指令I1,I2,I3,…,I12的程序。指令I4是唯一的分支指令,其分支目标为I9。如果在执行此程序期间进行了转移,则完成程序所需的时间(以ns为单位)为
(A) 132
(B) 165
(C) 176
(D) 328答案: (B)
解释:
Pipeline will have to be stalled till Ei stage of l4 completes,
as Ei stage will tell whether to take branch or not.
After that l4(WO) and l9(Fi) can go in parallel and later the
following instructions.
So, till l4(Ei) completes : 7 cycles * (10 + 1 ) ns = 77ns
From l4(WO) or l9(Fi) to l12(WO) : 8 cycles * (10 + 1)ns = 88ns
Total = 77 + 88 = 165 ns
这个问题的测验