計算機流水線周期
採用流水線技術執行多條指令時,在保證設備利用率不變的前提下,一條指令的開始到下一條指令的最晚開始時間稱為計算機流水線周期。
原理
不採用流水線技術的時,指令的執行方式及其執行周期:
執行方式如上圖所示,執行周期為一條指令的開始到下一條指令的開始時間。因為在非流水線操作時,想要提高執行效率,就必須一條指令執行完,下一條指令接著執行。那么採用流水線技術時,從概念上說,執行周期是相同的。下面是對流水線生命周期的定義和理解。
如上圖所示,一條指令也有三個操作,分別用不同的顏色的方框表示。
圖中所示,第二條指令的第一個操作從2的位置移到了2‘的位置,從整體來看,這樣的修改是不會影響某條指令的最終完成時間。2’的位置是第二條指令的第一個操作的最晚開始時間。如果再往後拖就影響到其他操作的正常執行,破壞了流水線的執行方式。
將所有操作都拖到他的最晚開始時間,然後觀察。一條指令的一個操作的開始到下一條指令的相同操作開始時間是完全相同,並且正好等於指令中執行時間最長的操作所用的時間,即指令中用時最長的指令的執行時間為流水線的周期。
流水線周期的運用
流水線的計算方法有兩種,這兩種計算方法結果經常不一致,下面是兩種算法結果不同的分析。
右側是流水線執行時間的計算公式1:
該公式的計算是按照連續執行的方式計算的,加號的前半部分是一條指令執行的時間,後半部分是n-1個周期。整個計算比較精準,下面闡述該公式的由來。
圖中標有“①”的兩端執行時間相加等於一條指令的執行時間。中間②這段則是由流水線周期全部覆蓋的部分。二者之和則是流水線的執行時間。
而在另一種算法是加所有的操作都按照流水線的周期去執行,然後計算所有的流水線的執行時間。本身這種算法是不準確的,但是在計算較為方便。