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