指令流水线分为四个阶段:指令提取(IF),指令解码(ID),执行指令(Ex),回写(WB)。所有指令占用所有阶段,并需要4个时钟周期。分支指令不重叠,即直到分支已知之前,不提取分支之后的指令。分支在执行阶段是已知的。假设20%的指令是有条件的,而80%的指令是无条件的。计算100条指令的速度(最多2位小数)。忽略可能不采用分支的情况。
(A) 2.86
(B) 3.21
(C) 1.65
(D) 2.57答案: (A)
说明:假设每个阶段需要1 s。
20个条件– 20 * 3 s(条件指令的每个指令周期为3,因为在第三阶段已知分支)
80无条件– 80 s(每条指令无条件的周期为1)
因此,管道使用的总时间= 20 * 3 + 80
= 140秒
不使用流水线所花费的时间= 4 * 100(每个指令的周期为4)
加速= 400/140 = 2.86这个问题的测验