[理工] 计组 101 台联大电机 Pipeline 惩罚

楼主: jerry900287 (卤蛋)   2017-12-05 18:30:40
想请教一下各位大大
题目如图 https://i.imgur.com/o076BeK.png
红框答案的部分
我的理解是说
程式在 compiler得时候
compiler会先看一下指令
安排顺序
再进pipeline
如图 : https://i.imgur.com/JEGtoWy.png
当 Branch 预期跳的时候
Complier 会在 Branch 指令后面插目的的指令
所以当 Branch 真的跳则不会有惩罚
这部分我没有问题
但是 Jump 指令
Compiler看到的时候
应该是会排 Jump 目的的指令吧?
我觉得应该是不会有惩罚的问题
同样都是在ID2解码才知道指令
人家Branch都可以排 跳跃目的 的指令了
为啥Jump这个必跳的指令后面一定要跟着 下一个指令 而不是 跳跃目的 的指令呢?
还是我整体的观念有误呢?
作者: howard31622 (howard)   2017-12-05 22:48:00
答案错的unconditional branch 在predict taken是不会损失的张帆上课有说
作者: ms718293 (老大不小老二很小)   2017-12-06 00:30:00
我上课时是听他说 jump一律不能猜 所以都是损失3 cycles然后我也没有记录到答案是错的部分 3/3应该是对的有错麻烦指正@@我发现我应该是错的了 答案是0/3没错 因为jump是一定跳所以如果猜taken,则无损失。若猜not taken,必损失3

Links booklink

Contact Us: admin [ a t ] ucptt.com