计算机体系结构试验报告_第1页
计算机体系结构试验报告_第2页
计算机体系结构试验报告_第3页
计算机体系结构试验报告_第4页
计算机体系结构试验报告_第5页
免费预览已结束,剩余22页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验一流水线中的相关一.实验目的1,熟练掌握WinDLX莫拟器的操作和使用,熟悉DLX旨令集结构及其特点;2.加深对计算机流水线基本概念的理解;3,进一步了解DL海本流水线各段的功能以及基本操作;4 .加深对数据相关、结构相关的理解,了解这两类相关对CPIB能的影响;5 ,了解解决数据相关的方法,掌握如何使用定向技术来减少数据相关带来的暂停。二.实验平台WinDLX莫拟器三.预备知识1.WinDLXWinDLX莫拟器是一个图形化、交互式的DLXf水线模拟器,能够演示DL尴水线是如何工作的。该模拟器可以装载DLXL编语言程序(后缀为“,s”的文件),然后单步、设断点或是连续执行该程序。CPU勺寄

2、存器、流水线、I/O和存储器都可以用图形表示出来,以形象生动的方式描述DL尴水线的工作过程。模拟器还提供了对流水线操作的统计功能,便于对流水线进行性能分析。有关WinDLX勺详细介绍,见WinDL破程。2,熟悉WinDLX旨令集和WinDLXM代码的编写3,复习和掌握教材中相应的内容(1)DLX1本流水线(2)流水线的结构相关与数据相关结构相关:当指令在重叠执行过程中,硬件资源满足不了指令重叠执行的要求,发生资源冲突时,将产生“结构相关”。数据相关:当一条指令需要用到前面指令的执行结果,而这些指令均在流水线中重叠执行时,就可能引起“数据相关”。(3)定向技术的主要思想:在发生数据相关时,等待前

3、面计算结果的指令并不一定真的马上就用到该计算结果,如果能够将该计算结果从其产生的地方直接送到其他指令需要它的地方,就可以避免暂停。四.实验内容及结果1,用WinDLX模拟器执行下列三个程序(任选一个):求阶乘程序fact,s求最大公倍数程序gcm,s求素数程序prim,s分别以步进、连续、设置断点的方式运行程序,观察程序在流水线中的执行情况,观察CPU中寄存器和存储器的内容。熟练掌握WinDLX的操作和使用。注意:fact,s中调用了input,s中的输入子程序。load程序时,要两个程序一起装入(都select后再点击load)。gcm.s也是如此。说明:此实验我们选择:求阶乘程序fact,

4、s1)用WinDLX模拟器执行求阶乘程序fact,s。2)程序的作用:这个程序说明浮点指令的使用。该程序从标准输入读入一个整数,求其阶乘,然后将结果输出。该程序中调用了input,s中的输入子程序,这个子程序用于读入正整数。3)实验结果:i.分别以步进、连续、设置断点的方式运行程序(falTchvX'VLEKUn*a»Fiwnf启"e:.wgnr-1门nmi;iriWn>taHHnQgj(bosjfoacI7LW.LJhca9co:<!DvQ9Ca:M:wVimsuliErpiFwFrifllji"MdILKIjfiflOBIisMhPM-ie

5、crpdhsjUnvvd“S«3C|Q*中岛r-1!r+!*k+!ml-A/E.-:呼1*-匚ivTLnv1>"n?弓H94L1IL11LI-iL111FRhrFFFFRFhrnFFFkFrrL卜FFr-居以艮II司MmnkiMASHfUHUXn«i*LECjMkiRc蝌周国»kk1-UdPlU!CMi聃M/&KWU2!><*biKIIF!»*nrrvIrHd加皿的吗TWTwrn-ijndjmT.-n®rsirwflwmMMTCIlTHJfllVnMrwrarrn-VWfflFIMTTIJITi(IMmyno

6、rir1raLup|>Jj:irhjrZJUU1*141口1M-Mm*Mkf叶,*M£*rwirwirniafluRTIIJ心WU1M3?"1-AllrlMmnrMTTPJTiuariiri=一!=,=-RlilB,lilBiRB.II"-:事L*Rq力H*4-TQ工中心日4r.+.-"r'l-lint-i、圈LEE.tElrLZFFFFkFFr-FkFrFFLcrr"Lr>r-LRCPaOIODILtl小CtLV-luEH叩IE比Fl-小泡加中倒*tinnmninniF10-hnig>Rl*B-ri2-FFPiMFi

7、inniADIm,中事iHiipnnitfnniHi-miIwninniDIF15-blTHt+lHb1idbl4hl叫心ir,rlaQEDDiaDI37"*4T-iMnhHhia&l一如1口丁口口港口rxiE-i>iaiDDiaDiE3n»L£*h1曲g|«巾1U*HKId,IkuiB:2>箕.-«:山;”£1-iMaxanjaiDiE:4-田iMDiaDIflDI:="mt:4-14-luBTDDiaDI:7fi-,血强181K:fl-K-ImCiddicidi些方,OEM口二颁】Dlfl&M

8、!:Driara_'Wirun-irfl-bnomnstnrinrflruflnwiwninifftM-iMinriinun-iirnwmuinDai2mMMile口Hjnninimnmnua口ngp>:'»!cngamamD。通口MnEuwas»a:><iiaiMOMllD?aiM>lDiID300Q0gB923a3039a4+30H6mcJkI.BHthcFkLib«fi*udw4ribkPrh4rl-fmM49««1Lv&a:llHd-JrcMiwh4心1帆g寸IWm«4hiE&#

9、187;rKfcxw>p:川OCNriApwMhl/fl*'他修fIg2t2E小事由口ci<r#<-MLeJ+11il何:omEtB*:hj,11Will':(ia图1.求阶乘程序fact.s运行统计数据步进方式运行hrMchora/Qrti皿Orf)winMEJr7d11*1嗝li-MlbZMMH0M4ETZMCTI!"t!:EflRx»4FIPI-El?_-LjKliJUUIB.bU13-“IgQIlkQrEbuD.gkfa-CfiMbDIflDDMil-i?KiaritijoinB-miODME。喇Ui.-MUlUUI'lUU

10、ettwojhI40dio:>eiT0g小州2吨:山许小:KlCjin:joLlaH-成山:4LZWLKlGDDa3SDrrciii-niiiaflniannto-UhKJOOIQPHC-mimin0M"till岫力I岫KI*Cn144>>:>:)£)日外傅顿I。附K->:-Kl>ji:>Dli:>D&-LriciiJllpJCjtlJxJUIJUJWJI.|蒲58津g©131M。口oaulartMADMCIrOWtlCiMCXWWWJLlxjM>DM>:.owoewcIxjOWUNK工二面口口陋

11、二laUjUUlAlL:ixj£riAb£tiLi花,Mbage3工二必口。二imM日EgeIrMODMCism口mPGlIJCHiUKlx:>M>DMi:修溺时耻lsr:>M>DMCS:|JM口口的L-WJUJLUU-!图2求阶乘程序fact.s运行统计数据连续方式运行图3求阶乘程序fact.s运行统计数据连续方式运行ii.数据统计StatisticsTotel:87Cjjclefseweculed.WGKcUtcdbyfrstructi(jri4二InstructiQnf?)currentirPipeline.H己rd耳ax已confiux-at

12、ion:Memorysize:327E8BytesfacfclEX-SUges:2,requiredCycle5:3frniCX-Stages:2,requiredCydesc3fdivEi-Stges:2,requiredCletes:3Forwadingerabted.Stalls:RAWstallsS(9.20XofMCjjctesj,.Eheteaf:LD店限225,Q芯ofRAW蕃talk)Branch/Jumpsralls:2(25.00ofRAW生&dFloahrgpointstalls:4(50,00?iofRAW期均WAW期隔0(OlOCKgfallCycles)St

13、ructuralstate:0(0.00ofallCjicles)Controlstalls:8(9.20ofallCycles!Trapstafc:12(1379ofalCycles:)total:28Stalls)(321故ofallCycles)图1.1.4求阶乘程序fact.s运行统计数据图5求阶乘程序fact.s流水线执行情况空£ijcooooDuaIHAKm3MmsIB0KfiL=0i21L34ASIkOOO'ODODQMH-OicanDDDDQQB=iHOOoaotooIII-I-kOODDOO'OOxQQOODCOOkLV-kOODOOCOOALUHh

14、KaODQODOOFP5R-QxMQQQ匚口.1DMJ.E-OxUUUUULdUSDRIkOOOODDOQsi>E'Hi-OMiirinoDrao5R-ixoaooDoaai.r-ni-'叩HMM口口口tJRfl-OkQODODDOIJRl=130000ndR2-scnonoDoniR3=OxOOOODEDOEf4-:ixDODODoaaR5=iKflOOODDaQRR-CHnoooornnHconrerRe-EL'Ci-RII-R12-R13-E4=E1S-I?16*EL7=ktti-R2iD-E21-R24-R2fi-E*fe'Z>R2S=E29

15、=JmOODZQCOOiKDOODOgOOLlzOODDOaOO)eOODi:QCOOxDODDaonoJkOODMOOOOsDQOOOaOO0x00001028OeOODDOOOOOisDODOaOOQasQQDDOQCQUzDOUDaUCIUOmOODOOCOOiKaoD_aocin300000000IkOODOOOOOaxonoBaanoJhOODDOCOOoxoaDDaaaa口其QU口匚口口口口OkDDDDOOOOosooDDiiaoiOiRCBdoroijonR二kFC-Fi=F2-F3=17.FE二F&-昨F9-F2Fll,F12-FI3-F14-F1S-FWFL”5一门六

16、F"£09=,=_-=二lz345670flol"-二.仃-246gQZ2221-22222-!TJ-u46AT1I-112l._FFrr*Fr-FFFFFDDDBDEDDD.PDD46002023DDDD图6求阶乘程序fact.s寄存器使用情况iii.定向非定向分析在载入fact.s和input.s之后,不设置任何断点运行。A.不采用重新定向技术,我们得到的结果:Total236Cyde囿executed.IDexecutedbv145Iristiuction(s).2lnslructiQr(?)curentlyinPipeline.Stalls:RAW双刮&a

17、mp;:53224随ofallCycles)WAWstalls;0口口口笈&allCycles8truclurlstalls:00,00ofallCycles)Controlstdlb;25(10尔将ofmICycles)Trap就&s;12(5一08%ofalllCycles)Total:90Stalls)(33.14allCycles)B.采用定向技术,我们得到的结果:Total:215Cyckh)aKocutgdIDexacted%145lntliudion(f).2lnetuctions)currentipinPipeline.Stalls:RAWstalls:17(7

18、.91%ofHICycles,thereof:LDmIk;3口7£5烹ofRAWMElwmhZJu叩stalls;317.65ofRAWstallsFloalingpointstale:11(64J0XofRAWstallsWAW就刮&:U(0.00ofMCyclesShucluralsialb;0(0.003fo(allCycles)Controlstalls:25(11£3ofallCycles)Trap5tals:12(5.58ofdlCycles)Total;54Sta蚓曲I2Wal&cln)结果分析从上面的数据我们9以看出定向的作用:-2.用WnD

19、LX术闲!嗣系砰uctursatistics嘲伸而各种统计数字:总的周期数(215)和暂械出(WA测5蝴制根布睇4制胁的部件;已牺我恻深知亭时鲤酬鲫炉嘀靖愀救阐柚祀期箱MW暂停从17阿赫了53,总的模拟周期数增加到236。所以定向技术带来的加速比:论送缴6/券5=1sPU性能的影响,讨论解决结构相关的方法。1)模帆第芈,DLXforwarded比DLXnotforwarded快9.8%。因MT4DLK-:C<jr.kCyJeDidyrd-tifJF3rVd-indcriT加AtMDh/Cdezh-.a-Eis-cuteMemoryCcnfiuriali'nClock匚ydlp口储

20、日仃也;看口,-29-26.-27-26,-25-24,-23:IIiI-+-1-H1二用心制屏.Z3工刈口岬*udlz.l0;2adi2i2.LkBidmo-HkjH(闭adzfcl士iZ.-EkBatrfr3.i3.CsBoubibr打2trapOJOLUIVJEk而Ee/Cych?-Ijay&0Id打.口江fldddK,J0J4addd区町见xfdrJ13JB叩辛比r5t4,r2It?4国0np1JI-|l-虱ddlMOMaddirJ.uJ.Oid3汕而i+j3LriefrSjHdptrap0IIIMEMJwtfs-|IFI10和及IWE|IF|山IF讨川口.见UEFF1|卜|二

21、.L界七1;一|<1口函d中,|_jF|IQ|5tolIFSlilEMEWWB|IIF不方犷lbtBE|向|神|IF*jprtTE>CCL-+eMemoryCorfigyrirtiiorCloctrCycleDiagrij-IE.-15,-U.-131-12,-11-to-9B-7ESrwi口二仃h二二IF|ID|rtEX|浒人1IWR_IF|I口倬$了"匕|1MEH|*E|IIF|向厂1口木丽ErEM,|UR|I,口t-h-I,4|“"p"lHelp副判-9,-2,-1iLlI图2.1程序structure_d.s流水线执行过程StatisticsT

22、otail:139Cyde($)eNecuted.IDew«euted加86Inruetior(s).2ln$tfuction(scurrentlyinPipeline.Hardwar-ecan£iguratieft:Memorysize:32?68BytesfaddEX'Stages:1rrequiiedCycles:2frrujIEX-Stages:LrequiredCycles:5MivEX-Stagas:LrequiredCyclas:19Focwardirigeriabled.Stalls:RAWstalls:30(21.68SSofallCyds>

23、,thsraobLD0(331333tofRAWstdsBranch/Jump允M鼠1口阴,33MofRAW就dh)Haatingpoint岫al/10(33.333:ofRAWstallsWAWNNk:OflOOXof创ICvcles)StiucUralstalls:0(0.00of-allCcle?Contrclstalls:947%ofallCelssTrapstalls:3(2.16SiofdllCyclesTot*42Sa同30.2宓ofdCycles图2.2程序structured.s运行统计信息addir2,r2,0x8指令在执行阶段intEX停?t1周期2)结构相关i.如图,导

24、致结构的部件:浮点数寄存器f4adddf0,f0,f4指令在译码阶段ID停?t1周期addd趋加比IF|StallID片石创fmddEXfl)巴-iF3)结果分析441H座引起的暂停周期数为:30总总行词期数为:1393.勾执寸,in:免执行重复他8%。尽其避免回露一贯停的频箓、-h-bleEorwarding选项刖*帝世侧藜以及程序也可以将CACHE没有采用定向技术时运行该程序,我们得到:Stoti与ti匚§-lolx|Total:202Cych)executed.IDexecutedby85Instruction(醇2Inslruction(s)ctnQntlyinPipelin

25、e.Hardwarecontiguxs.tion:Memorvsize:32768BvtesJaddEX'Stages:VrequiiedCycles:2frnulEX-Stagss:1flequiredCycles:5MivEX-Stages:1PrequiredCycles:19Focwdrdingdibbled.Stalls:RAWstalk104014s蒐ofdCyclesJV/AWstdb;0MoMfdMftdw)Sticicturalstalls:0(p.OOXofallCycles)Control二氐9(4.46Sd削ICletesTrapstjll¥:3(1.

26、43>ofallCycledT.-'jl1m.训:)”匚='Ajll2)结果分析:程序执行了202个周期,10个数据相关引起的时钟周期RAWstall为104个。暂停时钟4.刚携蜘林帏至喇顿的百分他选朝aeforwarding),用WinDLX再次运行程序data_d.s。上复上述3中的工作,并计算采用定向技术后性能提高而倍数。1)实验结果:采用定向技术时运行该程序,我们得到:StatisticsTotal:125Cyclefs用“5久IDexecutedbvS5ln$triiction(02lnstruction(icun曰MlyinPipelineHardwareco

27、nfiguration:Memorysize:32766Bytes;mddEX-St号1requkdCyd:2FmulfX-Stages;1,requiredCycl号室5fdivEX'Stsgei:1,requiredCycles:19Forwardingenabled.Stalls:_RAWstak30(23.44ofallCycles),thereof:LDstals;2066.67ofRAW而闷Branch/Jumpstalls;10(33.33ofl3AW如l$JFloatingpointatdls:0(0.00%ofIRAW<tak)W&Wst业口pOOXof

28、all5d时StiucUral如版Opl1口*erfdlCyclesControlstalls:H(7.03ofdlCycle。Trapstals;3(234ofallCycle?lotah42Stall(s)(32.813;ofalCydles)2)结果分析:程序执行了128个周期,共有6个数据相关引起的时钟周期RAWstall为30个。暂停时M(土钟尚期数占总执行周期数的百分比=23.44%实验二循环展开及指令调度3,了解循环展开、指令调度等技术对CPU性能的改进。二.实验平台WinDLXsimulator四.预备知识1.WinDLX模拟器的相关知识,详见相关的文档。2,复习和掌握教材中相

29、应的内容:(1)循环级并行性(2)指令调度(3)循环展开(4) 寄存器换名五.实验内容及结果1 .用指令调度技术解决流水线中的结构相关与数据相关(1)用DLX汇编语言编写代码文件*.s,程序中应包括数据相关与结构相关(假设:加法、乘法、除法部件各有2个,延迟时间都是3个时钟周期),data1深黑0Configuration菜单中的10?wO2A,把延迟都设置为给出调度前的程序sch_bef:Floatingpointstages”选项,把加法、乘法、除法部件的3个时钟周期;,text,globalmainmain:lff1,ONE;turndivfintoamovecvti2ff7,f1;by

30、storinginf71innop;floating-pointformatdivff1,f8,f7;moveY=(f8)intof1divff2,f9,f7;moveZ=(f9)intof2addff3,f1,f2divff10,f3,f7;movef3intoX=(f10)divff4,f11,f7;moveB=(f11)intof4divff5,f12,f7;moveC=(f12)intof5multff6,f4,f5"/flWsDLXn舄皤您A蹄蹄序执行过程中各种相关发生的次数、发生相关的指令组台以及其b执理0提品端碣;)Finish:trap02lnstnjctiorisc

31、uirenHyinPipeline.RAW右匕n933.33.:afaJI口日时,thereof:LDstalls:1(11.11orRAWstallsBranch/Jump或孙;0似口。禽3RAW备tafc)Floatingport431k二6(100.00ofFtXW:stalkWAW$tah:D|000篱ofdlCycles)Sbvdigl期晾口口口口字d司.则Coliulstal£。肛。口WoFallCdesTrapstalls-125,32%ofalCycles)TM成16Stdlsj(印2葭of国1&#对(4)采用指令调度技术对程序进行指令调度,消除相关;调度之后

32、的程序schaft:.datadiVf崎蚓弁7Emovef3intoX=(f10),观察程序在流水线中的执行情况,记录程序执行的总>1rdm0fn颗魅traplQbalmainmain:lff1,ONE;turndivfintoamovecvti2ff7,f1;bystoringinf71innop;floating-pointformatdivff1,f8,f7;moveY=(f8)intof1divff2,f9,f7;moveZ=(f9)intof2divff4,f11,f7;moveB=(f11)intof4divff5,f12,f7;moveC=(f12)intof5addff3

33、,f1,f26人*隔廨5吉果,比较调度前和调度后的性能。论述指令调度对于提高cpu性能的意义。义:可以若也经过调度之后运行周期从27减少到21,而且减少了相关u2.用循环展开、寄存器换名以及指令调度提高性能(1)用DLXL编语言编写代码文件*.s,程序中包含一个循环次数为4的整数倍的简单循环;循环展开前的程序:,LHI_R2(2)用WinDLX期数;11,(A>>16以亍该程FADDUILHI%0XFFFF行过程中各种相关发生的次数以及程序执行的总时钟周R2,R2,A&0XFFFFR3,(B>>16)&0xFFFFADDUIR3,R3,B&0XF

34、FFFADDUR4,R0,R3NOPloop:SUBIR4,R4,#8SUBR5,R4,R2BNEZR5,loopTRAP#0A:.double1,2,3,4B:.double1,2,3,4-UihiuiDiallou11u1j'QuiaivuyL-i5iTrapstalls;3(10.00ofalCycles)Total:10瞄闻即龚ofW口心(3)将循环展开3次,将4个循环体组成的代码代替原来的循环体,并对程序做相应的修改。然后对新的循环体进行寄存器换名和指令调度;循环展开后的程序:(4H用联2RA竣彳6)&0O程序,记录执行过程中各种相关发生的次数以及程序执行的总时钟周期

35、筌DDUIR2,R2,A&0XFFFFLHIR3,(B>>16)&0xFFFFADDUIR3,R3,B&0XFFFFADDUR4,R0,R3!Statistics-|匚Total:14Cycles)&脆旬£IDexecutedhjj10InstrLiclions).2lrstiuctions|curientijjinPipeline.Hsrduar-eeanfig'u.ration.:Merntiyme:32-68BytesfqddE-Stages;1JrequiredCycles;2ImulEX-Stages:二requiredC

36、/cl&s:SfdivEX-Stages:1.requiredCycles:15Foivjqrgg号四日久StalIs:RAW曲I扇0(0.003HCycles)jhereof;LD期飞:0町口够MRAW期蚓Brancli/Jump就己1窜0(0.00aJRAWst目均Fkdingpoint期1扇。Q00MofRAWstalls)WAV/itells:0(0.00cfRICyclJStructurd过日旧;0口.00笈ofalCycles)Controlstalk;00.00%ofaldes)Trapstak:321.43ofallCyclesTotal:3SlM(21.43时MCyc

37、les)(5)根据记录结果,比较循环展开、指令调度前后的性能。结论:可以看出经过循环展开之后运行周期从30减少到14,而且减少了相关。五.总结实验三记分牌算法和Tomasulo算法一.实验目的1 .掌握DLXview模拟器的使用方法;2 .进一步理解指令动态调度的基本思想,了解指令动态调度的基本过程与方法;3 .理解记分牌算法和Tomasulo算法的基本思想,了解它们的基本结构、运行过程;4 .比较分析基本流水线与记分牌算法和Tomasulo算法的性能及优缺点。二.实验平台DLXview模拟器三.预备知识1 .DLXview模拟器2 .复习和掌握教材中相应的内容1)指令的动态调度2)乱序流水线

38、3)为了允许乱序执行,我们将基本流水线的译码阶段再分为两个阶段:4)记分牌技术的目标:在资源充足时,尽可能早地执行没有数据阻塞的指令,达到每个时钟周期执行一条指令。5) Tomasulo算法将记分牌的关键部分和寄存器换名技术结合在一起,其基本核心是通过寄存器换名来消除写后写和先读后写相关可能引发的流水线阻塞。6) Tomasulo算法的基本思想四.实验内容及结果1 .用DLX汇编语言编写代码文件*.s(程序中应包括指令的数据相关、控制相关以及结构相关),以及相关的初始化寄存器文件*.i和数据文件*.d;305.s305.i2 .观察程f出现再嘲留关、控制相关、W吉构相关multff0,f2,f

39、4subff8,f6,f2divff10,f0,f6addff6,f8,f2trap#0,#put冲哪微的指令组合;#34(r2)is64(0x40)putr230#put2.5intoaddress0x40fput0x402.5(1)第二个lf指令到multf、subf和addf,multf到divf之间,subf到addf之间存在着先写后读相关。(2) divf和addf之间存在着先读后写相关。(3) addf和subf指令关于浮点加法部件还存在着结构相关。(4) 自己编写的程序*.s、*.i、*.d装载到DLXview模拟器上,(1)分别用基本流水线、记分牌算法和Tomasulo算法模拟

40、,针对每一种模拟做如下分析:基本流水线:统计程序的执行周期数和流水线中的暂停时钟周期数1个加法部件,延迟周期为22个乘法部件,延迟周期为101个除法部件,延迟周期为40程序执行时钟周期数67,流水线中的暂停时钟周期10 改变功能部件数目重新模拟,观察并记录性能的改变2个加法部件,延迟周期为23个乘法部件,延迟周期为102个除法部件,延迟周期为40程序执行时钟周期数67,流水线中的暂停时钟周期10改变功能部件延迟重新模拟,观察并记录性能的改变1个加法部件,延迟周期为12个乘法部件,延迟周期为81个除法部件,延迟周期为32程序执行时钟周期数47,流水线中的暂停时钟周期8由此可见增加功能部件数目之后

41、,性能并没有提高减少功能部件延迟之后,性能得到了显著的提高。记分牌算法:统计程序的执行周期数和流水线中的暂停时钟周期数1个加法部件,延迟周期为22个乘法部件,延迟周期为101个除法部件,延迟周期为40程序执行时钟周期数59,流水线中的暂停时钟周期12 改变功能部件数目重新模拟,观察并记录性能的改变2个加法部件,延迟周期为23个乘法部件,延迟周期为102个除法部件,延迟周期为40程序执行时钟周期数59,流水线中的暂停时钟周期12改变功能部件延迟重新模拟,观察并记录性能的改变1个加法部件,延迟周期为12个乘法部件,延迟周期为81个除法部件,延迟周期为32程序执行时钟周期数49,流水线中的暂停时钟周

42、期10由此可见增加功能部件数目之后,性能并没有提高减少功能部件延迟之后,性能得到了显著的提高。Tomasulo算法:统计程序的执行周期数和流水线中的暂停时钟周期数1个加法部件,延迟周期为22个乘法部件,延迟周期为101个除法部件,延迟周期为40程序执行时钟周期数56,流水线中的暂停时钟周期10 改变功能部件数目重新模拟,观察并记录性能的改变2个加法部件,延迟周期为23个乘法部件,延迟周期为102个除法部件,延迟周期为40程序执行时钟周期数56,流水线中的暂停时钟周期10改变功能部件延迟重新模拟,观察并记录性能的改变1个加法部件,延迟周期为12个乘法部件,延迟周期为81个除法部件,延迟周期为32

43、程序执行时钟周期数46,流水线中的暂停时钟周期8由此可见增加功能部件数目之后,性能并没有提高减少功能部件延迟之后,性能得到了显著的提高。(2)记录运行记分牌算法时的功能部件状态表和指令状态表;InsstatusInstructionIssueReddope-randsExcuteWritvresu.ltIff£r0x22(i2)1254InsstatusInstructionIssueoperandsExcuteWriteresultIfI2W4L;£345&Li3yOpFzlFkltr(nsNcNeInueaerlF5¥eg|kdd.1Hult工Hult

44、2DividelItistrueti-aikstatusInstructionIsseReddoperandszcuteKriteresultItf韦jStZEHZ)1234Iffx,0xZd(r3)Z345multi367-Lo17Instruction.statusInstructian.IssueHeadoperandsExcuteWriteresultIfff0x22r2)i234If£2r0x2d(r3)2345TnultfrOft2,f437-1617sub!f8r41E-910InstructionstatusInstructionIssueReadoperandsEx

45、cuteWriteresultIf16,0x22(r2)1234Iff2r0x2d(r3)23a5multifOrf2rf4367-16173Ubff8rf6rf247B-910divrnori0fib5IB19-3839BusyOpPxr:FlQ3Qk幻RkIntegerlInteaer2-lf,r«-R3HaMointeger3Addl¥es3UBFF8FF2Iat2YeaNoKultlYeamultfroF2工nxZHoYesHult2Divide1DIVTP10F0FtMu.lelNoYeaInstruction,statusInstructionIssueRead

46、operandsEacuteWriteresultIff6r0x22(r2)1234Iff2r0x2d(r3)2345inultf工0,£2,f4367-1617subfferI6rf2478-910divfflO,fO,f65ie19-5859addff6rf8rf2111213-1819BusyOpFiFjFLQ3tRiRElategerlIateger2Iateger3AddlYesaddeFCraF2YeaYea1MultiY"KULIFroF2FlMoHqMult2DividelYesDIVFnoFOMule1Mo*3InstructionstatusInstru

47、ctionIssueReadoperandsExcuteWriteresultIffr0x22(r2)1234IfI2F0x2d(r3)2345multffOrf2rf4367-16173Ubf£8,£6,£2478-910divf£10,f0,f651819-5859add1£6,比,f2111213-1S19trap0x012131415BisyOpFxFjFkQ5QkR5RkIntegerlInteger2Integer3AddlY«aADDFFCFBF2KoHoMultiY«awutrrrorar<KoNoMu

48、lt2Dividely«bdivfnoror<waieiNoy”(3)记录运行Tomasulo算法时的指令状态表和保留站信息;InstmctianstatusInstructionIssueExcuteWriteresultliDx22123Instmet!anstatusInstructionIssueSxcuteVfriteresultIff£FOx22E2)123Iff2,0i2d(r3>234IrutnictionstaticInstruction工者sueExcuseWriteresultIf况(13(9If;2f0x2dir3>EUl:f工。八

49、%£412323435-1;13InatrictlonstatasInstructionIssueExcuteWriteresultirgdxzzn?Z|12;3Iff2,Cx2ci(r3234lUlr*fOpf2rf435-1213subfftff(ff245-67divfflOpfOrf514-4S46Instruetions-atuaInstructionIssueExciteWriteresul*iff6f123iff2r0i2d(i3J上:4multt±0,£2r£4S-1213tzb*4£fi7divf514-4546addfE6,

50、f8Ff2Et-1011InatructionIiLstmcbic-nIssueEacuteWriL.eresultIf123ir234nultffO.n.fl35-1213subf45-C7divfflDPfCrf£514-4S4addf£CffBr£2a9-1011mpC'xO31011V!IXiWfUfliH川FPMulupjgrtiir*fpaitnlWmqk实验四Cache性能分析一.实验目的1,加深对Cache的基本概念、基本组织结构以及基本工作原理的理解;2.掌握Cache容量、相联度、块大小对Cache性能的影响;3,掌握降低Cache不命

51、中率的各种方法以及这些方法对提高Cache性能的好处;4.理解LRU与随机法的基本思想以及它们对Cache性能的影响。二.实验平台Cache模拟器MyCache三.预备知识MyCache模拟器使用方法1,启动模拟器:用鼠标双击MyCache.exe。2 .系统会打开一个操作界面。该界面的左边为设置模拟参数区域,右边为模拟结果显示区域。如图1所示。3 .可以设置的参数包括:是统一Cache还是分离Cache,Cache的容量,块大小,相联度,替换算法,预取策略,写策略,写不命中时的调块策略。可以直接从列表里选择。4 .访问地址可以选择来自地址流文件,也可以选择手动输入。如果是前者,则可以通过点击

52、“浏览”按钮,从模拟器所在文件夹下面的“地址流”文件夹中选取地址流文件(,din文件),然后进行执行。执行的方式可以是步进,也可以是一次执行到底。如果选择手动输入,就可以在“执行控制”区域中输入块地址,然后点击“访问”按钮。系统会在界面的右边显示访问类型、地址、块号以及块内地址。5,模拟结果包括:(1)访问总次数,总的不命中次数,总的不命中率;(2)读指令操作的次数,其不命中次数及其不命中率;(3)读数据操作的次数,其不命中次数及其不命中率;(4)写数据操作的次数,其不命中次数及其不命中率;(5)手动输入单次访问的相关信息。MyC&cHC左*模摄器设置敏区模拟结果晶示区执行控刷区图1MyCache模拟器的操作界面示意图四.实验内容及结果1.Cache容量对不命中率的影响1 )启

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论