




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告.流水線中的相關(guān)實(shí)驗(yàn)?zāi)康模?.熟練掌握WinDLX擬器的操作和使用,熟悉DLX旨令集結(jié)構(gòu)及其特點(diǎn);2.加深對(duì)計(jì)算機(jī)流水線根本概念的理解;3.進(jìn)一步了解DLXi本流水線各段的功能以及根本操作;4.加深對(duì)數(shù)據(jù)相關(guān)、結(jié)構(gòu)相關(guān)的理解,了解這兩類相關(guān)對(duì)CPtfc能的影響;5.了解解決數(shù)據(jù)相關(guān)的方法,掌握如何使用定向技術(shù)來(lái)減少數(shù)據(jù)相關(guān)帶來(lái)的暫停。 實(shí)驗(yàn)平臺(tái):WinDLX莫擬器實(shí)驗(yàn)內(nèi)容和步驟:1.用WinDLX莫擬器執(zhí)行以下三個(gè)程序:求階乘程序fact.s求最大公倍數(shù)程序gcm.s求素?cái)?shù)程序prim.s分別以步進(jìn)、連續(xù)、設(shè)置斷點(diǎn)的方式運(yùn)行程序,觀察程序在流水線中的執(zhí)行情況,觀察CP驢存
2、放器和存儲(chǔ)器的內(nèi)容。熟練掌握WinDLX勺操作和使用。2.用WinDL炬行程序structure_d.s,通過(guò)模擬找出存在資源相關(guān)的指令對(duì)以及導(dǎo)致資源相關(guān)的部件;記錄由資源相關(guān)引起的暫停時(shí)鐘周期數(shù),計(jì)算暫停時(shí)鐘周期數(shù)占總執(zhí)行周期數(shù)的百分比;論述資源相關(guān)對(duì)CP畦能的影響,討論解決資源相關(guān)的方法。3.在不采用定向技術(shù)的情況下去掉Configuration菜單中Enable Forwarding選項(xiàng)前的勾選符,用WinDL/行程序data_d.s。記錄數(shù)據(jù)相關(guān)引起的暫停時(shí)鐘周期數(shù)以及程序執(zhí)行的 總時(shí)鐘周期數(shù),計(jì)算暫停時(shí)鐘周期數(shù)占總執(zhí)行周期數(shù)的百分比。在采用定向技術(shù)的情況下勾選Enable Forwa
3、rding ,用WinDLX再次運(yùn)行程序data_d.s。重復(fù)上述3中的工作,并計(jì)算采用定向技術(shù)后性能提高的倍數(shù)。1.1.求階乘程序用WinDLX模擬器執(zhí)行求階乘程序fact.s。這個(gè)程序說(shuō)明浮點(diǎn)指令的使用。該程序從標(biāo)準(zhǔn)輸入讀入一個(gè)整數(shù),求其階乘,然后將結(jié)果輸出。該程序中調(diào)用了input.s中的輸入子程序,這個(gè)子程序用于讀入正整數(shù)。實(shí)驗(yàn)結(jié)果:在載入fact.s和input.s之后,不設(shè)置任何斷點(diǎn)運(yùn)行。a不采用重新定向技術(shù),我們得到的結(jié)果Total:236 Cycle$ executed.ID executed by 145 In曲uctioM匐.2 In或ruction司currently i
4、n Pipeline.Stalls:RAW漏II*: 5322.4牌of dl Cycles)WAW stalls: 0 (0 00 of all Ccle?)Structural stalk 0 (OLDO of all QJCIBS)Control stah: 25 (1(159% of dl CdesjTrap stal 12 (5L08 of all Cycles)Total: 90 Stall國(guó)(3814X of all Cycles)b.采用定向技術(shù),我們得到的結(jié)果:Total:215 Cycle(s) executed.ID executed b 145 In就ruction閏2
5、 Instruction(s) current in Pipeline.Stalls:RAW stalk 1 ? (/.91 cf all Cycles), thereof:LD stalls: 3 (17.65X af RAW stallsBranch/Jump stall散3 (17E5藝of RAW就戒Floating point stalls: 11 (64.70X of RAWWAW stalls: 0(0.00 of all Cycles)Structural就ellw 0 0.00 of all以I閔Control stalk: 25 (11.63 oJ all CycledTr
6、ap stalk: 12 (5.58 of al CyclesTotal: 54 SUll(s) 25.12 of all Qdet)從上面的數(shù)據(jù)我們可以看出定向的作用:在定向技術(shù)存在的情況下Statistics窗口中的各種統(tǒng)計(jì)數(shù)字:總的周期數(shù)(215)和暫停數(shù)(17 RAW, 25 Control, 12 Trap; 54 Total)在定向技術(shù)不存在時(shí)候,控制暫停和Trap暫停仍然是同樣的值,而RAW暫停從17變成了53,總的模擬周期數(shù)增加到236。所以定向技術(shù)帶來(lái)的加速比:236 / 215 = 1.098DLXforwarded比DLXnot forwarded快9.8%。2.2.數(shù)據(jù)
7、相關(guān)先給出一個(gè)存在數(shù)據(jù)相關(guān)的程序:LHI R2, (A16) & 0 xFFFFADDUI R2, R2, A & 0 xFFFFLHI R3, (B16)&0 xFFFFADDUI R3, R3, B&0 xFFFFloop: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 #0A: .word 0, 4, 8, 12, 16, 20, 24, 28, 32, 36B: .word 9
8、, 8, 7, 6, 5, 4, 3, 2, 1,0沒(méi)有采用定向技術(shù)時(shí)運(yùn)行該程序:得到Fatal:202 Cicle($) executed.ID execLJled by EI5 Instruction(s).2 lnstruction(s currently in Pipeline.StalIs:RAW stalls: 104 (51 of g CyclesWAW stalls: 0 (0. 00 of all CyclesSUucUral stalls: 0 (J.OO of all Cycles)Control stalls: 9 (4 4GSf of al Cycles)Trap s
9、talls: 3 1.48% of all CyclesT otd: 11E; Stall(s) (57.42 of all Cycles程序執(zhí)行了202個(gè)周期,10個(gè)數(shù)據(jù)相關(guān)引起的時(shí)鐘周期RAW stall為104個(gè)。暫停時(shí)鐘周期數(shù)占總執(zhí)行周期數(shù)的百分比=51.48%采用定向技術(shù)時(shí)運(yùn)行該程序:得到Total:128 Cycl&(s| executed.ID executed by 85 Instructionft2 ln$hu曲origj currently in Pipeline.Stalls:RAW stalls: 30 23.44卷of al Cycles), thereof:
10、LD ttals: 20 6E67藝of RAW st刑Bianch/Jump stalls 1033.3凝of RAW stallsFloating point stals: 0 (0 00% of RAW血IlsWAW stalls: 0 0 00 of all Cycles)Structural stale: 0 (0.00% of all Cycles)Control stalls: 9 7 03% of all Cycles)Trap砒dh: 3 (2.34 oJ all CyclesTotal: 42 Stalls (32.91 % of al Cycles)程序執(zhí)行了128個(gè)周期
11、,共有6個(gè)數(shù)據(jù)相關(guān)引起的時(shí)鐘周期RAW stall為30個(gè)。暫停時(shí)鐘周期數(shù)占總執(zhí)行周期數(shù)的百分比=23.44%可見(jiàn)通過(guò)定向技術(shù),減少了數(shù)據(jù)相關(guān),縮短了程序的執(zhí)行周期,整個(gè)性能為原來(lái)的1.57倍。3.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 programeIrBlrucliare!:崩 | 也 | 一口 | | 一舊I小I一日I一I小I一I丐I七
12、I一,I $ I丐II;I衛(wèi)IL IIIIIIIIIIIIIIIIIIIaddi r5j5j&!-匚匚匚Iubir4jW :|_ IF | I。MEM | /andr3j3j3:|F | ID | int: | MEM | 3,HDFr7j7j?;| IF | ID MEH |皿 |liaddi r航1:| IF | ID | ini|MEM |W |addi占航1: IF | It) | inX | MEM |巡白!mJtrl站H IF ID|ImulE網(wǎng)1J| MEH W廠mJ r2j3j?:| IF|_ 心I$閉 IEU避1j MEM | WEStatistics:1口tail
13、:20 Cycle($) eKecuted.ID executed by 14 Instructior(s).5 In就ructicirtB currently in Pipeline.Stalls:RAW就前堂0 (0.00 of JI Cycles, thereof:LD迥臨0 (0 00 of RAW敏a岫BranchAJump stJIs: 0 (Cl.Cl維of RAW stallsFloating point stals: 0 (0.00% of RAW stallsWAW stalls: 0 (0 00 of alll CyclesStructural stalls: 4 (2C
14、LOO% of all Cycles)_ iDntrol stalk: 0皿00X of all Cycles)I rap就alls: 0 (0 005; of all Cycles)T Qtal: 4 Sla峋(2(100您of al Cycles)可見(jiàn)1個(gè)結(jié)構(gòu)相關(guān)引起了4個(gè)stall,占總共20個(gè)CYCLE的20%為了防止結(jié)構(gòu)相關(guān),可以考慮采用資源重復(fù)的方法,比方,在流水線機(jī)器中設(shè)置相互獨(dú)立的指令存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器,也可以將CACHE分割成指令CACHE和數(shù)據(jù)CACHE。二.循環(huán)展開(kāi)及指令調(diào)度實(shí)驗(yàn)?zāi)康模?.加深對(duì)循環(huán)級(jí)并行性、指令調(diào)度技術(shù)、循環(huán)展開(kāi)技術(shù)以及存放器換名技術(shù)的理解;2.熟悉用指
15、令調(diào)度技術(shù)來(lái)解決流水線中的數(shù)據(jù)相關(guān)的方法;3.了解循環(huán)展開(kāi)、指令調(diào)度等技術(shù)對(duì)CPIB能的改良。實(shí)驗(yàn)平臺(tái):WinDLX模擬器實(shí)驗(yàn)內(nèi)容和步驟:1.用指令調(diào)度技術(shù)解決流水線中的結(jié)構(gòu)相關(guān)與數(shù)據(jù)相關(guān)(1)用DLX匯編語(yǔ)言編寫代碼文件*.s,程序中應(yīng)包括數(shù)據(jù)相關(guān)與結(jié)構(gòu)相關(guān)(假設(shè):加法、乘法、除法部件各有2個(gè),延退時(shí)間都是3個(gè)時(shí)鐘周期)(2)通過(guò) ConfigurationConfiguration 菜單中的 FloatingFloating pointpoint stageSstageS 選項(xiàng),把加法、乘法、除法部件的個(gè)數(shù)設(shè)置為2個(gè),把延退都設(shè)置為3個(gè)時(shí)鐘周期;(3)用WinDLX運(yùn)行程序。記錄程序執(zhí)行過(guò)
16、程中各種相關(guān)發(fā)生的次數(shù)、發(fā)生相關(guān)的指令組合,以及程序執(zhí)行的總時(shí)鐘周期數(shù);(4)采用指令調(diào)度技術(shù)對(duì)程序進(jìn)行指令調(diào)度,消除相關(guān);(5)用WinDLX運(yùn)行調(diào)度后的程序,觀察程序在流水線中的執(zhí)行情況,記錄程序執(zhí)行的總時(shí)鐘周期數(shù);(6)根據(jù)記錄結(jié)果,比擬調(diào)度前和調(diào)度后的性能。 論述指令調(diào)度對(duì)于提高CPU性能的意義。2.用循環(huán)展開(kāi)、存放器換名以及指令調(diào)度提高性能(1)用DLX匯編語(yǔ)言編寫代碼文件*.s,程序中包含一個(gè)循環(huán)次數(shù)為4的整數(shù)倍的簡(jiǎn)單循環(huán);(2)用WinDLX運(yùn)行該程序。記錄執(zhí)行過(guò)程中各種相關(guān)發(fā)生的次數(shù)以及程序執(zhí)行的總時(shí)鐘周期數(shù);(3)將循環(huán)展開(kāi)3次,將4個(gè)循環(huán)體組成的代碼代替原來(lái)的循環(huán)體,并對(duì)程
17、序做相應(yīng)的修改。然后對(duì)新的循環(huán)體進(jìn)行存放器換名和指令調(diào)度;(4)用WinDLX運(yùn)行修改后的程序,記錄執(zhí)行過(guò)程中各種相關(guān)發(fā)生的次數(shù)以及程序執(zhí)行的總時(shí)鐘周期數(shù);(5)根據(jù)記錄結(jié)果,比擬循環(huán)展開(kāi)、指令調(diào)度前后的性能。3)3)存在相關(guān)的程序1.1.指令調(diào)度:首先,通過(guò)Configuration菜單中的Floating point stages選項(xiàng),把除法單元數(shù)設(shè)置為3,把加法、乘法、除法的延退設(shè)置為3個(gè)時(shí)鐘周期。給出調(diào)度前的程序sch_bef:.data.global ONEONE: .word 1.text.global mainmain:lf f1,ONE ;turn divf into a mo
18、vecvti2f f7,f1 ;by storing in f7 1 innop ;floating-point 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 f5multf f6,f4,f5divf f13,f6,f7 ;move f6 into A=(f1
19、3)Finish:trap 0運(yùn)行之后可以得到結(jié)果:TotalTotal: :27 Cicle(s) executed.IDID executedexecuted byby 1 12 lnshuction($._ lnstfuction|x currently in Pipelin已.Stalls:RAW褊卜:9 (33.33% of all Cyclesl thereof:LD stdk 1 (11 11tof RAW stalls)Brnch/Jump stalls: 0 tJ.COZ of RAW stalk)Floating point stals: B (100.00 of RAW
20、stallsWAW stls: 0 (0.00 of all Cycles)Structural褊Ik: Q (0.00V of al CycledControl stals: 0 (0.00% of all Cyde#)T rap stalls:7(25.92 of all CydesTotal: 16Stall(s) (59.26 of dl Cycles)調(diào)度之后的程序sch_aft:.data.global ONEONE: .word 1.text.global mainmain:lf f1,ONE ;turn divf into a movecvti2f f7,f1 ;by stor
21、ing in f7 1 innop floating-point formatdivf f1,f8,f7 ;move Y=(f8) into f1divf f2,f9,f7 ;move Z=(f9) into f2divf f4,f11,f7 ;move B=(f11) into f4divf f5,f12,f7 ;move C=(f12) into f5addf f3,f1,f2multf f6,f4,f5divf f10,f3,f7 ;move f3 into X=(f10)divf f13,f6,f7 ;move f6 into A=(f13)Finish:trap 0運(yùn)行之后得到:To
22、tal21 CVCIB(S) executed.ID executed by 12 Instruction($).2 Instruction(s) currently in Pipeline.StalIs:RAW stalls: 3 (14.28 of al Cvcles), lher?oJ:LD stalls: 1 (33 33 of RAW stalkBfanch/Jump stale: 0 (0.00% of RAW sialsFloating point s沽Ils: 2 (66.67 of RAW stalls)WAW stalls: 0 (0.00 all CyclesStiuct
23、ural stale 0 0.0口在of all Cycles)Control stalls: Cl (0.00 of all CyclesTrap state: 6 (29157X of all CydeTold: 9 Stdh) (42.BG% of all Cycles)可以看出經(jīng)過(guò)調(diào)度之后運(yùn)行周期從27減少到21,而且減少了相關(guān)。2.2.循環(huán)展開(kāi):循環(huán)展開(kāi)前的程序:LHI R2, (A16)&0 xFFFFADDUIR2, R2, A&0 xFFFFLHIR3, (B16)&0 xFFFFADDUIR3, R3, B&0 xFFFFADDUR4, R0,
24、 R3NOPloop:SUBIR4,R4, #8SUBR5,R4, R2BNEZ R5, loopTRAP#0A:.double 1,2, 3, 4B:.double 1,2, 3, 4運(yùn)行結(jié)果:Statistics- I ITotal:30 Cyclefs executed.ID executed 19 lndruclior(t).2 lnstructian($j currently in Pipeline,Hardware configuration:Memory size: 3276S BytesfaddEX-Stages: L required Cycles: 2 fmulEX-S t
25、apes: L required Cycles: 5 tdivEX-Stages: L required Cycles: 13 Forwardingenabled.Stalis:RAW stalls: 4 13 33% of all Cycles), thereof: LD stalls: 0(0. m of RAW stalls) BrarichZJump stalls: 4 100.00% d RAW slalhFloating point stals: 0 (0.00 of RAW steh)WAW shlls: 0 (O OQS: of ell CycledStructural stalls: 0 (0.00 of all CyclesControl stalk 3 10.00 of al Cycles)Trap sUlls: 3 (10L0OX of all Cycles)T otal: 1033.33 of al Cycles)循環(huán)展開(kāi)后的程序:LHIR2, (A16)&0 xFFFFADDUIR2, R2, A&0 xFFFFLHIR3, (B16)&0 xFFFFADDUIR3, R3, B&0 xFFFFADDUR4, R0, R3SUBIR4, R4, #8SUBIR4
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030天然化妝品行業(yè)市場(chǎng)發(fā)展分析及發(fā)展趨勢(shì)與投資研究報(bào)告
- 2025-2030國(guó)內(nèi)袋泡茶行業(yè)市場(chǎng)發(fā)展現(xiàn)狀及競(jìng)爭(zhēng)格局與投資前景研究報(bào)告
- 2025-2030國(guó)內(nèi)玻璃鋼門行業(yè)市場(chǎng)現(xiàn)狀供需分析及市場(chǎng)深度研究發(fā)展前景及規(guī)劃可行性分析研究報(bào)告
- 2025-2030國(guó)內(nèi)時(shí)尚期刊行業(yè)市場(chǎng)發(fā)展分析及發(fā)展前景與投資機(jī)會(huì)研究報(bào)告
- 2025年帆船教練職業(yè)能力考核試卷(帆船教練實(shí)習(xí)報(bào)告撰寫)
- 2025-2030醫(yī)用自動(dòng)配藥柜行業(yè)市場(chǎng)現(xiàn)狀供需分析及重點(diǎn)企業(yè)投資評(píng)估規(guī)劃分析研究報(bào)告
- 2025-2030農(nóng)貿(mào)電商平臺(tái)產(chǎn)業(yè)市場(chǎng)深度調(diào)研及發(fā)展趨勢(shì)與投資戰(zhàn)略研究報(bào)告
- 2025-2030內(nèi)存條行業(yè)市場(chǎng)發(fā)展分析及發(fā)展趨勢(shì)前景預(yù)測(cè)報(bào)告
- 2025-2030全球及中國(guó)聯(lián)網(wǎng)汽車服務(wù)行業(yè)市場(chǎng)現(xiàn)狀供需分析及市場(chǎng)深度研究發(fā)展前景及規(guī)劃可行性分析研究報(bào)告
- 2025年成人高等學(xué)校招生考試《語(yǔ)文》古典詩(shī)詞深度解析試題集
- 采購(gòu)需求預(yù)測(cè)與物料計(jì)劃
- 聽(tīng)力篩查疾病演示課件
- 第二章 新農(nóng)藥研究開(kāi)發(fā)的基本思路、途徑和方法課件
- 軟件工程師生涯人物訪談報(bào)告
- 硬件設(shè)計(jì)評(píng)審Checklist(含器件原理圖堆疊布局PCB-checklist)
- jgj180-2009建筑施工土石方工程安全技術(shù)規(guī)范
- 腦卒中高危風(fēng)險(xiǎn)篩查流程
- TPM培訓(xùn)講義課件
- 如何運(yùn)用ABC法則(銷售溝通)課件
- 建筑施工企業(yè)安全生產(chǎn)標(biāo)準(zhǔn)化自評(píng)表
- 楔狀缺損的修復(fù)課件
評(píng)論
0/150
提交評(píng)論