




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、計算機系統(tǒng)結(jié)構(gòu)課內(nèi)實驗實驗報告班級:計算機01姓名:陳世陽學(xué)號:10055008日期:2013.5.10一、實驗?zāi)康募耙?. 熟練掌握WinDLX模擬器的操作和使用,熟悉DLX指令集結(jié)構(gòu)及其特點;2. 加深對計算機流水線基本概念的理解; 3. 進(jìn)一步了解DLX基本流水線各段的功能以及基本操作; 4. 加深對數(shù)據(jù)相關(guān)、結(jié)構(gòu)相關(guān)的理解,了解這兩類相關(guān)對CPU性能的影響; 5. 了解解決數(shù)據(jù)相關(guān)的方法,掌握如何使用定向技術(shù)來減少數(shù)據(jù)相關(guān)帶來的暫停。二、實驗環(huán)境WinDLX模擬器三、實驗內(nèi)容1. 用WinDLX模擬器執(zhí)行下列三個程序(任選一個):l 求階乘程序fact.sl 求最大公倍數(shù)程序gcm.
2、sl 求素數(shù)程序prim.s分別以步進(jìn)、連續(xù)、設(shè)置斷點的方式運行程序,觀察程序在流水線中的執(zhí)行情況,觀察CPU中寄存器和存儲器的內(nèi)容。熟練掌握WinDLX的操作和使用。注意:fact.s中調(diào)用了input.s中的輸入子程序。load程序時,要兩個程序一起裝入(都select后再點擊load)。gcm.s也是如此。2. 用WinDLX運行程序structure_d.s,通過模擬:l 找出存在結(jié)構(gòu)相關(guān)的指令對以及導(dǎo)致結(jié)構(gòu)相關(guān)的部件;l 記錄由結(jié)構(gòu)相關(guān)引起的暫停時鐘周期數(shù),計算暫停時鐘周期數(shù)占總執(zhí)行周期數(shù)的百分比;l 論述結(jié)構(gòu)相關(guān)對CPU性能的影響,討論解決結(jié)構(gòu)相關(guān)的方法。3. 在不采用定向技術(shù)的情
3、況下(去掉Configuration菜單中Enable Forwarding選項前的勾選符),用WinDLX運行程序data_d.s。記錄數(shù)據(jù)相關(guān)引起的暫停時鐘周期數(shù)以及程序執(zhí)行的總時鐘周期數(shù),計算暫停時鐘周期數(shù)占總執(zhí)行周期數(shù)的百分比。4. 在采用定向技術(shù)的情況下(勾選Enable Forwarding),用WinDLX再次運行程序data_d.s。重復(fù)上述3中的工作,并計算采用定向技術(shù)后性能提高的倍數(shù)。4、 實驗步驟及結(jié)果1. (1)用winDLX執(zhí)行求最大公倍數(shù)程序 gcm.s:File->load code or data->分別選中g(shù)cm.s和input.s->sel
4、ect.(2)首先直接運行整個程序(enable forwarding),execute->run(或按F5)例如,輸入如下:求得的結(jié)果為 gcm =7,顯然,這是正確的。(3)再來看此時statistics欄和register欄的情況。如下圖:從statistics 可以看出共執(zhí)行了147個cycle,共有64個沖突(43.54%)。其中有32個RAW stall,5個LD stall。再來看Register,這里我們主要關(guān)注的是R1,R2和R14.R1,R2的內(nèi)容是7,,R14的內(nèi)容是1028,分析代碼我們可以發(fā)現(xiàn),這是采用輾轉(zhuǎn)相減法來求最大公約數(shù)的。代碼中有兩個循環(huán)體,一個是(R1
5、)-(R2),一個是(R2)-(R1),循環(huán)的終止條件是R1=R2.求7和21的終止條件則是R1中的值和R2中的值是7,此時我們要求的結(jié)果就在R1或R2中。并且我們將結(jié)果存入內(nèi)存中,內(nèi)存地址為0X00001028,這個地址存放在R14中。做這個實驗主要是為了熟悉WinDXL軟件的使用方法和分析statistics結(jié)果及Register的內(nèi)容。2. 用WinDLX運行程序structure_d.s(enable forwarding)找出引起結(jié)構(gòu)相關(guān)的指令和部件:(1) 代碼中存在最多的是IF和ID部件引起的結(jié)構(gòu)沖突,因為上一條指令一直占據(jù)著IF或ID而導(dǎo)致下一條指令遲遲無法進(jìn)入流水線和進(jìn)入ID
6、,我認(rèn)為這是一種結(jié)構(gòu)相關(guān)引起的沖突。如下圖:又如以下兩條指令:不僅有RAW沖突,還有ID和fddEX部件上的結(jié)構(gòu)沖突。通過手?jǐn)?shù),發(fā)現(xiàn)一共存在9個cycle由于結(jié)構(gòu)相關(guān)引起的stall。一共執(zhí)行了139cycles,共占6.47%。解決結(jié)構(gòu)相關(guān)最直接的方法就是部件冗余技術(shù)。另一種方法是進(jìn)行指令調(diào)度。指令調(diào)度的方法在下一個小實驗中會用到。3.在不采用定向技術(shù)的情況下(去掉Configuration菜單中Enable Forwarding選項前的勾選符),用WinDLX運行程序data_d.s。執(zhí)行的結(jié)果如下:由于數(shù)據(jù)相關(guān)引起的stall為104個cycles,總cycle數(shù)為202.共占51.48
7、%。采用定向技術(shù)后(勾選Enable Forwarding),明顯地發(fā)現(xiàn),數(shù)據(jù)相關(guān)引起的stall減少了,只有30個,占23.44%。導(dǎo)致total cycles 也減少為128.性能提高為原來的202/128=1.578倍。4. 我自己編寫了一個test.s的代碼。代碼比較短,直接分析如下:multff10,f0,f2subdf10,f4,f6/這兩條間存在WAWmultff6,f8,f14adddf10,f4,f6/這兩條間存在RAWaddir1,r0,#32/給r1初值32.用來作循環(huán)計數(shù)變量Loop:lff0,0(r1)/把r1指向的內(nèi)存單元的值送給f0adddf4,f0,f2/跟上一
8、條存在RAW沖突sd0(r1),f4/跟上一條存在RAW沖突addir1,r1,#-8/r1自減 每次減8bnezr1,Loop/判斷循環(huán)是否終止trap0(1) 首先在不使用定向技術(shù),只有一個加法器,一個乘法器下,執(zhí)行這一程序:基本statistics如下:可以看到共執(zhí)行了74 cycles,26條指令,一共47個stalls,37個RAW stalls,4個WAW stalls,沒有結(jié)構(gòu)沖突,3個控制沖突(因為循環(huán)執(zhí)行了4次,第一次為必執(zhí)行)。現(xiàn)在來看采用了定向技術(shù)后對性能的影響:可以知道性能提高了1.37倍。再來對代碼進(jìn)行循環(huán)展開和指令調(diào)度。4次循環(huán)完全展開,并進(jìn)行指令調(diào)度如下:mult
9、ff10,f0,f2subdf10,f4,f6multff6,f8,f14adddf10,f4,f6addir1,r0,#32Loop:lff0,0(r1)lff6,-8(r1)lff10,-16(r1)lff14,-24(r1)adddf4,f0,f2adddf8,f6,f2adddf12,f10,f2adddf16,f14,f2sd0(r1),f4sd-8(r1),f8addir1,r1,#-32sd16(r1),f12bnezr1,Loopsd8(r1),f16trap0在不采用定向技術(shù)下,執(zhí)行的結(jié)果如下:可以看出,優(yōu)化后,數(shù)據(jù)沖突引起的停頓已經(jīng)大幅度減少,但是引入了新的沖突-結(jié)構(gòu)沖突。
10、這是循環(huán)展開和指令調(diào)度的帶價:將幾條性質(zhì)相同的指令連續(xù)執(zhí)行,必然要求有幾套重復(fù)的部件。性能提高了 74/43=1.72倍。采用了定向技術(shù)后:性能提高了74/37=2倍。五、總結(jié)1.通過本次試驗,我對于DLX仿真平臺和DLX指令有了一定程度的認(rèn)識,基本上能夠讀懂DLX編寫的程序。2,進(jìn)一步掌握和鞏固了流水線的基本知識,加深了對數(shù)據(jù)相關(guān)和結(jié)構(gòu)相關(guān)的理解。同時通過觀察實驗數(shù)據(jù),對流水線的沖突和解決沖突的方法有了更深入的認(rèn)識,當(dāng)出現(xiàn)沖突時,對指令進(jìn)行調(diào)度是一個比較好的解決方法。3.加強了在編程時,數(shù)據(jù)間相關(guān)性的意識,不自覺就想盡量讓寫的程序中相關(guān)性少點。七、附錄(源程序清單)Test.smultff10,f0,f2subdf10,f4,f6multff6,f8,f14adddf10,f4,f6addir1,r0,#32Loop:lff0,0(r1)adddf4,f0,f2sd0(r1),f4addir1,r1,#-8bnezr1,Looptrap0*Test2.smultff10,f0,f2subdf10,f4,f6multff6,f8,f14adddf10,f4,f6addir1,r0,#32Loop:lff0,
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- DB32/T 3761.52-2022新型冠狀病毒肺炎疫情防控技術(shù)規(guī)范第52部分:方艙醫(yī)院
- DB31/T 669-2012固體廢棄物水上集裝化運輸通用要求
- DB31/T 1305-2021未成年人家庭監(jiān)護能力評估指南
- DB31/T 1223-2020一次性食品安全封簽管理技術(shù)規(guī)范
- DB31/T 1153-2019醫(yī)療機構(gòu)卓越績效評價準(zhǔn)則
- 2024年特種加工機床資金籌措計劃書代可行性研究報告
- 2024年生物醫(yī)用陶瓷材料項目資金申請報告代可行性研究報告
- 2025年Web考試復(fù)習(xí)技巧試題及答案
- 2024年牛排項目資金需求報告代可行性研究報告
- 建筑機器人抹灰施工環(huán)保責(zé)任合同
- 吉林省長春市2024年中考語文真題試卷【附真題答案】
- DZ/T 0462.3-2023 礦產(chǎn)資源“三率”指標(biāo)要求 第3部分:鐵、錳、鉻、釩、鈦(正式版)
- 梧州喜得寶礦業(yè)有限公司廣西梧州市金山頂金銀礦礦山地質(zhì)環(huán)境保護與土地復(fù)墾方案
- 2024年職業(yè)衛(wèi)生技術(shù)人員評價方向考試題庫附答案
- 安全管理之肉制品安全及防控措施
- 綠色算力基礎(chǔ)設(shè)施的能源與算力協(xié)同優(yōu)化
- 中小學(xué)學(xué)生規(guī)范漢字書寫比賽硬筆格式
- 商品房買賣合同(示范文本)GF-2000-0171
- 手機制造行業(yè)未來五至十年行業(yè)分析
- 2024版社工(初級)《社會工作實務(wù)(初級)》考試題庫(含答案)
- 腰痛中醫(yī)診療規(guī)范診療指南2023版
評論
0/150
提交評論