[理工] [計組]-forwarding

看板Grad-ProbAsk作者 ( )時間16年前 (2010/02/20 20:39), 編輯推噓2(203)
留言5則, 3人參與, 最新討論串1/1
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) 上面這段程式碼 存在有什麼樣的hazard? (在full forwarding情況下 以及 5-stage pipelined datapath) ---------------------------- 我大概畫的 1. add $1,$5,$3 IF ID EX ME WB 2. sw $1,0($2) IF ID EX ME WB 3. lw $1,4($2) IF ID EX ME WB 4. add $5,$5,$1 IF ID ** EX ME WB 5. sw $1,0($2) IF ** ID EX ME WB 從圖知道.... 3與4 有load-use data hazard 指令4需要stall一個clock 3與5 原本兩者有MEM hazard 因為上述stall了一個clock 所以可以解決 但是 1與2 用hazard detection code判斷 應該是屬於EX hazard ??? 但pipeline中把路徑畫出來 還蠻奇怪的 (在第三與第四stage間) 此時是把指令1的EX stage結果forward給指令2的 forward B這個Mux. 而ALU正處理指令2的 R[rs]+SignExt(imm16)?? 此時將指令1 forward過來的$1值給ALU並無用處吧?? (要給data mem才對?) (ALU的輸入二 應該是SignExt(imm16)吧??) forwarding該如何把值傳至data memory 而不會經由Mux.跑進ALU 謝謝~! -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.71.231.220 ※ 編輯: ggyyalex 來自: 219.71.231.220 (02/20 20:41) ※ 編輯: ggyyalex 來自: 219.71.231.220 (02/20 20:43)

02/20 21:21, , 1F
白算盤裡的control漏了這種情況吧~
02/20 21:21, 1F

02/20 21:22, , 2F
顯然是要再加上其他control才有辦法處理
02/20 21:22, 2F

02/21 00:26, , 3F
有用的,再仔細看一下forwarding的圖,sw的線是從mux後面拉的
02/21 00:26, 3F

02/21 00:41, , 4F
我有點搞錯了,這部分的確沒有講得很清楚
02/21 00:41, 4F

02/21 16:28, , 5F
它可以把計算好的馬上傳給第2個的所以可以FORWARDING
02/21 16:28, 5F
文章代碼(AID): #1BVzW6-E (Grad-ProbAsk)