※ 引述 《bernachom (Terry)》 之铭言:
:
:
:
: 请教一下...WAW只会发生在MIPS和PENTIUM的超管线里吗?
:
:
:
: 有一个一小段程式是
:
: lw $s0,12($$1)
:
: add $s4,$s0,$s2
:
: addi $s2,$s0,4
:
: sw $s4,12($s1)
:
: add $s2,$s3,$s1
:
:
: 我的问题是,I2和I4会有WAW吗??
:
: 我不太清楚,在什么样的情况下才会有..
:
: 或是有MIPS的例子可以看吗?
:
: 谢谢帮忙
:
我又来挖古文了......
我的问题跟这篇很类似
先拿他的code当范例
lw $s0,12($$1)
add $s4,$s0,$s2
addi $s2,$s0,4
sw $s4,12($s1)
add $s2,$s3,$s1
I2跟I4是不是WAW HAZARD,这个疑惑点在看完原留言串后解决了,
我的问题是为什么I2跟I4可以透过forward ing解决呢?
forwarding不是确保紧接在后面的指令在EX阶段上的两个算子是正确的值吗?
但是I4理应要被更新的$s4并不是算子,而是在MEM才能用到的吧?
也就是说我让I2做forwarding其实并没有更新到$S4不是吗?
原po下面的几个留言也有提到,但都不是很确定的样子