[理工] 计组 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