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