程式碼排程用於涵蓋依賴項檢測和解決以及並行最佳化。程式碼排程通常與傳統編譯結合使用。程式碼排程器將一組或一系列可執行指令和強加於其上的優先順序約束(通常以 DAG 的形式)作為輸入。作為輸出,它在每個排程階段都承擔著交付一個不依賴於其他指令的指令的任務,並定義了排程管理精確可用執行時間的最佳選項。傳統的非最佳化編譯器可以被視為包括兩個主要部分。編譯器的前端部分實現 ... 閱讀更多
在本節中,我們關注的是流水線載入/儲存處理(如載入使用延遲)的一個重要效能指標。載入使用延遲的值是載入流水線執行的特徵屬性。較大的載入使用值會嚴重影響處理器效能,尤其是在超標量處理器中。載入使用延遲源於載入使用依賴關係,這是一種 RAW 依賴關係。如果載入指令的結果不能及時由流水線訪問以供後續指令使用,則載入使用依賴關係會導致載入使用延遲。載入使用延遲可以透過統計方式或動態方式處理。如果靜態解析度為 ... 閱讀更多
FX 流水線可以實現為通用 FX 單元或專用 FX 單元。此外,處理器可以包含一個通用單元或多個通用單元。單個通用 FX 單元所有早期和一些當前設計都使用單個通用 FX 流水線,它是一個如圖所示的單個 FX 單元。此處,“通用”一詞指的是執行處理器所有整數和布林運算的能力。除了 1980 年代早期的流水線處理器之外,i486、IBM Power1 (RS/6000)、R (4000)、HP 7100、DEC α 21064、PowerPC 601 和 Power603 都有一個通用 FX 流水線,因此 ... 閱讀更多
FX 流水線的邏輯佈局首先包括指定 FX 流水線有多少個階段以及在這些階段中要執行哪些任務。設計空間的另一個關鍵方面是 FX 流水線的實現方式。FX 流水線可以從更廣泛和更狹義的角度進行解釋。從更廣泛的意義上講,它涵蓋了指令獲取、解碼、執行以及如果需要寫回的完整任務。在這種情況下,它通常也用於執行 L/S 和分支指令,並被稱為主流水線。從更狹義的角度來看,FX ... 閱讀更多
流水線指令處理包含兩個關鍵要素,即指令流水線的規範或邏輯佈局和實現。邏輯佈局確定要掌握的任務。它包括要執行的流水線的宣告,以及每個流水線的子任務的詳細規範及其執行順序。在當前處理器中,為每個主要指令類聲明瞭多個流水線。通常,存在獨立的流水線來處理 FX 和邏輯資料(稱為 FX 流水線)、FP 資料(FP 流水線)、載入和儲存(稱為 ... 閱讀更多