


版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、計算機系統(tǒng)結(jié)構(gòu)實驗報告一. 流水線中的相關(guān)實驗?zāi)康模?. 熟練掌握WinDLX莫擬器的操作和使用,熟悉 DLX旨令集結(jié)構(gòu)及其特點;2. 加深對計算機流水線基本概念的理解;3. 進(jìn)一步了解DLX基本流水線各段的功能以及基本操作;4. 加深對數(shù)據(jù)相關(guān)、結(jié)構(gòu)相關(guān)的理解,了解這兩類相關(guān)對CPI性能的影響;5. 了解解決數(shù)據(jù)相關(guān)的方法,掌握如何使用定向技術(shù)來減少數(shù)據(jù)相關(guān)帶來的暫停。 實驗平臺:Win DLX模 擬器實驗內(nèi)容和步驟:1. 用WinDLX模擬器執(zhí)行下列三個程序:求階乘程序fact.s求最大公倍數(shù)程序gcm.s求素數(shù)程序prim.s分別以步進(jìn)、連續(xù)、設(shè)置斷點的方式運行程序,觀察程序在流水線中的
2、執(zhí)行情況,觀察CPI中寄存器和存儲器的內(nèi)容。熟練掌握Win DLX勺操作和使用。2. 用WinDLX!行程序structure_d.s,通過模擬找出存在資源相關(guān)的指令對以及導(dǎo)致資源相關(guān)的部件;記錄由資源相關(guān)引起的暫停時鐘周期數(shù),計算暫停時鐘周期數(shù)占總執(zhí)行周期數(shù)的百分比;論述資源相關(guān)對 CPI性能的影響,討論解決資源相關(guān)的方法。3. 在不采用定向技術(shù)的情況下(去掉 Configuration 菜單中Enable Forwarding 選項前的勾 選符),用WinDLX!行程序data_d.s。記錄數(shù)據(jù)相關(guān)引起的暫停時鐘周期數(shù)以及程序執(zhí)行的 總時鐘周期數(shù),計算暫停時鐘周期數(shù)占總執(zhí)行周期數(shù)的百分比。
3、在采用定向技術(shù)的情況下(勾選Enable Forwarding ),用WinDLX再次運行程序data_d.&重復(fù)上述3中的工作,并計算采用定向技術(shù)后性能提高的倍數(shù)。1. 求階乘程序用WinDLX模擬器執(zhí)行求階乘程序fact.s。這個程序說明浮點指令的使用。該程序從標(biāo)準(zhǔn)輸入讀入一個整數(shù),求其階乘,然后將結(jié)果輸出。該程序中調(diào)用了input.s中的輸入子程序,這個子程序用于讀入正整數(shù)。實驗結(jié)果:在載入fact.s和input.s之后,不設(shè)置任何斷點運行。a不采用重新定向技術(shù),我們得到的結(jié)果Tot.ziL :出E Cj«le(s) executed.ID executed bji
4、145 Instructionh.Z Instructionfs currently iri Ppeine.Stalls:RAV etdlsc 53 (22.46 of dll Cycles)WAW stalls: a(100 of all CyclesStruciural 琥alls: n(o riox of all Cjnles)Control 茨日Is; Z5 (10.59 of all CjclesjT 卿 lUfc; 12(50瞬廿#1 Cycle?)To怙I: 90 SUIJ p8Ll 機 of all Cyclesb.采用定向技術(shù),我們得到的結(jié)果:Totil:215Cyck(sl
5、 executedID execited R145 In5truction(3)-2 lrKtnjctionsj currenlip in Pipeline.Stalls:RAVstails. 1 ? (7.91 of all Cycles, thereofLD 3tah;3n7.GofRAWtldls)Brrtth/Jump stalls: 3 17.G5 of RAW 黒創(chuàng)可Fbafrx) point state: 11 (G- 70X of RAW 泅由WAW stalls: 0 (O.OOS of all CyclesShuclural si a lb; 0 (mJOcF all Cy
6、clesControl stalls: 25 (11,63帶 of all Cycles)Trap stab: 12(5 58 of dl CyclesTotal; 54Stdl (25.12 of alcln)從上面的數(shù)據(jù)我們可以看出定向的作用:在定向技術(shù)存在的情況下Statistics窗口中的各種統(tǒng)計數(shù)字:總的周期數(shù)(215)和暫停數(shù)(17 RAW, 25 Control, 12 Trap; 54 Total)在定向技術(shù)不存在時候,控制暫停和Trap暫停仍然是同樣的值,而RAW 暫停從17變成了 53,總的模擬周期數(shù)增加到236。所以定向技術(shù)帶來的加速比:236 / 215 = 1.098
7、DLX forwarded 比 DLX not forwarded 快 9.8%。2數(shù)據(jù)相關(guān)先給出一個存在數(shù)據(jù)相關(guān)的程序:LHI R2, (A>>16) & OxFFFFADDUI R2, R2, A & OxFFFFLHI R3, (B>>16)&0xFFFFADDUI R3, R3, B&OxFFFFloop:LW R1,0 (R2)ADD R1, R1, R3SW 0(R2), R1LW R5, 0 (R1)ADDI R5, R5, #10ADDI R2, R2, #4SUB R4, R3, R2BNEZ R4, loopTRAP
8、#0A: .word 0, 4, 8, 12, 16, 20, 24, 28, 32, 36B: .word 9, 8, 7, 6, 5, 4, 3, 2, 1,0沒有采用定向技術(shù)時運行該程序:得到rotaJ:202 Ccle(3)匚曲創(chuàng)4d,ID BMSCuted by 85 Instmclionjsl2 I nstr uctio n(5)cu rrenllj in Pipeline.StaIls :RAW stalls: 104- (51.of all Cycles) WAW stalls: 0 (0.00 °F all Cycle?) Structural stab: 0 (O
9、.OD of al 口匚le劇Control stalls: 3 4.46工 of al l Cpctes)T rap 狀剖第 3 (1.43 of dl Cyd?|Total: 116 Stalls |57.4K of all Cycles程序執(zhí)行了 202個周期,10個數(shù)據(jù)相關(guān)引起的時鐘周期RAW stall為104個。暫停時鐘周期數(shù)占總執(zhí)行周期數(shù)的百分比=51.48%采用定向技術(shù)時運行該程序:得到Total:12BCcle(s) executed.ID esecuted by B5 Irstfuctionfs).lnstruchQn(3)current in Pipeline.Stall
10、s;RAW ztals: 30 (23.44£ of allthereof:LO stalls: 20 (6S.67oF H閉V 曲闊BranehZJ ump stalls: 1 0 132.32 of RAW stalls Floating point stalls: 0 J.00 of RAW Etalls)WAV/ stalls: |0 0(1 of all Cycle?)Structural stalls:匚(0.00 of all Cycles)Control stalls: 9 (7。炎 of all Cycles)Trap stalk;;匸34玄 of all Cycl
11、e?)ToUl: 42Stalls) (32.61cf all Cycles)程序執(zhí)行了 128個周期,共有6個數(shù)據(jù)相關(guān)引起的時鐘周期RAW stall為30個。暫停時鐘周期數(shù)占總執(zhí)行周期數(shù)的百分比=23.44%1.57 倍??梢娡ㄟ^定向技術(shù),減少了數(shù)據(jù)相關(guān),縮短了程序的執(zhí)行周期,整個性能為原來的3結(jié)構(gòu)相關(guān) 下面這段程序存在結(jié)構(gòu)相關(guān)ADDI R5, R5, 1SUBI R4, R4, 1AND R3, R3, R3XOR R7, R7, R7ADDI R8, R8, 1ADDI R9, R9, 1MULT R1,R5,R4MULT R2,R3,R7執(zhí)行之后得到的 clock cycle pro
12、grame柑.口 J Je rFjTj?adcirS.Odddiiy/U.Udmut rl5.iZvukrirl.r?卜 | ID"I m 晟Statistics:2ZJ.;20utfUGidID executed by 1lns(MGori(s|b5 lr)ftruct>an(¥j gum前費 in Pipeline,Stalle:RAW 試衛(wèi)黑 0 |0.00 of al CycleJy theieoLLD stalls: 0 (OLOOSJ cf RAW stalkErarichAJimrip 吻mils: HDD殳 of RAW* 址mil到Floatrig
13、point stalls (0.00 of RAW Stals)WAV/ stalls: 0 (0,00 of all CydesIStruclmd alk 4 20.00% of all Cycles)Cbnfrd 刖辰 0 0 00 of all CyclesTrap sJalls: 0(0.00玄 of all CyclesTotal: 4 Stalljsj (23.00 of all CcleJ可見1個結(jié)構(gòu)相關(guān)引起了4個stall,占總共20個CYCLE的20%為了避免結(jié)構(gòu)相關(guān),可以考慮采用資源重復(fù)的方法,比如,在流水線機器中設(shè)置相互獨立的指令存儲器和數(shù)據(jù)存儲器,也可以將CACHE分割
14、成指令CACHE和數(shù)據(jù)CACHE。二. 循環(huán)展開及指令調(diào)度實驗?zāi)康模?. 加深對循環(huán)級并行性、指令調(diào)度技術(shù)、循環(huán)展開技術(shù)以及寄存器換名技術(shù)的理解;2. 熟悉用指令調(diào)度技術(shù)來解決流水線中的數(shù)據(jù)相關(guān)的方法;3. 了解循環(huán)展開、指令調(diào)度等技術(shù)對CPI性能的改進(jìn)。實驗平臺:WinDLX模擬器實驗內(nèi)容和步驟:1 用指令調(diào)度技術(shù)解決流水線中的結(jié)構(gòu)相關(guān)與數(shù)據(jù)相關(guān)(1 )用DLX匯編語言編寫代碼文件*.s,程序中應(yīng)包括數(shù)據(jù)相關(guān)與結(jié)構(gòu)相關(guān)(假設(shè):加法、 乘法、除法部件各有2個,延遲時間都是3個時鐘周期)(2) 通過Configuration菜單中的Floating point stages ”選項,把加法、乘法
15、、除法部件的 個數(shù)設(shè)置為2個,把延遲都設(shè)置為3個時鐘周期;(3) 用如"DLX運行程序。記錄程序執(zhí)行過程中各種相關(guān)發(fā)生的次數(shù)、發(fā)生相關(guān)的指令組 合,以及程序執(zhí)行的總時鐘周期數(shù);(4) 采用指令調(diào)度技術(shù)對程序進(jìn)行指令調(diào)度,消除相關(guān);(5運行調(diào)度后的程序,觀察程序在流水線中的執(zhí)行情況,記錄程序執(zhí)行的總時鐘周期數(shù);(6)根據(jù)記錄結(jié)果,比較調(diào)度前和調(diào)度后的性能。論述指令調(diào)度對于提高 CPU性能的意義。2. 用循環(huán)展開、寄存器換名以及指令調(diào)度提高性能(1 )用DLX匯編語言編寫代碼文件*.s,程序中包含一個循環(huán)次數(shù)為 4的整數(shù)倍的簡單循環(huán);(2運行該程序。記錄執(zhí)行過程中各種相關(guān)發(fā)生的次數(shù)以及程
16、序執(zhí)行的總時鐘 周期數(shù);(3)將循環(huán)展開3次,將4個循環(huán)體組成的代碼代替原來的循環(huán)體,并對程序做相應(yīng)的修改。然后對新的循環(huán)體進(jìn)行寄存器換名和指令調(diào)度;(4運行修改后的程序,記錄執(zhí)行過程中各種相關(guān)發(fā)生的次數(shù)以及程序執(zhí)行的 總時鐘周期數(shù);(5)根據(jù)記錄結(jié)果,比較循環(huán)展開、指令調(diào)度前后的性能。3)存在相關(guān)的程序1指令調(diào)度:首先,通過 Configuration菜單中的 白o(hù)ating point stages"選項,把除法單元數(shù)設(shè)置為 3,把 加法、乘法、除法的延遲設(shè)置為3個時鐘周期。給出調(diào)度前的程序 sch_bef:.data.global ONEONE: .word 1.text.gl
17、obal mai nmain:lf f1,ONE ;turn divf into a movecvti2f f7,f1 ;by stori ng in f7 1 innop ;float in g-po int formatdivf f1,f8,f7 ;move Y=(f8) into f1divf f2,f9,f7 ;move Z=(f9) into f2addf f3,f1,f2divf f10,f3,f7 ;move f3 into X=(f10)divf f4,f11,f7 ;move B=(f11) into f4divf f5,f12,f7 ;move C=(f12) into f
18、5multf f6,f4,f5divf f13,f6,f7 ;move f6 into A=(f13)Fi nish:trap 0運行之后可以得到結(jié)果:Total:27executed.ID wsciJed by 12 ln$buctiori(l2 lnr£truclion(s) cureritlp in Pipeline.tells:RAW stalls: 9 33.33 M aJI Cycles, thereof:LD stalls: 1 (ll.inor RAW stalk Branch/Jump stalls: 0 (0.00 aF RAW stallsFloating po
19、int st dis: S (100.00 of RAW stalls) WAW stab: 0 (0.00 of all Cycles)S tructural 曲紙 0 (D.OOZ of all Cycles) Control stalls: 0 (0 00 of all Cjjde$|Trap stale; 7 (25.32% of el Cycles)Total: 16 Stales (E9 of dl Cycles)調(diào)度之后的程序sch_aft:.data.global ONE ONE: .word 1 .text .global mai n main: lf f1,ONE ;tur
20、n divf into a move cvti2f f7,f1 ;by stori ng in f7 1 in nop ;float in g-po int format divf f1,f8,f7 ;move Y=(f8) into f1 divf f2,f9,f7 ;move Z=(f9) into f2 divf f4,f11,f7 ;move B=(f11) into f4 divf f5,f12,f7 ;move C=(f12) into f5 addf f3,f1,f2 multf f6,f4,f5 divf f10,f3,f7 ;move f3 into X=(f10) divf
21、 f13,f6,f7 ;move f6 into A=(f13) Fi nish: trap 0運行之后得到:Ictal:2 Cydefs) eeGuhd.ID esiecUted by 121 ristruGtionfs,2 lrtEhuGlion(sj Gorent in Pipeline.Stalls;RA.W:stTk: 2 (14.2S龍 ot all Cycles), thereof: LD stalls: 1 (33.33 of RAW stalls BrcrcIVJurnp wtals; 0 (0.00 nt RAW stals Floating point stalls; 2
22、 (56.67 of RAW 京dh)U/AW stalls: 0 ( 00 of all Cycles Structural stalls: 0 (0,00筆 of all Cycles Control stalls: 0 0.005J of al Cycles)T rap g矗:6 (28i57S of ( C屈詢 Total; 9 Gtals)(42of all Qyctes可以看出經(jīng)過調(diào)度之后運行周期從27減少到21,而且減少了相關(guān)。2循環(huán)展開:循環(huán)展開前的程序:LHIR2, (A>>16) &0xFFFFADDUIR2, R2, A&0xFFFFLHIR3
23、, (B>>16) &0xFFFFADDUIR3, R3, B&0xFFFFADDUR4, R0, R3NOPloop:SUBIR4, R4, #8SUBR5, R4, R2BNEZR5, loopTRAP#0A:.double 1,2, 3, 4B:.double 1,2, 3, 4運行結(jié)果: | n Total:和 口曲計 餡時收d-ID executed by 19 Instrucliors)2 Iristfuctionfs cuirantl in PipelineHardware centlguTation:Wemcr size: 327G0 Bptes h
24、ddEXkges: 1 requirerl 匚clles: Z fnulE冷$倚鳥誹;1 j rquird Cycles; 5 fd vF過工匕qi- ' . rpqi jirdyT-” 一 匚 Forwarding enabled.Stalls;RAW 泅尿 4 (13.33 of all Cycles, thereofLD ctah: 0(0 OIK tif HAW rtahBronchXJump stalls: 4(100 00% of RAW stalls) Floating paint stJIs; 0 (0.00 of RAW stalsVAW stalk 0 (O.m o
25、f all Cyclles)Structural stalls: 0(p.00% of all Cycles Corlrol 注罠 3 (10.00 of el Trap stalls- 3 卩 0.003J of al Cycles) Total-10 St出劇33.33Z af all Qides)循環(huán)展開后的程序:LHIR2, (A>>16 )& OxFFFFADDUIR2,R2, A&OxFFFFLHIR3,(B>>16) &0xFFFFADDUIR3,R3, B&0xFFFFADDUR4,RO, R3SUBIR4,R4, #8SUBIR4,R4, #8SUBIR4,R4, #8
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 實驗設(shè)備租賃合同
- 透明彩鋼瓦采購合同協(xié)議
- 軟包定制工程合同協(xié)議
- 連鎖酒店經(jīng)營合同協(xié)議
- 買方土地居間合同協(xié)議合同書
- 法律知識產(chǎn)權(quán)法試題集
- 路基路面檢測合同協(xié)議
- 道具修繕費合同協(xié)議
- 邯鄲拆遷協(xié)議書范本
- 日劇戀愛協(xié)議書
- 炊事人員考試題及答案
- 社會主義發(fā)展簡史智慧樹知到課后章節(jié)答案2023年下北方工業(yè)大學(xué)
- 建筑工程質(zhì)量檢測課件
- 計算機網(wǎng)絡(luò)的畢業(yè)設(shè)計(5篇)
- 溫泉度假設(shè)施造價預(yù)算
- 青少年創(chuàng)意編程試題
- RULES OF ORIGIN 原產(chǎn)地規(guī)則
- 國內(nèi)旅游出團(tuán)通知書(新版)
- LETTEROFINTENTION意向書范本
- 國內(nèi)各航空公司差異化服務(wù)
- 國家開放大學(xué)《管理英語3》章節(jié)測試參考答案
評論
0/150
提交評論