Re: [理工][計組] 101交大

看板Grad-ProbAsk作者 (華胥)時間13年前 (2013/01/23 19:10), 編輯推噓5(5011)
留言16則, 5人參與, 最新討論串2/2 (看更多)
※ 引述《gn123 (GnCtIlike)》之銘言: : 交大101年計組第二題http://www.lib.nctu.edu.tw/attach/download/id-1369/ : 第二小題: branch decide 在ID stage的情況,然後bne不管怎樣都猜跳 : 所以會flush後面一個指令 : 因為ID stage 不支援forwarding,所以遇到data hazard要stall兩個 : 然後張凡的這題解答 stall cycle:4,7,8,13(他這題後來更正是13) : 然後這是我的看法: : V代表該clock有stall : V V V V V : lw t0 s1 s2 IF ID EX ME WB : add s0 t0 t1 IF ID ID EX ME WB : lw s1 0(t0) IF IF ID EX ME WB : bne s0 s1 10 IF ID ID ID EX ME WB (不能forwarding,所以ID要等到WB) : add s2 s0 s1 IF IF IF ID ....(這個FLUSH) : add s3 s1 s0 IF ID EX ME WB : bne s3 s3 10 IF ID ID ID EX ME WB : add s3 s2 s3 (FKUSH) : 這樣不是12,13都有STALL了!? : 請板上高手解答一下T_T : 謝謝~ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 lw F D E M W add F D X E M W lw F X D E M W bne X F D X X E M W add F X X X D E M W add X X X F D E M W bne F D X E M W add F X X D E M W 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 lw F D E M W add F D X E M W lw F X D E M W bne X F D X X E M W nop F X X D E M W add X X F D E M W add F D E M W bne F D X E M W nop F X D E M W add X F D E M W 改成這樣會不會比較好懂? 在第六cycle的時候錯誤的指令抓了進來 當這個指令執行完ID的時候 會stall (flush ID/EX reg ) 也就是在第九個cycle -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.127.156.20

01/23 19:28, , 1F
感謝~! 來研究看看@@
01/23 19:28, 1F

01/23 19:32, , 2F
額 不太懂為什麼第五個指令,cycle 9時還是stall呢@@?
01/23 19:32, 2F

01/23 19:32, , 3F
上一個bne的EX不是可以直接forwarding給add的EX?
01/23 19:32, 3F

01/23 20:47, , 4F
應該說真正的add是在第9cycle才fetch進來
01/23 20:47, 4F
※ 編輯: ab170926 來自: 59.127.156.20 (01/23 20:52) ※ 編輯: ab170926 來自: 59.127.156.20 (01/23 20:53) ※ 編輯: ab170926 來自: 59.127.156.20 (01/23 21:06)

01/23 21:18, , 5F
想問,最後一個bne要用到上面 add的$3
01/23 21:18, 5F

01/23 21:19, , 6F
為什麼 add 在 W 時 bne 不是 D ?
01/23 21:19, 6F

01/23 21:20, , 7F
課本上沒有full forwarding..
01/23 21:20, 7F

01/23 21:20, , 8F
想不透..XD
01/23 21:20, 8F

01/23 21:22, , 9F
所以我算出來還會多 stall 14
01/23 21:22, 9F

01/23 21:27, , 10F
這個之前有討論過了xd爬文應該有
01/23 21:27, 10F

01/23 21:33, , 11F
你要想像他有forward到ID那裡
01/23 21:33, 11F

01/23 21:34, , 12F
不然課本上就不會說add beq只需要停一個cycle了
01/23 21:34, 12F

01/23 21:42, , 13F
喔!!! 我之前以為flush完,原本那個add就忽略了XD
01/23 21:42, 13F

01/23 21:43, , 14F
所以flush掉的指令,如果不跳,還是會繼續執行而非省略?
01/23 21:43, 14F

01/23 22:09, , 15F
flush是把ID/EX reg全清空 也就是執行sll,$0,$0,0
01/23 22:09, 15F

01/23 22:50, , 16F
感謝,剛看了課本...真令人無言..
01/23 22:50, 16F
文章代碼(AID): #1G_yKk75 (Grad-ProbAsk)
討論串 (同標題文章)
文章代碼(AID): #1G_yKk75 (Grad-ProbAsk)