[理工] [計組]-bne的問題

看板Grad-ProbAsk作者 (sdas)時間15年前 (2010/03/17 21:48), 編輯推噓2(2020)
留言22則, 5人參與, 最新討論串1/1
想請問一下 如果branch的決定是在ID階段有forwarding的機制下 如果branch的來源暫存器和前一個指令的寫入暫存器有hazard存在 如下列這樣 add s1 s2 s3 bne s1 s5 Loop (在此假設Loop為要跳的位址) 那這樣add bne中間要加幾個nop? 如果改成決定是在MEM一樣也是有forwarding機制的話要加幾個nop? 我的想法和一樓一樣 可是 請問一下網址的第一題 http://ezproxy.lib.ncu.edu.tw:8080/~arhui/cexamn/exam/EC02_97_02.pdf 它不是有forwarding的機制 為什麼在or和beq中間仍然要stall兩個clock? 麻煩大家幫我解題一下 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.231.180.45

03/17 22:08, , 1F
前者應該一個 後者不用
03/17 22:08, 1F
※ 編輯: ChrismasTick 來自: 61.231.180.45 (03/17 22:12)

03/17 22:22, , 2F
forwarding沒辦法回授到ID stage, 除非重新設計
03/17 22:22, 2F

03/17 22:23, , 3F
所以第一個的register file採前寫後讀要兩個stall
03/17 22:23, 3F

03/17 22:26, , 4F
怎麼看出他沒辦法回授到ID stage呀
03/17 22:26, 4F

03/17 22:26, , 5F
若為forwarding whenever possible則只需1個clock
03/17 22:26, 5F

03/17 22:26, , 6F
forwarding的設計就是這樣
03/17 22:26, 6F

03/17 22:27, , 7F
若只能forward到EX (i.e.,標準型)則需要2個clock
03/17 22:27, 7F

03/17 22:28, , 8F
那如果是ID階段有forwarding不是stall一個clock嗎
03/17 22:28, 8F

03/17 22:28, , 9F
還是我的觀念錯誤了
03/17 22:28, 9F

03/17 22:29, , 10F
看datapath
03/17 22:29, 10F
※ 編輯: ChrismasTick 來自: 61.231.180.45 (03/17 22:32)

03/17 22:33, , 11F
想請問一下如果沒有datapath圖的狀況下
03/17 22:33, 11F

03/17 22:33, , 12F
你看它給的那張圖 forwarding只改變到EXE階段的A.B的Mux
03/17 22:33, 12F

03/17 22:34, , 13F
沒有給的話就要自己假設了
03/17 22:34, 13F

03/17 22:35, , 14F
有回饋(決定在ID)是stall一個clock沒有回饋是兩個
03/17 22:35, 14F

03/17 22:35, , 15F
這樣的想法是對的嗎
03/17 22:35, 15F

03/17 22:40, , 16F
你是指有回到ID階段?
03/17 22:40, 16F

03/17 22:41, , 17F
所以還要分是否可以回到ID階段?
03/17 22:41, 17F

03/17 22:43, , 18F
要怎麼看他是否有回到ID階段呀
03/17 22:43, 18F

03/17 22:49, , 19F
這張圖為什麼沒有FORWARDING到ID
03/17 22:49, 19F

03/17 23:29, , 20F
他的output只有到那兩個MUX啊
03/17 23:29, 20F

03/18 00:33, , 21F
那怎樣的圖才代表他可以forwarding到ID階段呀
03/18 00:33, 21F

03/18 10:35, , 22F
說實話我沒看過那種的datapath 但其output可助判斷
03/18 10:35, 22F
文章代碼(AID): #1BeDsLtF (Grad-ProbAsk)