[理工] 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