Re: [理工] [計組] delayed branch
※ 引述《wsx02 (無酒罐)》之銘言:
: from before
: add $s1, $s2, $s3
: if $s2=0 then
: delay slot
: 請問為什麼要把add搬到delay slot ?
因為add不管跳不跳都要執行,所以放在delay slot裡,
不管有沒有跳都不會浪費掉那個clock。
: --------------------------------------
: from target
: sub $t4, $t5, $t6
: add $s1, $s2, $s3
: if $s1=0 then
: delay slot
: 請問為什麼要把sub複製到delay slot ?
因為if的$s1與上面的add有RAW dependance,
所以不可以用from target,
而sub是Lebel指的位置(你沒打出來XD),
所以這個case在常跳的情況下都會執行到sub,
所以把sub放到一定會用掉的clock裡面並把Label往下移一格剛好。
這裡有一個地方要注意,就是如果沒跳的話也會多作一次sub,
所以要保證多一次沒差才可以使用。
: ----------------------------------------
: from fall through
: add $s1, $s2, $s3
: if $s1=0 then
: delay slot
: sub $t4, $t5, $t6
: 請問為什麼要把sub搬到delay slot ?
同from target,有RAW dependance,
而這個case在不常跳的情況下都會執行到sub,
一樣把sub放到一定會用掉的clock內剛好,
並且要保證多作一次也沒差。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.30.136
※ 編輯: wheels 來自: 140.112.30.136 (11/29 00:16)
推
11/29 00:32, , 1F
11/29 00:32, 1F
推
11/29 00:41, , 2F
11/29 00:41, 2F
→
11/29 01:03, , 3F
11/29 01:03, 3F
→
11/29 01:12, , 4F
11/29 01:12, 4F