計算機系統結構mit課程-6.2流水線沖突_第1頁
計算機系統結構mit課程-6.2流水線沖突_第2頁
計算機系統結構mit課程-6.2流水線沖突_第3頁
計算機系統結構mit課程-6.2流水線沖突_第4頁
計算機系統結構mit課程-6.2流水線沖突_第5頁
免費預覽已結束,剩余33頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

流水線DLX

數據路徑無互鎖和跳轉數據數據

消解互鎖(interlocks):凍結前面的流水段,直到數據有效旁通(Bypasses):如果數據有效,通過旁通方式,直接將它送至相應的流水段使用互鎖解決數據停滯條件停滯流水段和流水泡互鎖控制邏輯工作表比較譯碼階段指的令源寄存器和未提交指令的目的寄存器互鎖控制邏輯忽略跳轉與轉移如果rs域與某些rd相匹配,

是否總是要延遲?不是每條指令都要寫寄存器--〉we不是每條指令都要讀寄存器--〉re源&目的寄存器導出停滯信號如果一條指令的源寄存器與未提交指令的目的寄存器相,就需要延遲跳轉和停滯信號讀寫這個指令序列中是否存在數據?停滯條件ALU控制和立即數擴展和內存系統相關的讀寫R1+7=R3+5數據然而,因為內存系統在一個周期內完成了寫操作,所以避免了VAX:復雜的指令集VAX的

例子長指令,例如:–-54字節的編碼(據說還有更長的指令序列)內存

行為:在 的情況下,一條指令需要將41個不同的內存頁駐留到內存才能執行。不要包含字符串指令,因為這些指令被設計成可中斷的?精簡指令集計算機使用復雜指令編譯器有

;VAX:20%的指令使用60%的微編碼,僅占0.2%的執行時間IBM試驗機370編譯器,使用一部分ISA的簡單指令--〉編譯器可以產生更快的代碼器精簡指令集不需要微碼–

使用離處理器更近的快速內存,比如cache,不使用微編碼為實現簡單流水線設計ISA固定的長度,固定的指令格式最多一次訪存的Load/Store結構。很少的尋址方式,綜合其它微碼序列寄存器到寄存器的ALU操作延遲轉移MIPS

R2000最早的RISC商業機之一,1986Load/Store結構:32個32-位的通用寄存器GPR(R0

有線),HI

&LO74條指令固定指令長度(32位),只有3種指令格式PC相對轉移,寄存器間接跳轉只有一種尋址方式:基址+偏移量比較寫GPR指令和轉移測試GPR,沒有條件位延遲裝載和轉移寄存器(用于乘/除)5級指令流水線取指,

譯碼,

執行,

內存

,

回寫寄存器到寄存器的ALU指令為1CPI時鐘頻率:8

MHz緊耦合、離線浮點

(R2010)RISC/CISC比較80年代末,90年代初R2000

vs

VAX

8700

[Bhandarkar

和Clark,‘91]R2000比同時期其他技術性能先進2.7倍In 80486

vs

In

i860(均是1989)同一公司、相同CAD工具、相同進程i860快2~4倍,在浮點計算中甚至更高DEC

nVAX

vs

Alpha

21064

(1992)同一公司、相同CAD工具、相同進程Alpha快2~4倍跳轉引入的復雜性一條跳轉指令將使(不是延遲)緊接的下一條指令無用流水線跳轉作廢已取的指令,在IR前面插入一個控操作(Mux)停滯和跳轉之間有交互?流水線跳轉圖例控操作=〉流水線“氣泡”流水線條件轉移只有到了執行階段,才能發現條件轉移在譯碼階段應該采取什么措施?條件轉移:解決方案一如果發生轉移:撤銷接下來的兩條指令譯碼階段的指令是無效的=>停滯信號無效新延遲信號PC

MUXes的控制方法方法1賦給較早指令優先權,比如,執行階段的指令優先于譯碼階段的指令條件轉移:方法二:在譯碼階段檢測0只需要清除一條指令如果DLX是一般轉移條件,會不會生效?比如,r1>r2條件轉移:方法三延遲轉移改變轉移和跳轉指令的語義無論轉移是否發生,轉移之后的指令總會執行不需要清除任何一條指令!取消轉移一般的延遲轉移僅僅是讓編譯器把延遲槽填上要執行的指令如果轉移情況未發

生,取消轉移將撤銷延遲槽。編譯器將轉移目標指令拷貝到延遲槽。也可以用其它取消轉移技術,如果發生轉移,來中止延遲槽轉移延遲槽首次被應用在微碼流水線的引擎中,被用于早期的單發射流水線RISC機中,對用戶級

不透明。優點:單流水線的簡單控制邏輯編譯器幫助減少數據

懲罰~70%的單延遲槽被有用地填充缺點:復雜的ISA規范和編程編程時,需要添加額外的“next-PC”狀態對于更高效地實現,控制邏輯就會很復雜比如,亂序

量設計--〉失寵于新(1990年后)的通用ISA此后的課程將講述解決控制

的先進技術動態(執行時期)調度,比如,轉移靜態(編譯時期)調度,比如,推斷執行流水線延遲跳轉和旁通技術每一次停滯或撤銷都將在流水線中產生一個氣泡——〉CPI>1一種新的數據路徑,比如旁通路徑,可以把ALU輸出數據直接送到輸入單元。增加旁通路徑當然,你可以添加任意個旁路旁通信號由停滯信號導出這正確嗎?旁通的有用性這個旁路在何處有用?旁路和停滯信號全旁路的數據路徑還需要停滯信號嗎?為什么不能每周期分派一條指令(CPI>1)全旁路實現起來花費太高。一般來說,提供所有的頻繁使用的路徑;那些不頻繁使用的旁路,會增加周期時間和代價,得不償失;Load指令有兩個周期的延時Load之后的指令不能立即使用讀的結果結果。流水線,編譯器

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論