第 1 章 計算機組成與體系結構 1.3流水線

 

1.3  流水線ide

 

流水線技術把一個任務分解爲若干順序執行的子任務,不一樣的子任務由不一樣的執行機構負責執行,而這些機構能夠同時並行工做。在任一時刻,任一任務只佔用其中一個執行機構, 這樣就能夠實現多個任務的重疊執行,以提升工做效率。spa

 

1.3.1  流水線週期blog

 

流水線應用過程當中,會將須要處理的工做分爲 N 個階段,最耗時的那一段所消耗的時間爲流水線週期。如:使用流水線技術執行 100 條指令,每條指令取指 2ms,分析 4ms,執 1ms,則流水線週期爲 4msci

 

1.3.2  計算流水線執行時間io

 

延續上面的場景,將 1 個任務的執行過程可分紅 N 個階段,假設每一個階段完成時間 t,則完成該任務所需的時間即爲 Nt。若以傳統的方式,則完成 k 個任務所需的時間是kNt;而使用流水線技術執行,且花費的時間是 Nt+(k-1)t。也就是說,除了第 1 個任務須要完整的時間外,其餘都經過並行,節省下了大量的時間。因此流水線的執行時間可通俗的表達爲:class

流水線執行時間= 1 條指令的執行時間+n-1*流水線週期效率

注:n 表明須要處理的任務數量。bfc

在考試時,又須要特別注意一個細節問題,流水線的執行時間計算,其實進一步能夠分理論狀況與實踐狀況兩種不一樣的處理方式。下面以實例進行說明。List

 

例:某計算機系統,一條指令的執行須要經歷取指2ms、分析4ms、執行1ms三個階段,現要執行 100 條指令,利用流水線技術須要多長時間?並行

理論上來講,1  條指令的執行時間爲:2ms+4ms+1ms=7ms。因此:理論流水線執行時間=2ms+4ms+1ms+(100-1)*4=403ms

而實際上,真正作流水線處理時,考慮處處理的複雜性,會將指令的每一個執行階段的時間都統一爲流水線週期,即 1 條指令的執行時間爲:4ms+4ms+4ms=12ms 因此:實際流水線執行時間=4ms+4ms+4ms+(100-1)*4=408ms

希賽教育專家提示:考試時 80%以上的機率採用理論公式計算,因此考試時須要以理論公式計算,若計算的結果無正確選項才考慮採用實際公式計算。

 

1.3.3  流水線的吞吐率

 

流水線的吞吐率Though Put rateTP是指在單位時間內流水線所完成的任務數量或輸出的結果數量。有些文獻也稱爲平均吞吐率、實際吞吐率。計算流水線吞吐率的最基本的公式以下:

 

 

 1.3.4 流水線的加速比

 在流水線中,由於在同一時刻,有多個任務在重疊地執行,雖然完成一個任務的時間與單獨執行該任務相近甚至因爲分段的緣故,可能更多一些,可是從總體上看完成多個任務所需的時間則大大減小。

完成一樣一批任務,不使用流水線所用的時間與使用流水線所用的時間之比稱爲流水線的加速比speedup  ratio若是不使用流水線,即順序執行所用的時間爲 T0  ,使用流水線的執行時間爲 Tk ,則計算流水線加速比的基本公式以下:


 

 

若是流水線各個流水段的執行時間都相等設爲 Dt,則一條 k 段流水線完成 n 個連 任務所須要的時間爲(k+n-1)Dt。若是不使用流水線,即順序執行這 n 個任務,則所須要的時間爲 nkDt。所以,各個流水段執行時間均相等的一條 k 段流水線完成 n 個連續任務 時的實際加速比爲:

 

相關文章
相關標籤/搜索