[理工] 計組 branch 與 pc

看板Grad-ProbAsk作者 (蜜蜂P助)時間7年前 (2018/10/31 11:22), 編輯推噓4(4012)
留言16則, 6人參與, 7年前最新討論串1/1
https://i.imgur.com/qdyv65j.jpg
請問這題,能懂 branch 執行後會跳到 42 的算法,但 pc 是不是要再指向下一個指令 也就是 46 的位址嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.217.65.22 ※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1540956178.A.FFC.html

10/31 11:26, 7年前 , 1F
10+4?
10/31 11:26, 1F

10/31 11:34, 7年前 , 2F
在每個指令執行IF的時候 PC就先+4了
10/31 11:34, 2F

10/31 11:36, 7年前 , 3F
所以對branch做加總後會準確的到該目標位址
10/31 11:36, 3F

10/31 11:37, 7年前 , 4F
可以trace一下電路圖會更了解
10/31 11:37, 4F

10/31 11:37, 7年前 , 5F
以上有誤請指證
10/31 11:37, 5F

10/31 13:00, 7年前 , 6F
目前位置是10,下一個是42,pc不就該放42
10/31 13:00, 6F

10/31 14:13, 7年前 , 7F
等到42執行時,才會指到46
10/31 14:13, 7F

11/01 19:58, 7年前 , 8F
Beq 指令位址是10
11/01 19:58, 8F

11/01 19:58, 7年前 , 9F
而讀到beq時pc已經+4了 變14
11/01 19:58, 9F

11/01 19:59, 7年前 , 10F
這時如果跳 就往 14+7*4=42 地址抓指令
11/01 19:59, 10F

11/01 19:59, 7年前 , 11F
而妳說的46是42指令在ID階段pc+4(也就是跳躍目的的下一
11/01 19:59, 11F

11/01 19:59, 7年前 , 12F
個指令)
11/01 19:59, 12F

11/03 19:18, 7年前 , 13F
謝謝大家 所以是42 被 taken 只是被讀到而已,還沒被執
11/03 19:18, 13F

11/03 19:18, 7年前 , 14F
行嗎?
11/03 19:18, 14F

11/03 22:01, 7年前 , 15F
我再看了一次,原來是branch 讀取時若被接受,PC直接跳
11/03 22:01, 15F

11/03 22:01, 7年前 , 16F
到42。謝謝樓上大大們的解釋
11/03 22:01, 16F
文章代碼(AID): #1RsI0I_y (Grad-ProbAsk)