




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
計算機系統結構實驗報告《計算機系統結構》實驗報告專業班級姓名學號到主存儲器中了?,F在就可以開始模擬工作了。4.模擬在主窗口中,可以看見六個圖標,它們分別為“Register”,“Code”,“Pipeline”,“ClockCycleDiagram”,“Statistics”和“Breakpoints”。點擊其中任何一個將彈出一個新窗口(子窗口)。在模擬過程中將介紹每一個窗口的特性和用法。(1)Pipeline窗口首先來看一下DLX處理器的內部結構。雙擊圖標Pipeline,出現一個子窗口,窗口中以圖表形式顯示了DLX的五段流水線,包括取指段(IF)、譯碼段(ID)、執行段(EX)、訪存段(MEM)和寫回段(WB)。此圖顯示DLX處理器的五個流水段和浮點操作(加/減,乘和除)的單元,如圖1-3。盡可能地擴大此窗口,以便處于不同流水段的指令都能夠在圖表中顯示。圖1-3Pipeline窗口不同指令在執行段的操作是不同的,而且不同操作在該段的延遲也是不同的。為此,DLX流水線的執行段分為4個單元,它們分別是:intEX單元(整數操作),faddEX單元(浮點加減),fmulEX(浮點乘法),fdivEX(浮點除法),每個單元設置的個數和其延遲時間已經在前面通過Configuration→FloatingPointStages進行了設置,其中intEX的延遲為1(IF段,ID段,MEM段和WB段的延遲均為1),faddEX、fmulEX和fdivEX的延遲分別為2、5和19。可以修改其設置,然后再觀察程序的執行結果,從而得到你所需要的結論。(2)Code窗口雙擊Code窗口圖標,將看到代表存儲器內容的三欄信息,從左到右依次為:地址(符號或數字)、命令的十六進制機器代碼和匯編命令,如圖1-4。圖1-4Code窗口中內容現在,點擊主窗口中的Execution開始模擬。在出現的下拉式菜單中,點擊SingleCycle或按F7鍵。這時,窗口中帶有地址“$TEXT”的第一行變成黃色。按下F7鍵,模擬就向前執行一步,第一行的顏色變成橘黃色,下一行變成黃色。這些不同顏色指明命令處于流水線的哪一段。如果Pipeline窗口已經關閉,請雙擊相應圖標重新打開它。如果窗口足夠大,你能夠看到命令“jalInputUnsigned”在IF段,“addir1,r0,0x1000”在第二段ID。其他方框中帶有一個“X”標志,表明沒有處理有效信息。(3)ClockCycleDiagram窗口它顯示流水線的時空圖,使所有子窗口圖標化,雙擊打開ClockCycleDiagram窗口。圖1-5流水線的時空圖在窗口中,將看到模擬正在第四時鐘周期,第一條命令正在MEM段,第二條命令在intEX段,第四條命令在IF段。而第三條命令指示為"aborted"。其原因是:第二條命令(jal)是無條件分支指令,但只有在第三個時鐘周期,jal指令被譯碼后才知道,這時,下一條命令movi2fp已經取出,但需執行的下一條命令在另一個地址處,因而,movi2fp的執行應被取消,在流水線中留下氣泡。jal的分支地址命名為"InputUnsigned"。為找到此符號地址的實際值,點擊主窗口中的Memory→Symbols,出現的子窗口中顯示相應的符號和對應的實際值。在"Sort:"區域選定"name",使它們按名稱排序,而不是按數值排序。數字后的"G"代表全局符號,"L"代表局部符號。"input"中的"InputUnsigned"是一個全局符號,它的實際值為0x144,用作地址。點擊OK按紐關閉窗口。再一次點擊F7,第一條命令(addi)到達流水線的最后一段。如果想了解某條命令執行后處理器內部會發生什么?只要對準Clockcyclediagram窗口中相應命令所在行,然后雙擊它,彈出一個新窗口。窗口中會詳細顯示每一個流水段處理器內部的執行動作。觀察完后,點擊OK按鈕關閉窗口。雙擊第三行(movi2fp),你會看到它只執行了第一段(IF),這是因為出現跳轉而被取消。雙擊Code窗口中的某一行或者Pipeline窗口中的某一段,可以出現Information窗口。(4)Breakpoint窗口按F7鍵以單步方式運行程序,可以清楚的看到每條指令在流水線各個段的具體操作情況,除此之外,DLX模擬器還提供了其他幾種運行程序的方式。單擊主窗口中Execute子菜單,可以看到DLX模擬器共提供了4種運行程序的方式。這些運行方式為我們了解DLX流水線或調試程序提供了非常方便的環境。SingleCycle(或按F7鍵)就是單步執行方式;MultipleCycles(或按F8鍵)是多步執行方式,選擇該方式,會在屏幕上出現一個窗口,詢問周期個數,它表示流水線從當前位置繼續向前執行的周期個數,輸入你需要的值,然后按OK鍵,流水線就會向前執行相應的周期個數;Run(或按F5鍵)是運行方式,選擇該方式,流水線就會從當前位置一直運行到程序結束;Runto(或按F4鍵)是斷點方式,選擇該方式,會在屏幕上出現一個窗口,要求指定某條指令的地址和流水線的某個段,表示讓流水線運行到該條指令在流水線該段的時候暫停,輸入你需要的指令,然后按OK鍵,流水線就會運行到指定的位置后停下來。激活Breakpoints子窗口,里面什么都沒有?,F在,請指向Code窗口中包含指令trap0x5的0x0000013c行,該指令是寫屏幕的系統調用。單擊指令行,然后點擊主窗口菜單Code,單擊SetBreakpoint(確保指令行仍被標記),將彈出一個“SetBreakpoint”窗口。通過此窗口,你可以選擇指令運行到流水線的哪一階段時,程序停止執行。注意,在Address欄里標記的是trap0x5指令的地址,而且是相對尋址方式。該子窗口缺省設置選擇的指令在流水線的ID段時停止程序。點擊OK關閉窗口。在Code窗口中,我們看到指令trap0x5行上出現了“BID”字樣,它表示當本指令在譯碼段時,程序中止執行。再次激活Breakpoints子窗口,就可以看到里面標記了斷點設置的詳細情況:在什么地址,在什么段,是什么指令。根據需要,你可以設置多個斷點,Reakpoints子窗口將記錄所有斷點的設置情況。刪除斷點時,首先在Code子窗口中選中需要刪除斷點的指令行,然后點擊主窗口中的Code選項,再點擊DeleteBreakpoint選項,即可刪除斷點。點擊Execution→Run或按F5鍵,程序就會連續向前運行,直到碰到我們設置的斷點后停下來,,按OK按鈕關閉。現在你可以激活任何一個子窗口,觀察你希望看到的結果,然后按F5鍵繼續運行,屏幕上會出現DLX-Standard–I/O對話框,要求你輸入一個整型值。輸入20后按回車鍵,程序會繼續模擬運行,直至出現提示框“Trap#0occurred”表明最后一條指令trap0已經執行,Trap指令中編號“0”沒有定義,只是用來終止程序。點擊主窗口中Execute菜單下“DisplayDLX-I/O...”選項,你會看到輸出結果(20的階乘)為2.4329e+18。點擊OK關閉窗口。(5)Register窗口雙擊Register子窗口,可以看到DLX的全部寄存器及其內容,觀察左上角的PC寄存器,其值為0x00000100,也就是說程序會從內存0x00000100處開始執行。在程序執行過程中,隨時可以點擊Register子窗口來觀察各個寄存器內容的變化??匆幌翿1到R5的值。按F5使模擬繼續運行到下一個斷點處,有些值將發生改變,指令lw從主存中取數到寄存器中。(6)Statistics窗口雙擊子窗口Statistics,可以看到該窗口提供了各個方面的信息:模擬中硬件配置情況、暫停及原因、條件分支、Load/Store指令、浮點指令和traps。窗口中給出事件發生的次數和百分比。利用這些數據,我們可以定量的比較各種改善流水線性能的技術對程序運行的影響情況。在靜態窗口中我們可以比較一下不同配置對模擬的影響?,F在我們看一看定向的作用。在前面的模擬過程中,我們采用了定向。如果不采用定向,執行時間將會怎樣呢?我們先看一下Statistics窗口中的各種統計數字:總的周期數(215)和暫停數(17RAW,25Control,12Trap;54Total),然后關閉窗口。點擊Configuration中的EnableForwarding使定向無效(去掉小鉤),打開斷點Breakpoints圖標并點擊Breakpoints菜單,刪除所有斷點,然后按F5,鍵入20后,按Enter,模擬程序一直運行到結束。重新查看靜態窗口,你會看到控制暫停和Trap暫停仍然是同樣的值,而RAW暫停從17變成了53,總的模擬周期數增加到236。利用這些值,你能夠計算定向技術帶來的加速比:236/215=1.098DLXforwarded比DLXnotforwarded快9.8%。以上通過計算一個整型值的階乘fact.s例子介紹了WinDLX的重要特性,對流水線和DLX的操作類型有了一定的了解。如需要更深入地了解WinDLX請參閱“幫助”。實驗二流水線中的相關一、實驗目的1.進一步了解DLX基本流水線各段的功能以及基本操作;2.加深對數據相關、結構相關的理解,了解這兩類相關對CPU性能的影響;3.了解解決數據相關的方法,掌握如何使用定向技術來減少數據相關帶來的暫停。二、實驗平臺WinDLX模擬器三、實驗內容和步驟1.用WinDLX運行程序structure_d.s(1)找出存在結構相關的指令對以及導致結構相關的部件。(2)記錄由結構相關引起的暫停時鐘周期數,計算暫停時鐘周期數占總執行周期數的百分比。(3)論述結構相關對CPU性能的影響,討論解決結構相關的方法。(4)參考運行結果:點擊Statistics窗口,可以看到總的周期數為139,總的暫停數為42,其中數據相關暫停數為30,占總執行周期數的百分比為21.58%;控制相關暫停數為9,占總執行周期數的百分比為6.47%;中斷暫停時鐘周期數Trap
stalls為3,占總執行周期數的百分比為2.16%。2.用WinDLX運行程序data_d.s1)在不采用定向技術的情況下(去掉Configuration菜單中EnableForwarding選項前的勾選符),用WinDLX運行程序data_d.s。記錄數據相關引起的暫停時鐘周期數以及程序執行的總時鐘周期數,計算暫停時鐘周期數占總執行周期數的百分比。(2)在采用定向技術的情況下(勾選EnableForwarding),用WinDLX再次運行程序data_d.s。記錄數據相關引起的暫停時鐘周期數以及程序執行的總時鐘周期數,計算暫停時鐘周期數占總執行周期數的百分比。(3)根據上面記錄的數據,計算采用定向技術后性能提高的倍數。(4)參考運行結果:在不采用定向技術的情況下,運行程序。打開靜態窗口,可以看到,總的周期數為202,總的暫停數為116,其中數據相關暫停數為104,占總執行周期數的百分比為51.48%;控制相關暫停數為9,占總執行周期數的百分比為4.46%;中斷暫停時鐘周期數Trap
stalls為3,占總執行周期數的百分比為1.48%。在采用定向技術后,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T/ZGZS 0303-2023再生工業鹽硫酸鈉
- 幼兒園指甲衛生
- 咖啡店畢業設計
- 校園社團管理系統前端設計
- 創傷現場急救課件
- 健康傳播材料課件
- 體育科學碩士研究生入學考試題及答案2025年
- 藏族傳統謎語文化解析
- 2025年現代人類學專業資格考試試題及答案
- 2025年軟件工程專業考試試卷及答案
- 2024屆江蘇省南京東山外國語學校高考三模數學試卷(原卷版)
- 2024年湖南湘西自治州公開招募“三支一扶”高校畢業生(高頻重點復習提升訓練)共500題附帶答案詳解
- 打地坪施工合同范本
- 廠區保潔服務投標方案【2024版】技術方案
- 2024中考化學成都10年考情及趨勢分析【必考知識點】
- 腹腔鏡手術設備使用說明與注意事項
- 二手房委托代理協議書范本參考
- 西藏2024屆小升初模擬數學測試卷含解析
- 人教版五年級下冊美術測試題
- JBT 14716-2023 增材制造裝備 面曝光光固化三維打印機 (正式版)
- 自體外周血干細胞移植的護理
評論
0/150
提交評論