推 lingpxs: 後者才是 抓取指令執行完才會加1 08/15 00:40
→ loveyou999: 謝謝,可是我目前看到2本書寫前者,兩本書寫後者~ 08/15 23:25
→ loveyou999: 怎麼會這樣 orz 08/15 23:25
→ emstarbucks: IF 08/16 01:55
→ emstarbucks: 因為pipeline就直接往下抓下一個指令 08/16 01:55
→ emstarbucks: exe會知道是否要branch mem會把值丟回去IF 08/16 01:57
→ emstarbucks: 配合branch taken/not taken 猜錯就移除中間錯的指令 08/16 02:00
→ emstarbucks: 計組也是寫IF吧@@ 08/16 02:03
→ emstarbucks: 就算你不是pipeline branch的值也在exe就出來了 08/16 02:04
→ emstarbucks: mem也會丟回去 08/16 02:05
→ emstarbucks: 差別只在他會等WB完 下一個指令才開始動 08/16 02:06
→ emstarbucks: IF ID EXE MEM WB 08/16 02:08
→ emstarbucks: IF ID ..... 08/16 02:08
→ emstarbucks: pipeline是上面這樣~ 中間判斷要不要stall的就不提了 08/16 02:11
→ emstarbucks: 那兩行你就看的出來 08/16 02:12
→ emstarbucks: IF做完 馬上PC+4 下一個IF馬上開始 ~ 08/16 02:12
→ emstarbucks: 應該說IF階段就PC+4@@ 說做完怪怪的XD 08/16 02:14
→ loveyou999: 對也~我都沒想到,如果在rm後才加1,就無法先做下一 08/16 06:44
→ loveyou999: 次的if了~謝謝 08/16 06:44
→ loveyou999: 那你覺得pc+1是在pc值丟給mar後就+1,還是等pc值丟到I 08/16 06:51
→ loveyou999: R後呢? 08/16 06:51
→ loveyou999: 上圖它把pc+1列為最後一步 08/16 06:54
→ emstarbucks: 那是哪本書 ? 計概 + 計組都是寫IF (MIPS架構下) 08/17 10:52
→ emstarbucks: 高等計結課堂中實作的CPU也是把PC+4放在IF 08/17 10:58
→ emstarbucks: 那個圖的流程第一次看到 我比較不看坊間自己出的書 08/17 11:01