哈工程计算机体系结构实验,哈工程体系结构实验

《哈工程体系结构实验》由会员分享,可在线阅读,更多相关《哈工程体系结构实验(8页珍藏版)》请在人人文库网上搜索。

1、哈工程体系结构实验实 验 报 告学生姓名: 学 号:时间: 6月27日8:0017:30地点:21号楼427实验室实验课程名称:计算机体系结构(随意自己,可是能体现三个相关计算机性能等)一、实验名称:流水线中的相关 求最小公倍数 二、实验原理:1、WinDLXWinDLX模拟器是一个图形化、交互式的DLX流水线模拟器,能够演示DLX流水线是如何工作的。该模拟器能够装载DLX汇编语言程序(后缀为“.s”的文件),然后单步、设断点或是连续执行该程序。CPU的寄存器、流水线、I/O和存储器都能够用图形表示出来,以形象生动的方式描述DLX流水线的工作过程。模拟器还提供了对流水线操作的统计功能,便于对流。

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

3、线的基本知识;2、初步掌握在特定体系结构下的汇编代码的编写和优化;3、培养运用所学知识解决实际问题的能力4、对流水线性能分析5、了解影响流水线效率的因素6、了解各类相关及解决方法四、实验内容:(根据具体情况修改,文件名字可修改,其它不用改)使用WinDLX模拟器,对lcm.s做如下分析:(1) 分析lcm.s和imput.s输入顺序不同时产生的影响。(2) 分析lcm.s中汇编语言含义,同时分析程序执行流程。(3) 观察程序中出现的数据/控制/结构相关。指出程序中出现上述现象的指令组合。(4) 考察增加浮点运算部件对性能的影响。(5) 考察增加forward部件对性能的影响。(6) 观察转移指。

4、令在转移成功和转移不成功时候的流水线开销。注意:除(2)以外,浮点加、乘、除部件都只有一个;本问题中所有浮点延迟部件设置为:加法:2个延迟周期;乘法:5个延迟周期;除法19个延迟周期。五、实验器材(设备、元器件):IBM PC兼容机Windows 3.0以上的操作系统六、实验步骤及操作:1、双击WinDLX图标运行WinDLX。装入测试程序之前,先初始化WinDLX模拟器:点击File 菜单中的 Reset all 菜单项,弹出一个“Reset DLX”对话框。然后点击窗口中的“确认”按钮即可。2、选择File / Load Code or Data,按如下步骤操作,可将fact.s和inpu。

5、t.s这两个程序装入主存:点击lcm.s点击select按钮点击input.s点击select按钮点击load按钮3、按F7键程序顺序执行观察6个子窗口的情况。七、实验数据及结果分析:(修改,自己写一个程序完成某个功能,如何体现的三个相关,对计算机性能有什么影响)1、先装入lcm.s再转入input.s时,因为程序顺序执行,地址顺序符合程序执行顺序,程序能够正确执行;顺序相反时,因为input.s的地址高,而程序顺序执行到input.s时将没有正确的输入窗口,程序执行到输出结果时,也不会出现结果如上图所示,三种相关均出现,数据相关89项,结构相关18项,控制相关14项2、程序中出现数据相关lb。

6、ur3,0x0(r2)seqi r5,r3,0xabnez r5,Finish程序中出现控制相关sgtr3,r1,r2bnezr3,r1Greater程序中出现结构相关:div r6,r4,r1div r7,r5,r13、源程序分析.data ;*prompts for inputPrompt1: .asciiz First Number: ;输入第一个数Prompt2: .asciiz Second Number: ;输入第二个数;Data for Printf-TrapPrintfFormat: .asciiz LCM=%dnn ;输出最小公倍数.align 2 ;表示下面采用字对齐Pri。

7、ntPar: .word PrintfFormatPrintValue: .space 4.text ;第一代码段,默认情况下代码段$CODE会加载到内存0x100地址处.global main ;定义一个全局符号main,即该代码段的首地址main:;*read two positive integer numbers into R1 and R2addi r1,r0,Prompt1 ;第一个数加r0给r1jal InputUnsigned ;调用InputUnsigned函数输入R1add r2,r1,r0 ;将第一个数存到r2addi r1,r0,Prompt2 ;第二个数存到r1jal。

8、 InputUnsigned add r4,r1,r0 ;将r1的值存入r4add r5,r2,r0 ;将r2的值存入r5Loop:;*比较R1和R2seq r3,r1,r2 ;R1=R2?bnez r3,lcm ;转到lcmsgt r3,r1,r2 ;R1R2?bnez r3,r1Greater ;转到r1Greatr2Greater: ;*subtract r1 from r2sub r2,r2,r1 ;r2-r1r2j Loop ;循环r1Greater:;*subtract r2 from r1sub r1,r1,r2 ;r1-r2r1j Loop ;循环lcm:div r6,r4,r。

9、1 ;r4/r1r6div r7,r5,r1 ;r5/r1r7mult r8,r6,r1 ;r8=r6*r1mult r9,r7,r8 ;r9=r7*r8result:sw PrintValue,r9 ;output the resultaddi r14,r0,PrintPartrap 5;*end trap 0 4、查看实验结果,程序执行完成后出现消息”Trap #0 occurred”输入第一个数为4,第二个数5,输出最小公倍数为206、使用定向技术,观察数据如下图增加forward部件后,以下数据发生变化:(1)、周期数减少到204(原为219)(2)、数据相关减少到50(原为89)可见。

10、增加forward部件后,总周期数减少,数据相关减少,由于该部件的使用,将运算结果值提前传送到有关缓冲寄存器,使后续指令得以不停顿地进入流水线,并及时得到需要的操作数,因此性能有所提高。加速比:219/204=1.0735八、实验结论:程序的装入要严格按照顺序,顺序将影响程序的正确执行;程序执行顺序,部件的个数都会对程序的执行产生影响;为减少数据相关,应调整程序的执行顺序;为减少控制相关,程序的跳转必须要在合适的位置;为减少结构相关,器件的个数应该合理分配;九、总结及心得体会:经过该模拟实验,我们对DLX的汇编语言有了一定了解,学会用它编写简单的程序,同时经过对此程序结果的分析,掌握并熟悉了指令相关性及其解决办法,进一步掌握和巩固流水线的基本知识;熟悉了程序的运行环境;增强了运用所学知识解决实际问题的能力。报告评分:指导教师签字。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值