什麼是貨架的設計空間?
貨架是一種高階的指令排程模式,用於消除由於依賴關係引起的指令阻塞。貨架利用位於每個執行單元 (EU) 前面的專用指令緩衝區,稱為貨架緩衝區。圖中顯示了貨架的設計空間。它包含以下四個主要組成部分:貨架範圍、使用的貨架緩衝區佈局、運算元獲取策略和指令排程方案。
貨架範圍
貨架範圍指定貨架是否僅限於多種指令型別,或者是否對所有指令執行。部分排程僅在少數超標量處理器中使用。部分排程是解決消除由依賴關係產生的指令阻塞問題的一個不足的方案。完整貨架涵蓋所有指令型別。因此,大多數最新的超標量處理器,例如 PowerPC 603、PowerPC 604、PentiumPro 等都採用這種方式。
貨架緩衝區的佈局
貨架緩衝區在指令可以被轉發到執行單元 (EU) 執行之前儲存已發出的指令。貨架緩衝區有兩種型別:獨立貨架緩衝區和組合緩衝區,後者用於貨架、重新命名和重新排序。
貨架緩衝區可以作為獨立貨架緩衝區執行,即專門用於貨架的緩衝區。這種型別的貨架緩衝區通常被稱為預留站。
第二種方法是使用混合緩衝區進行貨架、重新命名和重新排序。在這種情況下,滿足程式執行相干性的重排序緩衝區 (ROB) 將繼續使用,用於貨架和暫存器重新命名。
運算元獲取策略
運算元獲取策略有兩種型別:指令發出繫結型或排程繫結型。指令發出繫結型獲取策略定義在指令發出期間獲取運算元。在這種方法中,貨架緩衝區影響其運算元值的指令,需要緩衝區完全滿才能支援所有源運算元的區域。
另一種基本的運算元獲取策略是排程繫結型獲取策略,在排程期間獲取運算元。在這種情況下,貨架緩衝區包含短暫存器識別符號而不是長運算元。
與指令發出繫結型策略相比,排程繫結型運算元獲取策略具有兩個優點:關鍵解碼/發出路徑更短,並且貨架緩衝區更簡單,因為暫存器編號所需的緩衝區面積遠小於運算元的值。
指令排程方案
指令排程可以分解為兩個基本任務:排程預留站中待執行的指令,以及將已排程的指令或指令分發到已分配的執行單元 (EU)。排程策略指定如何選擇指令執行以及如何處理排程阻塞。
在一個週期內可以從貨架緩衝區排程多個指令,稱為排程速率。還必須指定檢查運算元可用性的方法。最後,它必須決定是否可以繞過空預留站。