計算機體系結構中的投機執行是什麼?


處理器會擴充套件執行指令,直到條件得到解決為止。條件執行開始到等效條件解決之間的時間間隔可能會發生顯著變化。條件在緊接著的週期內得到解決。

當指定的條件定義一個簡單操作的結果時,就會出現這種情況,包括整數加法、減法或邏輯運算。對於長操作(包括FX或FP除法),在條件可以解決之前,將有多個週期過去。

超標量處理器可以在每個週期發出多個指令。因此,在指定的條件變得可評估之前,在投機執行過程中會執行大量指令。

有兩個主要方面,例如投機的級別和程度,如圖所示。透過**投機的級別**,可以理解可以順序地投機執行多個條件分支。如果第二個、第三個等等未解決的條件分支不終止投機執行,則對效能有利。對於能夠發出每個週期多個指令的超標量處理器來說,這一要求更加強制。

Power2允許兩個,PowerPC 620和R10000四個,α 21164多達六個掛起的條件分支。只允許一個掛起條件分支的處理器類似於基本塊排程程式,該排程程式將指令排程到當前基本塊結束之前的並行執行,而允許多個掛起條件分支的處理器類似於全域性排程程式,超越基本塊邊界。

第二種方法是**投機的程度**。這個概念與在猜測的條件分支之後實現多少指令(而不是未解決的條件分支)相關。在這裡,處理器採用不同的方案,如圖所示。在最簡單的情況下,投機執行不會超過獲取屬於預測路徑的一些指令,例如Power1。

當預測路徑上的指令被獲取和解碼,或者被獲取、解碼和排程時,就會發現更高的投機程度,例如在PowerPC 601中。即使具有高度投機性的處理器也會在掛起的條件分支之後獲取、解碼、排程和執行指令,儘管沒有完成它們,例如在MC 88110或PowerPC 603中。

例如,MC 88110允許投機執行指令,並提供一種機制在預測錯誤時撤消它們。這種機制旨在為亂序執行保持順序一致性。它基於歷史緩衝區,並且可以每個週期撤消兩條指令。

更新於:2021年7月23日

2K+ 次瀏覽

啟動您的職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.