1. 程式人生 > >Intel Core & Enhanced Core微架構(4)

Intel Core & Enhanced Core微架構(4)

Front End

前端的主要功能是為6發射寬度的亂序引擎提供並保持微指令流。下表列出了微架構中前端的構成部件,以及他們的功能和在效能方面面臨的挑戰。

部件

功能

效能挑戰

分支預測單元(BPU)

預測各種型別的分支指令:條件分支,無條件分支,間接分支,直接分支,呼叫,回返指令。預測資訊輔助取指單元獲取最可能執行到的指令。每種型別的分支都有專門的硬體邏輯進行預測。

  • 允許投機執行
  • 通過減少“非架構路徑1”上的指令被讀取到流水線中,提升投機執行的效率

指令獲取單元(IFU)

  • 獲取可能被執行到的指令
  • 快取頻繁使用到的指令
  • 預譯碼和快取指令,保持穩定地譯碼頻寬,緩解x86指令流長度上的不規律性
  • 可變長度的x86指令格式導致譯碼頻寬不穩定(出現氣泡現象)
  • 採納分支和未對齊的分支目標導致取指單元的總體頻寬被打斷

 

指令佇列IQ和譯碼單元

  • 譯碼4條x86指令,或5條(通過巨集熔合)
  • 棧指標跟蹤器演算法,更高效的過程進入與退出
  • 實現巨集熔合特性,更高的譯碼效能和效率
  • 指令佇列也被用作迴圈快取,某些迴圈可以以更高的頻寬和更低的能耗執行
  • 譯碼不同的x86指令需要不同的工作量,x86指令譯碼後對應不同數量的微指令
  • 指令字首的存在增加了指令譯碼複雜度
  • 指令長度切換字首(LCP)會導致前端出現氣泡現象。

注1:在亂序投機執行過程中,處理器認為某個路徑可能會被執行到,於是投機式式地讀取該路徑上的指令並執行,隨後發現實際上應該執行其他路徑,最後不得不廢棄投機執行的路徑。這個被廢棄的路徑被稱為“非架構路徑”,因為最終廢棄的路徑並不改變處理器架構的任何狀態。相應的,最終執行的路徑被稱為“架構路徑”,因為執行結果會反映到處理器架構狀態上。