堅信自我 成就未來
一、線性流水線與非線性流水線
按照流水線的各個流水段之間是否有反饋信號,可以把智能流水線分為線性流水線和非線性流水線兩類。
線性流水線(Linear Pipelining)是將流水線的各段逐個串接起來。輸入數據從流水線的一端進入,從另一端輸出。數據在流水線中的各個流水段流過時,每一個流水段都流過一次,而且僅僅流過一次。
一條線性流水線通常只完成一種固定的功能。在現代計算機系統中,線性流水線已經被非常廣泛地應用于指令執行過程、各種算術運算操作、存儲器訪問操作等。
非線性流水線(Nonlinear Pipelining)在流水線的各個流水段之間除了有串行的連接之外,還可以有前饋和反饋連接。
二、單功能與多功能智能流水線
一條流水線只能完成一種固定的功能,這種流水線稱為單功能流水線(Unifunction Pipelining)。例如,浮點加法器流水線專門完成浮點加法運算,浮點乘法器流水線專門完成浮點乘法運算。當要實現多種不同功能時,可以采用多條單功能流水線。
如Cray-1計算機種有12條單功能流水線,我國研制的YH-1計算機有18條單功能流水線。Pentium處理機有一條5段的整數運算流水線和一條8段的浮點運算流水線。采用超流水線體系結構的Alpha 21064處理機有三條流水線,其中,整數操作和訪問存儲器操作為7段流水線,浮點運算操作為10段流水線。
多功能流水線(Multifunction Pipelining)是指流水線的各段可以進行不同的連接。在不同時間內,或在同一時間內,通過不同的連接方式實現不同的功能。
多功能流水線的典型代表是Texas儀器公司的高級科學計算機ASC中采用的8段流水線。在一臺ASC處理機內有4條相同的流水線,每條流水線通過不同的連接方式可以完成整數加減法運算、整數乘法運算、浮點加法運算、浮點乘法運算,還可以實現邏輯運算、移位操作和數據轉換功能等。它除了支持標量運算之外,還支持向量運算,如兩個向量的浮點點積運算等。
在處理機中采用多功能流水線的優點是流水線中各個功能部件的利用率比較高。由于在實際的標量運算程序中,各種運算操作一般是混合在一起的,這一點與向量運算操作有很大的不同,因此,在標量計算機的指令執行部件中采用多功能流水線是一種比較合理的選擇。與采用多功能流水線不同的另一種方案是設置多條專門的單功能流水線,在許多向量流水線處理機中就是這樣做的。
三、靜態流水線與動態流水線
在多功能智能流水線中,按照在同一時間內是否能夠連接成多種方式,同時執行多種功能,可以把多功能流水線分為靜態流水線和動態流水線兩種。
所謂靜態流水線(Static Pipelining)是指在同一段時間內,多功能流水線中的各個流水段只能按照一種固定的方式連接,實現一種固定的功能。只有當按照這種連接方式工作的所有任務都流出流水線之后,多功能流水線才能重新進行連接,以實現其它功能。
動態流水線(Dynamic Pipelining)是指在同一段時間內,多功能流水線中的各段可以按照不同的方式連接,同時執行多種功能。當然,同時實現多種連接發生是有條件的,即流水線中的各個功能部件之間不能發生沖突。
在靜態流水線中,只有程序中連續出現同一種運算時,流水線的效率才能得到充分的發揮。如果輸入到流水線中的是一串不同運算相互間隔的操作,則這條靜態流水線的效率就與順序執行方式完全一樣。而動態流水線則不同,它允許兩種運算在同一條流水線中同時執行。因此,在一般情況下,動態流水線的效率和功能部件的利用率要比靜態流水線高,但是,動態流水線的控制比靜態流水線要復雜得多。目前,在大多數處理機中均采用靜態流水線。
除了以上幾種流水線的分類方法之外,還可以從其它多種不同角度來劃分智能流水線。例如,按照不同的數據表示方式,可以把流水線分為標量流水線和向量流水線兩種。標量流水線一般用于標量處理機中,而向量流水線主要用于向量計算機中。在本章中介紹的都是標量流水線。
按照流水線輸出端流出的任務與流水線輸入端流入的任務的順序是否相同,可以把流水線分為順序流水線與亂序流水線兩種。亂序流水線在有的資料上又稱為無序流水線、錯序流水線或異步流水線等。
電話
135 3717 6848
0769-22360500
0769-86184768
0769-86112831
0769-22360501
0769-22360502
公眾號
微信公眾號