流水線-流水線計算
一個造車廠生產一輛車分為ABCD四道工序,1號車開始生產,A道工序結束,進入B道工序,再之后C道工序,然后D,最后完工,2號車開始生產,同上,結束后三號車生產,但隨之而來的問題是,當A工序進行完后,進行B工序,對應的A工序的作業人員就會有一段時間的空窗期,這段空窗期時間很長,長到BCD全部結束,所以工廠的老板會血虧,流水線生產模式隨之而來,
1號車A工序結束進入B工序,則二號車立馬進行A工序,待1號車進入C工序后,二號車進入B工序,3號車進入A工序,這樣會有效避免作業人員的空窗期,會提高效率,也會節省成本,
- 流水線周期為執行時間最長的一段時間
例如:A工序需要2小時,B需要1小時,C需要4小時,D需要三小時,那么該流水線的周期即4小時,
而對于為什么是4小時,其實很好理解,如果不以4小時為周期,以A工序的兩小時為周期會產生什么情況?大家仔細想一想,是不是會造成產品滯留的狀況,因為你C需要4個小時,而A需要2小時,B需要1小時,便會有大量的產品B滯留在BC之間,等待C,這只是一種最理想的假設,有時還會造成癱瘓現象,所以流水線的周期一定要是該執行線上時間最長的一段,
- 流水線的計算公式
一條指令執行時間+(指令條數-1)*流水線周期
理論公式:(t1+t2+t3+…+t?)+(x-1)?
時間公式:(n+x-1)*?
其中n為一個工程需要幾道工序,就像上文中的ABCD一樣,x為流水線中需要完成多少產品,也就像上文中車的數量一樣,?是流水線的周期,
若指令流水線把一條指令分為取值、分析、執行三部分,且三部分的時間分別是取值2ns,分析2ns,執行1ns,那么,流水線周期是多少?100條指令全部執行完畢需要的時間是多少?
顯然,通過定義可以得到,該流水線周期為2ns 需要的時間通過兩個公式計算可分別得到理論203,實踐204,這兩種都是正確答案,在做題時,可靈活選擇
大家一定很疑惑,為什么會出現兩種結果,為什么不是一個最為標準的答案,小編在這里給大家一些解釋,希望可以理解,
通過上圖來解釋這兩種計算方法
方法1,一共三道工序,那么三道工序總時長就是2+2+1=5ns,在第一個產品完成之后,是不是第二個產品也進入了最后一個工序,也就是說在之前5的基礎上再加上一個周期,便是第二個產品結束的時間,依次類推,最后一個產品完成的時間,是不是在5的基礎上再加n-1個周期,(大家有沒有想過第三道工序其實還有著1ns的空窗期,因為周期是2,而第三道工序時間是1)
方法2,將每一個工序的時間都看作2ns,那么整體完成時間不就是第一個產品的幾道工序,再加上剩下產品的最后一道工序嗎?也就是(3+n-1)*2.
- 流水線的吞吐率計算
吞吐率是指單位時間內流水線完成的任務數量或輸出的結果數量,計算流水線吞吐率的基本公式如下:

帶入到上題可得TP=100/203 - 流水線的加速比
完成同樣一批任務,不使用流水線所用的時間與使用流水線所用時間之比稱為流水線的加速比,計算流水線的加速比公式如下:

將上題的情景帶入
不使用流水線執行時間(2+2+1)*100
使用流水線時間203
即s=500/203 - 流水線的效率
流水線的效率是指流水線的設備利用率,在時空圖上,流水線的效率定義為n個任務占用的時空區與k個流水段總的時空區之比
計算流水線的公式:

通過上圖來計算效率,n個任務占用的時空區=4*(1+1+1+3),k個流水段的總的時空區,即所有格子的總面積,也就是15*4,,
所以效率也可以這樣理解,即做任務的格子面子/總格子的面積,
不知道小編的解釋大家能不能理解,如果有什么問題,歡迎大家提問和指正!!!
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/267159.html
標籤:其他

