版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
計算機系統(tǒng)結(jié)構(gòu)實驗報告《計算機系統(tǒng)結(jié)構(gòu)》實驗報告專業(yè)班級姓名學(xué)號到主存儲器中了?,F(xiàn)在就可以開始模擬工作了。4.模擬在主窗口中,可以看見六個圖標(biāo),它們分別為“Register”,“Code”,“Pipeline”,“ClockCycleDiagram”,“Statistics”和“Breakpoints”。點擊其中任何一個將彈出一個新窗口(子窗口)。在模擬過程中將介紹每一個窗口的特性和用法。(1)Pipeline窗口首先來看一下DLX處理器的內(nèi)部結(jié)構(gòu)。雙擊圖標(biāo)Pipeline,出現(xiàn)一個子窗口,窗口中以圖表形式顯示了DLX的五段流水線,包括取指段(IF)、譯碼段(ID)、執(zhí)行段(EX)、訪存段(MEM)和寫回段(WB)。此圖顯示DLX處理器的五個流水段和浮點操作(加/減,乘和除)的單元,如圖1-3。盡可能地擴(kuò)大此窗口,以便處于不同流水段的指令都能夠在圖表中顯示。圖1-3Pipeline窗口不同指令在執(zhí)行段的操作是不同的,而且不同操作在該段的延遲也是不同的。為此,DLX流水線的執(zhí)行段分為4個單元,它們分別是:intEX單元(整數(shù)操作),faddEX單元(浮點加減),fmulEX(浮點乘法),fdivEX(浮點除法),每個單元設(shè)置的個數(shù)和其延遲時間已經(jīng)在前面通過Configuration→FloatingPointStages進(jìn)行了設(shè)置,其中intEX的延遲為1(IF段,ID段,MEM段和WB段的延遲均為1),faddEX、fmulEX和fdivEX的延遲分別為2、5和19??梢孕薷钠湓O(shè)置,然后再觀察程序的執(zhí)行結(jié)果,從而得到你所需要的結(jié)論。(2)Code窗口雙擊Code窗口圖標(biāo),將看到代表存儲器內(nèi)容的三欄信息,從左到右依次為:地址(符號或數(shù)字)、命令的十六進(jìn)制機器代碼和匯編命令,如圖1-4。圖1-4Code窗口中內(nèi)容現(xiàn)在,點擊主窗口中的Execution開始模擬。在出現(xiàn)的下拉式菜單中,點擊SingleCycle或按F7鍵。這時,窗口中帶有地址“$TEXT”的第一行變成黃色。按下F7鍵,模擬就向前執(zhí)行一步,第一行的顏色變成橘黃色,下一行變成黃色。這些不同顏色指明命令處于流水線的哪一段。如果Pipeline窗口已經(jīng)關(guān)閉,請雙擊相應(yīng)圖標(biāo)重新打開它。如果窗口足夠大,你能夠看到命令“jalInputUnsigned”在IF段,“addir1,r0,0x1000”在第二段ID。其他方框中帶有一個“X”標(biāo)志,表明沒有處理有效信息。(3)ClockCycleDiagram窗口它顯示流水線的時空圖,使所有子窗口圖標(biāo)化,雙擊打開ClockCycleDiagram窗口。圖1-5流水線的時空圖在窗口中,將看到模擬正在第四時鐘周期,第一條命令正在MEM段,第二條命令在intEX段,第四條命令在IF段。而第三條命令指示為"aborted"。其原因是:第二條命令(jal)是無條件分支指令,但只有在第三個時鐘周期,jal指令被譯碼后才知道,這時,下一條命令movi2fp已經(jīng)取出,但需執(zhí)行的下一條命令在另一個地址處,因而,movi2fp的執(zhí)行應(yīng)被取消,在流水線中留下氣泡。jal的分支地址命名為"InputUnsigned"。為找到此符號地址的實際值,點擊主窗口中的Memory→Symbols,出現(xiàn)的子窗口中顯示相應(yīng)的符號和對應(yīng)的實際值。在"Sort:"區(qū)域選定"name",使它們按名稱排序,而不是按數(shù)值排序。數(shù)字后的"G"代表全局符號,"L"代表局部符號。"input"中的"InputUnsigned"是一個全局符號,它的實際值為0x144,用作地址。點擊OK按紐關(guān)閉窗口。再一次點擊F7,第一條命令(addi)到達(dá)流水線的最后一段。如果想了解某條命令執(zhí)行后處理器內(nèi)部會發(fā)生什么?只要對準(zhǔn)Clockcyclediagram窗口中相應(yīng)命令所在行,然后雙擊它,彈出一個新窗口。窗口中會詳細(xì)顯示每一個流水段處理器內(nèi)部的執(zhí)行動作。觀察完后,點擊OK按鈕關(guān)閉窗口。雙擊第三行(movi2fp),你會看到它只執(zhí)行了第一段(IF),這是因為出現(xiàn)跳轉(zhuǎn)而被取消。雙擊Code窗口中的某一行或者Pipeline窗口中的某一段,可以出現(xiàn)Information窗口。(4)Breakpoint窗口按F7鍵以單步方式運行程序,可以清楚的看到每條指令在流水線各個段的具體操作情況,除此之外,DLX模擬器還提供了其他幾種運行程序的方式。單擊主窗口中Execute子菜單,可以看到DLX模擬器共提供了4種運行程序的方式。這些運行方式為我們了解DLX流水線或調(diào)試程序提供了非常方便的環(huán)境。SingleCycle(或按F7鍵)就是單步執(zhí)行方式;MultipleCycles(或按F8鍵)是多步執(zhí)行方式,選擇該方式,會在屏幕上出現(xiàn)一個窗口,詢問周期個數(shù),它表示流水線從當(dāng)前位置繼續(xù)向前執(zhí)行的周期個數(shù),輸入你需要的值,然后按OK鍵,流水線就會向前執(zhí)行相應(yīng)的周期個數(shù);Run(或按F5鍵)是運行方式,選擇該方式,流水線就會從當(dāng)前位置一直運行到程序結(jié)束;Runto(或按F4鍵)是斷點方式,選擇該方式,會在屏幕上出現(xiàn)一個窗口,要求指定某條指令的地址和流水線的某個段,表示讓流水線運行到該條指令在流水線該段的時候暫停,輸入你需要的指令,然后按OK鍵,流水線就會運行到指定的位置后停下來。激活Breakpoints子窗口,里面什么都沒有?,F(xiàn)在,請指向Code窗口中包含指令trap0x5的0x0000013c行,該指令是寫屏幕的系統(tǒng)調(diào)用。單擊指令行,然后點擊主窗口菜單Code,單擊SetBreakpoint(確保指令行仍被標(biāo)記),將彈出一個“SetBreakpoint”窗口。通過此窗口,你可以選擇指令運行到流水線的哪一階段時,程序停止執(zhí)行。注意,在Address欄里標(biāo)記的是trap0x5指令的地址,而且是相對尋址方式。該子窗口缺省設(shè)置選擇的指令在流水線的ID段時停止程序。點擊OK關(guān)閉窗口。在Code窗口中,我們看到指令trap0x5行上出現(xiàn)了“BID”字樣,它表示當(dāng)本指令在譯碼段時,程序中止執(zhí)行。再次激活Breakpoints子窗口,就可以看到里面標(biāo)記了斷點設(shè)置的詳細(xì)情況:在什么地址,在什么段,是什么指令。根據(jù)需要,你可以設(shè)置多個斷點,Reakpoints子窗口將記錄所有斷點的設(shè)置情況。刪除斷點時,首先在Code子窗口中選中需要刪除斷點的指令行,然后點擊主窗口中的Code選項,再點擊DeleteBreakpoint選項,即可刪除斷點。點擊Execution→Run或按F5鍵,程序就會連續(xù)向前運行,直到碰到我們設(shè)置的斷點后停下來,,按OK按鈕關(guān)閉?,F(xiàn)在你可以激活任何一個子窗口,觀察你希望看到的結(jié)果,然后按F5鍵繼續(xù)運行,屏幕上會出現(xiàn)DLX-Standard–I/O對話框,要求你輸入一個整型值。輸入20后按回車鍵,程序會繼續(xù)模擬運行,直至出現(xiàn)提示框“Trap#0occurred”表明最后一條指令trap0已經(jīng)執(zhí)行,Trap指令中編號“0”沒有定義,只是用來終止程序。點擊主窗口中Execute菜單下“DisplayDLX-I/O...”選項,你會看到輸出結(jié)果(20的階乘)為2.4329e+18。點擊OK關(guān)閉窗口。(5)Register窗口雙擊Register子窗口,可以看到DLX的全部寄存器及其內(nèi)容,觀察左上角的PC寄存器,其值為0x00000100,也就是說程序會從內(nèi)存0x00000100處開始執(zhí)行。在程序執(zhí)行過程中,隨時可以點擊Register子窗口來觀察各個寄存器內(nèi)容的變化。看一下R1到R5的值。按F5使模擬繼續(xù)運行到下一個斷點處,有些值將發(fā)生改變,指令lw從主存中取數(shù)到寄存器中。(6)Statistics窗口雙擊子窗口Statistics,可以看到該窗口提供了各個方面的信息:模擬中硬件配置情況、暫停及原因、條件分支、Load/Store指令、浮點指令和traps。窗口中給出事件發(fā)生的次數(shù)和百分比。利用這些數(shù)據(jù),我們可以定量的比較各種改善流水線性能的技術(shù)對程序運行的影響情況。在靜態(tài)窗口中我們可以比較一下不同配置對模擬的影響?,F(xiàn)在我們看一看定向的作用。在前面的模擬過程中,我們采用了定向。如果不采用定向,執(zhí)行時間將會怎樣呢?我們先看一下Statistics窗口中的各種統(tǒng)計數(shù)字:總的周期數(shù)(215)和暫停數(shù)(17RAW,25Control,12Trap;54Total),然后關(guān)閉窗口。點擊Configuration中的EnableForwarding使定向無效(去掉小鉤),打開斷點Breakpoints圖標(biāo)并點擊Breakpoints菜單,刪除所有斷點,然后按F5,鍵入20后,按Enter,模擬程序一直運行到結(jié)束。重新查看靜態(tài)窗口,你會看到控制暫停和Trap暫停仍然是同樣的值,而RAW暫停從17變成了53,總的模擬周期數(shù)增加到236。利用這些值,你能夠計算定向技術(shù)帶來的加速比:236/215=1.098DLXforwarded比DLXnotforwarded快9.8%。以上通過計算一個整型值的階乘fact.s例子介紹了WinDLX的重要特性,對流水線和DLX的操作類型有了一定的了解。如需要更深入地了解WinDLX請參閱“幫助”。實驗二流水線中的相關(guān)一、實驗?zāi)康?.進(jìn)一步了解DLX基本流水線各段的功能以及基本操作;2.加深對數(shù)據(jù)相關(guān)、結(jié)構(gòu)相關(guān)的理解,了解這兩類相關(guān)對CPU性能的影響;3.了解解決數(shù)據(jù)相關(guān)的方法,掌握如何使用定向技術(shù)來減少數(shù)據(jù)相關(guān)帶來的暫停。二、實驗平臺WinDLX模擬器三、實驗內(nèi)容和步驟1.用WinDLX運行程序structure_d.s(1)找出存在結(jié)構(gòu)相關(guān)的指令對以及導(dǎo)致結(jié)構(gòu)相關(guān)的部件。(2)記錄由結(jié)構(gòu)相關(guān)引起的暫停時鐘周期數(shù),計算暫停時鐘周期數(shù)占總執(zhí)行周期數(shù)的百分比。(3)論述結(jié)構(gòu)相關(guān)對CPU性能的影響,討論解決結(jié)構(gòu)相關(guān)的方法。(4)參考運行結(jié)果:點擊Statistics窗口,可以看到總的周期數(shù)為139,總的暫停數(shù)為42,其中數(shù)據(jù)相關(guān)暫停數(shù)為30,占總執(zhí)行周期數(shù)的百分比為21.58%;控制相關(guān)暫停數(shù)為9,占總執(zhí)行周期數(shù)的百分比為6.47%;中斷暫停時鐘周期數(shù)Trap
stalls為3,占總執(zhí)行周期數(shù)的百分比為2.16%。2.用WinDLX運行程序data_d.s1)在不采用定向技術(shù)的情況下(去掉Configuration菜單中EnableForwarding選項前的勾選符),用WinDLX運行程序data_d.s。記錄數(shù)據(jù)相關(guān)引起的暫停時鐘周期數(shù)以及程序執(zhí)行的總時鐘周期數(shù),計算暫停時鐘周期數(shù)占總執(zhí)行周期數(shù)的百分比。(2)在采用定向技術(shù)的情況下(勾選EnableForwarding),用WinDLX再次運行程序data_d.s。記錄數(shù)據(jù)相關(guān)引起的暫停時鐘周期數(shù)以及程序執(zhí)行的總時鐘周期數(shù),計算暫停時鐘周期數(shù)占總執(zhí)行周期數(shù)的百分比。(3)根據(jù)上面記錄的數(shù)據(jù),計算采用定向技術(shù)后性能提高的倍數(shù)。(4)參考運行結(jié)果:在不采用定向技術(shù)的情況下,運行程序。打開靜態(tài)窗口,可以看到,總的周期數(shù)為202,總的暫停數(shù)為116,其中數(shù)據(jù)相關(guān)暫停數(shù)為104,占總執(zhí)行周期數(shù)的百分比為51.48%;控制相關(guān)暫停數(shù)為9,占總執(zhí)行周期數(shù)的百分比為4.46%;中斷暫停時鐘周期數(shù)Trap
stalls為3,占總執(zhí)行周期數(shù)的百分比為1.48%。在采用定向技術(shù)后,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 建筑行業(yè)員工激勵方法總結(jié)
- 銀行市場營銷總結(jié)
- 食品行業(yè)行政后勤工作總結(jié)
- 地產(chǎn)行業(yè)銷售員工作總結(jié)
- 2024年秋八年級上冊新目標(biāo)英語全冊課文重難點講解
- 2024物業(yè)客服個人年終總結(jié)范文(35篇)
- 農(nóng)村小產(chǎn)權(quán)房購房合同(2篇)
- 《物權(quán)法草案》課件
- DB33T 2143-2018 森林撫育目標(biāo)樹選擇和密度控制技術(shù)規(guī)程
- 2025正規(guī)委托合同范文
- CSR法律法規(guī)及其他要求清單(RBA)2024.3
- T-ZJPA 002-2023 注射劑包裝密封性檢查 微生物挑戰(zhàn):浸入式暴露試驗要求
- 80四川省內(nèi)江市2023-2024學(xué)年八年級上學(xué)期期末考試歷史試題
- 民航空乘英語全套教學(xué)課件
- 2024奧數(shù)競賽5年級培訓(xùn)題-答案版
- 主題班會記錄表20篇
- 2024年北京通建信息系統(tǒng)有限公司招聘筆試參考題庫含答案解析
- 秦代建筑配色特征研究報告
- 安徽省建設(shè)工程工程量清單計價依據(jù)說明
- 冷庫安全操作規(guī)程培訓(xùn)
- 省級非急救醫(yī)療轉(zhuǎn)運管理規(guī)范
評論
0/150
提交評論