[理工] data hazard问题

楼主: x411066 (热开水)   2019-11-29 17:14:54
您好,想问的问题如下:
Instruction sequence
1. add $1, $5, $3
2. sw $1, 0($2)
3. lw $1, 4($2)
4. add $5, $5, $1
5. sw $1, 0($2)
Data hazard至少要满足:
(1.) Data dependency (2.) 指令距离相差2以内
上列的程式码有Data hazard指令间为(1, 2)、(3, 4)、(3, 5)。
其中(3, 4)指令之间为load-use hazard。
(lw指令的"下一个指令"需要"lw指令写入的暂存器value")
Q1: (1, 3)之间应该没有Data Hazard吧?
Ans:
第二的指令sw、第三个lw指令的机器码$1都是rt字段。
(1, 2)之间sw的$1需要上一个add的计算结果,所以符合data dependency。
(1, 3)之间lw的$1是WriteBack的目的暂存,根本不需要前面指令的计算结果
,不符合data dependency
我想问一下我的推测应该是没错的吧?
因为我在检查Data hazard会先检查这个指令目的和下面两个指令来源(rt或rs)。
上面add和sw (对sw来说它的$1=Rt是来源,所以有相依)
上面add和lw (对lw来说它的$1=Rt是目的,所以不用看前面)
作者: zuchang (chang)   2019-11-29 17:51:00
对 但13有waw相依 但没有raw相依 所以没hazard

Links booklink

Contact Us: admin [ a t ] ucptt.com