




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
計算機體系結構課程實驗——
流水線篇12019-3-162019-3-16計算機體系結構課程實驗——流水線篇12019-3-1620主要內容實驗目的實驗原理實驗平臺WinDLX實驗內容實驗步驟實驗要求2ComputerArchitecture---Pipeline主要內容實驗目的2ComputerArchitecture實驗目的通過該模擬實驗,進一步掌握和鞏固的流水線基本知識;初步掌握在特定體系結構下的匯編代碼的編寫和優化;培養運用所學知識解決實際問題的能力。3ComputerArchitecture---Pipeline實驗目的通過該模擬實驗,進一步掌握和鞏固的3Computer實驗原理(1/4)流水線執行過程4ComputerArchitecture---Pipeline實驗原理(1/4)流水線執行過程4ComputerArch實驗原理(2/4)流水線中的相關問題結構相關數據相關RAW/WAR/WAW控制相關硬件資源不夠條件分支或跳轉指令5ComputerArchitecture---Pipeline實驗原理(2/4)流水線中的相關問題硬件資源不夠條件分支或跳實驗原理(3/4)定向技術在發生數據相關時,等待前面計算結果的指令并不一定真的馬上就用到該計算結果,如果能夠將該計算結果從其產生的地方直接送到其他指令需要它的地方,就可以避免暫停。循環展開是一種犧牲程序的尺寸來加快程序的執行速度的優化方法。可以由程序員完成,也可由編譯器自動優化完成。循環展開通過將循環體代碼復制多次實現。循環展開能夠增大指令調度的空間,減少循環分支指令的開銷。循環展開可以更好地實現數據預取技術。6ComputerArchitecture---Pipeline實驗原理(3/4)定向技術6ComputerArchite實驗原理(4/4)流水線性能評價加速比吞吐率效率7ComputerArchitecture---Pipeline實驗原理(4/4)流水線性能評價7ComputerArch實驗平臺——WinDLX8ComputerArchitecture---Pipeline實驗平臺——WinDLX8ComputerArchitec實驗平臺WinDLX的使用步驟安裝配置浮點段配置存儲器配置模擬代碼載入程序推進機器狀態的查看9ComputerArchitecture---Pipeline實驗平臺WinDLX的使用步驟9ComputerArchiWinDLX模擬器安裝WinDLX包含windlx.exe和windlx.hlp文件。同時,還需要一些擴展名為.s的匯編代碼文件。本次實驗課將使用fact.s和input.s這兩個匯編代碼文件。WinDLX的安裝非常簡單,只要將WinDLX1.3文件夾拷貝到一個不含中文路徑的目錄下即可,假設將其拷貝到D盤下,然后雙擊執行里面的windlx.exe,就可進入Windlx模擬器。10ComputerArchitecture---PipelineWinDLX模擬器安裝WinDLX包含windlx.exe和開始和配置WinDLX為了初始化模擬器,點擊File菜單中的Resetall菜單項,彈出一個“ResetDLX”對話框。然后點擊窗口中的“確認”按鈕即可。11ComputerArchitecture---Pipeline開始和配置WinDLX為了初始化模擬器,點擊File菜單開始和配置WinDLXWinDLX可以在多種配置下工作。可以改變流水線的結構和時間要求、存儲器大小和其他幾個控制模擬的參數。12ComputerArchitecture---Pipeline開始和配置WinDLXWinDLX可以在多種配置下工作。可以裝載測試程序
在開始模擬之前,至少應裝入一個程序到主存。我們選fact.s為例,fact.s計算一個整型值的階乘;它的運行還需要一個輔助文件input.s,
input.s中包含一個子程序,它讀標準輸入(鍵盤)并將值存入DLX處理器的通用寄存器R1中。按如下步驟操作,可將這兩個文件裝入主存。為此,選擇File/LoadCodeorData,窗口中會列出目錄中所有匯編程序。按如下步驟操作,可將這兩個文件裝入主存。
13ComputerArchitecture---Pipeline裝載測試程序在開始模擬之前,至少應裝入一個程序到主存。13裝載測試程序點擊fact.s
點擊select按鈕 點擊input.s
點擊select按鈕 點擊load按鈕選擇文件的順序很關鍵,它決定了文件在存儲器中出現的順序。對話框中會顯示信息“File(s)loadedsuccessfully.ResetDLX?”,點擊“是”按鈕確認。這樣,文件就已被裝入到主存儲器中了。14ComputerArchitecture---Pipeline裝載測試程序點擊fact.s14ComputerPipeline窗口
DLX執行指令的流水線是一個5段流水線,包括取指段(IF)、譯碼段(ID)、執行段(EX)、訪存段(MEM)和寫回段(WB)。15ComputerArchitecture---PipelinePipeline窗口DLX執行指令的流水線是一個5段流水Code窗口
Code窗口顯示的內容是兩個程序(fact.s和input.s)加載到內存中的情況。從左到右依次為:地址(符號或數字)、命令的十六進制機器代碼和匯編命令。16ComputerArchitecture---PipelineCode窗口Code窗口顯示的內容是兩個程序(fact.ClockCycleDiagram窗口
它顯示流水線的時空圖。17ComputerArchitecture---PipelineClockCycleDiagram窗口它顯示流水線的ClockCycleDiagram窗口在Clockcyclediagram窗口中,有時候還可以看到在指令之間出現了紅和綠的箭頭。紅色箭頭表示需要一個暫停,箭頭指向處顯示了暫停的原因。R-Stall(R-暫停)表示引起暫停的原因是RAW。綠色箭頭表示定向技術的使用。18ComputerArchitecture---PipelineClockCycleDiagram窗口在ClockcBreakpoint窗口
當重復按F7執行代碼很枯燥時,我們可以通過設置斷點來加快此過程。該窗口詳細的顯示了我們設置的斷點的信息。19ComputerArchitecture---PipelineBreakpoint窗口當重復按F7執行代碼很枯燥時,我們Register窗口DLX的全部寄存器及其內容。20ComputerArchitecture---PipelineRegister窗口DLX的全部寄存器及其內容。20CompStatistics窗口
Statistics窗口提供各個方面的信息:模擬中硬件配置情況、暫停及原因、條件分支、Load/Store指令、浮點指令和traps。窗口中給出事件發生的次數和百分比,如RAWstalls:17(7.91%ofallCycles)。21ComputerArchitecture---PipelineStatistics窗口Statistics窗口提供各個DLX的匯編語法DLX的匯編語法(1/2)偽指令.data[address].text[address].globallabel.wordword1,word2,….spacesize.double常數、運算符…………指令訪存類、寄存器操作、算術類、邏輯類、控制流轉移WinDLX的Trap機制一般地,指令(code)均被導入$CODE(起始地址為0x100)而數據(data)則被導入$DATA(起始地址為0x1000)22ComputerArchitecture---PipelineDLX的匯編語法DLX的匯編語法(1/2)一般地,指令(coDLX匯編的例子DLX的匯編語法(2/2)例子
.data adder1: .word 7 adder2: .word 16 result: .space 4 .text .globalmain main: lw r2,adder1 lw r3,adder2 add r1,r2,r3 sw result,r1
trap 0 ;finish23ComputerArchitecture---PipelineDLX匯編的例子DLX的匯編語法(2/2)23Compute實驗內容(1/2)3×3矩陣乘法編寫矩陣積源程序;手工優化。例如:在流水線各種資源配置下觀察程序運行狀態。lwr3,adder1addr1,r2,r3addr5,r6,r7lwr3,adder1addr5,r6,r7addr1,r2,r324ComputerArchitecture---Pipeline實驗內容(1/2)3×3矩陣乘法lwr3,adder1l實驗內容(2/2)觀察程序中出現的數據/控制/結構相關,指出導致上述現象的指令組合考察增加定向(forwarding)部件對性能的影響觀察轉移指令在轉移成功和轉移不成功時候的流水線開銷手工優化程序(沒有分支延遲槽)分析程序的吞吐率、加速比和效率25ComputerArchitecture---Pipeline實驗內容(2/2)觀察程序中出現的數據/控制/結構相關,指出實驗步驟學習WinDLX軟件使用;學習DLX匯編程序的編寫;編寫3×3矩陣乘法匯編源程序;將程序在WinDLX上運行調試;觀察程序中出現的數據/控制/結構相關;優化代碼(在有定向功能和無定向功能兩種情況下),盡量消除相關引起的暫停;對優化后的代碼重新模擬,并觀察優化效果;分析實驗結果,書寫實驗報告。26ComputerArchitecture---Pipeline實驗步驟學習WinDLX軟件使用;26ComputerAr實驗要求實驗報告要求包括:程序源代碼實驗結果、實驗分析、優化過程、性能分析簡單談談自己對流水線技術的認識提交形式:實驗源代碼+實驗報告(Word編輯)文件夾命名格式:學號1_姓名1(例如:04060006_鄧明堂)27ComputerArchitecture---Pipeline實驗要求實驗報告要求包括:27ComputerArchit檢查方式查看代碼查看運行解釋各種相關發生的情況及優化手段查看統計信息28ComputerArchitecture---Pipeline檢查方式查看代碼28ComputerArchitectur謝謝292019-3-162019-3-16謝謝292019-3-162019-3-16計算機體系結構課程實驗——
流水線篇302019-3-162019-3-16計算機體系結構課程實驗——流水線篇12019-3-1620主要內容實驗目的實驗原理實驗平臺WinDLX實驗內容實驗步驟實驗要求31ComputerArchitecture---Pipeline主要內容實驗目的2ComputerArchitecture實驗目的通過該模擬實驗,進一步掌握和鞏固的流水線基本知識;初步掌握在特定體系結構下的匯編代碼的編寫和優化;培養運用所學知識解決實際問題的能力。32ComputerArchitecture---Pipeline實驗目的通過該模擬實驗,進一步掌握和鞏固的3Computer實驗原理(1/4)流水線執行過程33ComputerArchitecture---Pipeline實驗原理(1/4)流水線執行過程4ComputerArch實驗原理(2/4)流水線中的相關問題結構相關數據相關RAW/WAR/WAW控制相關硬件資源不夠條件分支或跳轉指令34ComputerArchitecture---Pipeline實驗原理(2/4)流水線中的相關問題硬件資源不夠條件分支或跳實驗原理(3/4)定向技術在發生數據相關時,等待前面計算結果的指令并不一定真的馬上就用到該計算結果,如果能夠將該計算結果從其產生的地方直接送到其他指令需要它的地方,就可以避免暫停。循環展開是一種犧牲程序的尺寸來加快程序的執行速度的優化方法。可以由程序員完成,也可由編譯器自動優化完成。循環展開通過將循環體代碼復制多次實現。循環展開能夠增大指令調度的空間,減少循環分支指令的開銷。循環展開可以更好地實現數據預取技術。35ComputerArchitecture---Pipeline實驗原理(3/4)定向技術6ComputerArchite實驗原理(4/4)流水線性能評價加速比吞吐率效率36ComputerArchitecture---Pipeline實驗原理(4/4)流水線性能評價7ComputerArch實驗平臺——WinDLX37ComputerArchitecture---Pipeline實驗平臺——WinDLX8ComputerArchitec實驗平臺WinDLX的使用步驟安裝配置浮點段配置存儲器配置模擬代碼載入程序推進機器狀態的查看38ComputerArchitecture---Pipeline實驗平臺WinDLX的使用步驟9ComputerArchiWinDLX模擬器安裝WinDLX包含windlx.exe和windlx.hlp文件。同時,還需要一些擴展名為.s的匯編代碼文件。本次實驗課將使用fact.s和input.s這兩個匯編代碼文件。WinDLX的安裝非常簡單,只要將WinDLX1.3文件夾拷貝到一個不含中文路徑的目錄下即可,假設將其拷貝到D盤下,然后雙擊執行里面的windlx.exe,就可進入Windlx模擬器。39ComputerArchitecture---PipelineWinDLX模擬器安裝WinDLX包含windlx.exe和開始和配置WinDLX為了初始化模擬器,點擊File菜單中的Resetall菜單項,彈出一個“ResetDLX”對話框。然后點擊窗口中的“確認”按鈕即可。40ComputerArchitecture---Pipeline開始和配置WinDLX為了初始化模擬器,點擊File菜單開始和配置WinDLXWinDLX可以在多種配置下工作。可以改變流水線的結構和時間要求、存儲器大小和其他幾個控制模擬的參數。41ComputerArchitecture---Pipeline開始和配置WinDLXWinDLX可以在多種配置下工作。可以裝載測試程序
在開始模擬之前,至少應裝入一個程序到主存。我們選fact.s為例,fact.s計算一個整型值的階乘;它的運行還需要一個輔助文件input.s,
input.s中包含一個子程序,它讀標準輸入(鍵盤)并將值存入DLX處理器的通用寄存器R1中。按如下步驟操作,可將這兩個文件裝入主存。為此,選擇File/LoadCodeorData,窗口中會列出目錄中所有匯編程序。按如下步驟操作,可將這兩個文件裝入主存。
42ComputerArchitecture---Pipeline裝載測試程序在開始模擬之前,至少應裝入一個程序到主存。13裝載測試程序點擊fact.s
點擊select按鈕 點擊input.s
點擊select按鈕 點擊load按鈕選擇文件的順序很關鍵,它決定了文件在存儲器中出現的順序。對話框中會顯示信息“File(s)loadedsuccessfully.ResetDLX?”,點擊“是”按鈕確認。這樣,文件就已被裝入到主存儲器中了。43ComputerArchitecture---Pipeline裝載測試程序點擊fact.s14ComputerPipeline窗口
DLX執行指令的流水線是一個5段流水線,包括取指段(IF)、譯碼段(ID)、執行段(EX)、訪存段(MEM)和寫回段(WB)。44ComputerArchitecture---PipelinePipeline窗口DLX執行指令的流水線是一個5段流水Code窗口
Code窗口顯示的內容是兩個程序(fact.s和input.s)加載到內存中的情況。從左到右依次為:地址(符號或數字)、命令的十六進制機器代碼和匯編命令。45ComputerArchitecture---PipelineCode窗口Code窗口顯示的內容是兩個程序(fact.ClockCycleDiagram窗口
它顯示流水線的時空圖。46ComputerArchitecture---PipelineClockCycleDiagram窗口它顯示流水線的ClockCycleDiagram窗口在Clockcyclediagram窗口中,有時候還可以看到在指令之間出現了紅和綠的箭頭。紅色箭頭表示需要一個暫停,箭頭指向處顯示了暫停的原因。R-Stall(R-暫停)表示引起暫停的原因是RAW。綠色箭頭表示定向技術的使用。47ComputerArchitecture---PipelineClockCycleDiagram窗口在ClockcBreakpoint窗口
當重復按F7執行代碼很枯燥時,我們可以通過設置斷點來加快此過程。該窗口詳細的顯示了我們設置的斷點的信息。48ComputerArchitecture---PipelineBreakpoint窗口當重復按F7執行代碼很枯燥時,我們Register窗口DLX的全部寄存器及其內容。49ComputerArchitecture---PipelineRegister窗口DLX的全部寄存器及其內容。20CompStatistics窗口
Statistics窗口提供各個方面的信息:模擬中硬件配置情況、暫停及原因、條件分支、Load/Store指令、浮點指令和traps。窗口中給出事件發生的次數和百分比,如RAWstalls:17(7.91%ofallCycles)。50ComputerArchitecture---PipelineStatistics窗口Statistics窗口提供各個DLX的匯編語法DLX的匯編語法(1/2)偽指令.data[address].text[address].globallabel.wordword1,word2,….spacesize.double常數、運算符…………指令訪存類、寄存器操作、算術類、邏輯類、控制流轉移WinDLX的Trap機制一般地,指令(code)均被導入$CODE(起始地址為0x100)而數據(data)則被導入$DATA(起始地址為0x1000)51ComputerArchitecture---PipelineDLX的匯編語法DLX的匯編語法(1/2)一般地,指令(coDLX匯編的例子DLX的匯編語法(2/2)例子
.data adder1: .word 7 adder2: .word 16 result: .space 4 .text .globalmain main: lw r2,adder1 lw r3,adder2 add r1,r2,r3 sw result,r1
trap 0 ;finish52ComputerArchitecture---PipelineDLX匯編的例子DLX的匯編語法(2/2)23Compute實驗內容(1/2)3×3矩
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論