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

評(píng)論