题14

题目

Q:下面有关控制冒险的描述中, 错误的是 ( )。
I. 无条件转移指令不会发生控制冒险
II. 在分支指令加入若干空操作可以避免控制冒险
III. 采用转发 (旁路) 技术, 可以解决部分控制冒险
IV. 流水段的数量与控制冒险引发的开销无关
A. I、IV
B. III
C. I、 III
D. I、III、IV

分析

A:简单来说,控制冒险指的是当流水线执行过程中遇到分支指令 (例如跳转指令) 时,由于无法立即确定下一条指令的地址,导致流水线可能执行错误指令而产生的冲突。

D
直接转移指令的转移目标地址在执行阶段才确定, 会发生控制冒险, I 错误。
插入空操作可使条件转移指令的结果在取下一条有效指令之前确定, 从而避免控制冒险, II 正确。
采用转发技术, 可以解决的是数据相关, III 错误。
流水段的数量越多, 意味着在转移结果确定之前, 可能取出更多的错误指令,从而需要更多的时间和资源来处理这些错误指令, 错误。