北邮计算机系统结构实验报告-实验一到五-WINDLX模拟器全解_第1页
北邮计算机系统结构实验报告-实验一到五-WINDLX模拟器全解_第2页
北邮计算机系统结构实验报告-实验一到五-WINDLX模拟器全解_第3页
北邮计算机系统结构实验报告-实验一到五-WINDLX模拟器全解_第4页
北邮计算机系统结构实验报告-实验一到五-WINDLX模拟器全解_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

1、 北京邮电大学实验报告课程名称计算机系统结构计算机学院2016111303班王陈(2016110711)目录实验一WINDLX模拟器安装及使用3实验准备错误!未定义书签。实验环境错误!未定义书签。实验步骤错误!未定义书签。实验内容及要求错误!未定义书签。实验过程错误!未定义书签。TOC o 1-5 h z HYPERLINK l bookmark48 o Current Document 实验总结8 HYPERLINK l bookmark50 o Current Document 实验二指令流水线相关性分析9 HYPERLINK l bookmark52 o Current Document

2、 实验目的9 HYPERLINK l bookmark54 o Current Document 实验环境9 HYPERLINK l bookmark56 o Current Document 实验步骤9实验过程错误!未定义书签。 HYPERLINK l bookmark66 o Current Document 实验总结16 HYPERLINK l bookmark68 o Current Document 实验三DLX处理器程序设计17 HYPERLINK l bookmark70 o Current Document 实验目的17实验环境错误!未定义书签。实验步骤错误!未定义书签。 HY

3、PERLINK l bookmark74 o Current Document 实验过程17 HYPERLINK l bookmark76 o Current Document 向量加法代码及性能分析17 HYPERLINK l bookmark96 o Current Document 双精度浮点加法求和代码及结果分析22 HYPERLINK l bookmark148 o Current Document 实验总结26 HYPERLINK l bookmark150 o Current Document 实验四代码优化27 HYPERLINK l bookmark152 o Current

4、 Document 实验目的27实验环境错误!未定义书签。 HYPERLINK l bookmark154 o Current Document 实验原理27实验步骤错误!未定义书签。 HYPERLINK l bookmark156 o Current Document 实验过程27 HYPERLINK l bookmark164 o Current Document 实验总结+实习体会32 HYPERLINK l bookmark166 o Current Document 实验五循环展开32 HYPERLINK l bookmark168 o Current Document 实验目的32

5、实验环境错误!未定义书签。 HYPERLINK l bookmark170 o Current Document 实验原理32实验步骤错误!未定义书签。 HYPERLINK l bookmark172 o Current Document 实验过程32 HYPERLINK l bookmark174 o Current Document 矩阵乘程序代码清单及注释说明32相关性分析结果38 HYPERLINK l bookmark138 o Current Document 增加浮点运算部件对性能的影响38 HYPERLINK l bookmark64 o Current Document 增加

6、forward部件对性能的影响38转移指令在转移成功和转移不成功时候的流水线开销38 HYPERLINK l bookmark176 o Current Document 实验总结+实习体会+课程建议38实验一WINDLX模拟器安装及使用WinDLX模拟器的结构和功能说明点击运行之后,会看到一个如下图所示的窗口。它包括Register,Code,Pipeline,ClockCycleDiagram,Statistics,Breakpoints。接下来详细介模拟器的结构及各个部件的功能。Register窗口介绍Rigister窗口中显示的是各个寄存器的名称及内容。如下图:爱WINDLXFileW

7、indowExecuteMemoryConfigurationRegisterilRegisteriPC=OkOOOOOIOOIMAR=0 x00000000IR=OkOOOOOOOOA=OkOOOOOOOOAHI=0 x00000000B=OkOOOOOOOOBHI=OkOOOOOOOOBTA=0 x00000000ALU=OkOOOOOOOOALTJHI=0m00000000FPSR=0 x00000000DMAR=OkOOOOOOOOSDR=OkOOOOOOOOSDRHI=0 x00000000LDR=OkOOOOOOOOLDRHI=0m00000000R0=0 x00000000Rl=

8、OkOOOOOOOOR2=OkOOOOOOOOR3=0 x00000000R4=OkOOOOOOOOR5=0 x00000000R6=0 x00000000R7=OkOOOOOOOO=012345678901234567890191111111111222222222233RRRRRRRRRRRRRRRRRRRRRRR0 x00000000OsOOOOOOOO0 x000000000 x000000000 x000000000 x000000000 x00000000OsOOOOOOOO0 x000000000 x000000000 x000000000 x000000000 x0000000

9、0OsOOOOOOOO0 x000000000 x000000000 x000000000 x000000000 x00000000OsOOOOOOOO0 x000000000 x000000000 x000000000 x00000000=-=-=01234567890123012345678911111111112222FFFFFFFFFFFFFFFFFFFFFFFFOOOOOOOOOOOOOOOOOOOOOOOO22222233FFFFFFFF4E6789010246811111222223DDDDDDDDDDDDDDDD02468024680可以看到寄存器中以十六进制标识,从上图可以看

10、出各个寄存器中的内容Code窗口介绍在没有进行任何执行的时候,初次打开code窗口,即为下图所示窗口现实的信息是各个存储器内同。第一列标识存储器的地址;第二列是机器代码,用16进制表示;第三列是汇编指令。当我们点击上方的,可以选择单步或多步执行(也可以使用快捷键F7或F8)。若选择单步执行,每按一次F7,指令执行一次,可以看到,一次执行的为IF-ID-intEX-MEM-WB,没执行一次还有颜色的变化。颜色是用来标识指令处于哪个流水段的,如下图。当然,我们也可以使用多步执行,按快捷键F8,选择5步流水,即可。Pipeline窗口介绍通过阅读WinDLX模拟器说明书可以知道,Pipeline窗口

11、显示的是DLX处理器的内部结构。窗口用下图标识DLX五段流水。当然,如同Code窗口介绍讲述的那样,不同的颜色显示了指令处于哪段流水线。使用快捷键F7单步执行,可以明显的看出,不同时候流水段执行的不同指令。如下图。faddEXnop$TEXT+0 x18irnop$TEXT+0 x14inop$TEXT+0 x10inop$TEXT+0:-:ciFnop$TEXT+0 x8IInt-StagesIFIDintEXMEMWB1fmulEXV11fdivEX、图片反映的正式与Code中所处的时刻相同的指令流水。可以清晰看到不同流水段执行的是哪条指令。ClockCycleDiagram窗口实验准备中

12、我们已经知道,该窗口显示的是流水线的时空图。时空图反映的是不同时隙内的运行情况。如下图。I、ClockCycleDiagramIristructionsCyclesnopnopnopnopnupnupnop壬I月IdI-2I2IJIIF|ID|intEX|MEM|WBIF|ID|intEX|MEM|7闭一在我看来,时空图是最好理解的。因为它反映的就是流水段的并行程度。在这个DLX模拟器中,并不存在一些数据或者控制上的冲突问题。所以可以依靠上图很清晰的看到指令所处的不同流水段,及指令执行情况。该时空图同样也是和前面的Code等相对应。也可以通过快捷键F7来进一步执行指令,可以看到流水线时空图的扩

13、展情况。任意双击指令的一行,可以详细看到不同流水段的情况。如下图所示。5.Statistics窗口介绍该窗口是对运行程序中的数据进行分析。主要包括模拟器中硬件配置情况在该窗口中,我们可以比较不同配置对于该模拟器的不同影响。如下图所示。整体指令执行情况Total:7Cyclefsexecuted.IDexecutedby6Instruction(s).5Instruction(sjcurrentlyinPipeline.硬件配置情况Hardwareconfiguraticm:Memorysize:32768BytesfaddEX-Stages:LrequiredCycles:2fmulEX-St

14、ages:1,requiredCycles:5fdivEX-Stages:1,requiredCycles:19Forwardingenabled.暂停次数和百分比及原因分析Stalls:RAWstalls:0(0.00ofallCycles),thereof:LDstalls:0(0.00:ofRAWstalls)Branch/Jumpstalls:0(0.00ofRAWstalls)Floatingpointstalls:0(0.00ofRAWstallsWAWstalls:0(0.00ofallCycles)Structuralstalls:0(0.00ofallCycles)Contr

15、olstalls:0(0.00ofallCycles)Trapstalls:0(0.00ofallCycles)Total:0Stall(s(0.00ofallCycles)分支次数和百分比ConditionalBranches):Total:0(0.00ofallInstructions),thereof:taken:0(0.00ofallcond.Branchesnottaken:0(0.00ofallcond.Branches)Load/Store指令执行情况Load-/St口re-Instruuticmw:Total:0(0.00ofallInstructions,thereof:Lo

16、ads:0(0.00ofLoad-/Store-instructions)Stores:0(0.00ofLoad-/Store-instructions浮点指令执行次数和百分比Floatinmpointageinstruutions:Total:0(0.00ofallInstructionsthereof:Additions:0(0.00ofFloatingpointstageinst.)Multiplications:0(0.00ofFloatingpointstageinst.)Divisions:0(0.00ofFloatingpointstageinst.)trap发生的次数和百分比T

17、raps:Traps:0(0.00ofallInstructions6.Breakpoints窗口介绍该窗口使用来观察代码运行情况。先打开Breakpoints窗口,点击窗口上方的来设置breakpoint,也就是设置指令运行到流水线的哪个阶段程勋停止执行。如上图,如果选择EX阶段,在Code窗口中相应的行会出现BEX,即指令执行到译码结束执行开始的时候,程序将中止。实验总结通过本次试验,由于是第一次接触DLX模拟器,该试验能够帮助我对这个模拟器大致的功能及使用做个大致的了解。对于日后的实验打下好的基础。我觉得WinDLX模拟器小而精悍,它有不同颜色的标记,不同寄存器及存储器的反映。通过使用它

18、,可以对5步流水的过程及不同阶段很清楚明白的看到。也可以看到不同指令分析走到了哪一步,到了哪一步流水段。实验二指令流水线相关性分析实验目的通过使用WINDLX模拟器,对程序中的三种相关现象进行观察,并对使用专用通路,增加运算部件等技术对性能的影响进行考察,加深对流水线和RISC处理器的特点的理解。实验环境WindowsXP操作系统WinDLX模拟器实验步骤观察程序中出现的数据/控制/结构相关。指出程序中出现上述现象的指令组合。考察增加浮点运算部件对性能的影响。考察增加forward部件对性能的影响。观察转移指令在转移成功和转移不成功时候的流水线开销。1.观察程序中出现的数据/控制/结构相关;指

19、出程序中出现上述现象的指令组合。1)数据相关如下图所示,在ClockCycleDiagram窗口所想是的时空图中和Pipeline窗口中的流图中,第一次出现了R-Stall。接下来可以点击上图中的橘色窗口,则屏幕显示lbur3,0X0(r2)要在WB周期写回r3中的数据;而下一条指令seqir5,r3,0Xa要在intEX周期中读取r3中的数据。上述过程发生了WR冲突,即写读相关。为了避免此类冲突,seqr5,r4,0Xa的intEX指令延迟了一个周期进行。由此,相关指令为:input.Loop0 x90430000lbu审叩20 x000001780 x6065000aMEMseqir5j3

20、,0 xa控制相关I、ClockCycleDiagramInstructions/Cyclesaddir1j0,0 x1000同InputUnwignedmovi2fpf1Oj1swSaveR2(rO)j2由上图可以看出,在第4时钟周期:第一条指令处于MEM段;第二条命令处于intEX段;第三条指令出于aborted状态;第四条命令处于IF段。原因分析:jalInputUnsigned是无条件分支指令,但当第三个周期开始的时候,也就是jal这条指令被译码后才知道。此时,movi2fp已经执行,且将要执行的下一条命令在另外一个地址处,所以这条指令不会执行,这个时候就会发生控制相关。由此,发生控制

21、相关的指令为:KCcxie|$TEXT0 x20011000intEXaddirljO.OxIOOOmain+0 x40k0c00003cIDialInputUngign胡main+0 x80 x00205035IFmovi2fpfl0j10 x000001440 xac021094IFswSaveR2(rO)j2结构相关首先,我们先来看一下执行过控制相关的时空图和Pipeline,如下图。当我们点击Pipeline中IF所对应的框框可以看到详细的该指令执行情况,如下图:Cycles:-2(3InPipelineIMAR:10IR-MemIMAR(=0w20420001PC-PC+4(=inp

22、ut.Loop+0 x1c)2Stall(s)becauseofstructuralHazard!上图表明了addir2,r2,0X1的详细信息。该指令与它前一条指令addrl,rl,r3发生了结构相关。并且由于此处的冲突,需要暂停2个周期。在ID段暂停后,则开始进图intEX段。所以这条指令Caddir2,r2,0X1)你不能进入ID流水段,译码部分占用,发生了结构相关。该部分的指令为:0 x000001030 x00230820addr1j1j30 x0000013c0 x20420001addir2j2,0 x1考察增加浮点运算部件对性能的影响。该实验取N=6首先通过二二-u,点击Flo

23、atingPointStageConfiguration来设置浮点运算部件的配置。由于实验手册上面要求Delay=4,所以我们将Delay这一栏改成4,而Count可以任意,为了对比,我们第一次浮点运算部件取全部为2,第二次浮点运算部件取全部为3。如下图所示:FloatingPointStageConfigurationFloatingPointStageConfigurationAdditionUnits:Count:Delay:24MultiplicationUnits:24DivisionUnits:24AdditionUnits:Count:Delay:34Multiplication

24、Units:34DivisionUnik:34NumberofUnitsineachClass:1=M=&Delay(ClockCycles:1=N=50WARNING:Ifyouchangethevalues,theprocessiwillberesetautomatically!NumberofUnitsineachClass:1=M=&Delav(ClockCycles):1=N=50WARNING:Ifyouchangethevalues,theprocessorwillberesetautomatically!OKCancelOKCancel运行50个cycles之后,可以看到他们数

25、据的对比:StatisticsTcjt曰d:50Cycle(s)executed.IDexecutedby32Instructionfs,4Instruction(s)currentlyinPipeline.Hardwareconfiguration:Memorysize:32760BytesfaddEX-Stages:3,requiredCycles:4fmulEX-Stages:3,requiredCycles:4fdivEX-Stages:3,requiredCycles:4Forwardingenabled.Stalls:RAWstalls:9(10.00ofallCycles),th

26、ereof:LDstalls:2(22.22:ofRAWstalls)Branch/Jumpstalls:2(22.22ofRAWstallsFloatingpointstalls:5(55.56ofRAWstalls)WAWstalls:0(0.00ofallCycles)Structuralstalls:0(0.00ofallCycles)Controlstalls:4(8.00ofallCycles)Trapstalls:6(12.00ofallCyclesTotal:19Stall(s(30.00:ofallCyclesConditionalBranches):Total:26.25龙

27、ofallInstructions,thereof:taken:1(50.00ofallcond.Branches)nottaken:1(50.00ofallcond.BranchesLoad-/Store-Instructions:Total:11(34.30ofallInstructionsthereof:Loads:654.54嵬ofLoad7Store-instructions)Stores:54545老ofLoad7Store-instructions)Floatinmpointageinstruuticinw:Total:1(3.12ofallInstructions,thereo

28、f:Additions:0(0.00ofFloatingpointstageinst.)Multiplications:1(100.00ofFloatingpointstageinst.)Divisions:0(0.00ofFloatingpointstageinst.)Traps:Traps:26.25龙ofallInstructions)由此可见,浮点运算部件的增减对效率无影响。比较各个数据,发现没有变化。无论怎么增加浮点运算部件,统计结果都一样。原因在于此程序中浮点计算指令没有重叠,所以并行度没有增加,性能没有提高。考察增加forward部件对性能的影响。为了对比有无forward部件的

29、性能。需要在二=中勾选enableforwarding,以及不勾选enableconfiguration来看性能数据的对比。不使用forward部件:使用forward部件:从上面的数据我们可以看出增加forwardi部件后RAW由原来占总时钟周期的26%减少至18%,RAW个数由原来的13减少至9。增加forward部件使得控制相关比例增加了。即,使用forward部件后,总的时钟周期减少,数据相关减少,流水线的性能得到一定的改善。观察转移指令在转移成功和转移不成功时候的流水线开销。我们假设,浮点部件设置Count=3,Delay=4;N=6。执行完毕后,查看条件转移分支,如下图所示:Con

30、ditionalBranches):Total:0(12.12%ofallInstructions),thereof:taken:2(25.00ofallcond.Branches)nottaken:6(75.00ofallcond.Branches)由上图可知,转移指令一共8条,成功转移2条(占25%),不成功为6条。所以,静态指令调度算法只能解决数据相关,条件转移结果与原来相比没有变化。即,若转移不成功,对流水线的执行无影响,流水线的吞吐率和效率没有降低;若转移成功,则要废弃预先读入的指令,重新从转移成功处读入指令,执行效率会下降。实验总结本次试验中,主要遇见一个问题,就是在当初文件加载时

31、没有成功,后来通过查询资料和自己的尝试,发现,在选择文件的顺序很关键,它决定了文件在存储器中出现的顺序。本次实验,主要通过对于三中相关的观察,分析出现相关时的指令,分析浮点运算部件和forward部件对性能的影响,观察转移指令在转移成功和不成功时的流水线开销,这些实验一步一步,通过WinDLX形象生动的表示,使我在实践中更加深入的认识了流水线。实验三DLX处理器程序设计实验目的学习使用DLX汇编语言编程,进一步分析相关现象实验过程A.向量加法代码及性能分析首先给据题目要求,需要熟练掌握DLX编程语言,然后根据规范格式编写向量的代码。向量声明VectorLength:.word16/声明向量长度

32、Vector1:.word1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16/声明两个向量Vector1和Vector2Vector2:.word1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16Result:.space4/声明一个空间来存放打印的数据Loop:/循环体ldf10,Vector1(r2)ldf12,Vector2(r2)/读入两个提前声明的向量addf4,f2,f0/加法运算trap5/系统中断源代码 运行结果分析当运行到如下图所示的时候,则表示运行结束。运行结果为接下来我们可以查看Statistics可以看到运行结果的数据

33、显示,如下图所示。addir14A0 x1098trap0 x51)程序相关性分析结果数据相关由上图的可以看出,该程序产生了11.31%的数据相关。所以当对当前指令的操作数寄存器进行操作(EX)的时候,前几条指令的运算结果还未写回(WB)结果寄存器,由此产生数据相关。结构相关由于程序只简单的做了一次加法,所以没有结构相关产生。控制相关查看pipeline中可以看到,当执行到如下情况时,发生了控制相关。IFT-StallIDintEX|MEMWBIF|Stall|ID|intEX|MEM|WB由Statistics中的可以看出,其控制相关发生了5.3%。分析可知,由于系统按照预测成功来执行指令,

34、所以执行bnez后马上将其下一条指令trap读进来。2)浮点运算部件带来的影响当我们通过设置浮点部件的个数,并将程序运行完毕,查看Statistics中的数据作对比。如下图所示。Total:203Cvcle(s)executed.IDexecutedby101Instructionfs,2InstructionfscurrentlyinPipeline.Hardwareconfiguration:Memorysize:32768BytesfaddEX-Stages:4”亡quir已dCycles:2fmulEX-Stages:4,requiredCycles:5fdivEX-Stages:4,

35、requiredCycles:19Forwardingenabled.Stalls:RAWstalls:32(11.31ofallCycles),thereof:LDstalls:0(0.00:ofRAWstalls)Branch/Jumpstalls:16(50.00ofRAWstallsFloatingpointstalls:1650.00龙ofRAWstalls)WAV/stalls:0(0.00:ofallCycles)Structuralstalls:0(0.00ofallCycles)Controlstalls:15(5.30ofallCycles)Trapstalls:54(19

36、.00ofallCycles)Total:101Stall(s(35.70:ofallCycles)ConditicinadBranches):Total:16(3.84ofallInstructions,thereof:taken:15(93.75ofallcond.Branches)nottaken:1(6.25ofallcond.Branches)Load-/Store-Instruetions:Total:49(27.07ofallInstructions,thereof:Loads:33(67.35ofLoad-/Store-instructions)Stores:16(32.65o

37、fLoad-/Store-instructions)Floatingpointstageinstructions:T:3)forward部件的影响帖,止曾宙睡弼翱射0扭P龙ofFloatingpointstageinst.)的性能未得到提升。初ngpointstageinst.)分析原因我们知道,由于该程序为产生浮点加法器的数量对程序执行的性能提升没有帮助。StatisticsTcitaJ.:203Cyclefsexecuted.IDexecutedby181Instruction(s).2Instruction(s)currentlvinPipeline.Hardwareconfigurat

38、ion:Memorysize:32760BytesfaddEX-Stages:1,requiredCycles:2fmulEX-Stages:1,requiredCycles:5fdivEX-Stages:LrequiredCycles:19Forwarding亡nabled.Stalls:RAWstalls:32(11.31ofallCvcles,thereof:LDstalls:0(0.00:ofRAWstalls)Elranch/Jumpstalls:1650.00龙ofRAWstalls)Floatingpointstalls:16(50.00ofRAWstalls)V/AWstall

39、s:00.0虑ofallCyclesStructuralstalls:0(0.00ofallCyclesControlstalls:15(5.30ofallCycles)Trapstalls:54(19.00ofallCycles)Total:101Stall(s)(35.70ofallCycles)ConditionalBranches):Total:16(8.84ofallInstructions),thereof:taken:15(93.75ofallcond.Branchesnottaken:1(6.25ofallcond.BranchesLoad-/Store-Instruetion

40、s:Total:49(27.07ofallInstructions),thereof:Loads:33(67.35ofLoad7Store-instructionsStores:16(32.65ofLoad-/Store-instructions)Floatin牙pointstageinstruutions:Total:16(0.04ofallInstructions),thereof:Additions:16(100.00ofFloatingpointstageinst.Multiplications:0(0.00ofFloatingpointstageinst.)Divisions:0(0

41、.00ofFloatingpointstageinst.)Traps:Traps:18(9.94ofallInstructions)StatisticsTuit曰d:301Cyclefsexecuted.IDexecutedby101Instruction(s).2Instruction(s)currentlvinPipeline.Hardwareconfiguration:Memorysize:32760BtesfaddEX-Stages:1,requiredCycles:2fmulEX-Stages:1,requiredCycles:5fdivEX-Stages:1,requiredCyc

42、les:19Forwardingdisabled.Stalls:RAWstalls:130(34.12:ofallCyclesWAWstalls:0(0.00ofallCycles)Structuralstalls:0(0.00ofallCycles)Controlstalls:15(3.94ofallCycles)Trapstalls:54(14.17ofallCycles)Total:199Stall(s)(52.23:ofallCvcles)ConditionalBranches):Total:16(8.04ofallInstructionsthereof:taken:15(93.75o

43、fallcond.Branches)nottaken:1(6.25ofallcond.BranchesLoad-Store-Instruetions:Total:49(27.07ofallInstructions),thereof:Loads:33(67.35ofLoad-/Store-instructionsStores:16(32.65ofLoad7Store-instructions)Floatinmpointageinstruutiemw:Total:16(8.84ofallInstructionsthereof:Additions:16(100.00ofFloatingpointst

44、ageinst.)Multiplications:0(0.00ofFloatingpointstageinst.)Divisions:0(0.00ofFloatingpointstageinst.)Traps:Traps:18394龙ofallInstructions)由上图的对比可以看到,当不勾选enableforwarding时,运行时间由283增加到381。所以forwarding技术为该程序带来的加速比为381/282=1.354)转移成功和不成功查看statistics中的ConditionalBranches选项,两者的下述相同,如下图所示。ConditionalBranches)

45、:Total:16(0.04ofallInstructionsthereof:taken:15(93.75ofallcond.Branches)nottaken:1(6.25ofallcond.Branches可以发现,由于系统按照预测成功来执行指令,所以执行bnez后马上将其下一条指令trap读进来判断出是转移不成功时,系统对trap指令进行的操作被全部作废,转而去执行跳转到的指令id。B.双精度浮点加法求和代码及结果分析按照题目要求,自行又编写了一套程序来实现双精度浮点加法求和结果分析当运行到如下图所示时,运行结束,可以看到运行结果如下图所示。DLX-Standard-I/OTheresu

46、ltiw3.0000004.3000007.0000009.00000011.00000013.00000015.00000017.00000018.90000021.00000023.00000025.00000027.00000029.00000031.00000033.00000035.00000037.00000038.90000041.000000产看Statistics可以看到具体数据情况和产生相关的比例等。StatisticsTotal:474Cycle(s)executed.IDexecutedby186lnstruction(s,2Instructionfsjcurrentl

47、yinPipeline.Hardwareconfiguration:Memorysize:32760BytesfaddEX-Stages:krequiredCycles:2fmulEX-Stages:LrequiredCycles:5fdivEX-Stages:1,requiredCycles:19Forwardingdisabled.StalIs:RAWstalls:26355.4战ofallCycles)WAV/stalls:0(0.00ofallCycles)Structuralstalls:0(0.00ofallCycles)Controlstalls:21(4.43ofallCycl

48、es)Trapstalls:3(0.63ofallCycles)Total:237Stall(s(60.55:ofallCyclesConditicinadBranches):Total:21(11.29ofallInstructionsthereof:taken:1(4.76ofallcond.Branches)nottaken:20(95.24ofallcond.BranchesLoad-/StcirB-InstFuuticms:Total:60(32.26ofallInstructions),thereof:Loads:40(66.67ofLoad7Store-lnstructions)

49、Stores:20(33.33ofLoad-ZStore-lnstructions)Floatingpointstageinstructions:Total:4021.50龙ofallInstructions),thereof:Additions:2050.00龙ofFloatingpointstageinst.)Multiplications:2050.00龙ofFloatingpointstageinst.)Divisions:0(0.00ofFloatingpointstageinst.)Traps:Traps:1(0.54ofallInstructions1)程序中出现的数据/控制/结

50、构相关控制相关:数据相关由Statistics中的知道,发生了55.48%的数据相关。产看代码可以发现,产生的相关都为RW读写相关。它们分别为:addir1,r0,0subir2,r1,20subir2,r1,20beqzr2,finishmultur3,r1,r4ldf0,a(r3)ldf2,b(r3)adddf4,f0,f2adddf4,f0,f2sdr(r3),f4控制相关由Statistics中的卅日11眈1阔可以看到,发生了4.43%的控制相关。系统按照预测成功来执行指令,执行一条指令后马上将其下一条指令trap读进来。2)增加浮点运算部件对性能的影响。下图分别为浮点运算部件为1和4

51、的时候数据情况对比。StatisticsTotal:474Cvcle(s)executed.IDexecutedby106Instructionfs,2Instruction(s)currentlyinPipeline.Hardwareconfiguration:Memorysize:32760BytesfaddEX-Stages:1,requiredCycles:2fmulEX-Stages:LrequiredCycles:5fdivEX-Stages:1,requiredCycles:19Forwardingdisabled.Stalls:RAWstalls:26355.4筋ofallCy

52、cles)WAWstalls:0(0.00ofallCycles)Structuralstalls:0(0.00ofallCycles)Controlstalls:214.43龙ofallCycles)Trapstalls:3(0.63ofallCycles)Total:237Stallfs(60.55:ofallCyclesConditionalBranches):Total:21(11.29ofallInstructionsthereof:taken:1(4.76ofallcond.Branches)nottaken:20(95.24ofallcond.BranchesLoad-/St口r

53、e-1nstruuticinw:Total:60(32.26ofallInstructionsthereof:Loads:40(66.67ofLoad7Store-instructions)Stores:20(33.33ofLoad7Store-instructions)Floatingpointstageinstructions:Total:40(21.50ofallInstructionsthereof:Additions:20(50.00ofFloatingpointstageinst.)Multiplications:20(50.00ofFloatingpointstageinst.)

54、Divisions:0(0.00ofFloatingpointstageinst.)Traps:Traps:1(0.54ofallInstructionsStatisticsTot曰d:474Cyclefsexecuted.IDexecutedby186Instruction(s).2Instruction(sjcurrentlyinPipeline.Hardwareconfiguratidn:Memorysize:32760BytesfaddEX-Stages:requiredCycles:2fmulEX-Stages:4,requiredCycles:5fdivEX-Stages:4,re

55、quiredCycles:19Forwardingdisabled.Stalls:RAWstalls:26355.4孩ofallCycles)WAWstalls:0(0.00ofallCyclesStructuralstalls:0(0.00ofallCyclesControlstalls:21(4.43ofallCyclesTrapstalls:3(0.63ofallCycles)Total:287Stall(s)(60.55:ofallCycles)ConditionalBranches):Total:2111.29老ofallInstructions),thereof:taken:1(4

56、.76ofallcond.Branches)nottaken:20(95.24ofallcond.Branches)Load-/Store-Instructions:Total:60(32.26ofallInstructions),thereof:Loads:40(66.67ofLoad7Store-instructions)Stores:20(33.33ofLoad-/Store-instructionsFloatin牙pointstageinstmutions:Total:4021.50龙ofallInstructions),thereof:Additions:20(50.00ofFloa

57、tingpointstageinst.Multiplications:20(50.00ofFloatingpointstageinst.)Divisions:0(0.00ofFloatingpointstageinst.Traps:Traps:10.54龙ofallInstructions)由上图的对比可知,当浮点运算部件个数给边后统计结果均相同,也就是其数量对该函数没有任何性能方面的改进。分期其原因为,这主要是因为函数中没有连续的浮点加指令,乘、除指令。增加forward部件对性能的影响。下图左侧为没有勾选enableforwarding时的运行数据结果,右侧为使用了forwarding技术

58、。StatisticsTuit曰d:474Cycle(s)executed.IDexecutedby106Instruction(s).2Instruction(s)currentlvinPipeline.Hardwareconfiguration:Memorysize:32760BytesfaddEX-Stages:1,requiredCycles:2fmulEX-Stages:1,requiredCycles:5fdivEX-Stages:1,requiredCycles:19Forwardingdisabled.Stalls:RAWstalls:26355.4膨ofallCyclesWA

59、Wstalls:0(0.00ofallCycles)Structuralstalls:0(0.00ofallCycles)Controlstalls:214.4務ofallCycles)Trapstalls:3(0.63ofallCyclesTotal:207Stall(s)(60.55:ofallCyclesConditionalBranches):Total:21(11.29ofallInstructionsthereof:taken:1(4.76ofallcond.Branches)nottaken:2095.24嵬ofallcond.BranchesLoad-/Store-Instru

60、etions:Total:60(32.26ofallInstructionsthereof:Loads:40(66.67ofLoad7Store-instructionsStores:20(33.33ofLoad-/Store-instructions)Tcitad:352Cycle(s)executed.IDexecutedby106Instruction(s).2Instruction(s)currentlvinPipeline.Hardwareconfiguration:Memorysize:32760BytesfaddEX-Stages:1,requiredCycles:2fmulEX

温馨提示

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

评论

0/150

提交评论