[爆卦]mips slt指令是什麼?優點缺點精華區懶人包

為什麼這篇mips slt指令鄉民發文收入到精華區:因為在mips slt指令這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者numin (numin)看板Grad-ProbAsk標題[理工] [計組] control h...


Given the following MIPS instruction code segment, please answer each question
below.

L1: addi $t0 ,$t0,4
lw2 $s1 ,0($t0)
sw $s1 ,32($t0)
lw1 $t1 ,64($t0)
slt $s0 ,$t1,$zero
bne $s0 ,$zero,L1
Assume a forwarding unit is available to only forward data from ME and/or WB
to EX. Please reorder/rewrite the code to maximize its performance.Note that
you should consider maximizing the performance based on the assumption that
the loop might be iterated a few times.You may insert no-ops in the code
segment to resolve inevitable hazards if any.
解答:
L1: addi $t0,$t0,4
lw1 $t1,64($t0)
lw2 $s1,0($t0)
slt $s0,$t1,$zero
nop
nop
bne $s0,$zero,L1
sw $s1,32($t0)

疑問:想請問大家在解類似這種reorder code時,尤其有control hazard時,
是都如何思考,下手去做的。雖然課本上有三種from before,from target,
from fall through方法,可是碰到這種題目真的不是很清楚該如何去作答。
不曉得有沒有能說明一下您在碰到這種題目的做法,讓我參考看看...

我只會先解control hazard,然後在用課本三種方法隨便亂試...或是交換指令
然後找到data hazard,就畫成pipeline stage了...看要不要插入nop

問題:請問為什麼不是插一個nop,而是兩個。我只會畫圖,以下是我畫的圖
,不曉得又是哪裡出錯了...(看完上篇d大解說,現在懂了。可是都打了就...
請問大家都是怎麼做這類題型吧。)

addi IF ID EX ME-| WB
lw2 IF ID EX | ME-| WB
lw1 IF ID |- EX | ME WB
slt IF ID |-EX ME WB-|
nop X X X X | X
nop X X X | X X
bne IF ID-| EX ME WB
sw IF ID EX ME WB
(addi和lw用有hazard:forwarding解,slt和bne有hazard)
※ 編輯: numin 來自: 123.193.221.223 (09/20 22:19)
Bearcome:先做from before 不行在試其他兩個 09/20 23:02
Bearcome:跳的機率很高用from target 低就用另一個 09/20 23:03
numin:想請問一下,如果題目沒有特別說明跳的機率的話,若做from 09/20 23:18
numin:before失敗,接下來就是用交換指令嗎?還是也可以用另外兩個 09/20 23:19
numin:去測試看行不行? 09/20 23:19
ddczx:先想code到底在做啥,以這題,是將a[i]值拿到a[i+8] 09/20 23:57
ddczx:再拿出a[i+16],若負則i++重複loop 09/20 23:57
ddczx:找出hazard, MIPS只與下個指令或下下個指令有相依 09/20 23:58
ddczx:(addi,lw2),(addi,sw),(lw2,sw),(lw1,slt),(addi,bne) 09/20 23:58
ddczx:去掉可解決(lw2,sw):2 ,(lw1,slt):1 ,(slt,bne):2 09/20 23:59
ddczx:addi是為了拿到正確i故先做,2個lw分別是拿出a[i],a[i+16] 09/20 23:59
ddczx:因bne在EX才決定是否跳,故下面放個總是要做的指令,選sw 09/21 00:00
ddczx:這樣就不管跳不跳都不需flush下一指令 09/21 00:00
ddczx:最後再靠一點點的靈感就排出來了XD 09/21 00:00
cola1230:...好強的靈感 09/21 00:32
ddczx:我翻了課本,許多MIPS機器是將分支執行移到ID,我前面弄錯了, 09/21 00:39
ddczx:一般沒說應該是在ID才是,所以bne下面才是塞1指令而不是2指令 09/21 00:40
numin:感謝d大的做法,這靈感真的也太強了XDD。 09/23 20:45

你可能也想看看

搜尋相關網站