MIPS流水線以及分支延遲和載入延遲概念(一)

2021-06-21 10:34:59 字數 975 閱讀 8761

mips每條指令(如彙編指令andi t0,t1)的執行分為5個階段,稱為5級流水線,分別的if,id,ex,mem,wb。每個階段詳解為:

if: instruction fetch

,取指,根據pc(程式計數器)指示的位址從儲存器中取指令並裝入到指令寄

存器(ir)中,同時pc加4(mips每個指令都是定長的4個位元組)以獲取下一條指令的位址。

id:instruction decode

,對if階段取的指令解碼並讀取該指令的源暫存器域(rs)指定的暫存器的內容,mips指令結構如下(r-type指令)

ex:execute,執行或者計算有效位址,根據指令型別分為3中情況:

(1)如果指令是load/store指令的話,alu把暫存器內容和偏移量相加得到訪存的有效位址,該位址在mem階段用

(2)如果是alu指令,

alu根據操作碼對從暫存器堆中讀取的資料進行運

算(3)如果是分支指令,alu把偏移量和pc指標相加形成轉移目標的位址,同時判斷分支是否成功

mem:訪存,

如果是load指令,將根據前乙個cycle計算得到的有效位址從儲存器中讀取資料。如果是store指令,根據有效位址將那個第二個暫存器中的資料寫入儲存器中

。如果是條件分支指令,如果條件為真,將ex階段的形成的轉移目標位址賦給pc,分支指令執行完畢;否則不進行任何操作。如果指令是運算指令(alu指令),mem階段空閒。

wb:write back

,資料寫回到通用暫存器中,

將結果寫入暫存器堆,結果可能來自儲存器(對於load指令)或者來自alu(對於alu指令)。

綜合5級流水線的執行如下(實際上id和wb階段個需要半個時鐘週期即可完成,即mips一條指令4個時鐘週期完成):

mips 5級流水線

參考:《see mips run》

4 1MIPS流水線和記分牌

晶元的面積預分配。流水線的結構風險,流水線中的每一拍都可能受前一拍影響或者影響到後面的一拍,在流水線處理的過程中,寫後寫的風險可能存在。流水線中先寫後讀的風險比常規出現的概率大得多,而且會真正的影響效能。r4000系列處理器,體系結構非常成功,但商業市場不是很成功,流水線是8站式流水線,最直觀的目的...

流水線和吞吐率

流水線設計將原來乙個時鐘週期完成的較大的組合邏輯,通過切割後分由多個時鐘完成,所以,該部分邏輯執行的時鐘頻率會有明顯提公升,流水線設計只在開始處理時需要一定的處理時間,以後就會不間斷的輸出資料,從而大大提高處理速度,所以系統的頻率就提高了。jumphigh1987 2012 8 06 15 02 0...

arm 流水線和pc值

然後pc pc 1 老師經常這麼說。這不完全正確,pc自增一的情況指出現在無流水 non pipeline 的情況下,這個時候取指,解碼,執指都是順序執行的而在有流水的情況下就比較複雜了這裡用arm7和arm9為例。流水線使用三個階段,因此指令分為三個階段執行 1.取指 從儲存器裝載一條指令 2.解...