要理解指令流水線,先大概回顧一下CPU的內(nèi)部結(jié)構(gòu):
圖a
圖b
由上面兩個圖我們知道,一條指令要被執(zhí)行,需要通過一個電路把指令從存儲器中取出,放進CPU里面,再由CPU里面的另一個電路ALU去執(zhí)行(圖b中的左邊部分)。也就是說,取指令和執(zhí)行指令是由兩部分不同的電路完成的。
圖1
上圖是指令一條一條執(zhí)行的過程。
圖2
圖2表示,當指令執(zhí)行部件的某一部分電路空閑的時候,這個時候就可以采用流水線的方式。圖中的一個方框表示一個時間周期。
這一部分表示對于第一條指令來說,當進入第二個時間周期,它已經(jīng)處于執(zhí)行階段,ALU電路部分在工作,但是用于取指令的那部分電路空閑了,所以這部分取指令電路可以用于取出第二條指令,這就是指令流水線的基本原理。
圖3
這個和我們工廠的流水線是一樣的道理,流水線上不同的工人代表不同的電路部分。
上圖是一條指令需要六個不同的電路進行配合。
當采用流水線以后,會出現(xiàn)一些問題,比如,在寫后讀相關(guān)問題中,第二條指令開始工作的時候,R1的內(nèi)容必須已經(jīng)確定,否則就會出錯。對于這樣的問題,就要有相應(yīng)的解決辦法。
由流水線產(chǎn)生了一些相應(yīng)的技術(shù):
上圖中的一個方格代表一個時鐘周期,在同一個時鐘周期里面,可以有4條或者3條指令同時并發(fā)執(zhí)行。注意,是并發(fā),而不是并行,意味著CPU還是一個,只不過是利用不同的時間片。
上圖中的一個時鐘周期被多條指令分開,也就是說,執(zhí)行指令的某一個動作的某個電路部分,不必等這個時鐘周期結(jié)束,在同一個時鐘周期內(nèi),就可以執(zhí)行另外一條指令。比如,假定圖3中的每個工人完成一個動作(檢查一個零件或者打一個螺絲)規(guī)定為1分鐘(時鐘周期),但在超流水線技術(shù)里面,這個工人10秒鐘就檢查完了一個零件,剩下的50秒就可以檢查另外的零件。
-
流水線
+關(guān)注
關(guān)注
0文章
120瀏覽量
25745 -
指令
+關(guān)注
關(guān)注
1文章
607瀏覽量
35716 -
cpu芯片
+關(guān)注
關(guān)注
0文章
46瀏覽量
13614
原文標題:指令流水線工作原理的簡單理解
文章出處:【微信號:電子技術(shù)控,微信公眾號:電子技術(shù)控】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論