计算机系统结构winDLX流水线实验报告汇编

上传人:我** 文档编号:113817799 上传时间:2019-11-09 格式:DOC 页数:10 大小:787KB
返回 下载 相关 举报
计算机系统结构winDLX流水线实验报告汇编_第1页
第1页 / 共10页
计算机系统结构winDLX流水线实验报告汇编_第2页
第2页 / 共10页
计算机系统结构winDLX流水线实验报告汇编_第3页
第3页 / 共10页
计算机系统结构winDLX流水线实验报告汇编_第4页
第4页 / 共10页
计算机系统结构winDLX流水线实验报告汇编_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《计算机系统结构winDLX流水线实验报告汇编》由会员分享,可在线阅读,更多相关《计算机系统结构winDLX流水线实验报告汇编(10页珍藏版)》请在金锄头文库上搜索。

1、计算机科学与技术学院计算机体系结构课程实验学 号:班 级:专 业: 学生姓名: 年 月 日实 验 报 告学生姓名: 学 号:时间:地点:实验课程名称:计算机体系结构一、实验名称:流水线中的相关求n个数的方差二、实验原理:1、WinDLXWinDLX模拟器是一个图形化、交互式的DLX流水线模拟器,能够演示DLX流水线是如何工作的。该模拟器可以装载DLX汇编语言程序(后缀为“.s”的文件),然后单步、设断点或是连续执行该程序。CPU的寄存器、流水线、I/O和存储器都可以用图形表示出来,以形象生动的方式描述DLX流水线的工作过程。模拟器还提供了对流水线操作的统计功能,便于对流水线进行性能分析。2、流

2、水线执行过程:指令执行的5个阶段 (1)取指令周期(2)指令译码/读寄存器周期(3)执行/有效地址计算周期(4)存储器访问/分支完成周期(5)写回周期3、流水线中的相关:(1)结构相关:当某一条机器指令需要访问物理器件时,如加法器,此时加法器正被另一条机器指令使用,从而产生结构相关;(2)数据相关:当某一条指令需要访问某个寄存器时,此时这个寄存器正被另一条指令所使用,从而产生数据相关;(3)控制相关:当程序执行到某个分支语句时,顺序执行的下一条语句将被跳过而去执行分支语句中满足条件的那条指令,从而产生控制相关。三、实验目的:1、通过该模拟实验,进一步掌握和巩固流水线的基本知识;2、初步掌握在特

3、定体系结构下的汇编代码的编写和优化;3、培养运用所学知识解决实际问题的能力4、对流水线性能分析5、了解影响流水线效率的因素6、了解各类相关及解决方法四、实验内容:使用WinDLX模拟器,对Variance.s做如下分析:(1) 分析Variance.s和Input.s输入顺序不同时产生的影响。(2) 分析Variance.s中汇编语言含义,同时分析程序执行流程。(3) 观察程序中出现的数据/控制/结构相关。指出程序中出现上述现象的指令组合。(4) 考察增加运算部件对性能的影响。(5) 考察增加forward部件对性能的影响。(6) 观察转移指令在转移成功和转移不成功时候的流水线开销。注意:除(

4、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和Input.s这两个程序装入主存:点击Variance.s点

5、击select按钮点击Input.s点击select按钮点击load按钮3、按F7键程序顺序执行观察6个子窗口的情况。七、实验数据及结果分析:1、先装入Variance.s再转入Input.s时,因为程序顺序执行,地址顺序符合程序执行顺序,程序能够正确执行;顺序相反时,因为Input.s的地址高,而程序顺序执行到Input.s时将没有正确的输入窗口,程序执行到输出结果时,也不会出现结果2、程序中出现的三种相关(1)数据相关:以图1中出现的两个数据相关为例下面两条指令中,因为第二条指令要读r3,而执行到此操作时加载指令仍对r3进行操作,因此出现了数据相关lbu r3,0(r2) seqi r5,

6、r3,10下面两条指令中,因为加法指令要读r1,而执行到此操作时乘法指令仍对r进行操作,因此出现了数据相关multu r1,r1,r4add r1,r1,r3图1 数据相关(2)控制相关:以图2中出现的控制相关为例下面两条指令中,因为第一条指令出现跳转指令时,存储指令的取指将作废,所以出现控制相关jal InputUnsignedsw PrintfValue(r3),r1图2 控制相关(3)结构相关:以图3中出现的结构相关为例下面两条指令中,因为当第二条乘法指令需要使用乘法器时,第一条乘法指令仍在使用乘法器,所以出现结构相关mult r2,r0,r0mult r3,r0,r0图3 结构相关3、

7、主程序Variance.s的代码.data ;.data标识下面的数据放在数据区中;输入语句,指示你输入要求多少个数的方差Prompt: .asciiz Please input An integer which is arrays size value0: ;输入语句,指示你输入要求方差的数PromptLast: .asciiz Please input the integer :;输出格式,表示求出的方差按什么格式输出PrintfFormat: .asciiz the Variance is : %g ;表示下面采用字对齐.align 2; .word在存储器中顺序存放列出的字Printf

8、Par: .word PrintfFormat;在存储区中空出相应大小的区域Printf: .space 8Variance: .space 8PrintfValue: .space 1024.text ;.text标识下面的代码存放在代码区中.global main ;.global标识main可以被全局访问main: ;将Prompt字符串首地址放入r1寄存器中 addi r1,r0,Prompt ;跳转向InputUnsigned标识的地址,调用input子函数读取数组大小的值 jal InputUnsigned ;将input函数读取的数放入寄存器中add r5,r0,r1 add r

9、6,r0,r1 add r7,r0,r1 add r8,r0,r1 addi r3,r0,0;循环调用input函数读数InputArray: ;r5寄存器中的值为0则跳转向ProcessPart标识的地址 beqz r5, ProcessPart addi r1,r0,PromptLast jal InputUnsigned ;将r1寄存器中的数放入r3寄存器中所存数地址的存储器中 sw PrintfValue(r3),r1 addi r3,r3,4 subi r5,r5,1 ;无条件跳转向InputArray标识的指令地址 j InputArrayProcessPart: ;r2,r3寄存

10、器中数清0 mult r2,r0,r0 mult r3,r0,r0Loop1: ;r6寄存器中的值为0则跳转向Average1标识的地址 beqz r6,Average1 ;将r3寄存器中所存地址的存储器中的数加载到r1中 lw r1,PrintfValue(r3) ;求出n个数的累加和存入r2中 add r2,r2,r1 addi r3,r3,4 subi r6,r6,1 ;无条件跳转向Loop1标识的指令地址 j Loop1Average1: ;求出n个数的平均数存入r9中 div r9,r2,r8 ;r2,r3寄存器中数清0 mult r2,r0,r0 mult r3,r0,r0 Loo

11、p2: ;r7寄存器中的值为0则跳转向Average2标识的地址beqz r7,Average2;将r3寄存器中所存地址的存储器中的数加载到r1中 lw r1,PrintfValue(r3) ;求出n个数与平均数差值平方的累加和 sub r10,r1,r9 mult r10,r10,r10 add r2,r2,r10 addi r3,r3,4 subi r7,r7,1 ;无条件跳转向Loop2标识的指令地址 j Loop2 Average2: ;求出方差存入r11中 div r11,r2,r8 output: ;将方差存入Variance所指存储空间中 sw Variance,r11 ;转换为双精度并输出 lf f2,Variance cvti2d f0,f2 sd Printf,f0 addi r14,r0,PrintfPar trap 5 ;调用中断,格式化输出转化为标准输出over: trap 0 ;调用系统

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号