英特爾(R) 奔騰(R) Pro 處理器為英特爾 IA-32 處理器引入一種新的微體系結構,一般稱作 P6 系列微體系結構。P6 系列微體系結構後來又增加了片內整合的二級快取,即“高級傳輸快取”。這個微體系結構是一種三向超標量管道化體系結構。術語“三向超標量”表示,通過使用並行處理技術,處理器平均每個時鐘週期可以完成三條指令的解碼、排程及執行(失效)。為處理這一級別的指令吞吐量,P6 系列使用支援無序指令執行的分離式 12 階段超級管道。
P6 系列微體系結構管道的概念圖
微體系結構管道分為四個部分(一級與二級快取、前端、無序執行核心以及失效部分)。指令與數據通過匯流排介面單元提供給這些單元。
為確保指令與數據穩定供應給指令執行管道,P6 系列微體系結構採用兩個級別的快取。一級快取提供 8K 位元組指令快取與 8K 位元組數據快取,兩者都與管道緊密耦合。二級快取是 256K 位元組、512K 位元組或 1MB 位元組靜態 RAM,它通過全時鐘速度的 64 位快取匯流排與核心處理器耦合。
P6 系列微體系結構的中心是一個極富創新精神的無序執行機制,叫做“動態執行”。動態執行採用三種數據處理概念:
深度分支預測。
動態數據流分析。
推測性執行。
分支預測是管道化微體系結構用於實現較高效能的現代技術。它可供處理器超越分支層面進行指令解碼,保持指令管道滿負荷執行。P6 系列採用經過高度優化的分支預測演算法,以預測多層分支、過程呼叫及返回的指令流方向。
動態數據流分析涉及處理器中數據流的實時分析,以確定數據與暫存器相關性,及檢測進行無序指令執行的機會。無序執行核心可以同時監視許多指令,按照可優化處理器多執行單元的順序執行這些指令,同時保持數據完整性。這種無序執行保證即使在未命中快取或是指令之間存在數據相關性時,執行單元也能保持高負荷執行。
推測性執行是指這樣的處理器能力:執行躲在未曾解析的條件分支背後的一些指令,並最終按照原始的指令流順序提交結果。為實現推測性執行,P6 系列微體系結構將指令的排程與執行同結果的提交分離開來。處理器的無序執行核心使用數據流分析執行指令池中所有可用的指令,並將結果儲存到臨時暫存器。
失效單元隨後在指令池中線性搜索完成的指令,這些指令同其它指令或未解析的分支預測不再有數據相關性。
找到完成的指令時,失效單元按照它們原先的發出順序將這些指令的結果提交給記憶體與/或 IA-32 暫存器(處理器的八個通用暫存器與八個 x87 FPU 數據暫存器),並使這些指令從指令池中失效。
通過綜合使用分支預測、動態數據流分析及推測性執行,P6 系列微體系結構的動態執行功能消除了指令執行的傳統預取與執行階段線性指令順序的限制。因此,即便存在多級分支,處理器仍可以繼續執行指令解碼。分支預測與高級解碼器單元協同工作,保持指令管道高負荷執行。隨後,無序推測性執行引擎便能利用處理器的六個執行單元並行執行各個指令。最後,它將按照原先的程式順序提交執行指令的結果,以保持數據完整性與程式一致性。