分枝預測

分枝預測

分支預測(branch prediction)和推測執行(speculation execution)是CPU動態執行技術中的主要內容,動態執行是目前CPU主要採用的先進技術之一。採用分支預測和推測執行的主要目的是為了提高CPU的運算速度。推測執行是依託於分支預測基礎上的,在分支預測程式是否分支後所進行的處理也就是推測執行。

基本介紹

分支,分支預測,

分支

分支(branch)是指程式運行時需要改變的節點。分枝有無條件分支和有條件分支,其中無條件分支只需要CPU按指令順序執行,而條件分支則必須根據處理結果再決定程式運行方向是否改變。因此需要"分支預測"技術處理的是條件分枝。

分支預測

由於程式中的條件分支是根據程式指令在流水線處理後結果再執行的,所以當CPU等待指令結果時,流水線的前級電路也處於空閒狀態等待分支指令,這樣必然出現時鐘周期的浪費。如果CPU能在前條指令結果出來之前就能預測到分支是否轉移,那么就可以提前執行相應的指令,這樣就避免了流水線的空閒等待,相應也就提高了CPU的運算速度。但另一方面一旦前指令結果出來後證明分枝預測錯誤,那么就必須將已經裝入流水線執行的指令和結果全部清除,然後再裝入正確指令重新處理,這樣就比不進行分支預測等待結果後再執行新指令還慢了(所以IDT公司的WIN C6就沒有採用分支預測技術)。這就好象在外科手術中,一個熟練的護士可以根據手術進展情況來判斷醫生的需要(象分支預測)提前將手術器械拿在手上(象推測執行)然後按醫生要求遞給他,這樣可以避免等醫生說出要什麼,再由護士拿起遞給他(醫生)的等待時間。當然如果護士判斷錯誤,也必須要放下預先拿的器械再重新拿醫生需要的遞過去。儘管如此,只要護士經驗豐富,判斷準確率高,那么當然就可以提高手術進行速度。
分枝預測
因此我們可以看出,在以上推測執行時的分支預測準確性至關重要!所以通過Intel公司技術人員的努力,現在的Pentium和Pentium Ⅱ系列CPU的分枝預測正確率分別達到了80%和90%,這樣雖然可能會有20%和10%分枝預測錯誤但平均以後的結果仍然可以提高CPU的運算速度。
分枝預測

相關詞條

熱門詞條

聯絡我們