1. 程式人生 > >指令——流水線和吞吐率

指令——流水線和吞吐率

執行時間 來源 sdn 版權 tails p s art 運行時 聲明

技術分享圖片

技術分享圖片

解析:

(1)吞吐率有個公式:指令條數除以流水線時間 (2)流水線時間計算有個公式:一條指令所需時間+(指令條數-1)*時間最長的指令的一段
7+(8-1)*3

流水線:

流水線是指在程序執行時多條指令重疊進行操作的一種準並行處理實現技術。各種部件同時處理是針對不同指令而言的,它們可同時為多條指令的不同部分進行工作,以提高各部件的利用率和指令的平均執行速度。概念我們說那麽多,我們現在深入去理解,光有概念都是一些比較抽象的東西,我們看圖:我們有三個步驟。
技術分享圖片

然後我們來看一下一般情況下我們的指令是一條一條的來處理,第一條指令處理完,再處理第二條,再處理第三條,這種順序來處理機器裏邊的設備的利用情況是怎樣的呢?我們來看這圖:
技術分享圖片


若我們每個指令的執行時間是1ms,
技術分享圖片

那麽三條指令執行完需要9ms的時間,我們還可以看得出來的是:取值這個設備只有在1ms,4ms,7ms的時候工作,第一條指令只有三分之一的時間進行工作,別的時間就空閑了,對於這樣子中間就產生了很多設備的空閑。所以我們引入了流水線。

用流水線所用的時間:
技術分享圖片

取值設備只要完成第一條指令的取值,就立即進入第二條指令的取值,第二條指令完成之後,就馬上執行第三條;分析這個操作也是一樣,我們看的出來,在5ms的時間就完成了。

當然我們也能觀察的出,單個指令的運行時間都是3ms。所以流水線對單條指令的執行是無效的。

流水線除了指令流水線,還有一種就是運算操作流水線,運算操作流水線就是計算機在執行各種運算操作時也可以應用流水線來提高運算速度,這是操作都是分階段運行的,所以我們用流水線來提高運算速度。
---------------------
技術分享圖片

來源:CSDN
原文:https://blog.csdn.net/yi_zz/article/details/7479912
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!

指令——流水線和吞吐率