參閱:http://blog.csdn.net/wwq0123/archive/2009/10/13/4663595.aspx
假設一個四段流水線,取指段的時間爲t,譯碼段的時間爲t,取數段的時間爲3t,執行段的時間爲t。流水線示意圖如下:
爲了便於計算假設取指和譯碼段總是連續執行的。流水線執行n條指令時其執行過程的時空圖如下圖所示:
從圖中不難看出,第一條指令的執行時間是6t;第二條指令在執行時停頓了兩個週期,第二條指令的完成時間比第一條指令的完成時間晚3t;第三條、第四條......第n條與此相同。
因此,該流水線執行n條指令的時間就是:6t+(n-1)3t
流水線的實際吞吐率就是:n/6t+(n-1)3t
流水線時間計算公式:一條指令所需時間+(指令條數-1)*時間最長的指令的一段 // 6t+(n-1)3t
吞吐率公式:指令條數 除以 流水線時間 // n/(6t+(n-1)3t)