流水線這個(gè)知識(shí)點(diǎn)在軟件設(shè)計(jì)師考試中是個(gè)重點(diǎn)也是個(gè)難點(diǎn),考查的頻率比較高。之所以說流水線是個(gè)難點(diǎn),有兩方面的原因:一方面是需要理解流水線的理論,了解其工作原理,計(jì)算方式;另一方面是在軟考當(dāng)中,對(duì)于流水線的相關(guān)計(jì)算,標(biāo)準(zhǔn)并不是完全統(tǒng)一的,這一點(diǎn)在后面我們將詳細(xì)介紹。
流水線是指在程序執(zhí)行時(shí)多條指令重疊進(jìn)行操作的一種準(zhǔn)并行處理實(shí)現(xiàn)技術(shù)。各種部件同時(shí)處理是針對(duì)不同指令而言的,它們可同時(shí)為多條指令的不同部分進(jìn)行工作,以提高各部件的利用率和指令的平均執(zhí)行速度。
指令流水線是將指令執(zhí)行分成幾個(gè)子過程,每一個(gè)子過程對(duì)應(yīng)一個(gè)工位,我們稱為流水級(jí)或流水節(jié)拍,這個(gè)工位在計(jì)算機(jī)里就是可以重疊工作的功能部件,稱為流水部件。
如圖1所示,IF,ID,EX,WD分別是流水線的流水部件。
流水線要求所有的流水級(jí)部件必須在相同的時(shí)間內(nèi)完成各自的子過程。在流水線中,指令流動(dòng)一步便是一個(gè)機(jī)器周期,機(jī)器周期的長度必須由最慢的流水級(jí)部件處理子過程所需的時(shí)間來決定。
那么我們?yōu)槭裁匆岢隽魉這個(gè)概念,以及流水線是如何提高系統(tǒng)吞吐量的呢?下面我們來看幾個(gè)圖,概念自然就清楚了。
圖2是一個(gè)非流水線結(jié)構(gòu)系統(tǒng)執(zhí)行指令時(shí)空?qǐng)D。
我們從圖2中可以看到,任意一個(gè)系統(tǒng)時(shí)間都有大量的設(shè)備處于空閑狀態(tài),如第一個(gè)時(shí)間段有ID,EX,WB空閑,則第二個(gè)時(shí)間段有IF,EX,WB空閑。
我們?cè)賮砜床捎昧肆魉結(jié)構(gòu)的時(shí)空?qǐng)D3。
顯然,采用流水線可以大大提升系統(tǒng)資源的利用率,以及整個(gè)系統(tǒng)的吞吐量。
流水線的操作周期取決于基本操作中最慢的那個(gè)。例如:一個(gè)3段流水線,各段的執(zhí)行時(shí)間分別為t,2t,t。則最慢的一段為2t,所以流水線操作周期為2t。
相關(guān)推薦:2010年計(jì)算機(jī)軟件水平考試時(shí)間安排通知北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |