按照流水線生產(chǎn)廠家流水線使用的不同級別,可以把流水線分為功能部件級、處理機級和處理機間級等多種類型。 處理機級流水線又稱為指令流水線(Instruction Pipelining)。它把一條指令的執(zhí)行過程分解為多個子過程每個子過程在一個獨立的功能部件中完成。前面介紹的一次重疊執(zhí)行方式是在設(shè)置有先行指令緩沖棧的處理機中采用的一種簡單的指令流水線。在采用先行控制器的處理機中,組成先行控制器的各個部件實際上也構(gòu)成了一條流水線。在先行控制器中,一條指令的執(zhí)行過程被分解為5個子過程,每個子過程在一個功能部件中執(zhí)行。由于各種指令在同一個功能部件中執(zhí)行的時間往往相差很大,因此,在每一個流水段之間要設(shè)置多個緩沖寄存器,以平滑流水線中各個功能部件的操作。 功能部件級流水線就是每一個部件內(nèi)部還可以采用流水線來實現(xiàn)。例如,對于一些比較復(fù)雜的運算操作部件,如浮點加法器、浮點乘法器等,一般要采用多級流水線來實現(xiàn)。后行寫數(shù)棧和先行讀數(shù)棧也可以采用多級流水線來實現(xiàn)。這種流水線被稱為部件級流水線,或功能部件級流水線。 功能部件級流水線也稱為運算操作流水線(Arithmetic Pipelining)。流水線生產(chǎn)廠家的浮點加法器流水線就是一種典型的功能部件級流水線。后面還將介紹幾種常見的功能部件級流水線。 要提高執(zhí)行部件執(zhí)行算術(shù)邏輯運算操作的速度,除了在運算操作部件中采用流水線之外,也可以設(shè)置多個獨立的操作部件,并通過這操作部件的并行工作來提高處理機執(zhí)行算術(shù)邏輯運算的速度。通常,把指令執(zhí)行部件中采用了流水線的處理機稱為流水線處理機或超流水線處理機,而把指令執(zhí)行部件中設(shè)置有多個操作部件的處理機稱為多操作部件處理機和超標量處理機。 處理機間流水線又稱為宏流水線(Macro Pipelining)。這種流水線由兩個或兩個以上處理機通過存儲器串行連接起來每個處理機對同一個數(shù)據(jù)流的不同部分分別進行處理。前一個處理機的輸出結(jié)果存入存儲器中作為后一個處理機的輸入每個處理機完成整個任務(wù)中的一部分。