《2023年北邮计算机系统结构实验报告实验一到五WINDLX模拟器.pdf》由会员分享,可在线阅读,更多相关《2023年北邮计算机系统结构实验报告实验一到五WINDLX模拟器.pdf(43页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、北京邮电大学实验报告课 程 名 称 计算机系统结构计算机学院班王陈()目录实验一 WIN D LX模拟器安装及使用,错误!未定义书签。实验准备。错误!未定义书签。实验环境。错误!未定义书签。实验环节.错误!未定义书签。实验内容及规定错误!未定义书签。实验过程。错误!未定义书签。实验总结。错误!未定义书签。实验二指令流水线相关性分析.错误!未定义书签。实验目的.错误!未定义书签。实验环境.错误!未定义书签。实验环节。错误!未定义书签。实验过程,错误!未定义书签。实验总结。错误!未定义书签。实验三 DLX解决器程序设计.错误!未定义书签。实验目的错误!未定义书签。实验环境。错误!未定义书签。实验环
2、节。错误!未定义书签。实验过程。错误!未定义书签。A.0向量加法代码及性能分析.错误!未定义书签。B.双精度浮点加法求和代码及结果分析。错误!未定义书签。实验总结.错误!未定义书签。实验四代码优化。错误!未定义书签。实验目的。错误!未定义书签。实验环境.错误!未定义书签。实验原理.错误!未定义书签。实验环节.错误!未定义书签。实验过程.错误!未定义书签。实验总结+实习体会。错误!未定义书签。实 验 五 循 环 展 开.错误!未定义书签。实验目的。错误!未定义书签。实验环境,错误!未定义书签。实验原理。错误!未定义书签。实验环节.错误!未定义书签。实验过程。错误!未定义书签。矩阵乘程序代码清单及
3、注释说明.错误!未定义书签。相关性分析结果。错误!未定义书签。增长浮点运算部件对性能的影响.错误!未定义书签。增 长fo rw ard部件对性能的影响。错误!未定义书签。转移指令在转移成功和转移不成功时候的流水线开销.错误!未定义书签。实验总结+实习体会+课程建议。错误!未定义书签。实验一 W IN D L X模拟器安装及使用WinDLX模拟器的结构和功能说明1 .点击运营之后,会看到一个如下图所示的窗口。女 WINDIX&e Jndow Execute tfemory Qonfiouration Breakpoints tldpi l Register QQ.Code 二 Pipehne E
4、QHI Clock Cycle Hl 处 Ed HI Breakpoints它涉及 Register,Cod e,Pipeli n e,Clock Cyc 1 e D i agram,St ati s t i cs,Br e akpointSo接下来具体介模拟器的结构及各个部件的功能。2.R eg ister 窗口介绍R i g is t e r 窗口中显示的是各个寄存器的名称及内容。如下图:%WINDLX5 RegisterFile Window Execute fctemory Configuration Registerpc-iOQOQOQJOOl R80 x00000000F0-0 F
5、24-0IMAR=0 x00000000 R9=0 x00000000F l=0 F25=0IR=0 x00000000 R10-0 x00000000F2H0 F26n0A=0 x00000000 R ll-0 x00000000F3-0 F27-0AHI=0 x00000000 R12=0 x00000000F4=0 F28=0B。0 x00000000 R130 x00000000F5-0 F29-0BHI=0 x00000000 R14=0 x00000000F6=0 F30=0BTA=0 x00000000 R15=0 x00000000F7=0 F31=0ALU-0 x000000
6、00 R16-0 x00000000F8-0 DO-0ALUHI=OxOOOOOOOO R17=0 x00000000F9=0 D2=0FPSR=0 x00000000 R18=0 x00000000F10=0 D4=0DM AR-0 x00000000 R19-0 x00000000F i l-0 D6-0SDR=0 x00000000 R20=0 x00000000F12=0 D8=0SDRHI=OxOOOOOOOO R21=0 x00000000F13=0 D10=0LDR=0 x00000000 R220 x00000000Fl4M0 D12-0LDRHI=OxOOOOOOOO R23
7、=0 x00000000F15=0 D14=0R00 x00000000 R24-0 x00000000F16-0 D16-0Rl=0 x00000000 R25-0 x00000000F17=0 DI8n0R2=0 x00000000 R26=0 x00000000F18=0 D20=0R3-0 x00000000 R27-0 x00000000F19-0 D22-0R4=0 x00000000 R28=0 x00000000F20=0 D24=0R5=0 x00000000 R29=0 x00000000F21=0 D26=0R6-0 x00000000 R30-0 x00000000F2
8、2-0 D28-0R7=0 x00000000 R31=0 x00000000F23=0 D30=0可以看到寄存器中以十六进制标记,从上图可以看出各个寄存器中的内容。2.C ode窗口介绍在没有进行任何执行的时候,初次打开code窗口,即为下图所示殳 WINDLXFile WindowExecute Memory Configuration Code喀 Code|.n$TEXT0 x00000000nop$T EXT+0 x40 x00000000nop$T EXT+0 x80 x00000000nop$TEXT+0 xc0 x00000000nop$TEXT+0 x100 x00000000
9、nop$T EXT+0 x140 x00000000nop$TEXT+0 x180 x00000000nop$TEXT+0 x1c0 x00000000nop$T EXT+0 x200 x00000000nop$TEXT+0 x240 x00000000nop窗口现实的信息是各个存储器内同。第一列标记存储器的地址;第二列是机器代码,用1 6 进制表达;第三列是汇编指令。当我们点击上方的 岑8%可以选择单步或多步执行(也可以使用快捷键F7 或 F 8)。若选择单步执行,每按一次F 7,指令执行一次,可以看到,一次执行的为i n t E X-M E M-W B,没执行一次尚有颜色的变化。颜色是用来
10、标记指令处在哪个流水段的,如下图。喀 CodeBa$TEXT$TEXT+0 x40 x000000000 x00000000nopnop$TEXT+0 x80 x00000000 WBnop$TEXT+0 xc0 x00000000 MEMnop$T EXT+0 x100 x00000000 intEXnoD$TEXT+0 x140 x00000000 IDnop$TEXT+0 x180 x00000000 IFnop$TEXt+0 x1c0 x00000000nop$TEXT+0 x200 x00000000nop$TEXT+0 x240 x00000000nop当然,我们也可以使用多步执行
11、,按快捷键F 8,选择5 步流水,即可。3.P i p e l i n e 窗口介绍通过阅读W i n D L X 模拟器说明书可以知道,P i p e l i n e 窗口显示的是D L X 解决器的内部结构。窗口用下图标记D L X 五段流水。当然,如同C o d e 窗口介绍讲述的那样,不同的颜色显示了指令处在哪段流水线。使用快捷键F 7单步执行,可以明显的看出,不同时候流水段执行的不同指令。如下图。流水段执行的是哪条指令。4.C l o ck C y cl e D i a g r a m 窗口实验准备中我们已经知道,该窗口显示的是流水线的时空图。时空图反映的是不同时隙内的运营情况。如下
12、图。H Clock Cycle DiagramInstructions/Cyclesnopnopnopnopnopnopnop在我看来,时空图是最佳理解的。由于它反映的就是流水段的并行限度。在这 个D L X模拟器中,并不存在一些数据或者控制上的冲突问题。所以可以依靠上图很清楚的看到指令所处的不同流水段,及指令执行情况。该时空图同样也是和前面的Code等相相应。也可以通过快捷键F 7来进一步执行指令,可以看到流水线时空图的扩展情况。任意双击指令的一行,可以具体看到不同流水段的情况。如下图所示。Information about nopnopIFIDAdr.:$TEXTCode:0 x00000
13、000T erminated successfullyFirst Cycle:-6Last Cycle:-2T otal Cycles:5Cycles:-6(1)T erminated successfullyIMAR-PC(=$TEXT)IR-MemIMAR(=0 x00000000)PC-PC+4(=$TEXT+0 x4)No Stalls required.Cycles:-5(1)T erminated successfullyA-R0(=0 x0)No Stalls required.intEXMEMWBCycles:-4(1)T erminated successfullyALU-A
14、0(=0 x0)No Stalls required.No Forwarding.Cycles:-3(1)T erminated successfullyNothing to do.No Stalls required.Cycles:-2(1)T erminated successfullyR0-ALU(=0 x0)No Stalls required.I:.二|5.S t a tisti c s 窗口介绍该窗口是对运营程序中的数据进行分析。重要涉及模拟器中硬件配置情况,在该窗口中,我们可以比较不同配置对于该模拟器的不同影响。如下图所示。1)整体指令执行情况Total:7 Cycle(S)ex
15、ecuted.ID executed by 6 Instruction(s).5 Instruction(s)currently in Pipeline.2)硬件配置情况Hardware conf iguration:Memory size:32768 BytesfaddEX-Stages:1z required Cycles:2fmulEX-Stages:1,required Cycles:5fdivEX-Stage$:1,required Cycles:19Forwarding enabled.3)暂停次数和比例及因素分析Stalls:RAW stalls:0(0.00 of all Cy
16、cles),thereof:LD stalls:0 10.00%of RAW stalls)Branch/Jump stalls:0(0.00 of RAW stalls)Floating point stalls:0(0.00 of RAW stalls)WAW stalls:0(0.00 of all Cycles)Structural stalls:0(O.OOz of all Cycles)Control stalls:0(0.0找 of all Cycles)Trap stalls:0(0.00 of all Cycles)T otal:0 Stall(s)(0.00 of all
17、Cycles)4)分支次数和比例Conditional Branches):Total:0(0.00z of all Instructions),thereof:taken:0(0.00%of all cond.Branches)not taken:0(0.00 of all cond.Branches)5)L o ad/S t or e 指令执行情况Load-/Store-Instruetions:Total:0(0.00 of all Instructions),thereof:Loads:0(0.00 of Load-/S tore-l nstruedons)Stores:0(0.00
18、of LoadVStore-lnstructions)6)浮点指令执行次数和比例Floating point stage instructions:Total:0(0.00 of all Instructions),thereof:Additions:0(0.00 of Floating point stage in$tMultiplications:0(0.00%of Floating point stage inst.)Divisions:0(0.00 of Floating point stage inst.)7)tra p 发生的次数和比例Traps:Traps:0(0.00 of a
19、ll Instructions)6.Brea k points 窗 口介绍该窗口使用来观测代码运营情况。先打开B reakpoints窗口,点击窗口上方的Breakpoints来设立b r eakpoi n t,也就是设立指令运营到流水线的哪个阶段程勋停止执行。如上图,假如选择EX阶段,在Code窗口中相应的行会出现BEX,即指令执行到译码结束执行开始的时候,程序将中止。实验总结通过本次实验,由于是第一次接触DLX模拟器,该实验可以帮助我对这个模拟器大体的功能及使用做个大体的了解。对于日后的实验打下好的基础。我觉得Wi n D L X模拟器小而精悍,它有不同颜色的标记,不同寄存器及存储器的反映
20、。通过使用它,可以对5步流水的过程及不同阶段很清楚明白的看到。也可以看到不同指令分析走到了哪一步,到了哪一步流水段。实验二指令流水线相关性分析 实验目的通过使用WIN DLX模拟器,对程序中的三种相关现象进行观测,并对使用专用通路,增长运算部件等技术对性能的影响进行考察,加深对流水线和RISC解决器的特点的理解。实验环境Windows X P操作系统WinDLX模拟I器 实验环节1.观测程序中出现的数据/控制/结构相关。指出程序中出现上述现象的指令组合。2.考察增长浮点运算部件对性能的影响。3A考察增长forw ard部件对性能的影响。心.观测转移指令在转移成功和转移不成功时候的流水线开销。1
21、.观测程序中出现的数据/控制/结构相关;指出程序中出现上述现象的指令组合。1)数据相关如下图所示,在 Clock Cycl e Di a g r am 窗口所想是的时空图中和P ipeline窗口中的流图中,第一次出现了 R-S talloaddi r4j0,0 xa0 x00000170接下来可以点击上图中的橘色窗口,则屏幕显示IDCy c l es:-1(2)I n P ip el ineA-R 3(=0 x 0)1 S t a l l(s)bec a u se of R AW-Ha z a rdw it h I bu(3z0 x 0(r2)Ibu r3,OX 0(r2)要在WB周期写回r
22、 3 中的数据;而下一条指令s e q i r 5,r 3,OXa要在i n t EX周期中读取r 3 中的数据。上述过程发生了 WR冲突,即写读相关。为了避免此类冲突,seq r 5,r4,OXa的 intEX指令延迟了一个周期进行。由此,相关指令为:2)控制相关i 叩 u t.L o 叩 0 x 90430000 I bu r3z0 x 0(r2)0 x 00000178 0 x 6065000a ME M seqi r5j3,0 x aI nst ru c t ions/Cy c l esa ddi r1 zrOzOx 1000ja l I np u t U nsignedmov i2
23、fp f10j1sw S a v eR 2(rO)j2由上图可以看出,在第4 时钟周期:第一条指令处在MEM段;第二条命令处在 intEX段;第三条指令出于a b o r te d 状态;第四条命令处在IF 段。因素分析:jal I n p u tU n signe d 是无条件分支指令,但当第三个周期开始的时候,也就是j a l 这条指令被译码后才知道。此时,m。v i 2 fp 已经执行,且将要执行的下一条命令在此外一个地址处,所以这条指令不会执行,这个时候就会发生控制相关。由此,发生控制相关的指令为:$TEXT0 x0c00003c ID0 x00205035 IFmain+0 x4ma
24、in+0 x8addi r1,r0.0 x1000jal InputUnsignedmovi2fo H0.r10 x000001443)结构相关0 xac021094 IF$w SaveR2(rOLr2一方面,我们先来看一下执行过控制相关的时空图和P ipe 1 i n e,如下图。WB二当我们点击P ip e lin e 中 I F 所相应的框框可以看到具体的该指令执行情况,如下图:IFCy c l es:-2(3)I n P ip el ineI M A R -P C(=inp u t.L oop+0 x 18)I R-M em I M AR (=0 x 2 042 0001)P C-P
25、C+4 =inp u t L oop+0 x 1c)2 S t a l l(s)bec a u se ofst ru c t u ra l Ha z a rd!上图表白了 addi r2,r2,OX 1 的具体信息。该指令与它前一条指令a d d r 1,r 1,r 3 发生了结构相关。并且由于此处的冲突,需要暂停2 个周期。在 ID 段暂停后,则开始进图in tEX段。所以这条指令(ad d i r 2,r2,0 X 1)你不能进入 ID流水段,译码部分占用,发生了结构相关。该部分的指令为:0 x 00000188 0 x 002 3082 0 a dd r1,r1j30 x 0000018
26、c 0 x 2 042 0001 a ddi 2 2 0 x 12.考察增长浮点运算部件对性能的影响。该实验取N=6一方面通过 Configuration,点击F 1 oating Point Stage Conf i guration 来设立浮点运算部件的配置。由于实验手册上面规定D ela y=4,所以我们将Delay这一栏改成4,而C o u n t可以任意,为了对比,我们第一次浮点运算部件取所有为2,第二次浮点运算部件取所有为3。如下图所示:运营5 0个c y c le s之后,可以看到他们数据的对比:StatisticsTotal:50 Cycle(s)executed.ID exe
27、cuted by 32 ln$Uuction($).4 Instruction(s)currently in Pipeline.Hardware conf iguration:Memory size:32768 BytesfaddEX-Stages:3Z required Cycles:4fmulEX-Stages:3Z required Cycles:4fdivEX-Stages:3,required Cycles:4Forwarding enabled.Stalls:RAW stalls:9(18.00 of all Cycles),thereof:LD stalls:2(22.22%of
28、 RAW stalls)Branch/Jump stalls:2(22.22%of RAW stalls)Floating point stalls:5(55.56%of RAW stalls)WAW stalls:0(0.00 of all Cycles)Structural stalls:0(0.00 of all Cycles)Control stalls:4(8.00%of all Cycles)T rap stalls:6(12.00 of all Cycles)Total:19Stall(5)(38.00 of all Cycles)Conditional Branches):To
29、tal:2(6.25%of all Instructions),thereof:taken:1 (50.00 of all cond.Branches)not taken:1 (50.00 of all cond.Branches)Load-/S t ore-Inst rue t i ons:Total:11(34.38 of all Instructions)thereof:Loads:6(54.54%of LoadVS tore-l nstructions)Stores:5(45.45%of Load-/Store-lnsUuctions)Floating point stage inst
30、ructions:Total:1 3.12%of all Instructions),thereof:Additions:0(0.00%of Floating point stage inst.)Multiplications:1 (1 OU00%of Floating point stage inst)Divisions:0(0.00 of Floating point stage instjTraps:Traps:2(6.25%of all Instructions)StatisticsTotal:50 Cycle(s)executed.ID executed by 32 Instruct
31、ion团.4 Instruction currently in Pipeline.Hardware conf iguration:Memory size:32768 BytesfaddEX-Stages:2Z required Cycles:4fmulEX-Stages:2,required Cycles:4fdivEX-Sages:2,required Cycles:4Forwarding enabled.Stalls:RAW stalls:9(18.00%of all Cycles),thereof:LD stalls:2 22.22%of RAW stalls)Branch/Jump s
32、talls:2(22.22%of RAW stalls)Floating point stalls:5(55.56%of RAW stallsWAW stalls:0(0.00 of all Cycles)Structural stalls:0(0.00%of all Cycles)Control stalls:4(8.00 of all Cycles)Trap stalls:6(12.00%of all Cycles)Total:19Stall(s)(38.00 of all Cycles)Conditional Branches):Total:2(6.25%of all Instructi
33、ons),thereof:taken:1 (50.00 of all cond.Branches)not taken:1 (50.00 of all cond.Branches)Load-/Store-Instruetions:Total:11(34.38 of all Instructions),thereof:Loads:6(54.54%of Load-/S tore-l nsUuctions)Stores:5(45.45%of Load-/Store-lnstructions)Floating point stage instructions:Total:1 (3.12 of all I
34、nstructions),thereof:Additions:0(0.00-of Floating point stage insl.)Multiplications:1 (100.00 of Floating point stage inst.)Divisions:0(0.00 of Floating point stage inst)由此可见,浮点运算部件的增减对效率无影响。比较各个数据,发现没有变化。无论怎么增长浮点运算部件,记录结果都同样。因素在于此程序中浮点计算指令没有重叠,所以并行度没有增长,性能没有提高。3.考察增长f o r w a r d 部件对性能的影响。为了对比有无for
35、w a r d 部件的性能。需 要 在 Configuration中勾选en a bl eforwa r di n g,以及不勾选enable c o n f i g ur a ti o n 来看性能数据的对比。不使用f o r w a r d部件:StatisticsT o t a l:50 Cycle(s)executed.ID executed by 27 Instruction回.4 Instruction(s)currently in Pipeline.H a rd w a re c o n f ig u r a t i o n:Memory size:32768 Bytesfadd
36、EX-Stages:3Z required Cycles:4fmulEX-Stages:3Z required Cycles:4fdivEX-Stages:3,required Cycles:4Forwarding disabled.S t a l l s:RAW stalls:13(26.00%of all Cycles)WAW stalls:0(0.00 of all Cycles)Structural stalls:0(0.00 of all Cycles)Control stalls:3(6.00%of all Cycles)Trap stalls:6(12.00 of all Cyc
37、les)Total:22 Stall(44 00%of all Cycles)使用f o r w a r d 部件:StatisticsT o t a l:50 Cycle($)executed.ID executed by 32 Instruction).4 lnstruction($)currently in Pipeline.H a rd w a re c o n f ig u r a t i o n:Memory size:32768 BytesfaddEX-Stages:3Z required Cycles:4fmulEX-Stages:3Z required Cycles:4fdi
38、vEX-Stages:3,required Cycles:4Forwarding enabled.S t a l l s:RAW stalls:9(18.00 of all Cycles),thereof:LD stalls:2(22.22%of RAW stalls)Branch/Jump stalls:2(22.22%of RAW stalls)Floating point stalls:5(55.56%of RAW stalls)WAW stalls:0(0.00%of all Cycles)Structural stalls:0(0.00 of all Cycles)Control s
39、talls:4(8.00%of all Cycles)T rap stalls:6(12.00 of all Cycles)Total:19 Stall(s)(38.00 of all Cycles)从上面的数据我们可以看出增长f o r w a r d i 部件后R A W 由本来占总时钟周期的2 6%减少至1 8%,RA W个数由本来的1 3 减少至9 o 增长f o rw a r d部件使得控制相关比例增长了。即,使用f o rw a r d 部件后,总的时钟周期减少,数据相关减少,流水线的性能得到一定的改善。3.观测转移指令在转移成功和转移不成功时候的流水线开销。我们假设,浮点部件设立
40、C o un t=3,D e l a y =4;N=6。执行完毕后,查看条件转移分支,如下图所示:Conditional Branches):Total:8 02.12%of all Instructions),thereof:taken:2(25.00 of all cond.Branches)not taken:6(75.00 of all cond.Branches)由上图可知,转移指令一共8条,成功转移2条(占2 5%),不成功为6条。所以,静态指令调度算法只能解决数据相关,条件转移结果与本来相比没有变化。即,若转移不成功,对流水线的执行无影响,流水线的吞吐率和效率没有减少;若转移成功
41、,则要废弃预先读入的指令,重新从转移成功处读入指令,执行效率会下降。实验总结本次实验中,重要碰见一个问题,就是在当初文献加载时没有成功,后来通过查询资料和自己的尝试,发现,在选择文献的顺序很关键,它决定了文献在存储器中出现的顺序。本次实验,重要通过对于三中相关的观测,分析出现相关时的指令,分析浮点运 算 部 件 和f o rw a rd部件对性能的影响,观测转移指令在转移成功和不成功时的流水线开销,这些实验一步一步,通 过Wi n D L X形象生动的表达,使我在实践中更加进一步的结识了流水线。实 验 三 D LX解决器程序设计实验目的学习使用DLX汇编语言编程,进一步分析相关现象实验过程A.
42、向量加法代码及性能分析一方面给据题目规定,需要纯熟掌握DLX编程语言,然后根据规范格式编写向量的代码。1)向量声明Ve c to r L e n g th:.w o rd 1 6 声明向量长度V e c to r 1 :.w o rd 1,2,3,4,5,6,7,8,9,1 0,1 1,1 2,1 3,1 4,1 5,1 6/声明两个向量 V e c t o r l 和 V e c t o r 2V e c t o r 2:.w o r d 1 ,2,3,4,5,6,7,8,9,1 0,1 1,1 2,1 3,1 4,1 5,1 6R e s u I t:.s p a c e 4 /声明一个空
43、间来存放打印的数据L o o p:/循环体1 df 1 0,V e c t o r l (r 2)1 d f 1 2,Ve c t or2(r2)读入两个提前声明的向量add f 4,f2,fO 加法运算t r ap 5系统中断2)源代码U ecto r2:.word 1,2,3,4,5,6,7,8,9,1 0,1 1,1 2,1 3,1 4,1 5,1 6P r i n t f!:.a s c iiz U ecto r=P rin tF 2:.a s c iiz.a lig n 2P rin tP ro n p t:.word P r in t f lP rin tP a r:.viord
44、P rin tF 2R e s u lt:.space 4-te x tm ain:addi r1 4,r0,P rin tP ro n p ttra p 5Iw r 2 0,U ectorLengthaddi r 2,r 0,0lo o p:Id F 1 0,U e c to r1(r2)Id F 1 2,U e c to r2(r2)c u ti2 d F 0,F10c u ti2 d F2,F12addd F 4,F 2,F 0F in is h:sd R esu lt F4addi r1 4,rO,P rin tP a rtra p 5addi r 2,r 2,4subi r2 O,r
45、2 0,1bnez r 2 09looptra p 0运营结果分析当运营到如下图所示的时候,则表达运营结束。Finish+0 x18:trap 0 x0Trap#0 occured.确定运营结果为 DLX-Standard-1/O匚 二 谯 二 二 iVector=2.000000 4.000000 6.000000 8.000000 10.000000 12.000000 14.000000 16.0C0000 18.000000 20.000000 22.000000 24.000000 26.000000 28.000000 30.000000 32.0C0000接下来我们可以查看St
46、at i st i cs可以看到运营结果的数据显示,如下图所zj 0StatisticsTotal:283 Cycle(s)executed.ID executed by 181 Instruction(s).2 Instruction(s)currently in Pipeline.Hardware conf iguration:Memory size:32768 BytesfaddEX-Stages:1z required Cycles:2fmulEX-Stages:1z required Cycles:5fdivEX-Stages:1,required Cycles:19Forwardi
47、ng enabled.Stalls:RAW stalls:32 cli.31%of all Cycles),thereof:LD stalls:0(0.00-of RAW stalls)Branch/Jump stalls:16(50.00 of RAW stalls)Floating point stalls:16(50.00 of RAW stalls)WAW stalls:0(0.00 of all Cycles)Structural stalls:0(0.00 of all Cycles)Control stalls:15(5.30 of all Cycles)Trap stalls:
48、54(19.08 of all Cycles)Total:101 Stall(s)(35.70 of all Cycles)Conditional Branches):Total:16(8.84%of all Instructions),thereof:taken:15(93.75%of all cond.Branches)not taken:1 (6.25 of all cond.Branches)Load-/Store-Instruetions:Total:49(27.07%of all Instructions),thereof:Loads:33(67.35%of Load-/S tor
49、e-l nstructions)Stores:16(32.65 of LoadVStore-lnsbuedons)Floating point stage instructions:Total:16(8.84 of all Instructions thereof:Additions:16(100.00 of Floating point stage inst.)Multiplications:0(0.00 of Floating point stage inst)Divisions:0(0.00 of Floating point stage inst)Traps:Traps:18(9.94
50、Z of all Instructions)1)程序相关性分析结果数据相关由上图的 RAW stalls:32(11.31%of all Cycles),th e re o f:可以看出,该程序产生了 11.31%的数据相关。所以当对当前指令的操作数寄存器进行操作(E X)的时候,前几条指令的运算结果尚未写回(W B)结果寄存器,由此产生数据相关。结构相关由于程序只简朴的做了一次加法,所以没有结构相关产生。控制相关查看p ip e l i n e中可以看到,当执行到如下情况时,发生了控制相关。addi r14/0,0 x1098trap 0 x5Information about trap 0