对于采用“取指、译码/取数、执行、访存、写回”5 段流水线的 RISC 数据通路,下列关于指令流水线数据冒险处理的叙述中,错误的是( )。
A. 相邻两条指令中的操作数相关可能引起数据冒险
B. 在数据相关的指令间插入“气泡”能避免数据冒险
C. 所有数据冒险都可以通过加入转发(旁路)电路解决
D. 所有数据冒险都能通过调整指令顺序和插入 nop 指令解决
在5段流水线RISC数据通路中,数...
用户登录可进行刷题及查看答案
在5段流水线RISC数据通路中,数据冒险是指由于指令之间的数据依赖性导致流水线无法正确执行的情况。以下是各选项的详细分析:
选项A:相邻两条指令中的操作数相关可能引起数据冒险。这是正确的,例如当前指令需要用到上一条指令的计算结果(如 R1 = R2 + R3R1=R2+R3 后接 R4 = R1 + R5R4=R1+R5),就会发生数据冒险。
选项B:在数据相关的指令间插入“气泡”(即流水线停顿)能避免数据冒险。这是正确的,插入气泡可以让前一条指令完成写回阶段后再执行下一条指令,从而避免数据冲突。
选项C:所有数据冒险都可以通过加入转发(旁路)电路解决。这是错误的。转发电路可以解决大部分数据冒险,例如在 EXEX 阶段的结果可以直接转发给下一条指令的 EXEX 阶段。但对于某些情况(如加载-使用型冒险,即 lwlw 指令后立即使用其结果的指令),转发无法完全避免冒险,仍需插入气泡。
选项D:所有数据冒险都能通过调整指令顺序和插入 nopnop 指令解决。这是正确的,通过调整指令顺序或插入 nopnop 可以消除所有数据冒险,尽管可能会降低性能。
正确答案:C
登录后提交答案
暂无评论,来抢沙发