-
宏融合
鎖定
- 中文名
- 宏融合
- 外文名
- Macro-fusion
- 性 質
- 提高x86處理器性能的技術
- 領 域
- 計算機
宏融合原理
x86是典型的CISC架構。為了便於實現流水線和超標量,90年代中期以後的主流x86處理器均在前端使用解碼器將x86指令翻譯成類似RISC指令的微指令送入後端執行。一條x86指令將被解碼成一條或多條微指令。受解碼單元和執行單元數目限制,在同一時鐘週期內,前端能夠解碼的宏指令最大數量和後端能夠執行的微指令最大數量都是有限的固定值。宏融合將在程序中經常連續出現的若干條x86指令在解碼前融合成一條,從而提高了解碼器的效率;同時,融合後的多條x86指令可以被解碼成一條微指令,從而也提高了後端執行的效率。據估計,運行典型的x86程序時,宏融合可以帶來約11%的性能提升。
宏融合可被宏融合的指令
在英特爾的實現中,特定的兩條連續x86指令可以被一個解碼單元在一個時鐘週期內解碼成一條微指令,因此4個解碼單元可在一個時鐘週期裏解碼5條x86指令。這兩條x86指令中的第一條必須是影響標誌位的指令,如TEST或CMP;第二條必須是條件跳轉。這樣的組合在編譯器生成的代碼中非常常見,因此程序不需要重新編譯就可以獲得性能提升。
Core和Nehalem微架構只支持將TEST或CMP作為第一條指令。具體而言,當第一條指令是TEST時,第二條指令可以是任何的條件跳轉指令;而當第一條指令是CMP時,Core微架構的處理器僅在第二條指令是JA(JNBE)、JAE(JNB、JNC)、JE(JZ)、JNA(JBE)JNAE(JC、JB)或JNE(JNZ)時支持宏融合,但Nehalem微架構的處理器在第二條指令是JL(JNGE)、JGE(JNL)、JLE(JNG)、JG(JNLE)時也支持宏融合。
宏融合限制
- 一個時鐘週期裏最多隻能完成一次宏融合。
以下限制僅適於用Core微架構的處理器
- 詞條統計
-
- 瀏覽次數:次
- 編輯次數:2次歷史版本
- 最近更新: 杨雨娇51