[理工] 計組 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