4 1MIPS流水線和記分牌

2021-07-31 15:24:02 字數 1140 閱讀 5390

晶元的面積預分配。

流水線的結構風險,

流水線中的每一拍都可能受前一拍影響或者影響到後面的一拍,在流水線處理的過程中,寫後寫的風險可能存在。

流水線中先寫後讀的風險比常規出現的概率大得多,而且會真正的影響效能。

r4000系列處理器,體系結構非常成功,但商業市場不是很成功,流水線是8站式流水線,最直觀的目的是提高時鐘頻率(流水線越長,時鐘週期越短,現在inter公司的流水線是2級)。 ,

取指令兩級,指令解碼、讀暫存器一級,運算一級,資料寫回(寫兩級,還有一級校驗)**。

從細節上看它還是個5站流水線(取指令,指令解碼,執行,訪存(只是訪存細分了,因為訪存太長)

,寫回)。

取指令包括兩部分,稱之為取指令的的一部分,取指令的第二部分。第一拍,找到乙個合適的pc值,然後初始化指令cache,第二拍,從指令cache中把指令取出來,因為有cache所有有兩拍。

第三拍,指令解碼和訪問儲存器,這過程要做冒險分析。

執行階段,包括位址的計算,運算器的運算,分支目標的運算和分支條件的運算。

訪存,第一拍成為資料訪問,第二拍成為資料訪問的第二拍,其中問題最大的是讀(因為寫的時候往那兒一扔就不管了,大不了後續的工作由cache自動完成,讀的話在等結果,需要結果後面來用,檢查標誌就是把資料先取過來,再看是不是命中,一看沒命中,重取,進行標識檢查,最後寫回暫存器,期間如果彭家load指令,需要等待兩拍,其他指令才能拿到資料,如果是分支指令,需要分支目標位址和條件)。

轉移指令成功,成功何不成功允許插入乙個延遲槽,一旦出現分支,後面會有好幾個空轉的週期,但是不是所有機器都允許插延遲槽,延遲槽裡的指令是無需執行的,也就是找到一(與延遲槽數量相同)條與分支指令無關的指令;

r4000浮點流水線,有一堆部件,部有件,尾數,尾數加,除法,懲罰,四捨五入,運算元移位,

靜態排程最早出現唉60年代,80年代被普及,又稱為編譯器排程。

動態排程,是指令載入以後,對指令進行調整。

動態排程的優點,靜態排程看不出來的相關性,直接扔下動態來弄;簡化編譯器;動態排程使得機器的硬體和程式之間的關聯變得更加稀鬆。

動態排程的壞處:硬體成本大大增加,增加了複雜性,不好理解,而且還要學。

兩種動態排程演算法:記分牌和(tomasuio's演算法)託莫索羅演算法..

記分牌是採用記分牌調動,記錄將來指令執行的所有狀態,

流水線和吞吐率

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

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

mips每條指令 如彙編指令andi t0,t1 的執行分為5個階段,稱為5級流水線,分別的if,id,ex,mem,wb。每個階段詳解為 if instruction fetch 取指,根據pc 程式計數器 指示的位址從儲存器中取指令並裝入到指令寄 存器 ir 中,同時pc加4 mips每個指令都...

arm 流水線和pc值

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