windlx使用详细教程解读

  • 格式:doc
  • 大小:416.50 KB
  • 文档页数:8

第 8 页 2020-11-12 汕 头 大 学 实 验 报 告

学院: 工学院 系: 计算机系 专业: 计算机科学与技术 年级: 13 成绩:

姓名: 林子伦 学号: 2013101030 完成实验时间: 2015.6.4

一.实验名称:winDLX实验报告

二.实验目的:

加深对流水线技术的理解

三.实验内容:

 阅读老师提供的中文资料,结合课本及网络资源进一步了解流水线技术。

 按照实验指导书给出的步骤全面、逐步完成实验内容。

四.实验时间、地点,设备:

实验时间:2015.6.4

实验地点:软件系统实验室

实验设备:win7 32位虚拟机

五.实验记录(占本次实验成绩70%):

(记录重要的截图,给出必要的文字说明)

1. 初始化程序:Reset All

第 8 页 2020-11-12 2.

载入程序:Load Code or Data…

双击fact.s、 input.s,把他们加载进去,然后点load

Code界面会出现你的代码段,register里面则是寄存器的数据,可以看到一开始的PC会自动加载到程序的开始位置0x00000100

3. 按F7单步执行代码(F5为持续执行,F8为多步执行,F4位指定执行)

第 8 页 2020-11-12

可以看到代码段(code)执行第一条指令标记为黄色,

此指令才时空图中(clock cycle diagram)看到第一条指令被编译(IF),

机器模块(pipeline)IF操作的是指令add r1,r0,0x1000

寄存器(register)中PC自动累加到了0x00000104,

4.

继续按F7运行程序

通过看代码发现第二条指令为jal跳转指令

第二条指令为橙色,进入了取址(ID)阶段,而IF段顺序执行了读取第三条指令,进行编译。

再按一次F7,这是执行了第二条指令(跳转指令),程序来到了0x00000144的地方,IF段重新读取此指令,而原来进行到一半的第三条指令则被封存起来,aborted表示暂停的意思。

第 8 页 2020-11-12

5. 按F5运行,中间会出现一个窗口要输入数据

这里我们输入20.

6. 点击Display DLX-I/O…观看结果

第 8 页 2020-11-12 可以看到结果是2.4329+18

而看register窗口

可以发现这个数字是被保存在了D2中。

7. 在程序运行中我们也可以通过添加标签来中断程序,操作为,在code界面点击一条指令。

然后点击code –> Set breakpoint

就可以看到可以设置在该指令的某个段中断程序

第 8 页 2020-11-12

设定的中断点会在窗口breakpoints中显示。

如果按F5持续运行整个程序,会在你设定的这个地方中断

8. 定向技术使用,在菜单栏configuration -> Enable Forwarding

观看Statistics,可以看到采用Forwarding的总周期数为217,暂停数为17

如果取消Forwarding,这周期数为236,暂停数为53

第 8 页 2020-11-12

所以采用forwarding的速度会更加快

六.实验体会(占本次实验成绩30%):

(1)实验准备

1) 什么是WinDLX?干嘛用的?

答:WinDLX 是一个基于 Windows 的 DLX 模拟器。,用来模拟计算机流水线

2) 有没有同类型的软件?WinDLX的特点是什么?

答:有许多用来研究计算机系统结构的模拟器,如Simplescalar,SimOS,SPMCache,DLXview 等,WinDLX 相对来说比较简单,便于教学。

3) WinDLX有什么样的的指令格式、数据类型、寻址模式?

答:

指令格式:由于 DLX 的寻址方式较少,因此在指令格式中没有必要专门设置寻址方式描述位,可以将其直接编码到操作码中。为了使机器更容易进行流水线操作和译码,DLX 采用定长操作码的指令字格式。指令字长度 32 位(单字长指令),其中操作码占 6 位。指令格式有

I型(6位操作码+5位源寄存器+5位目的寄存器+16位立即数)

R型(6位操作码+5位源寄存器1+5位源寄存器2+5位目的寄存器+11位立即数)

J型(6位操作码+26位与PC相加的偏移量)

数据类型:DLX 能处理的数据类型有 8 位字节,16 位半字、32 位整数字以及 32

位单精度浮点数和 64 位双精度浮点数。DLX 的操作主要面向 32 位整数以及 32 位或 64 位浮点数。字节或半字在被调入 32 位寄存器时,用零或者符号位填充 32 位寄存器的高位剩余部分,一旦被调入寄存器,它们将按照 32 位整数的方式进行计算。

寻址方式:利用 R0 寄存器永远为零的特性,DLX 用很少的硬件代价,提供了 5

种寻址方式。它们是:寄存器寻址方式;立即数寻址方式(立即数范围为 16 位);位移寻址方式(某寄存器的值加上位移量形成操作数的地址);寄存器间接寻址方式(位移寻址方式中位移量等于 0);直接寻址方式(位移寻址方式中寄存器用 R0)。

第 8 页 2020-11-12 4) 实验的目的是什么?

通过运用windlx,熟悉流水线技术,加深对计算机运行的实际了解

(2)学习流水线技术后的体会

答:采用了流水线技术,尽可能的让计算机各个部件在每个时间下都有工作可做,大大提高了计算机的运算速度与效率。虽然中间也还是会有一些多余的工作,如指令三的取址操作。

(3)实验体会

通过本次实验,我对上课教的流水线技术有了更直观的了解。