它包括Register, Code, Pipeline, Clock Cycle Diagram, Statistics, Breakpoints。接下来详细介模拟器的结构及各个部件的功能。 2.Register窗口介绍
Rigister窗口中显示的是各个寄存器的名称及内容。如下图:
可以看到寄存器中以十六进制标识,从上图可以看出各个寄存器中的内容。
2.Code窗口介绍
在没有进行任何执行的时候,初次打开code窗口,即为下图所示
6
窗口现实的信息是各个存储器内同。第一列标识存储器的地址;第二列是机器代码,用16进制表示;第三列是汇编指令。
当我们点击上方的
,可以选择单步或多步执行(也可以使用快捷键
F7或F8)。若选择单步执行,每按一次F7,指令执行一次,可以看到,一次执行的为IF->ID->intEX->MEM->WB,没执行一次还有颜色的变化。颜色是用来标识指令处于哪个流水段的,如下图。
当然,我们也可以使用多步执行,按快捷键F8,选择5步流水,即可。
3.Pipeline窗口介绍
通过阅读WinDLX模拟器说明书可以知道,Pipeline窗口显示的是DLX处理器的内部结构。窗口用下图标识DLX五段流水。当然,如同Code窗口介绍讲述的那样,不同的颜色显示了指令处于哪段流水线。使用快捷键F7单步执行,可以明显的看出,不同时候流水段执行的不同指令。如下图。
7
图片反映的正式与Code中所处的时刻相同的指令流水。可以清晰看到不同流水段执行的是哪条指令。
4.Clock Cycle Diagram窗口
实验准备中我们已经知道,该窗口显示的是流水线的时空图。时空图反映的是不同时隙内的运行情况。如下图。
在我看来,时空图是最好理解的。因为它反映的就是流水段的并行程度。在这个DLX模拟器中,并不存在一些数据或者控制上的冲突问题。所以可以依靠上图很清晰的看到指令所处的不同流水段,及指令执行情况。该时空图同样也是和前面的Code等相对应。也可以通过快捷键F7来进一步执行指令,可以看到流水线时空图的扩展情况。
任意双击指令的一行,可以详细看到不同流水段的情况。如下图所示。
8
5.Statistics窗口介绍
该窗口是对运行程序中的数据进行分析。主要包括模拟器中硬件配置情况,在该窗口中,我们可以比较不同配置对于该模拟器的不同影响。如下图所示。 1)整体指令执行情况
2) 硬件配置情况
3) 暂停次数和百分比及原因分析
9
4)分支次数和百分比
5)Load/Store指令执行情况
6)浮点指令执行次数和百分比
7)trap发生的次数和百分比
6.Breakpoints窗口介绍
该窗口使用来观察代码运行情况。先打开Breakpoints窗口,点击窗口上方的
停止执行。
来设置breakpoint,也就是设置指令运行到流水线的哪个阶段程勋
如上图,如果选择EX阶段,在Code窗口中相应的行会出现BEX,即指令执
10