[理工] 计组 Data Hazard

楼主: oldelette (oldelette)   2018-11-14 11:04:08
请问这题的hazard
为什么(D&O) (O&B)要使用Hazard detection unit
不是load 指令才会使用吗
还有解答最下面那行
它说不能Forward 任何资料到ID stage
是它少拉了哪条线? 看不太出来


感谢大家了
作者: TEPLUN (mihanami)   2018-11-14 12:37:00
R tpye接beq也要hazard detection unit侦测做stall 因为beq在第二阶段决定要不要跳 等前面ori算出来 beq也用错的暂存器比较出结果了 但是那个结果没办法forward到Id阶段给beq 也就是说即使stall了 下一cycle ori跑到mem beq在Id仍然无法取得ori运算的结果(如果有forwarding 他要画一条从Ex/Mem到ID阶段那个给beq用的比较器的datapath)D&O为什么要 等高手解答...
作者: seika555 (kakkoii)   2018-11-14 14:58:00
https://i.imgur.com/FlErc7i.png我版本的解答长这样耶 是因为mem前写后读吗
作者: y2j60537 (skkkkuu)   2018-11-14 15:28:00
PIPELINE侦测到LO和OB两个HARZARD并STALL后,应该就侦测不到LB的吧,指令间隔已经大于2了,正确解答应该是哪个?
作者: skyHuan (Huan)   2018-11-14 16:23:00
如果侦测hazard的是硬件不是compiler插nop,在ID解码后才会stall,这时候之后的指令已经进来了hazard detection还是会判断有hazard但stall是把control的9个bit清成0,指令的32个bit还是在,而forward unit是看指令的32个bit判断要不要forwarding的,应该还是会forwarding只是control都是0所以forwarding不影响(?不太确定是不是这样因为解答也没写有forwarding ><
作者: y2j60537 (skkkkuu)   2018-11-14 17:52:00
https://i.imgur.com/6orDdk8.jpg我的理解是beq在ID时lw已经在WB了所以侦测不到,我还是不理解lw跟beq会被侦测到的原因,请大神帮忙纠正
楼主: oldelette (oldelette)   2018-11-14 19:15:00
所以说答案错吗 没有DO跟LB 图的解答来自张凡题库书
作者: seika555 (kakkoii)   2018-11-14 20:58:00
借问一下 他remark所说的那句话是因为他已经是改良版的branch因此需在ID阶段算出branch target addr. 所以hazard-detect-unit才直接做nop而不是用forwarding来解决吗
作者: nannnnn (nannnnn)   2018-11-15 19:00:00
会不会是因为原本有hazard只是刚好被另外一组load use解决掉了才这样写

Links booklink

Contact Us: admin [ a t ] ucptt.com