什么是CPU分枝預測和推測執(zhí)行技術?
什么是分枝預測和推測執(zhí)行技術?
?分枝預測(branch prediction)和推測執(zhí)行(speculation execution)是CPU動態(tài)執(zhí)行技術中的主要內(nèi)容,動態(tài)執(zhí)行是目前CPU主要采用的先進技術之一。采用分枝預測和動態(tài)執(zhí)行的主要目的是為了提高CPU的運算速度。推測執(zhí)行是依托于分枝預測基礎上的,在分枝預測程序是否分枝后所進行的處理也就是推測執(zhí)行。
由于程序中的條件分枝是根據(jù)程序指令在流水線處理后結(jié)果再執(zhí)行的,所以當CPU等待指令結(jié)果時,流水線的前級電路也處于空閑狀態(tài)等待分枝指令,這樣必然出現(xiàn)時鐘周期的浪費。如果CPU能在前條指令結(jié)果出來之前就能預測到分枝是否轉(zhuǎn)移,那么就可以提前執(zhí)行相應的指令,這樣就避免了流水線的空閑等待,相應也就提高了CPU的運算速度。但另一方面一旦前指令結(jié)果出來后證明分枝預測錯誤,那么就必須將已經(jīng)裝入流水線執(zhí)行的指令和結(jié)果全部清除,然后再裝入正確指令重新處理,這樣就比不進行分枝預測等待結(jié)果后再執(zhí)行新指令還慢了(所以IDT公司的WIN C6就沒有采用分枝預測技術)。這就好象在外科手術中,一個熟練的護士可以根據(jù)手術進展情況來判斷醫(yī)生的需要(象分枝預測)提前將手術器械拿在手上(象推測執(zhí)行)然后按醫(yī)生要求遞給他,這樣可以避免等醫(yī)生說出要什么,再由護士拿起遞給他(醫(yī)生)的等待時間。當然如果護士判斷錯誤,也必須要放下預先拿的器械再重新拿醫(yī)生需要的遞過去。盡管如此,只要護士經(jīng)驗豐富,判斷準確率高,那么當然就可以提高手術進行速度。
因此我們可以看出,在以上推測執(zhí)行時的分枝預測準確性至關重要!所以通過Intel公司技術人員的努力,現(xiàn)在的Pentium和Pentium Ⅱ系列CPU的分枝預測正確率分別達到了80%和90%,這樣雖然可能會有20%和10%分枝預測錯誤但平均以后的結(jié)果仍然可以提高CPU的運算速度。
非常好我支持^.^
(1) 100%
不好我反對
(0) 0%
相關閱讀:
( 發(fā)表人:admin )