分支運算簡單說就是IF
判斷狀況成立則執行A,不成立則執行B
現在x86 CPU通常都是亂序執行(Out-of-Order)
但是有些運算必須等到上次的運算結果出來才能得知
可是管線閒著也是閒著
(P4 vs K7: 1*2/2/4 vs 3/3/3,不知道K8跟Dothan是多少?)
於是就讓他們根據之前的運算(指令&資料)
預先假設不同條件算一些資料出來
若是上次結果運算剛好符合預測
就是運氣好,可以繼續接著算,節省運算時間提升效能
但是若不幸不如預測
則所有管線必須清除,重新讀取正確資料,填充執行管線
之前做的都是當美國總統去了(做白工)...
不知道這樣說正不正確...