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