超標量處理器的指令発行策略是什麼?
以下方法用於指令発行策略,例如標量處理器、超標量處理器以及涵蓋兩者的廣闊圖景。在考慮最常用的発行策略時,可以透過忽略不太重要的方面來減少指令発行的設計空間。
首先,對於標量處理器和超標量處理器,它都可以避免発行順序,因為大多數處理器都採用按序発行。此外,對於使用擱置的標量和超標量處理器,它可以丟棄発行對齊。
在考慮標量處理器的指令発行策略時,應該處理三個基本的発行方面,例如是否採用重新命名、推測執行和擱置。在由此產生的八種可能的発行策略中,標量處理器主要使用兩種,如圖所示。它們是傳統的標量発行及其具有推測執行的改進。
早期的非流水線處理器按順序発行指令。這意味著只有在前面一條指令完成之後才能発行下一條指令。這些處理器不使用重新命名、推測分支處理或擱置。
後來,當具有多個執行單元的 ILP 處理器或流水線處理器出現時,傳統的標量発行策略對效能的限制過於嚴格。採用了兩種方法來緩解這種情況。一種是在 CDC6600 中引入的,另一種是在 IBM 360/91 中引入的。CDC6600(當時的超級計算機)是最早的 ILP 處理器之一。它透過引入多個非流水線、並行工作的執行單元來實現高效能。
另一種方法是在 IBM 360/91 中發明的。該處理器是一個更先進的 ILP 處理器,由多個流水線浮點執行單元組成。它還為浮點指令使用了擱置。
最簡單的策略是直接對齊的超標量発行。它不允許重新命名,需要與直接発行對齊,並採用推測執行。根據此策略,指令発行被阻塞以用於資料和資源依賴性,而控制依賴性則透過推測分支處理來滿足。
還有一組處理器使用直接超標量発行,以更先進的形式,實現無對齊発行。此額外功能可提高效能。使用此策略的處理器示例包括 R8000、PA 7200 和 UltraSparc。
下一個発行策略是帶有擱置的直接超標量発行策略,它不使用重新命名,使用推測執行處理控制依賴性,並引入擱置。此方案僅在少數超標量處理器中使用,包括 MC88110 和 R8000。這兩個處理器都只包含部分擱置。MC88110 僅擱置儲存和條件分支,而 R8000 僅擱置浮點指令。