北邮计算机系统结构试验报告_第1页
北邮计算机系统结构试验报告_第2页
北邮计算机系统结构试验报告_第3页
北邮计算机系统结构试验报告_第4页
北邮计算机系统结构试验报告_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

1、高级计算机系统结构实验报告实验二指令流水线相关性分析实验三DLX处理器程序设计实验四代码优化实验五循环展开专业计算机科学与技术班级2015姓名学号2015实验二指令流水线相关性分析1 .实验目的:通过使用WINDLX模拟器,对程序中的三种相关现象进行观察,并对使用专用通路,增加运算部件等技术对性能的影响进行考察,加深对流水线和RISCM理器的特点的理解。2 .实验设备环境:2.1 WinDLX模拟器可以装入DLX汇编语言程序,然后单步、设置断点或者连续执行该程序;2.2 CPU的寄存器、流水线、I/O和存储器都可以使用图形的方式表示出来;2.3 模拟器还提供了对流水线操作的统计功能;2.4 该

2、模拟器对理解流水线和RISCt理器的特点很有帮助;2.5 所有浮点运算部件的延时都设定为4个周期;3 .实验原理:指令流水线中主要有结构相关、数据相关、控制相关。相关影响流水线性能。3.1 数据相关定义:原有先后顺序的两条指令(I1,I2)在对共享变量(位置)进行读、写时,指令流水线中实际完成的读、写顺序与原有顺序不一致,导致流水线输出错误。三类数据相关:写读(WR刑关读写(RW)ffi关写写(WW)相关解决方法技术:1 .使某些流水线指令延迟、停顿一或多个周期2 .双端口存储器:如果指令和数据放在同一个存储器。3 .设置两个存储器:一个数据存储,一个为指令存储器。4 .软件优化编译:通过指令

3、重新排序,消除数据相关。5 .定向技术:又称旁路技术或专用通路技术,是使后续指令提前得到前指令的运算结果(适合ALU类指令)3.2 结构相关定义:如果某指令在流水线重叠执行过程中,硬件资源满足不了指令重叠执行的要求,会产生资源冲突或竞争,称为流水线结构相关解决方法技术:1 .延迟技术:使某些指令延迟、停顿一或多个时钟周期2 .双端口存储器:允许同时读两个数据或指令3 .设置双存储器(哈弗结构):一个数据存储,一个指令存储。4软件优化编译:通过指令重新排序消除结构相关。3.3 控制相关定义:控制相关是指因程序执行转移类指令而引起的冲突相关。包括无条件转移、条件转移、子程序调用、中断等,它们属于分

4、支指令,执行中可能改变程序方向,造成流水线断流。解决方法技术:1、静态分支技术静态转移预测技术(猜测法)延迟转移提前形成条件码,生成转移目标地址改进循环程序2、动态分支预测技术转移历史表BHT转移目标缓冲栈(BTB转移目标指令缓冲栈BTIB4 .实验步骤:1 .1观察程序中由现的数据/控制/结构相关。指由程序中出现上述现象的指令组合。按要求,初始化WinDLX将所有浮点运算部件的延时都设定为4周期;载入fact.s和input.s先总体上观察数据/结构/控制相关。通'A'lFJD.X-6出川ExpcutfrMemuryConfiniiiirlTet&l:zrxsciJ:

5、5rilDekesuedb*IhtirLiztcrfs.2 Im就皿licrnfjrUrNmMardTBTBnori11tictr.Uenu般施):2击(11学院rad£5tjgoi;lr*二rmJEN生口«1.requitedCycles14fdhEXSlage5I.电qrecCyder4-oi-Mardngdi::abcdStaiLlE-RAW我如史|01星W亶aR口nmnwrQilun-tlbucludscab:UUU笈nfdlCpdcs二j前msidifc:sst9力生tfi&iCp注寸Tr华皿腌18(5.27%ol=CfolwJTg|d;T又5即雨除tfd

6、lDctes装入后点击F5运行,在结果分析中发现无结构相关,有数据相关和控制相4.1.1数据相关分析lactLoop0x00000124o«oooct)i2e0x000001小wooooon30OkD4CM001cDxl800000c0x044010060x04040005OwObffffacledf0j4bfptlact.FinishindtdfZJifOsubdJOjfOjfatlLaop可知第0*0000012c条指令subdf0,f0,f4对f0进行了读写操作,写回发生在MEM阶段,ledf0,f4指令在ID时刻要读取f0,f4的信息,可知关于f0两条指令发生了写读相关(WR

7、)。如上图所示,此时由于指令subdf0,f0,f4,在MEM时才写回f0,为保证程序的正确运行,ledf0,f4的ID取数阶段顺延至MEM完成后才进行,这样导致了流水线的断流,影响了程序的运行效率。4.1.2控制相关分析图0000012c0x04040005tubdnwnnntnnnQdbffifKij*”口中M0000134OxteO2102c.PrmtlVlue(rO)/20x00000138口心口0e1028addirl4jO,Qx1028可知第0*00000130条指令jfact.Loop为循环指令,指令在EX时刻才能判别in指令是否发生转移,此时发生了控制相关。如下所示,此时指令跳

8、转成功,故顺序取出的指令必须中断,并且转向取出转移到的指令。igLow|F2KJJ4:|IFI1口国,|hiEMT-WB|EpdFM;1I2II|;|flatMMfejjfact.Loop在EX时发现跳转成功,则在EX阶段马上结束指令顺序取出的指令sdPrintfValue(r0),f0,转而执行ledf0/4指令的取指阶段ID。由于此控制相关使得流水线断流一个时钟周期。1.2 考察增加浮点运算部件对性能的影响1.2.1 不附加部件在载入fact.s和input.s后,对程序进行初始化设置,使得浮点数运算时延均设为4。按F5运行程序,要求输入时,输入12,以后的运算也均输入12f皆VVINDL

9、X-fStaiisties!AltawVlQfnofyITotal;|?innpnfe(s:executed.|IL*e>ecuieclDylJbli'ristructian(s).2lnalructiono|cucrortiy«nPipohro.Hardwareconfiguz"ationMemcirpsize:32/bbUyt电ekddCXStages1lrequiredCcIm:4fnijlE?<-SInges1irciQuirodCjjcJex4fdrvE2<-Stage£-1.reqjiredCycles;4Fwwirdirgc

10、h二:nbi&d.StalIs:RAWstals:&5代之5。之cfallCycles)WAW-0心DO宾olillCyd»|s-ugmHVs,qiduq/ufju弟Ccntialirtalk:17|E5l艺ofallCyclea)Trap盘21EJXINaallCjidetJTStdl04Clalh)H7.00SJofircicWConditiona1Erranches):In1b(1428ofHlIftiwla口Hjjh国白M:taken:2113.33%ofMcond.BrandrotMken'13(8E67口f川candBlanches)JL-nad-

11、tore-Insttmo11onsTa日I13(12.30%口FMlEtivcU口nil.tieiMLoads:'7(5385(Load-JStcira门刷wbonqstores:b14bIbXatLoad-/Store-InslriictionsJF1catingpoin5t曰in代tru匚七ioTi吞ITotal24cfallIrEHuctiDw).hefEof:卢ddtat©n*11(4bU*o!I-loadingpointstagen§ljMulli口k&ioM:1354,1?i4rioatingacirttMg型inat|口汨氏口口足n口niRnl

12、曰匚用泊)riirimjiwgain,Traps:Tiap;,4(3.01SafalllnfrucbonslStatistics窗口中的各种统计数字:总的周期数(200)其中控制相关暂停17(8.5%)数据相关暂停12.0(6.0%)。1.2.2 附加forward部件在Configuration菜单中的设置,它们是:Symbolicaddresses,AbsoluteCycleCount和。点击EnableForwarding相应菜单项后,在它的旁边将显示一个小钩。WINDLX-£t3tEticE:|FigXVindowExecuteIM&rnoryConfgur3tio*

13、ii,日titti仁5Total;159CycefBxgcjted,IDexecutedbyIrhJnstpjctonlsl2lirUuLliuiintculurillp1inPipeline.Ha-rduarconfignqration'Memorysize:32768BjtesfaddEX-5lagci_1.requiiedlCycle-s.4fmdEX-Sl:agoo.1,roqurodCycles.:4fdtvEX-Staciftr1.reqijreriryder4FcManJriQenabled.Stalls;HAWstalls:26(I5464ofallQicJeslthe

14、reof:LDml-311,54*3HAW5»alBT日ghZJumnpwtHM:3(11.54%sfRAWstak)iFloElingpainttall2U|7&S2XdRAWstallsWAVsUlls.0(0.00X0(dllCycles)CHuMuatoll累0(O.OOSKofoilCpclc)Controlitalfe:17(T0,76ofallCpclm)T印stats12(7F9志ofallCycles)TuslsL55Swl口4.61六ofallCycle.slCond11iona1Hr君:Total1514.26ofalllnslfuctiarsl.her

15、eof:taken:2(13.ofallcond.Broinchea)ftotuakeh:U(Ub.b/dallcondBtarhChefJLosd-/t口工曰lastruutionsT口培上13(133S名ofgIIIrjstructicns).thereof:Leala-Z5JoilLoad-ZSIore-lnrEtriJctiirhnffJStaisSi6(46.T53KofLuddk/5lurelrilructiunslFloatingpointstinstaruction®_Tchat24(22丽XofallInstrucriom)rheirenf-Addliont:11I

16、45.63S&ofFloalingpemntMagein吐)MuKplicaHjonc13I54J73CefFl&ttingpoirktcAdgaimt)口而亡人力事口IM我ofFha*irgpnnt蚣为偿梢H)在定向技术存在的情况下Statistics窗口中的各种统计数字:总的周期数158其中控制相关暂停17(10.76%)数据相关暂停12.0(7.59%)。在定向技术不存在时候,控制相关暂停和数据相关暂停仍然是同样的值,总的模拟周期数增加到200。所以定向技术带来的加速比:200/158=1.266DLXforwarded比DLXnotforwarded快26.6%。1.2

17、.3 增加浮点运算部件点击FloatingPointStages®入后按下图的方式进行选择:Q>|-|EWZiGILJLdp:Ivt日口临口Htiac11Jrtil;a3;N口lYQiprlulimitMi.rfitierofr甫斗«r»日mufUIt。石.r-Mi-<z-T_<sM<-SOr-JIblCSIfotn-3rii_|i_4iHoviIi.4Olij_Eki曰匚o0日日口SAWiill匕=jtDrn=I:i=I运算结果如下:Statistics窗口中的各种统计数字:总的周期数(200)其中控制相关暂停17(8.5%)数据相关暂停

18、12.0(6.0%)与不增加部件的数据一样。1.3 转移指令的影响Condit1onalBranches);Total:15(14.羽,附allInstrudionsjLthereof,taken2(13.33ofal8nd.Branches)nottaken:13S6.67dallcontl.Branches可知条件分支指令总共有15条,其中有两条转移成功(13.33%),有13条转移不成功。转移不成功的指令就顺序执行,故不会影响程序的运行,不会导致流水线断流;而转移成功的指令会导致流水线的断流,经分析可知,两次断流都会导致一个周期的流水线断流。5 .实验结论:在流水线中,硬件资源满足不了指

19、令重叠执行的要求,会产生资源冲突或竞争,称为流水线结构相关,而解决流水线相关的途径之一是设置双存储器(哈弗结构):一个数据存储,一个指令存储。实际上,本身实现DLX指令的硬件设备已经考虑到了这一点,本身已有两个存储器,一个为数据存储器,一个为指令存储器。故本身就解决了部分结构相关问题。并且fact.s中的指令并不会导致其他资源冲突,故无法体现资源相关。试验中多加入浮点数部件,运行效率等没有变化。通过观察指令的运行情况,因为不会发生结构相关(硬件资源冲突),在流水线中的部件线性使用,故加入部件也不会对结果有直接的影响。6 .实验心得:通过本次实验,我熟悉了指令执行的每个阶段的任务,对时空图的理解

20、也更深了一步,对流水线中的三种相关性问题有了认识,同时通过此实验学习到了解决这些相关问题的方法,从而对课上所学的知识有了更系统的认识。实验三DLX处理器程序设计1 .实验目的学习使用DLX汇编语言编程,进一步分析相关现象。2 .代码清单及注释说明;fileadd_vector.s;完成两双精度浮点一维向量的加法(或乘除法)运算.data;修改此处代码可设置向量的长度以及对应向量数据;向量长度=16VectorLength:.word16Vector1:.word1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16Vector2:.word1,2,3,4,5,6,7,8,

21、9,10,11,12,13,14,15,16Prompt:.asciiz"ResultVector="PrintFormat:.asciiz"%f".align2PrintPrompt:.wordPromptPrintPar:.wordPrintFormat;为结果向量分配一个数据大小的内存空间Result:.space4.textmain:;r0初始为0,加上符号地址Prompt得到打印内容的首地址,存入r1411: addir14,r0,PrintPrompttrap5;将向量长度存入r1612: lwr16,VectorLength13: 第一个数

22、据偏移地址为0addir2,r0,0Loop:;循环将两向量对应位置的数据相加14: ldf10,Vector1(r2)15: ldf12,Vector2(r2)16: cvti2df0,f1017: cvti2df2,f1218: adddf4,f2,f019: sdResult,f4;将一次相加的结果f4存入Result内存空间中110: addir14,r0,PrintPar;打印目前为止的结果向量trap5;为下一次循环做准备111: addir2,r2,4112: subir16,r16,1113: bnezr16,Loop;trap0;系统中断,输出结果3.程序相关性分析结果4周期

23、;载入初始化WinDLX将所有浮点运算部件的延时都设定为add_vector.s一按F5运行,总体观察相关性。IffDL£-fStatiiticsTotalM3cli:l剧ejieojtedIDw*vCUidby_81hri<Miir'i|i)"In吐m匚*ionk)cjrentiyinPpdrB图erap*磔:见TEBEWeB'a±8EX5I,requued。内修k4.requiredCyd上段£'居IL1IIJill-iir.il口!izetlrdStalls:Raw软目窗1621332浜现曲口陋可5孰磔3|OOD>

24、;oi-tllilvdetlCorto|Ak15(1=3ofTrap54(13.00%:dfdlr而2:.nSidlhJg9二厘alCyrJesIGonJi"icnaJBtrancJbss)Toiat161将纲二制制hMiucsin此tierwfUm15曾无二clalHcrd日发向步:|1(675cfalccridBiarKhjKjLMd-/Stere-iMtruetiem:Tciat43IS?"3?tfMiFtrudjon*thpraohLoae?:k7J5黑olLcnad-Sbcra-I=tiuztons|lSioiet16(32E5Xol-lewStlriieliCH

25、明FloaLingpointstageinstxuc-tlouis%山:1£|口fl#:cil,11E.iUdion4IilrFAddiMw1&(1DOI)溜dFbalingporl比wratJrHultcIc-arKn;.-JDfFiaair-ia口。"in-stDEh廿电m丈D肛口J-fi.<rlFhalmgpoH用的9M.jTxapsTiaps:Ififd=4AofMllri±ln-clim切无结构相关,有控制相关和数据相关I6,I7和I8-数据WR相关(f0,f2),I8需要I6和I7的结果值。3.1 观察程序中由现的数据/控制/结构相关。指

26、由程序中出现上述现象的指令组合OI3和I4,I5-数据WR相关(r2),I4和I5需要I3存入r2的运算结果ldf10Vect«1(r2l:IdriiVecto(4(2);I4和I6,I5和I7-数据WR相关,I6/I71卜|西3EIdnlVetOlii2Idf12.v0wi?121口I8和I9-数据WR相关(f4),I9需要I8的结果值3dMM,12(fl|IFI口:也冏记_h.M|hB|tdR«iuWl:|IFIlR、iM.ihE-|;IEM|里I9和I10-结构相关。译码部件只有一个,I9使用未结束,I10需等待。sdRe<tiH:lO)JlD|ID|R-5al

27、|irF-UEMJ1|IF|碗口ID>FM|W三|I12和I13-数据WR相关,I13需要I12的结果值进行判断是否继续循环。3.2 考察增加浮点运算部件对性能的影响。浮点运算部件分别只有一个的情况敦fINELZ-S-ta±isticsJ_i3.fi:WindowEj:ecU.teM_efnoryCon£igirrationStatisticsTotal:315Cyctefs)executed.IDexecutedty181IrretnjctiDri(s).2IristruGtioncurrentlyinPipeline.Hardwarstonf£gurat

28、ion:Memorysize:32/能RylesJackdE-Stages:1,.requiredCycles:4JmulEX-Stages:1,requiredCycles:AfdivEXGtmg2史I.requiredCjiclesc4Fotvjardiigenabled.Stalls;RAWstalls;64(20.32%ofM口戈扎Iheieof:LD盘业:。口口吐印RAWst冰BlanchyJumpstak:1625OOMolRAWs加I阂FloatingpointtaNs:4675.00ofRAWsUlls)WAW剑I长00.00ofdllQcl日Stiucturlstals:0(

29、LiOOSolallCycles)Controlstah:15(4.7SoFallCycles)Trapstds:54(17.14%of制Cyicltes)Told.133Std(s42.22%cfallCdn)Cenriition«L1Braneh.esJ:ToUl:16OB84-cfalInstructions),thefeof:taken:15(9375ofallcond.Branchesnottaken1(6.25ofallcond.BranchesLcad/Store-Instruetions;Total49(2707XtitallInsbuchom),thereof;Ls

30、d$:3367.35%ofLoadtorednstruetjons)Stores163265寿ofLaad'/StorlnstructionsFloatingpointstageinstrueticns-TqUI;16限日4为ofmlImtruction扎thereof;Additions-16(100QU用ofFlMtrgpoint初次irisllMultiplications:00.口口,ofFbaJingpointstageinsl)Diyisions:(0.00ofFkjatingpointstagerist.Traps:浮点运算部件各自增加一个的情况VINDLZFil

31、1;七取也呻MtmtryCoEfiuiatiqhStitisticiTotiJ:315Cjcl4texecuted.Qenectjied161ItisUuctiorls),1ln$tructiori|s|cunenilnHipeiine,ILsix<1raiucouIquxdlLxuhMamotys;a:327696y<«WddEMWta尹t;二旧0M;rgdCjkI»<:<ImijFX,中为口7iftquifprlQyriflS,4Uji归X-Stme擎己吃quiiedCycles4Forwardingenabled.StallsMW*Uh&

32、;412032ofdl幅日匐Mbf.LL*bdh0(y.mdRAWiHBrBnqh/Jump让w原1£(2E其of或白lbFloathgTtarfitalh_13|75。区oFEAUfalk)3扭&鼾alls:LLLU、erfallCskIseStrLctuial4力型JID.OOo(alCyclei)Corbastalls154.7E*.of41Qides)一修.S'dllt;54'J14%olall匚wfes)mat1333同闾4222.alQctes)Cand.itLctxalDrSLnctijcs):Tcld:ofallnaliurtiarNIhere

33、ol:tai*rK砰:用WH洲eondBfanchw)ndtaken1(B25ofdllcond.Brandiesload-x'Stejtb-Instmetiems:'otal:4aZ7U/.olWlinsbuctorteLthered:Leads;"3(67.35i.dLoach/Stofednstfjcikinfi)Sij(E5.16dLuad-/Slutednslutniora)Flcatinjpointstageins:metions:Fotal:16(834stcfalllnstnjcbionsthere计Additcn?:16(100.00ofFlcwti

34、n;poirtstageinst.)MdtiplicMcns:0L,口口先atFloabngpobtitaoehstOi/isioris:010.00dFbaljncpcinlstageins.)Trcps;-一由f面力以看出:增加浮点运算部件并没有提高流水线的性能。原因是本程序中并没有并行执行的浮点运算。3.3 考察forward部件对性能的影响停用forward部件襄V1NDLI-Statistice)|FileYmiliIklEzicutetterboafTCnficrdjqitssTotal4136dmInhcuI:闯I10rwecutsdE191lh*iiuoUgri刎2iwruei

35、i*何的电41Pip唱Hdrdvarecanfig'uration,Hfictp<ms:-Ui'tt!目杷;loddEX-StigccT.fKurdjCvdes;4IrruEX-St泅9hI.旧qJiedQclss:ld£X-Sl<iy1.lequietlCpd«4Fcfwnringri趾Ifjjl由上面可以看出,使用forwarding技术很大程度上提高了流水线的性能加速比=413/315=1.3113.4观察转移指令在转移成功和转移不成功时候的流水线开销转移成功:brrez20j_a0匚idnOieni2)IDMEM|转移失败:bnszf20

36、j-ooprinE;ijMEk由上面可以看出,当转移成功时,已经进入取指阶段的指令被放弃,转入转移的目标指令的取指操作,这就造成了流水线的断流;若转移失败,已经进入取指阶段的指令继续进入译码阶段,流水线不断流。实验四代码优化1 .实验目的学习简单编译优化方法,观察采用编译优化方法所带来的性能的提高2 .实验原理采用静态调度方法重排指令序列,减少相关,优化程序3 .优化程序代码清单及注释说明;Programbeginatsymbol;requiresmoduleINPUT;readtwovectorsfromstdinandcalculatethesum;(type:double,vectorL

37、ength16);theresultiswrittentostdout5.dataVectorLength:.word16Vector1:.word1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16Vector2:.word1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16Printf1:.asciiz"Vector="Printf2:.asciiz"%f".align2PrintPrompt:.wordPrintf1PrintPar:.wordPrintf2Result:.space4.textmai

38、n:;*Printprompt"Vector="addir14,r0,PrintPromptadditrapr2,r0,0lwr20,VectorLengthLoop:ldf10,Vector1(r2)ldf12,Vector2(r2)addir2,r2,4cvti2df0,f10cvti2df2,f12subir20,r20,1adddf4,f2,f0;addD2=D0+D1;*Finish,writeresultintostdoutsdResult,f4addir14,r0,PrintPartrap5;addir2,r2,4;subir20,r20,1bnezr20,L

39、oop;*Endtrap04 .实验分析:优化前:Total:彳13厂m广4电jriiArlID封月匚1*旬hjj1fl1InhiJciiDnr(s)2口n(wicurrentlyinPipeline.zlIlo.xdwaxceonftion:Memory32768BytfaddEX-Staget:requiredCpcle:4rmuilzX-btagei?LrequiredC_y二电型4fdiEK-Sraoer1.r叁口idred4Fcrvuaidinaenabtsd.Gt-aiJ.IsjRAW国&A(20,32ofjIICyolocLIhorocf:LDtt4lk;0(0.00%o

40、fRAWttalcBranch/JumpdRMIE25【ii:IWairRAWdmiltFloaiingpaintstrife:4R(75口口NofRAWsrallte)WAW氐01似。0花ufallCwfeyStnuclufdstalk;0(0.00%uFallCycfes)Controlstalk:15(470ofoilCvdelTrapstalls:54(17.14禽口*alCycles)To匕-133Stai422湍ofallCydesCanditimrrn1Rzraznulhia宾)Toral:16(8g4/ofall'Instructtens),Hhergof:taK&am

41、p;n.15(93.ofdlconriLBffanch&sriultakdt1(G.20:oufelllchiilLChoihJiu3JIload-txxictions:total:49(27.07SJMallrrebudiM*Lthereof:Loads:JJ(&7.3SoJLaad-/Store-lrwtriuichon2StrirRS-1R(;12AS>rtfLn*ri-/Stnrft-lnstrucl'ions)FXezrati<igpoimtinstt-tictions.Total:1G(0J34ofcAlInrueHor)thereof:Addi

42、lwno:16100.00cfFloatingpoinJotgoinot.MWhpli匚司hoe9;00,口0考NFlowingpointg3g甘mrt.)Divisions'1U.DIIWFloanngpaintstageanst.Tx'au:优化后:Tiaps.16334MofallInstructions)-nr1i'llTotal:299卬cIe$)executeciIDexecuted1/lnstruction(s.2InstrucliorXs)currentinPipeline.日3rdwmt吕configi-iiation:M即oiysise:327E8E

43、yt居hddEKStage$:1,requiredCycles:4ffriii-Glag&s"1,requiredCycles:上fdivEX-Stages:1.requiredSd典一4ForwardingenabledStalls:RAW带t*;48(16Q5第ddlCyc期L出国E;LD期限0(0.005;ofRAW四El附ncMJumnp黜Ils;0(OOG讨RAW而同FlgtinypointMl将消G1。,口。笔gfRAW期唱WNW灿却黑0(0.0(RHMlCycles)Structural配标;口口U0落ofd11CilcFesCarirol他ll3;15叵Q2常

44、ofallCycles1Trapstalls:54(1806%oFallCyctes)Total:117曲网阳侬ofdtdec)ConditionalBranches):Total;16(3.64cJallInstructions,thoraotf:tdkanc15(9275笈cFalcondBranchesnottaken-1(6.25ofallcond.BranchesLoad-zStore-Insttuctidtis:Total;43(2707$ofallInstFuctasl.thereof-Load¥:33g735胃尚orN前iudli。闻Stares:16#255,ofL

45、ead-Z'Storedrtructions)FloatingpointstagemstTucticns;Total:16(884ofallInstructions,tkiaeof:Additions:16(100口宅ofFloatingpointstagein$L)Mulliplicalions:0口圜器ofFloatingpcinAstagein$LDivisions:0O.OCIXofFloatingpointstag日Traps:Traps:139.94-oflllnstructnritl结论:可以从图中看出代码优化后总的时钟周期从315减少到299,减少了16个时钟周期。数据

46、相关从20.32%«少至IJ了16.05%,减少了4.27%。控制相关从4.76%上升到5.02%。总体上,优化后的代码的效率相对于优化前的代码的效率有了比较大的提升。4.1. 观察程序中的数据/控制/结构相关及指令组合4.1.1. 数据相关及指令组合1)截图及分析Indructions/Cycles;二3J,二R(门口,H.126,27WEjjTl必钮而配,能1ilit3iBMrTvnIedddI4J2J0:IF1口"(-faddEXRIJ-f'MEM|wF-'sdResLdt(iOj4IFID|R-II1'WB第5个时钟周期,指令adddf4,f

47、2,f0和指令sdresult(r0),f4存在数据相关,指令sdresult(r0),f4的intEX阶段延迟至指令adddf4,f2,f0的intEX阶段完成后执行。2)相关指令组合adddf4,f2,f0sdresult(r0),f44.1.2.控制相关及指令组合:1)截图及分析insltjctonstL/cIbs二止立加420.山1MJ2.I0-dReuHiOIM枷n*g1Q93*中Jr5brer23jLjMJp印印曜口1-30,明/为IF*¥%口oborted-2i,2n优用IIrRbnezr20,Loop是循环判断指令,在其译码之后才发现不需要执行trap0x0,因此tr

48、ap0x0在第14个时钟周期被取消。3)相关指令组合bnezr20,Looptrap0x04.1.3.结构相关及指令组合1)截图及分析InstfuctionsJCjicla?-34.-33.-G2.-31-30-292g-27jg卜二空卜型节gr20j20,0x1adddf4,也町IFID怕疵而j的dFies而叨J40ddin40x1093IFIFWMEM|WBWE在上图中,蓝圈中stall是因为结构相关。因为上一条指令sdResult(r0),f4与addir14,r0,0x1098发生了数据相关,指令sdResult(r0),f4为了避免冲突,把addiID段加长了3个时钟周期。导致了和a

49、ddir0,r2,0x4产生了结构相关,因为r0,r2,0x4无法正常进入ID段,二必须等到指令sdResult(r0),f4离开ID段2)相关指令组合sdResult(r0),f4addir14,r0,0x10984.2. 考察增加浮点运算部件对性能的影响1)结果截图浮点运算部件的数量都为1时:Flostizi£PointStageConfigura*BxJCount:Di-lj.'AdditionUnis;MultiplicationUnits:DivisionUnits;c441dNumbeiofUnitsneachClass:1<=M<=4DelajJ(Q

50、ockCclesJ:1kN<-50WARNING:Ifyouchangethevalues,thepcocesiorwillberesetaulcnr>aticallylKCancelTotal::R:F(勺X陋。DexeWEdW131Insuwiirkii.2curetdynPiprlrir.Hardwsr©ng口rnti口Menory5Ge:印:w甘laddLX-biag-Ltaeurd4I.'ecj.Jr&d口cl照息f(aoes1,isquii&dlCwJes4FcfardmenabtedStalls.RAW*3%48|160ofHl匚产%

51、口卜甯山:1 .r奸葡曾111in=;rrRawBrwch/Jiinip;话氏i(rin.msislt)Hodintiporilsldls,4$(ICO口12ofRAWsldlslWW*3id民口中00¥ciTBdw)冬hqurNyalhi0|0CC:ofell中sic"Carftrolw图守"5|E,O2ilalCydee|IrapQk:54(I立匕&ofalCcIbJInIT4陋W四1文MM-riMCondition:alBlanchesTotal16|E84瓮!allindUG.iontIhciioltaken15(9175?>o!oilcar

52、dEhareh词ret'*ih:|E.25W&aliacrri.Brsolwci)Load/Stot?eImstrue11ons-lot4i43127074时瑞I旭tiueikm虬theiMfLu-idt.33067.35iofLlwO-Ut-histudiurk)£to<s1C(JlES-;ofLjadStac'InsfcuclianilFLDB.tdngpzmtstageznstructi.z(n»s:1aMi百l&g峻&ilInrtlUCMOHrC-),CMfM翼lfi(innon"-ofFh喃"pei

53、n*学为炉inirMiMpfciMfans:Q|QQQNofAnrngport胸声而相.ICiiviiDns:0口LCD之ofFlcatinapoix方旧址轴北Txapa:Traps;IS994cfalInslructbns)浮点运算部件都为2时:FlnatinpPnintStaeeCnirriturn.-耳ICountDelayfAddticriLinik-M/6Plic浦班UnitrDivisionUnih:MumbeBHLInilsheachClasi-1c=M<=8UDehy(CtockC/cl&c):I<-501WARN网HIfjiouchangettethepr

54、ocessor<痴IIberesetdUbm白氏病!1OKICahuslStatisticsTotal:2990心的executedIDexecutedb,191Instructional2 InslrucHarifscuttenllj*inPipeln&.Hardwareconfiduration:Mernor/£i2e:327G&ByleshddE-Stages:2,requiredCletes:4fmwIE-Stages:2,requiredCycled:4MivE-Gtages:cecpjiredJ*cles:4Foiwafcbngenabled.Sta

55、lls:RAWstalls:4S(IE.05ofallCycles!,thereof:LDMik:0(O.uOofRAW喇Branch2Jumpstals:0(0.0虞ofRA.Wwl国kJFloatingPH鼾als:43(1OOlOOofRAW也白用WAW期lb;O0,00ofalCycles)Structurals:tal装U(0.00oJall3日理Control鼾a怔155.02ofallCjcletTrapstdl54(1;5.06ofellCyde?T&tsMl/£tall5I:.;ofjIIC/cIk)CcnditiclBraundies);F1GR94之ofalIrKlnjctionsLthereof:taken15193.75;:afallccnd.Branches)nottaken;1(£.25:ofallcondBianchesjLcad-StoreInstructions:T口闾二43(27.07ofM鬲物uctionsL由日鼠;Loads:33(£7.25cfLoad-/Store-linstructiohs|Stores:16(32.B5ofLoad-/Store-lnstructicrnsIPleatingpointstage:instructions:T

温馨提示

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

评论

0/150

提交评论