超標量處理器 (Superscalar Processor) 的關鍵要素是什麼?
超標量處理可以分解成幾個特定的任務,如圖所示。超標量處理器可以每個週期發出多條指令,第一個任務當然是並行解碼。
在超標量處理器中,解碼任務比標量處理器複雜得多,並且隨著發行率的提高而變得更加複雜。
較高的發行率會極大地延長解碼週期,或者會導致多個解碼週期的增長,除非解碼能力得到提升。一種改進技術是預解碼。
這是在典型解碼之前實現的部分解碼,同時指令被載入到指令快取中。大多數當前的處理器都使用預解碼,包括 PowerPC 620、PA 7200、PA 8000、UltraSparc 和 R10000。

超標量處理的功能是超標量指令發行。較高的發行率會導致更高的處理器效能,但同時,它也會放大控制和資料依賴性對處理器效能的限制性影響。
在超標量處理器中,每個發行週期出現的控制依賴性比標量處理器更頻繁,超標量處理器在每個週期發出多條指令。這種頻率的增加大致與處理器的發行率成正比。
關於資料依賴性,較高的發行率也會嚴重阻礙處理器效能。考慮一下,例如在流水線處理器這樣的標量處理器中,由於依賴性導致的發行阻塞在大多數情況下可以透過使用並行最佳化編譯器來避免。編譯器使用單獨的指令填充未使用的指令通道(稱為空洞)。
因此,為了獲得更高的效能,超標量處理器引入了複雜的指令發行策略,包括擱置、暫存器重新命名和推測性分支處理等高階技術。結果,所使用的指令發行策略對於管理更高的處理器效能至關重要。
下一個任務是並行指令執行,這是超標量處理的要求。然而,雖然指令是並行執行的,但指令通常按照順序操作的處理器相應地無序完成。因此,需要特殊的方法來保證程式執行的邏輯一致性。這個任務通常被稱為保持指令執行的順序一致性。
現代超標量處理器通常透過將結果的生成與將其寫回特定暫存器或記憶體區域分離來實現這一點。雖然結果透過EU並行生成,但程式狀態以與程式順序解耦的方式順序重新整理。隨著對更高效能超標量處理器的研究,其影響越來越大。
最後,在指令執行期間,異常可能會增加。因此,順序一致性非常重要,並導致了稱為保持異常處理的順序一致性的任務。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP