看板 Examination 關於我們 聯絡資訊
請問pc=pc+1這個動作會在IF(抓取指令)後執行,還是WM(write result to memory)後呢? 計概的書很像是前者,計組計的書很像是寫後者? 還是由使用者自行決定? 謝謝先 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.172.150.205 ※ 文章網址: https://www.ptt.cc/bbs/Examination/M.1439563928.A.BE6.html
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: http://i.imgur.com/bRNxFnV.jpg 08/16 06:54
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