北郵計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)試驗(yàn)報(bào)告-試驗(yàn)一到五-WINDLX模擬器全解_第1頁(yè)
北郵計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)試驗(yàn)報(bào)告-試驗(yàn)一到五-WINDLX模擬器全解_第2頁(yè)
北郵計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)試驗(yàn)報(bào)告-試驗(yàn)一到五-WINDLX模擬器全解_第3頁(yè)
北郵計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)試驗(yàn)報(bào)告-試驗(yàn)一到五-WINDLX模擬器全解_第4頁(yè)
北郵計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)試驗(yàn)報(bào)告-試驗(yàn)一到五-WINDLX模擬器全解_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余35頁(yè)可下載查看

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、北京郵電大學(xué)實(shí)驗(yàn)報(bào)告課程名稱計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)計(jì)算機(jī)學(xué)院2016111303班王陳(2016110711)目錄實(shí)驗(yàn)一WINDLX模擬器安裝及使用3 實(shí)驗(yàn)準(zhǔn)備錯(cuò)誤!未定義書簽。 實(shí)驗(yàn)環(huán)境錯(cuò)誤!未定義書簽。 實(shí)驗(yàn)步驟錯(cuò)誤!未定義書簽。 實(shí)驗(yàn)內(nèi)容及要求錯(cuò)誤!未定義書簽。 實(shí)驗(yàn)過(guò)程錯(cuò)誤!未定義書簽。 實(shí)驗(yàn)總結(jié)8.實(shí)驗(yàn)二指令流水線相關(guān)性分析9 實(shí)驗(yàn)?zāi)康?9 實(shí)驗(yàn)環(huán)境.9 實(shí)驗(yàn)步驟.9 實(shí)驗(yàn)過(guò)程錯(cuò)誤!未定義書簽。 實(shí)驗(yàn)總結(jié)16實(shí)驗(yàn)三DLX處理器程序設(shè)計(jì)17 實(shí)驗(yàn)?zāi)康?.7 實(shí)驗(yàn)環(huán)境錯(cuò)誤!未定義書簽。 實(shí)驗(yàn)步驟錯(cuò)誤!未定義書簽。 實(shí)驗(yàn)過(guò)程17 .向量加法代碼及性能分析17 .雙精度浮點(diǎn)加法求和代碼及結(jié)果分析22

2、 實(shí)驗(yàn)總結(jié)26實(shí)驗(yàn)四代碼優(yōu)化27 實(shí)驗(yàn)?zāi)康?7 實(shí)驗(yàn)環(huán)境錯(cuò)誤!未定義書簽。 實(shí)驗(yàn)原理27 實(shí)驗(yàn)步驟錯(cuò)誤!未定義書簽。 實(shí)驗(yàn)過(guò)程27 實(shí)驗(yàn)總結(jié)+實(shí)習(xí)體會(huì)32實(shí)驗(yàn)五循環(huán)展開(kāi).32 實(shí)驗(yàn)?zāi)康?2 實(shí)驗(yàn)環(huán)境錯(cuò)誤!未定義書簽。 實(shí)驗(yàn)原理32 實(shí)驗(yàn)步驟錯(cuò)誤!未定義書簽。 實(shí)驗(yàn)過(guò)程32 陣乘程序代碼清單及注釋說(shuō)明32 關(guān)性分析結(jié)果38 加浮點(diǎn)運(yùn)算部件對(duì)性能的影響38 加forward部件對(duì)性能的影響38 移指令在轉(zhuǎn)移成功和轉(zhuǎn)移不成功時(shí)候的流水線開(kāi)銷38實(shí)驗(yàn)總結(jié)+實(shí)習(xí)體會(huì)+課程建議38實(shí)驗(yàn)一WINDLX模擬器安裝及使用WinDLX模擬器的結(jié)構(gòu)和功能說(shuō)明1 .點(diǎn)擊運(yùn)行之后,會(huì)看到一個(gè)如下圖所示的窗口它包括Reg

3、ister,Code,Pipeline,ClockCycleDiagram,Statistics,Breakpoints。接下來(lái)詳細(xì)介模擬器的結(jié)構(gòu)及各個(gè)部件的功能。2 .Register窗口介紹Rigister窗口中顯示的是各個(gè)寄存器的名稱及內(nèi)容。如下圖:5-WINCLX0ejndowExecuteMemory£onfiguratimE9sber=R.CTiPstrr曉i前的比皿1si-IHAR-0x00000000IR=OhOOOOOOOOQ0x00000000&HH=OhOODODODO日五OxOOOQOOOOBHI=OHOaOOOODOBTA-OkOOOOOOOOALU

4、=OhOODODODOALUHI-OxOOOOOOOOFPSR=OxOOOODODODMAR=0x00000000SDR=oxoaooooooSDRHI-OkOOOOOOOOLDR=aHOaOOOODOLDRHI-OmOOOOOOOORO=aHOOQOOODORI-0x00000000R2=DxD(lDODODaR3-OkOOOOOOOOR4=OxOODaDODOHS"OkOOOOOOOOK6=DhODOODOOQR7-0x00000000OkOOOOOOOOFD-0x00000000Fl*0x00000000F2=OkOOOOOODOF3-DkOOOOOOOOF4=OkOOOOOO

5、OOFB-DKaOOOOIDOOFE=0x00000000F7-aHQOOOQOOOFB=0x00000000F9-OkOOOOOOOOF10=OkOOOOOOOOFil-aaoDonoaoF12=OkOOOOOOOOF13*aaoDooiDooF14=OkOOOOOOOOF15SaxaoooooooFl6=OkOOOOOOOOF17-OhOODODODOF1S=OkOOOOOOOOF19-icOOOOOOOOF20=OkOOOOOOOOF21-»00000000F22=OkOOOOOOOOF23-5&789o12222233RRRRRRR00-00oooooooooo=u-

6、a-a=>=m=-=4567.6901=-=«=0246802466022222233024,.h-811111222223hfffffffdddddddddddddddd可以看到寄存器中以十六進(jìn)制標(biāo)識(shí),從上圖可以看出各個(gè)寄存器中的內(nèi)容3 .Code窗口介紹在沒(méi)有進(jìn)行任何執(zhí)行白時(shí)候,初次打開(kāi)code窗口,即為下圖所示弋WINDLXFileWindowExecuteMemoryConfiguration匚ode整Code-IISTEXTOwOOOOOOOOnop$TEXT+山40x00000000noptTEXT+0w80x00000000nopJTEXT+Oto0x000000

7、00nop$TEXT+C«1O0x00000000nopSTEXT+Oxl0x00000000nop$TEXT+0«180x00000000nopHEXT+0x1c0x00000000nop$TEXT+0«200x00000000nopHEXT+0x240x00000000nop窗口現(xiàn)實(shí)的信息是各個(gè)存儲(chǔ)器內(nèi)同。第一列標(biāo)識(shí)存儲(chǔ)器的地址;第二列是機(jī)器代碼,用16進(jìn)制表示;第三列是匯編指令。當(dāng)我們點(diǎn)擊上方的E/W圮,可以選擇單步或多步執(zhí)行(也可以使用快捷鍵F7或F8)。若選擇單步執(zhí)行,每按一次F7,指令執(zhí)行一次,可以看到,一次執(zhí)行的為IF->ID->intE

8、X->MEM->WB,沒(méi)執(zhí)行一次還有顏色的變化。顏色是用來(lái)標(biāo)識(shí)指令處于哪個(gè)流水段的,如下圖。Code燈EXTSTEXT+MOkOOOOOOOOQkOOOOOOOOnopnopItTEXT+OxS0x00000000WBnoptTEXF+OtoOkOOOOOOOOmemnop,ElDMlDniimmM$TEXT+0n140x00000000IDnopHEXT+0x130x00000000IFnop$TEXT+0k1c0x00000000nop$TEXT+0x200x00000000nopHEXT+0x240x00000000nop當(dāng)然,我們也可以使用多步執(zhí)行,按快捷鍵F8,選擇5步流

9、水,即可。4 .Pipeline窗口介紹通過(guò)I閱讀WinDLX模擬器說(shuō)明書可以知道,Pipeline窗口顯示的是DLX處理器的內(nèi)部結(jié)構(gòu)。窗口用下圖標(biāo)識(shí)DLX五段流水。當(dāng)然,如同Code窗口介紹講述的那樣,不同的顏色顯示了指令處于哪段流水線。使用快捷鍵F7單步執(zhí)行,可以明顯的看出,不同時(shí)候流水段執(zhí)行的不同指令。如下圖。圖片反映的正式與Code中所處的時(shí)刻相同的指令流水??梢郧逦吹讲煌魉螆?zhí)行的是哪條指令。5 .ClockCycleDiagram窗口實(shí)驗(yàn)準(zhǔn)備中我們已經(jīng)知道,該窗口顯示的是流水線的時(shí)空?qǐng)D。時(shí)空?qǐng)D反映的是不同時(shí)隙內(nèi)的運(yùn)行情況。如下圖。CkwzkDiagramInstructions

10、/Cyclesnopnopnopnopnopnopnop在我看來(lái),時(shí)空?qǐng)D是最好理解的。因?yàn)樗从车木褪橇魉蔚牟⑿谐潭?。在這個(gè)DLX模擬器中,并不存在一些數(shù)據(jù)或者控制上的沖突問(wèn)題。所以可以依靠上圖很清晰的看到指令所處的不同流水段,及指令執(zhí)行情況。該時(shí)空?qǐng)D同樣也是和前面的Code等相對(duì)應(yīng)。也可以通過(guò)快捷鍵F7來(lái)進(jìn)一步執(zhí)行指令,可以看到流水線時(shí)空?qǐng)D的擴(kuò)展情況。任意雙擊指令的一行,可以詳細(xì)看到不同流水段的情況。如下圖所示。6 .Statistics窗口介紹該窗口是對(duì)運(yùn)行程序中的數(shù)據(jù)進(jìn)行分析。主要包括模擬器中硬件配置情況,在該窗口中,我們可以比較不同配置對(duì)于該模擬器的不同影響。如下圖所示。1)整體指令

11、執(zhí)行情況Total:7 Cycle(5)executedIDexecutedby6Instructionfs).8 Instfuction(c)curfentlyinPipeline.2)硬件配置情況Hardwareconfiguration:Memarysize:32768B4esfaddEX-SUge?:LrequiredCycles:2fmiilEX-Stage5:1,requiredCych5:5fdivEX-Stages:1,requiredCycles:19Forwardingenabled3)暫停次數(shù)和百分比及原因分析Stalls:RAWstalls:D(0,UU%ofallCy

12、cles),thereof:LDstalls:000.00ofRAWshllsBranchAJLimp期I挈。J.口隴tjfRAWstalkFloatingpoint$talk口(CL口口胃ofRAWstalls)WAWsials:000.00of11Cycles)Structuralstalls:0口口。,ofallCycles)Controlstalls:0(0.00ofallCycles)Trapstalk0(000dallCyclesTotal:0Stall(s)(0.00ofallCycles4)分支次數(shù)和百分比ConditionalBranches:TM:0(0100%ofellI

13、nstructionthereof:taken:0(0.00;ofalcond.Branches)nottken:00,00ofallcond.Branches)5)Load/Store指令執(zhí)行情況Load-/StoreInstruetions:Total:0(0,00%ofalllnstiuctions|,.thereof:Lo3h:n(o,ooofLod-ZStore-1nstructionjStores:00,00tofLoad-/Store-1nstructions6)浮點(diǎn)指令執(zhí)行次數(shù)和百分比FIcatingpointstageinstructionsTotak0(0.00口dlIns

14、tructions),thereof:Additions:0口.口。常ofFloatingpointstagehst.)Multiplications:Cl(IJ口口念ofFloatingpoint$tageinst.|Divisiofii:0iJi30KofFkiatingpoint缸ageinst.7)trap發(fā)生的次數(shù)和百分比Traps:Trap字:0(000ofallInstructions6.Breakpoints窗口介紹該窗口使用來(lái)觀察代碼運(yùn)行情況。先打開(kāi)Breakpoints窗口,點(diǎn)擊窗口上方的旦心Soi也來(lái)設(shè)置breakpoint,也就是設(shè)置指令運(yùn)行到流水線的哪個(gè)階段程勛停止執(zhí)

15、行。如上圖,如果選擇EX階段,在Code窗口中相應(yīng)的行會(huì)出現(xiàn)BEX即指令執(zhí)行到譯碼結(jié)束執(zhí)行開(kāi)始的時(shí)候,程序?qū)⒅兄箤?shí)驗(yàn)總結(jié)通過(guò)本次試驗(yàn),由于是第一次接觸DLX模擬器,該試驗(yàn)?zāi)軌驇椭覍?duì)這個(gè)模擬器大致的功能及使用做個(gè)大致的了解。對(duì)于日后的實(shí)驗(yàn)打下好的基礎(chǔ)。我覺(jué)得WinDLX真擬器小而精悍,它有不同顏色的標(biāo)記,不同寄存器及存儲(chǔ)器的反映。通過(guò)使用它,可以對(duì)5步流水的過(guò)程及不同階段很清楚明白的看到。也可以看到不同指令分析走到了哪一步,到了哪一步流水段。實(shí)驗(yàn)二指令流水線相關(guān)性分析實(shí)驗(yàn)?zāi)康耐ㄟ^(guò)使用WINDLX模擬器,對(duì)程序中的三種相關(guān)現(xiàn)象進(jìn)行觀察,并對(duì)使用專用通路,增加運(yùn)算部件等技術(shù)對(duì)性能的影響進(jìn)行考察,加

16、深對(duì)流水線和RISC處理器的特點(diǎn)的理解。實(shí)驗(yàn)環(huán)境WindowsXP操作系統(tǒng)WinDLX模擬器實(shí)驗(yàn)步驟1 .觀察程序中出現(xiàn)的數(shù)據(jù)/控制/結(jié)構(gòu)相關(guān)。指出程序中出現(xiàn)上述現(xiàn)象的指令組合。2 .考察增加浮點(diǎn)運(yùn)算部件對(duì)性能的影響。3 .考察增加forward部件對(duì)性能的影響。4 .觀察轉(zhuǎn)移指令在轉(zhuǎn)移成功和轉(zhuǎn)移不成功時(shí)候的流水線開(kāi)銷。1.觀察程序中出現(xiàn)的數(shù)據(jù)/控制/結(jié)構(gòu)相關(guān);指出程序中出現(xiàn)上述現(xiàn)象的指令組合。1)數(shù)據(jù)相關(guān)如下圖所示,在ClockCycleDiagram窗口所想是的時(shí)空?qǐng)D中和Pipeline窗口中的流圖中,第一次出現(xiàn)了R-Stall0WBIFIDintEXMEMInt-Stagesadchr4

17、jCL。的接下來(lái)可以點(diǎn)擊上圖中的橘色窗口,則屏幕顯示Cycles:*1(2)IdPipelineA<R3(=OxO1 Stall(s)becauseofFlAW'HazardwithIbuf3,0w0(r2)Ibur3,0x0(r2)要在WE期寫回r3中的數(shù)據(jù);而下一條指令seqir5,r3,0xa要在intEX周期中讀取r3中的數(shù)據(jù)。上述過(guò)程發(fā)生了WR中突,即寫讀相關(guān)。為了避免此類沖突,seqr5,r4,0Xa的intEX指令延遲了一個(gè)周期進(jìn)行。由此,相關(guān)指令為:inputLoop0四口43口口也urOjOr?)0x000001汨0x6065000aMEM$eqir5j3H0x

18、a2)控制相關(guān)10HClockCycleDiagramInstructionsZCyclesaddir1j0j0x1000ialInputUsignedmoviSfpH0j1swSaveR2(r0)j2由上圖可以看出,在第4時(shí)鐘周期:第一條指令處于MEMK;第二條命令處于intEX段;第三條指令出于aborted狀態(tài);第四條命令處于IF段。原因分析:jalInputUnsigned是無(wú)條件分支指令,但當(dāng)?shù)谌齻€(gè)周期開(kāi)始的時(shí)候,也就是jal這條指令被譯碼后才知道。此時(shí),movi2fp已經(jīng)執(zhí)行,且將要執(zhí)行的下一條命令在另外一個(gè)地址處,所以這條指令不會(huì)執(zhí)行,這個(gè)時(shí)候就會(huì)發(fā)生控制相關(guān)。由此,發(fā)生控制相關(guān)

19、的指令為:|alInputUnsignedrrov臼口0/1main+0x4main+OxEl0x0c00003cID0x00205035IF0x000001440wacO21O94IFswSaveR2(rO)Li23)結(jié)構(gòu)相關(guān)首先,我們先來(lái)看一下執(zhí)行過(guò)控制相關(guān)的時(shí)空?qǐng)D和Pipeline,如下圖。11當(dāng)我們點(diǎn)擊Pipeline中IF所對(duì)應(yīng)的框框可以看到詳細(xì)的該指令執(zhí)行情況,如下圖:IFCycles:t23InPipelineIMAR<-PC(=mput.Loop+0x18)=0x20420001)PC<PC+4(=input.Loop+Clx1c)2 Stdll(s)because

20、ofstructuralHazard!上圖表明了addir2,r2,0x1的詳細(xì)信息。該指令與它前一條指令addr1,r1,r3發(fā)生了結(jié)構(gòu)相關(guān)。并且由于此處的沖突,需要暫停2個(gè)周期。在ID段暫停后,則開(kāi)始進(jìn)圖intEX段。所以這條指令(addir2,r2,0X1)你不能進(jìn)入ID流水段,譯碼部分占用,發(fā)生了結(jié)構(gòu)相關(guān)。該部分的指令為:0x000001830x0Q230B20addrU1j30x0000018c0x20420001addi22al2.考察增加浮點(diǎn)運(yùn)算部件對(duì)性能的影響。該實(shí)驗(yàn)取N=6首先通過(guò)8畸射菰前,點(diǎn)擊FloatingPointStageConfiguration來(lái)設(shè)置浮點(diǎn)運(yùn)算部件

21、的配置。由于實(shí)驗(yàn)手冊(cè)上面要求Delay=4,所以我們將Delay這一欄改成4,而Count可以任意,為了對(duì)比,我們第一次浮點(diǎn)運(yùn)算部件取全部為2,第二次浮點(diǎn)運(yùn)算部件取全部為3。如下圖所示:12CountDelay:AdditionUnits:L4MultiplicationUnits:24DivisionUnits:24FloatingiPointStageConhgurationCount:Delay:AdditionUnits:MultiplicationUnits:DivisionUnits:343454FloatingiPointStageConfigurationNumberofUni

22、tsineachCla$:1=M<=%Delay(ClockCycles:1<=N<=50WARNING:Ifyouchangethevalues,theprocessi利illbereetautomaticalllNumberofUnitsineachClas三1<=M<=8,Delay(ClockCycles:1<=N<=50WARNING:Ifyouchangethevalues,theprocessorwillbereetautcoiaticalllKCancelKCancel運(yùn)行50個(gè)cycles之后,可以看到他們數(shù)據(jù)的對(duì)比:Statisti

23、csTctail:50Cyclesexecuted.IDexecutedby32Instruction,4InstructioncurrentlyinPipeline.Hardwareconfiguration:Memoirsize:32768EytesddE-Stages:3,requiredCycles:4ImulEX-Stages:3,requiredCycles:4fdivEX-Stages:3,requitedCycles:4Forwardingenabled,StalIs:RAWstals:9(1800ofallCycles,theieof:LD初帆2(2222%ofRAW-Bra

24、nch/Jumpstalls:2(22.22%ofRAWstalls)Floatingpointstalk5(55-ofRAWMH網(wǎng)WAWqalls:0(OOOtofallCyclecStructuralstalk:0(U,00ofalCycles)Controlstalls:4(El00%ofallCydss)Trapstals:6(12.口口,ofallCvdetTotal:19S閆湖(3&口叫ofallCycles)ConditionalBranchss):Total:2&2眨of«*Instiuctiomlthereof:taken:1(50.00ofallc

25、ond.Branches)nottaken:1(5Cl00ofalcond.Branches)Load-/Store-Instruetions:Total:11(34.30ofallInstructionsLthereof:Loads:&(5454ofLoad/Store-ln£tructions)Stores:5(45.45otLoad/Store-lnstructions)Floatingpointstageinstructions:Total:13,12ofalInstiuctiomlthereof:Additions:0(0,00ofFbalingpointstoge

26、inst)Multiplications:1(100.00!Floatingpointstageinsl)Divisions:0fCi,OO1-idFloatingpoint$tageinst.)Traps:Traps:J(3.25/sMallInstructions)13StatistsTotal;50Cycle(s)executed.IDexecutedby32Irt£tfuction(s).4In$truction($jcur(eritli>inPipeline.Hardwareconfiguration:Memorysize32768ByleshddEX-Stages:

27、2"squiredCycles:4fmulEX-Stages:2,requiredCycles:AfdivEX-St5ges:2trequiredCycles:4Forwardingeriabled.Stalls:RAWstalls:3(1800ofoilCycle0,thereof:LDstalls:222.22ofRAWstalls)Brnch/Jumpstalls:2(2222ofRAWstallsFloatingpaintstall:5(5556%ofRAWstls)WAWstalh:00,00ofallCycles)Structuralstalls:0(0.,ofallCy

28、cles|Controlstalls:4(8C0ofallCycles)Trap6(1200ofallCycles)Total:19Sball($)33,00%ofalCycles)ConditionalBranches):Totol:2(625%ofallInstrudionsLthereof:taken:1(50.00%!allcotidBranchesnottaken:1項(xiàng).。玄ofallcond.ElranchesLoad-/Stcre-Instructions:Iotal:11(34.38ofallInstructions),thereofLoads:6(5454ofLoad-/St

29、ore-1nstructionjStores:545,45%olLood-/Store-1nstiuction5)Floatingpointstageinstructions:Total1(112%ofallInstrudtonsLthereof:Additions:0(0,00ofAoobngpointstageinst)Multipllications:1(100.00ofFloatingpointstageinst.)Divisions:0(0口。笈ofFloatingpointstagehst)由此可見(jiàn),浮點(diǎn)運(yùn)算部件的增減對(duì)效率無(wú)影響。比較各個(gè)數(shù)據(jù),發(fā)現(xiàn)沒(méi)有變化。無(wú)論怎么增加浮點(diǎn)運(yùn)算部

30、件,統(tǒng)計(jì)結(jié)果都一樣。原因在于此程序中浮點(diǎn)計(jì)算指令沒(méi)有重疊,所以并行度沒(méi)有增加,性能沒(méi)有提高。3.考察增加forward部件對(duì)性能的影響。為了對(duì)比有無(wú)forward部件的性能。需要在configuration中勾選enableforwarding,以及不勾選enableconfiguration來(lái)看性能數(shù)據(jù)的對(duì)比。14不使用forward部件:Statistics_nTotal:50口。胤Wexecuted.IDexecuWdby27lnstiuction($).4Instruction)currentlyinPipeline.Hardwareconfiguration:Memory$ize:3

31、2768B苗e3fddEX-Stages:3,requiredCycles:4fmulEX-Stages:3.requiredCycles:4fdivEX-Stdges:3,requiredCycles:4Forwardingdisabled.Stalls:RAWstok:13(26.00ofalCycles)WAWstalkQ(WONofellCycles)Structuralstalls:0口叩,ofallCycles)Controlsldb:3(6.00ofalCyclesTrapstalls:6(12.00ofalCycles)Total:22StaK&)(44.00%ofal

32、lCycles)使用forward部件:Hardwareconfiguration:Memory5ize:32768BptestaddEX-Stages:3,requiredCycles:4fnndlEX-Stage«:3,requiredCycles:4fdivEX-SUges:3,requiredCycles:4Forwardingenabled.Stalls:RAWstalls:9(18.口吃ofallCclesbIhenohLDstalk2(2222WofRAW國(guó)Branch/Jumpstalls:222.22%ofRAWstalls)Floatingpointstalls:

33、5E&5露ofRAWsldb)WAV/stalk:0(Q0OofdlCycles)Structuralstalk:00CO胃ofallCyclesConhoistalls:4(B003tofallCycles)Trapstals:6(12.00ofallCycles|Total:19Stal(s)(3800?of蕾Cycles)從上面的數(shù)據(jù)我們可以看出增加forwardi部件后RAM原來(lái)占總時(shí)鐘周期的26刎少至18%RAW卜數(shù)由原來(lái)的13減少至9。增加forward部件使得控制相關(guān)比例增加了。即,使用forward部件后,總的時(shí)鐘周期減少,數(shù)據(jù)相關(guān)減少,流水線的性能得到一定的改善。3.

34、觀察轉(zhuǎn)移指令在轉(zhuǎn)移成功和轉(zhuǎn)移不成功時(shí)候的流水線開(kāi)銷。我們假設(shè),浮點(diǎn)部件設(shè)置Count=3,Delay=4;N=6o執(zhí)行完畢后,查看條件轉(zhuǎn)移15分支,如下圖所示:GonditionalBranches):Total:8(1212WofallIn$truction«,thereoftaken:2(25.005;ofdlcond.Branches)nottaken:6(75.00.ofallcond.Branches由上圖可知,轉(zhuǎn)移指令一共8條,成功轉(zhuǎn)移2條(占25%,不成功為6條c所以,靜態(tài)指令調(diào)度算法只能解決數(shù)據(jù)相關(guān),條件轉(zhuǎn)移結(jié)果與原來(lái)相比沒(méi)有變化。即,若轉(zhuǎn)移不成功,對(duì)流水線的執(zhí)行無(wú)影

35、響,流水線的吞吐率和效率沒(méi)有降低;若轉(zhuǎn)移成功,則要廢棄預(yù)先讀入的指令,重新從轉(zhuǎn)移成功處讀入指令,執(zhí)行效率會(huì)下降。 實(shí)驗(yàn)總結(jié)本次試驗(yàn)中,主要遇見(jiàn)一個(gè)問(wèn)題,就是在當(dāng)初文件加載時(shí)沒(méi)有成功,后來(lái)通過(guò)查詢資料和自己的嘗試,發(fā)現(xiàn),在選擇文件的順序很關(guān)鍵,它決定了文件在存儲(chǔ)器中出現(xiàn)的順序。本次實(shí)驗(yàn),主要通過(guò)對(duì)于三中相關(guān)的觀察,分析出現(xiàn)相關(guān)時(shí)的指令,分析浮點(diǎn)運(yùn)算部件和forward部件對(duì)性能的影響,觀察轉(zhuǎn)移指令在轉(zhuǎn)移成功和不成功時(shí)的流水線開(kāi)銷,這些實(shí)驗(yàn)一步一步,通過(guò)WinDLXU象生動(dòng)的表示,使我在實(shí)踐中更加深入的認(rèn)識(shí)了流水線。16實(shí)驗(yàn)三DLX處理器程序設(shè)計(jì) 實(shí)驗(yàn)?zāi)康膶W(xué)習(xí)使用DLX匯編語(yǔ)言編程,進(jìn)一步分析相關(guān)

36、現(xiàn)象 實(shí)驗(yàn)過(guò)程A.向量加法代碼及性能分析首先給據(jù)題目要求,需要熟練掌握DLX編程語(yǔ)言,然后根據(jù)規(guī)范格式編寫向量的代碼。1)向量聲明VectorLength:.word16/聲明向量長(zhǎng)度Vectorl:.word1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16/聲明兩個(gè)向量Vector1和Vector2Vector2:.word1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16Result:.space4/聲明一個(gè)空間來(lái)存放打印的數(shù)據(jù)Loop:/循環(huán)體ldf10,Vector1(r2)ldf12,Vector2(r2)讀入兩個(gè)提前聲明的向量a

37、ddf4,f2,f0/加法運(yùn)算trap5/系統(tǒng)中斷2)源代碼17運(yùn)行結(jié)果分析當(dāng)運(yùn)行到如下圖所示的時(shí)候,則表示運(yùn)行結(jié)束運(yùn)行結(jié)果為DU(-StandsrdI/OjiiiiiariuiriiiiiiiuimilIOK4Vector-2.00000-04,0000006.0000008.0000-0010.00000012.DOOOCO14.00000016.OCoooois.ooaoooso.ooaooo22.00000024.00000026.0000002B,00000030.aooooo32,oc0000接下來(lái)我們可以查看Statistics可以看到運(yùn)行結(jié)果的數(shù)據(jù)顯示,如下圖所示。Total;

38、283Cyclefsexecuted.IDexecuted1S1lnstruction(£).2InstructioncurrentlyinPipeline.Hardwareconfiguration:Memorysize:32768BytesfaddE><-Slages:1.requiredCycles2fmulEX-Stages:1,requiredCycles15fdivEX-SUges:requiredCpctes:19Forwardingenabled.EtalIs:RAWstals:32(11.31ofallCjfclej),thereof:LDstdfe:0

39、(pl00ofRAWstafcBranch,umpshh:1G(50.00ofRAWcUk)Floatingpointstake16(5000ofRAWstalls)WAWstalk:0(0004allCycles)Structuralstalls:0(0.00ofallCycles)Controlstallw:15(530ofdlCycle可Trap朝依:54(19.03印HICyclesTotal:101Stalfs)(35L7DSofallCycles)ConditionalBranches):Total:16(8.94ofdlInafructionsLthereof:taken:15(

40、93.75ofallcond.Branchednottaken;16.25宮ofallcondBranches)Load-/Store-Instruetions:Total:43(2707ofallIristructionfi),thereof:Loads:33(6735ofLo5d/Store-1nslrucNonsStores;1E32,65ofLoad-/Store-lristructionj)Floatingpointstageinstructions:Total:16(8.94%ofallInstructians),thereof:Additions:16(100.00ofFloat

41、ingpointstageinstjMultiplications:0(0.00ofFloatingpointstageinst)Divisions;0(0.DOS;ofFloatingpointstageinstjTraps:Traps:1B9.94%ofalInstructions181)程序相關(guān)性分析結(jié)果數(shù)據(jù)相關(guān)由上圖的RAWStalls32(1131dallCyclesLthereof:可以看出,該程序產(chǎn)生了11.31%的數(shù)據(jù)相關(guān)。所以當(dāng)對(duì)當(dāng)前指令的操作數(shù)寄存器進(jìn)行操作(EX的時(shí)候,前幾條指令的運(yùn)算結(jié)果還未寫回(WB結(jié)果寄存器,由此產(chǎn)生數(shù)據(jù)相關(guān)。結(jié)構(gòu)相關(guān)由于程序只簡(jiǎn)單的做了一次加法,所

42、以沒(méi)有結(jié)構(gòu)相關(guān)產(chǎn)生。控制相關(guān)查看pipeline中可以看到,當(dāng)執(zhí)行到如下情況時(shí),發(fā)生了控制相關(guān)。adir14jO>109trap0x5if|5閭口memi廬|T-StdlIIDIIMEMI由Statistics中的5n皿朝旭15后削力°f或比崗可以看出,其控制相關(guān)發(fā)生了5.3%。分析可知,由于系統(tǒng)按照預(yù)測(cè)成功來(lái)執(zhí)行指令,所以執(zhí)行bnez后馬上將其下一條指令trap讀進(jìn)來(lái)。2)浮點(diǎn)運(yùn)算部件帶來(lái)的影響當(dāng)我們通過(guò)設(shè)置浮點(diǎn)部件的個(gè)數(shù),并將程序運(yùn)行完畢,查看Statistics中的數(shù)據(jù)作對(duì)比。如下圖所示。19StatisticsTotal:283Cvde(s)executed.IDeHB

43、CUtedby161|ln&truction(s|.2lnstrucbion(scurrentliJinPipeline.Hardwareconfigrui-ation:Memorysize:32768BesfaddEX-Stages:4,requiredCycles:2fmulEX-Stages:4requiredCycles:5fdivEX-Stages:41srequiredCycles:19Forwardingeriabled.Stalls:RAWstalls:32(11.31ofallCycfesjLthereof:LDstalls:OXIOofRAWstalls:Branc

44、hAJlumpstalls:IEfSOJOOfofRAWstalls)Floatingpointstalls:1650.00玄ofRAWstalk)WAWstalls:0.00ofallCycles)Structuralstalls:0O.OONof曰IICycles)Controlstalls15.30%ofallCletes)Trapstalls::54(19.08%ofallCyclesTotal:101St昌U|事(35.70ofallCyclB)Contiition&1BireLnchss:):Total:16(8.84ofallInstructions,thereof:ta

45、ken:15(93.75;ofallcond.BranchesJnottaken:1(6.25ofallcond.Branches)Load-ZStore-Instruetions;Total:4927.075S口fdlInstruetionshtheireof:Loads:33(67.35gfLoad-/Store-lnstructions)Stores:16(32.655SofLoad-/Stoire-lnstrLictionsJFloatingpo-intstagein.st3cuet1ons:Total:168&4汽ofallInstructionsthereof:Additi

46、ons:16(100.00玄ofFloatingpointstagemsL)Multiplications;0(0.00ofFloatingpointstageinst.)Divisions:0(O.OOofFloatingpointstagelinstTzraps:Traps:18(934落ofallImtructicins)Total:283Cpde(s)executed.IDeBcutsdlby1S1|ln&truction(s|.2In3tnucbion(scurrentlyinPi口巳Hne.Hardwmi?已configruzration:Memorysize:32768f

47、addEX-Stages:1,requiredCycles:2fmulEX-Stages.:1,requiredCycles:5fdivEX-Stages:1,requiredCycles:19Forwardingeriabled.Stalls:RAWstalls:32(11.31ofallCycfes)Lthereof:LDstalls:0(0OQ?£ofRAWstaltejBranchZJumpstalk:1E(UQOO笈ofRAWstalls)Floatingpointstalls:1650.0(理ofRAWstalls)WAWstalls;ID1(0.00ofallCycle

48、s)Structuralstalls:0(0.00ofallCycles)Controlstalls151(5,30ofallCycles)Trapstalls:54(19.08%:ofallCyclesTotal:101St自U|事堯.7。落ofallCycles)Conclitiona1Bremches:):Total:16(8.84ofallInstructions,thereof:taken:15(93.75£ofallcond.Branchesnottaken:1(H25%ofallcord.Branches)Load-XStoreInstiructions:Total:4

49、927.07%ofaJlInshuctions),thereerf:Loads:3367.35老ofLoad-ZStore-1nshu*ctions)Stores'1632.655JofLoad-/Store-1nstrcichorisJFloatmgpo&ntstageinsti?uotionsiTotal:16884宮ofallInstructions,thereof:Additions:16100.00玄ofFloatingpointstageirisLMultiplications;0(0.00ofFloatingpointstageinst.)Divisions:0口

50、莖ofFloatingpointstageinstTraps二Traps:IB(9;94%ofallInstructions將浮點(diǎn)加法器由1個(gè)增加為4個(gè)后(左圖為4個(gè)),可以由上圖看出,程序執(zhí)行的性能未得到提升。分析原因我們知道,由于該程序?yàn)楫a(chǎn)生浮點(diǎn)加法器的結(jié)構(gòu)相關(guān),所以增加浮點(diǎn)加法器的數(shù)量對(duì)程序執(zhí)行的性能提升沒(méi)有幫助。3)forward部件的影響20StatisticsTotal:283Cyde(s)executed.IDexecutedby1S1尿MuctionWl21力虱ructiMdcurrentlyiriPipeline.Hardwarecontiguration:Memorysiz

51、e:32768BesfaddEX-Stages:1,requiredCycles:2fmuEXStages:LrequiredCycles:5fdivEX-Stoges:1HrequiredCycles:19ForwordingenabledStalls:RAWstalls:32(11.3UofalCycle亂thereof:LDstalk:0(0.0故4RAW$talU)Branch/Jumpstalls:1E50,00ofRAWstalls)Floatingpointstalk1E50.口噴ofRAWstalhWAWstalls:0(000ofallCycles)Structuralsta

52、lls:0口口口冤ofallCycles)Controlstalk15(5.30XofalCydssjTiapstalls:54(19.08ofallCycles)Total:101St鋪閭35.70落ofallCycles)ConditionalBranches):Total:16(8.84,ofallInstructions,thereof:taken:15(93.75ofalcond.Branches)nottaken:1(6.25of己IIcond.Branches)Loaid-Store-Instructions:T口同:4H|"CI7NcifalllInstruction

53、s,thereof:Load:33岱7,35,ofLoad/StoreIrisbuctions)Shores:1E(32.65%ofLoad-/Store-instructionsFloatingpointstageinstructions:Total:168.84ofallInstiuctiomLthereof:Additions:1S(10000ofFloatingpoint對(duì)agein$(JMultiplications:Q口.0口kofFloatingpointstagemst)Divisions:0(D00ofFlowingpointstagein$tTn?aps:Traps:18(

54、9.94ofallInstructioris)-01Total:381Cydes)executedIDexecutedby181Instiucbarft).2Instructionls)currentlyinPipeline.Hairdvareconfiguration:Memay$ize32760BvtesfaddEX-Stges:1,requiredCycles:2fmulEXStage?11,requiredCycles:EfdivEX-St3ges:LrequiiedCycles:19Forwardingdi.sabled.Stalls:RAWstalls:130(3412名ofallCycles)WAWstalls:0(0.00ofalCycles)Structuralstals:LIZ.00ofallCycles)Controlstalls:15(3SAXofallCycle可Trapstalls:54(1417%ofallCycles)Total:199St印國(guó)(522斂ofallCycles)ConditionalBranches):Total:16(884ofallInstructionsLthereof:taken:15(S3.75orfallcond.Bran

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論