流水線技術

 CPU的內部結構主要有三部分:指令寄存器、指令譯碼器、指令執行單元(包括ALU和通用寄存器)併發

CPU在執行一條指令的時候,主要有三個步驟:取指(將指令從內存或者指令Cahe中取出,放到指令寄存器),譯碼(指令譯碼器對指令寄存器中的指令進行譯碼操做從而辨識出所具體什麼指令,從而產生各類時序信號),執行(指令執行單元根據譯碼的結果進行計算和存儲結果)spa

流水線技術-背景blog

根據電路的結構咱們發現:取指階段佔用的CPU硬件是指令通路和指令寄存器;譯碼階段佔用的是CPU硬件是指令譯碼器;執行階段佔用的是CPU硬件的執行單元和數據通路。三者佔用的CPU硬件徹底不一樣,這就造成列三級的流水線,以下:在對第一條指令譯碼的時候,能夠同時對第二條指令進行取指操做;在對第一條指令進行執行的時候,能夠同時對第二條進行譯碼,對第三條進行取指。內存

流水線技術-概念求職

流水線是指在程序執行時多條指令重疊進行操做的一種準並行處理實現技術。各類部件同時處理是針對不一樣指令而言的,他們可同時爲多條指令的不一樣部分進行工做,已提升各部件的利用率和指令的平均執行速度。效率

流水線技術-本質硬件

流水線技術的本質是利用指令運行時間不一樣階段使用不一樣的硬件相互不一樣,併發運行多條指令,從而提升了時間效率。程序

 

流水線週期並行

流水線週期爲執行時間最長的那一段,執行的時間段爲取值,分析,執行im

流水線計算公式爲

1條指令執行時間+(指令條數-1)*流水線週期

①理論公式:(t1+t2+t3+..tk)+(n-1)* △t

②實踐公式: (k+n-1)* △t

栗子1:若指令流水線把一條指令分爲取指、分析和執行三部分,且三部分的時間分別是取指2ns,分析2ns,執行1ns。那麼流水線週期是多少? 100條指令執行完畢須要的時間是多少?

【理論公式求職】 

(2ns+2ns+1ns)+(100-1)*2ns =203ns

【實踐公式】

(3 +100 -1)*2ns =204ns

通常狀況考理論求職公式(80%);考實踐公式(20%)

 

流水線-吞吐率

流水線的吞吐率(Though Put rate ,TP)是指在單位時間內流水線所完成的任務數量或輸出的結果數量;

栗子1的流水線吞吐率=100/203

栗子1拓展:1條指令/1條指令執行時間,栗子1 的流水線吞吐率爲 1/2; 即爲最長流水段操做時間的倒數!
吞吐率公式拓展:n爲指令條數,k1,k2,k..爲指令各段執行時間,△t爲最大執行時間,吞吐率 = n/((k1+k2+k..+△t)+(n-1)*△t)  = n/(k1+k2+k..+n*△t); 當n無限大時,吞吐率就越接近最長流水段操做時間的倒數 !!!

流水線-加速比

完成一樣一批任務,不使用流水線所用的時間與使用流水線所用的時間之比稱爲流水線的加速比。

S = 不使用流水線執行時間/使用流水線執行時間

栗子1的S=500/203
拓展:n爲指令條數,k1,k2,k..爲指令各段執行時間,△t爲最大執行時間

加速比 = (k1+k2+k..+△t)*n/(k1+k2+k..+n*△t),當n無窮大時,忽略k1+k2+k.. ;  結果能夠認爲是 (k1+k2+k..+△t)/△t  

栗子1的加速比S = 5/2 

流水線-效率

流水線的效率是指流水線的設備利用率,在時空圖上,流水線的效率定義爲n個任務佔用的時空區與k個流水段總的時空區之比

E= n個任務佔用的時空區/k個流水段的總時區

栗子2:

E=(△t+△t+△t+3△t)*4/15△t*4

在指令執行的幾個步驟中,時間差越小,流水線效率越高

總結:流水線技術知識點,軟考必考知識點

相關文章
相關標籤/搜索