A-A+
以下是有关数据冒险和转发技术的叙述中 ()是正确的。A.所有数据冒险都能通过转发解决B.可以
问题详情
以下是有关数据冒险和转发技术的叙述中,()是正确的。
A.所有数据冒险都能通过转发解决
B.可以通过调整指令顺序和插入nop指令消除所有数据冒险
C.五段流水线中Load—Use数据冒险不会引起一个时钟周期的阻塞
D.一条分支指令与紧随其后的一条ALU运算指令肯定会发生数据冒险
请帮忙给出正确答案和分析,谢谢!
参考答案
正确答案:B
相邻两条ALU运算指令之间,相隔一条的两条ALU运算指令之间和相隔一条的Load指令与ALU运算指令之间的数据冒险能通过转发解决;单纯依靠“插入nop指令”就能消除所有数据冒险,但是这样做效率太低。如果通过调整指令顺序,再加上插入nop指令,就能提高流水线的效率;Load—Use数据冒险是由于Load指令的目的寄存器等于后一条指令的源寄存器而导致的。对于五段流水线(取指、译码、执行、访存、写回),Load指令在最后一段写入目的寄存器,而后继指令在第三段读寄存器源,所以Load—Use数据冒险至少要引起一个时钟周期的阻塞;通常,分支指令并不改变任何寄存器的值,所以与紧随其后的ALU运算指令根本不会发生数据冒险。