流水線如何在計算機體系結構中提高效能?


在非流水線處理器中,效能由指令的週期時間和執行時間來表徵。在流水線執行的情況下,指令處理在流水線中交錯進行,而不是像在非流水線處理器中那樣順序執行。因此,指令執行時間這個概念沒有意義,流水線處理器的深入效能規範需要三個不同的度量:處理器的週期時間以及指令的延遲和重複率值。

週期時間定義了每個階段完成重要操作的可訪問時間。處理器的週期時間由最高階段的最壞情況處理時間決定。

延遲定義了特定指令的結果在流水線中可供後續相關指令訪問所需的時間。延遲以週期時間的倍數給出。

如果某個指令的延遲是一個週期,則其結果在下一個週期內可供後續的 RAW 相關指令使用。在這種情況下,RAW 相關指令可以無延遲地處理。如果延遲超過一個週期,例如 n 個週期,則緊隨其後的 RAW 相關指令必須在流水線中中斷 n-1 個週期。

有兩種不同型別的 RAW 依賴關係,例如定義-使用依賴關係和載入-使用依賴關係,並且有兩種相應的延遲型別,稱為定義-使用延遲和載入-使用延遲。

指令的定義-使用延遲是指解碼和發出後到操作指令的結果在流水線中可供後續 RAW 相關指令使用之間的時間延遲。如果定義-使用延遲的值是一個週期,則緊隨其後的 RAW 相關指令可以在流水線中無延遲地處理。

指令的定義-使用延遲是指後續 RAW 相關指令必須在流水線中中斷的時間。定義-使用延遲比定義-使用延遲少一個週期。

術語載入-使用延遲載入-使用延遲與載入指令相關聯,例如在以下序列中

load r1,  x;
ad   r5,  r1,  r2;

在此示例中,載入指令的結果需要作為後續 ad 中的源運算元。載入-使用延遲載入-使用延遲的概念與定義-使用延遲和定義-使用延遲的解釋方式相同。

並行執行的指令的延遲由流水線的執行階段確定。它可以用 PowerPC 603 的 FP 流水線來說明,如圖所示。

Power PC 603 在三個階段處理 FP 加法/減法或乘法。指令獲取、解碼和發出階段需要兩個週期。隨後的執行階段需要三個週期。在此階段結束時,操作的結果被轉發(旁路)到處理器中的任何請求單元。最後,在完成階段,結果被寫回體系結構暫存器檔案。

更新於:2021年7月20日

5K+ 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告