运行结果分析
当运行到如下图所示的时候,则表示运行结束。
运行结果为
接下来我们可以查看Statistics可以看到运行结果的数据显示,如下图所示。
21
1)程序相关性分析结果
数据相关 由上图的可以看出,该程序产生了11.31%的数据相关。所以当对当前指令的操作数寄存器进行操作(EX)的时候,前几条指令的运算结 果还未写回(WB)结果寄存器,由此产生数据相关。
结构相关
由于程序只简单的做了一次加法,所以没有结构相关产生。 控制相关
查看pipeline中可以看到,当执行到如下情况时,发生了控制相关。
22
由Statistics中的可以看出,其控制相关发生了5.3%。分析可知,由于系统按照预测成功来执行指令,所以执行bnez后马上将其下一条指令trap 读进来。
2)浮点运算部件带来的影响
当我们通过设置浮点部件的个数,并将程序运行完毕,查看Statistics中的数据作对比。如下图所示。
23
将浮点加法器由1个增加为4个后(左图为4个),可以由上图看出,程序执行的性能未得到提升。
分析原因我们知道,由于该程序为产生浮点加法器的结构相关,所以增加浮点加法器的数量对程序执行的性能提升没有帮助。
3)forward部件的影响
24
由上图的对比可以看到,当不勾选enable forwarding时,运行时间由283增加到381。所以forwarding技术为该程序带来的加速比为 381/282=1.35
4)转移成功和不成功
查看statistics中的Conditional Branches选项,两者的下述相同,如下图所示。
可以发现,由于系统按照预测成功来执行指令,所以执行 bnez后马上将其下一条指令trap读进来判断出是转移不成功时,系统对trap指令进行的操作被全部作废,转而去执行跳转到的指令id。
25