计算机系统结构winDLX流水线实验报告汇编
计算机科学与技术学院
课程
学 号: 级:专 业:
学生姓名:
年 月
实 验 报 告
学生姓名: 学 号:时间:
地点:实验课程名称:计算机体系结构一、实验名称:流水线中的相关-求n个数的方差二、实验原理:
1、WinDLX
WinDLX模拟器是一个图形化、交互式的DLX流水线模拟器,能够演示DLX流水线是如何工作的。该模拟器可以装载DLX汇编语言程序(后缀为“.s”的文件),然后单步、设断点或是连续执行该程序。CPU的寄存器、流水线、I/O和存储器都可以用图形表示出来,以形象生动的方式描述DLX流水线的工作过程。模拟器还提供了对流水线操作的统计功能,便于对流水线进行性能分析。
2、流水线执行过程:
指令执行的5个阶段
(1)取指令周期
(2)指令译码/读寄存器周期
(3)执行/有效地址计算周期
(4)存储器访问/分支完成周期
(5)写回周期
3、流水线中的相关:
(1)结构相关:当某一条机器指令需要访问物理器件时,如加法器,此时加法器正被另一条机器指令使用,从而产生结构相关;
(2)数据相关:当某一条指令需要访问某个寄存器时,此时这个寄存器正被另一条指令所使用,从而产生数据相关;
(3)控制相关:当程序执行到某个分支语句时,顺序执行的下一条语句将被跳过而去执行分支语句中满足条件的那条指令,从而产生控制相关。三、实验目的:
1、通过该模拟实验,进一步掌握和巩固流水线的基本知识;
2、初步掌握在特定体系结构下的汇编代码的编写和优化;
3、培养运用所学知识解决实际问题的能力
4、对流水线性能分析
5、了解影响流水线效率的因素
6、了解各类相关及解决方法四、实验内容:
使用WinDLX模拟器,对Variance.s做如下分析:
分析Variance.s和Input.s输入顺序不同时产生的影响。
分析Variance.s中汇编语言含义,同时分析程序执行流程。
观察程序中出现的数据/控制/结构相关。指出程序中出现上述现象的指令组合。
考察增加运算部件对性能的影响。
考察增加forward部件对性能的影响。
观察转移指令在转移成功和转移不成功时候的流水线开销。
注意:除(4)以外,加、乘、除部件都只有一个,本问题中所有部件延迟设置为:加法:2个延迟周期;乘法:5个延迟周期;除法19个延迟周期。五、实验器材(设备、元器件):
IBM PC兼容机
Windows 3.0以上的操作系统1、双击WinDLX图标运行WinDLX。装入测试程序之前,先初始化WinDLX模拟器:点击File 菜单中的 Reset all 菜单项,弹出一个“Reset DLX”对话框。然后点击窗口中的“确认”按钮即可。
2、选择File / Load Code or Data,按如下步骤操作,可将Variance.s和nput.s这两个程序装入主存:
点击Variance.s点击select按钮
点击nput.s
点击select按钮
点击load按钮
3、按F7键程序顺序执行观察6个子窗口的情况七、实验数据及结果分析:
1、先装入Variance.s再转入nput.s时,因为程序顺序执行,地址顺序符合程序执行顺序,程序能够正确执行;顺序相反时,因为nput.s的地址高,而程序顺序执行到nput.s时将没有正确的输入窗口,程序执行到输出结果时,也不会出现结果
2、程序中出现数据相关:下面两条指令,第二条指令要读而执行到此操作时指令仍对r进行操作,lbu r3,0(r2)
seqi r5,r3,10
下面两条指令,指令要读而执行到此操作时指令仍对r进行操作,
multu r1,r1,r4
add r1,r1,r3
图1 数据相关
(2)控制相关:下面两条指令,第条指令出现跳转指令时,指令,所以出现控制相关
jalInputUnsigned
sw PrintfValue(r3),r1
图2 控制相关
(3)结构相关:下面两条指令,第条指令时,,所以出现相关
图3 结构相关
3、Variance.s的代码
.data ;.data标识下面的数据放在数据区中
;输入语句,指示你输入要求
Prompt: .asciiz "Please input An integer which is array's size value>0: "
;输入语句,指示你输入要求
PromptLast: .asciiz "Please input the integer :"
;输出格式,表示求出的按什么格式输出
PrintfFormat: .asciiz "the Variance i