[問題] [計概]機器指令週期中的pc=pc+1

看板Examination作者 (lovelovelove)時間10年前 (2015/08/14 22:52), 編輯推噓1(1025)
留言26則, 3人參與, 最新討論串1/2 (看更多)
請問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

08/15 00:40, , 1F
後者才是 抓取指令執行完才會加1
08/15 00:40, 1F

08/15 23:25, , 2F
謝謝,可是我目前看到2本書寫前者,兩本書寫後者~
08/15 23:25, 2F

08/15 23:25, , 3F
怎麼會這樣 orz
08/15 23:25, 3F

08/16 01:55, , 4F
IF
08/16 01:55, 4F

08/16 01:55, , 5F
因為pipeline就直接往下抓下一個指令
08/16 01:55, 5F

08/16 01:57, , 6F
exe會知道是否要branch mem會把值丟回去IF
08/16 01:57, 6F

08/16 02:00, , 7F
配合branch taken/not taken 猜錯就移除中間錯的指令
08/16 02:00, 7F

08/16 02:03, , 8F
計組也是寫IF吧@@
08/16 02:03, 8F

08/16 02:04, , 9F
就算你不是pipeline branch的值也在exe就出來了
08/16 02:04, 9F

08/16 02:05, , 10F
mem也會丟回去
08/16 02:05, 10F

08/16 02:06, , 11F
差別只在他會等WB完 下一個指令才開始動
08/16 02:06, 11F

08/16 02:08, , 12F
IF ID EXE MEM WB
08/16 02:08, 12F

08/16 02:08, , 13F
IF ID .....
08/16 02:08, 13F

08/16 02:11, , 14F
pipeline是上面這樣~ 中間判斷要不要stall的就不提了
08/16 02:11, 14F

08/16 02:12, , 15F
那兩行你就看的出來
08/16 02:12, 15F

08/16 02:12, , 16F
IF做完 馬上PC+4 下一個IF馬上開始 ~
08/16 02:12, 16F

08/16 02:14, , 17F
應該說IF階段就PC+4@@ 說做完怪怪的XD
08/16 02:14, 17F

08/16 06:44, , 18F
對也~我都沒想到,如果在rm後才加1,就無法先做下一
08/16 06:44, 18F

08/16 06:44, , 19F
次的if了~謝謝
08/16 06:44, 19F

08/16 06:51, , 20F
那你覺得pc+1是在pc值丟給mar後就+1,還是等pc值丟到I
08/16 06:51, 20F

08/16 06:51, , 21F
R後呢?
08/16 06:51, 21F

08/16 06:54, , 22F

08/16 06:54, , 23F
上圖它把pc+1列為最後一步
08/16 06:54, 23F

08/17 10:52, , 24F
那是哪本書 ? 計概 + 計組都是寫IF (MIPS架構下)
08/17 10:52, 24F

08/17 10:58, , 25F
高等計結課堂中實作的CPU也是把PC+4放在IF
08/17 10:58, 25F

08/17 11:01, , 26F
那個圖的流程第一次看到 我比較不看坊間自己出的書
08/17 11:01, 26F
文章代碼(AID): #1LpW2Olc (Examination)
文章代碼(AID): #1LpW2Olc (Examination)