流水线处理器使用具有以下阶段的 4 级指令流水线:指令提取 (IF)、指令解码 (ID)、执行 (EX) 和回写 (WB)。算术运算以及加载和存储操作在 EX 阶段执行。下面给出了与语句 X = (S – R * (P + Q))/T 对应的指令序列。在执行指令序列之前,变量 P、Q、R、S 和 T 的值分别在寄存器 R 0 、R 1 、R 2 、R 3和 R 4 中可用。
IF、ID 和 WB 阶段各占用 1 个时钟周期。 EX 阶段的 ADD、SUB 和 STORE 操作各需要 1 个时钟周期,MUL 和 DIV 操作各需要 3 个时钟周期。使用从 EX 阶段到 ID 阶段的操作数转发。完成指令序列所需的时钟周期数为
(一) 10
(乙) 12
(三) 14
(四) 16答案:(乙)
解释:
流水线是一种通过执行指令的不同阶段来并行执行指令的技术。
通常,如果执行两个操作,其中第二个操作首先依赖于操作数,则第二个操作在第一个执行之前不应获取操作数,否则它将获取不正确的操作数。因此,创建了摊位。
现在为了克服这个问题,引入了操作数转发技术,其中有一个接口,通过该接口传输操作数结果。因此,即使在执行阶段的提取操作期间提取了不正确的操作数,不正确的操作数也会被替换为
正确的操作数。
因此,在给定的问题中,尽管由于 R5,MUL 依赖于 ADD,由于 R6,SUB 依赖于 MUL DIV 依赖于 SUB 和 STORE 依赖于 DIV,但我们仍然可以在流水线处理器中执行取指令和解码操作。
在哪里,
IF指令获取
ID指令解码
EX-执行
WB-回写
如表所示,执行给定指令需要 12 个时钟周期。
该解决方案由Shashank Shanker khare 提供
这个问题的测验