[理工] 計組 branch 與 pc

作者: befdawn (橙花雨露)   2018-10-31 11:22:55
https://i.imgur.com/qdyv65j.jpg
請問這題,能懂 branch 執行後會跳到 42 的算法,但 pc 是不是要再指向下一個指令
也就是 46 的位址嗎?
作者: mirror0227 (鏡子)   2018-10-31 11:26:00
10+4?
作者: frank010180 (量仔~)   2018-10-31 11:34:00
在每個指令執行IF的時候 PC就先+4了所以對branch做加總後會準確的到該目標位址可以trace一下電路圖會更了解以上有誤請指證
作者: bmpss92196 (bmpss92196)   2018-10-31 13:00:00
目前位置是10,下一個是42,pc不就該放42
作者: meokay (我可以)   2018-10-31 14:13:00
等到42執行時,才會指到46
作者: o5739201 (車貸學貸付二貸)   2018-11-01 19:58:00
Beq 指令位址是10而讀到beq時pc已經+4了 變14這時如果跳 就往 14+7*4=42 地址抓指令而妳說的46是42指令在ID階段pc+4(也就是跳躍目的的下一個指令)
作者: befdawn (橙花雨露)   2018-11-03 19:18:00
謝謝大家 所以是42 被 taken 只是被讀到而已,還沒被執行嗎?我再看了一次,原來是branch 讀取時若被接受,PC直接跳到42。謝謝樓上大大們的解釋

Links booklink

Contact Us: admin [ a t ] ucptt.com