什么是CPU分枝/亂序執行?
什么是分枝/亂序執行?
分枝(branch)是指程序運行時需要改變的節點。分枝有無條件分枝和有條件分枝,其中無條件分枝只需要CPU按指令順序執行,而條件分枝則必須根據處理結果再決定程序運行方向是否改變。因此需要"分枝預測"技術處理的是條件分枝。
?亂序執行(out-of-order execution)是指CPU采用了允許將多條指令不按程序規定的順序分開發送給各相應電路單元處理的技術。比方說程序某一段有7條指令,此時CPU將根據各單元電路的空閑狀態和各指令能否提前執行的具體情況分析后,將能提前執行的指令立即發送給相應電路執行。當然在各單元不按規定順序執行完指令后還必須由相應電路再將運算結果重新按原來程序指定的指令順序排列后才能返回程序。這種將各條指令不按順序拆散后執行的運行方式就叫亂序執行(也有叫錯序執行)技術。
采用亂序執行技術的目的是為了使CPU內部電路滿負荷運轉并相應提高了CPU的運行程序的速度。這好比請A、B、C三個名人為晚會題寫橫幅"春節聯歡晚會"六個大字,每人各寫兩個字。如果這時在一張大紙上按順序由A寫好"春節"后再交給B寫"聯歡",然后再由C寫"晚會",那么這樣在A寫的時候,B和C必須等待,而在B寫的時候C仍然要等待而A已經沒事了。但如果采用三個人分別用三張紙同時寫的做法, 那么B和C都不必須等待就可以同時各寫各的了,甚至C和B還可以比A先寫好也沒關系(就象亂序執行),但當他們都寫完后就必須重新在橫幅上(自然可以由別人做,就象CPU中亂序執行后的重新排列單元)按"春節聯歡晚會"的順序排好才能掛出去。
非常好我支持^.^
(0) 0%
不好我反對
(0) 0%
相關閱讀:
( 發表人:admin )