Re: [理工] [計組] stall

看板Grad-ProbAsk作者 (超級喜歡哈孝遠)時間13年前 (2012/12/02 23:05), 編輯推噓2(2013)
留言15則, 2人參與, 最新討論串3/4 (看更多)
: (b) : 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 : lw IF ID EX ME WB : add IF ID ** EX ME WB : lw IF ** ID EX ME WB : bne ** IF ** ** ID EX ME WB : add ** ** ** IF ID EX ME WB : add IF ID EX ME WB : bne IF ** ID EX ME WB : add ** IF ID EX ME WB : 黃色的是代表猜跳而未跳的懲罰時間(flush指令) : cycle數也符合第一題的答案 第二題聽同學說張凡在題庫班 改成4 7 8 13 然後我跟我同學討論後 覺得對兩個bne來說雖然ID就要決定要不要跳了 但應該還是會先解碼 畢竟不解碼怎麼知道需不需要stall呢 至於黃色的因為猜跳 但不跳 (所以下個指令還是會flush 應該也算在題目問的stall內) 所以大概會變成下面這樣 (b) 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 lw IF ID EX ME↘WB add IF ID ** EX ME WB lw IF ** ID EX ME↘WB bne ** IF ID ID ID EX ME WB add IF ** ** IF ID EX ME WB add IF ID EX ME↘WB bne IF ID ID EX ME WB add IF ** IF ID EX ME WB 感覺還是哪裡怪怪的啦 希望有上題庫班的或其他大大可以幫忙解惑一下 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.193.186.95

12/02 23:17, , 1F
beq是flush掉指令,並不是stallcycle,張帆在題庫班直接用
12/02 23:17, 1F

12/02 23:17, , 2F
算的,他說畫圖太慢
12/02 23:17, 2F

12/02 23:18, , 3F
因為會stall的指令都是datahazard所以在IDstall
12/02 23:18, 3F

12/02 23:19, , 4F
所以你只要判斷哪個指令要stall以及他在ID的時後是哪個
12/02 23:19, 4F

12/02 23:19, , 5F
CLOCK
12/02 23:19, 5F

12/02 23:21, , 6F
所以答案是 4 7 8 13嗎? 確定一下
12/02 23:21, 6F

12/02 23:24, , 7F
當2.add執行到ID時要1(lw)+2(IF+ID)而他要在下一個cycle
12/02 23:24, 7F

12/02 23:25, , 8F
stall 所以2.add的stallcycle=4
12/02 23:25, 8F

12/02 23:27, , 9F
4.bne stall前=1(lw)+1(add)+1(add')+1(lw)+2(IFID)=6
12/02 23:27, 9F

12/02 23:28, , 10F
要stall2個所以是C7.C8 依此類推
12/02 23:28, 10F

12/02 23:31, , 11F
我覺得要畫beq的flushcycle用nop比較好(像17871那篇)
12/02 23:31, 11F

12/02 23:33, , 12F
結論就是算要stall前有幾個cycle(因為都在ID開始stall)
12/02 23:33, 12F

12/02 23:33, , 13F
再看要stall幾個cycle
12/02 23:33, 13F

12/02 23:34, , 14F
答案對= =剛剛沒看到對不起
12/02 23:34, 14F

12/02 23:38, , 15F
C4的bne不用** C7C8的bne要** bne的flush我覺得怪怪的
12/02 23:38, 15F
文章代碼(AID): #1Gksv3Eg (Grad-ProbAsk)
討論串 (同標題文章)
文章代碼(AID): #1Gksv3Eg (Grad-ProbAsk)