在計算機體系結構中,流水線指令的佈局是什麼?


流水線指令處理涵蓋兩個關鍵要素,即規範或邏輯佈局以及指令流水線的實現。邏輯佈局確定需要熟練掌握的任務。它包括要執行的流水線的宣告,以及每個流水線的子任務的詳細規範及其執行順序。

在當前的處理器中,為每個主要的指令類別宣告多個流水線。通常,為 FX 和邏輯資料的處理(稱為 FX 流水線)、FP 資料(FP 流水線)、載入和儲存(L/S 流水線)以及分支(B 流水線)設定獨立的流水線。

流水線的詳細規範包含流水線階段的陳述以及每個階段要完成的子任務的規範。

邏輯流水線可以透過多種方法執行,例如使用類似的硬體流水線來執行所有邏輯流水線,或者將每個邏輯流水線作為專用流水線來執行。

必須處理三種重要方法,如圖所示。這些元素是物理流水線的佈局和多重性,以及在多個物理流水線的情況下如何保持順序一致性。

首先,讓我們考慮一下“物理”流水線的佈局,並參考下圖,重點在於邏輯流水線是否應該透過多功能流水線以最少的硬體來執行,或者透過使用多個專用流水線來執行。

對於多功能流水線而言,只有一個公開的設計,其中所有 FX、FP、L/S 和 B 指令(分支指令)都使用類似的物理流水線進行處理。這種設計是 MIPS R4200,於 1994 年推出。相反,在相同的流水線上執行 FX、L/S 和 B 指令是一種通常採用的“經典”方法,即主流水線方法。

因此,FX 流水線的加法器也用於實現 L/S 和 B 指令時所需的地址計算。因此,每個主要的指令類別都在相同的流水線中執行,方法是在指定的順序中執行給定的子任務。否則,也可以執行專用流水線。其動機是透過並行執行多個專門的流水線來提高效能。

在多個流水線的情況下,需要三種方法來保持順序一致性,如下所示:

在第一種方法中,可以考慮為 FX、L/S 和分支指令設定一個多功能流水線,以及一個獨立的 FP 流水線。因此,FP 流水線無法獨立地將結果寫回暫存器檔案或記憶體。

在第二種方法中,可以考慮兩個鎖步執行的流水線,一個主 FX 流水線和一個 FP 流水線。因此,透過準確地延長較短的 FX 流水線(如果需要,在其內插入未使用的週期(氣泡))來實現指令的有序完成。

第三種方法是重新排序。如果有多個流水線,通常會使用此方法。透過重新排序,流水線無法直接將結果寫回體系結構暫存器或記憶體。

更新於: 2021年7月20日

1K+ 瀏覽量

開啟你的職業生涯

透過完成課程獲得認證

開始
廣告

© . All rights reserved.