Re: [理工] 计组-WAW危障

楼主: mistel (Mistel)   2019-08-22 18:14:37
※ 引述 《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下面的几个留言也有提到,但都不是很确定的样子
作者: mi981027 (呱呱竹)   2019-08-22 19:33:00
先确认一下 这题应该是RAW的Hazard对吗@@只要走正常的MEM Hazard解决方法就行了吧sw跟add差两个stage, 当他们分别在id/ex, 跟mem/wb时,forward unit会侦测到RAW Hazard, 判断式课本有当sw进到EX后,rt会遇上mux,选择要流到ALU的值应该是原本的rt, ex/mem传回来的值, 或wb传回来的值选wb传来的值就行了即时他是sw, 这个stage没有要用也没差,因为sw的rt在EX时本来就会另外走一条路送到mem stage课本这张图少画了一个选imm跟rt的mux了XD这张应该只是想介绍forward的概念而已,如果是完整的图rt在EX会遇上两个mux,先选正确的rt, 再选应该要用imm还是用rt的值计算但不管如何,rt都会另外牵线送到mem,这是不变的
楼主: mistel (Mistel)   2019-08-22 20:47:00
哦哦哦,了解了,感谢你!

Links booklink

Contact Us: admin [ a t ] ucptt.com