看板 Grad-ProbAsk 關於我們 聯絡資訊
http://140.115.130.224:8080/~arhui/cexamn/exam/EC02_97_02.pdf 第一題的a小題該怎麼畫呢? 題目說beq可以在ID stage決定branch add s1 s2 s3 F D X M W sub s2 s3 s1 F D X M W lw s1 s2(0) F D X M W or s3 s2 s1 F D * X M W beq s2 s3 loop F * D X M W addi s1 s3 2 * * F D X M W sw s1 s2(0) ... subi s2 s1 2 or beq addi 這三條 該怎麼畫呢? lw or load use 要 stall 1 個才能forwarding or beq和beq 跟addi呢? 爬文好像沒畫到beq和下一指令的... 謝謝:) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 58.99.94.18
s987692:beq 那條需要stall兩個clocks 03/17 16:00
ssccg:beq s2 s3 loop F * * D X M W 03/17 16:26
ssccg:addi s1 s3 2 * * F //題目說branch taken 03/17 16:28
ssccg:add s1 s2 s3 F D X M W 03/17 16:29
ssccg:beq第一個stall跟or一樣是在等lw,第二次是等or的EX 03/17 16:30
ssccg:上面addi那兩個*應該不用,還沒進pipeline 03/17 16:34
ggLer:請問...beq的第二個stall不能用forward解決嗎? 03/17 17:47
ssccg:從EX/MEM forward到ID,beq ID還是要在or EX的後一個cycle吧 03/17 17:50
ggLer:X->X....@@... 03/17 17:50
ssccg:beq在ID決定所以要X→D 03/17 17:53
ggLer:ok.......謝謝:) 03/17 17:54