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)实验体会
通过本次实验,我对上课教的流水线技术有了更直观的了解。