在計算機體系結構中,FX流水線是如何實現的?
FX流水線可以實現為通用單元或專用單元。此外,處理器可以包含單個通用單元或多個通用單元。
單個通用FX單元
所有早期的和一些當前的設計都採用單個通用FX流水線,這是一個單個FX單元,如圖所示。這裡的“通用”指的是執行處理器所有整數和布林運算的能力。除了20世紀80年代早期的流水線處理器外,i486、IBM Power1 (RS/6000)、R (4000)、HP 7100、DEC α 21064、PowerPC 601和Power603都具有單個通用FX流水線,因此只有一個FX單元。
所有早期設計和一些當前設計,例如i486,也使用相同的通用FX流水線來執行載入/儲存和分支指令。這似乎很自然,因為載入/儲存和控制轉移指令需要地址計算,這可以使用整數流水線輕鬆完成。
缺點是所有載入/儲存和分支都限制為與整數和布林運算順序執行,這大大影響了效能。

多個通用FX單元
透過應用多個FX流水線,即多個流水線FX單元,可以進一步提高效能。關於FX單元的數量,值得參考動態指令分配,這表明所有執行指令中30-40%是整數和布林運算。因此,為了利用更多並行性,提供多個FX單元似乎是不可避免的。
在這種方法中,必須指出整數除法通常不是流水線的。對於所有處理器,除法都需要相當多的週期(大約10-100個)。
有兩種可能的方法來增加FX流水線的數量,第一種方法是使用多個通用流水線,從而為所有支援的整數和布林指令使用多個通用FX單元。另一種可能性是為不同類別的整數和布林指令採用多個專用流水線,實現為多個專用FX單元。
專用FX單元
另一種方法是使用一組專用單元,例如簡單的FX單元、乘法器/除法器或單獨的乘法器和除法器、移位器等等。如圖所示,早期的1960 CA(第一個超標量處理器)或一些高階超標量處理器,如PowerPC 604、PowerPC 620或R8000,都是這種方法的例子。
除了早期的1960 CA之外,這些處理器通常包含兩個簡單的FX單元(提供乘法/除法功能),並使用公共專用乘法器/除法器單元(如PowerPC 604或R8000)或幾個單獨的乘法器和一個單獨的除法器(如MC 88110)來實現多週期整數運算。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP