哈工程体系结构试验_第1页
哈工程体系结构试验_第2页
哈工程体系结构试验_第3页
哈工程体系结构试验_第4页
哈工程体系结构试验_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

2、供了对流水线操作的统计功能,便于对流 水线进行性能分析。 2、流水线执行过程: 指令执行的 5个阶段 (1) 取指令周期 (2) 指令译码 / 读寄存器周期 (3) 执行/ 有效地址计算周期 (4) 存储器访问 / 分支完成周期 (5) 写回周期 3、流水线中的相关: (1) 结构相关:当某一条机器指令需要访问物理器件时,如加法器,此时加法器正被另 一条机器指令使用,从而产生结构相关; (2) 数据相关:当某一条指令需要访问某个寄存器时,此时这个寄存器正被另一条指令 所使用,从而产生数据相关; (3) 控制相关:当程序执行到某个分支语句时,顺序执行的下一条语句将被跳过而去执 行分支语句中满足条

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

4、出程序中出现上述现象的指令组合。 (4)考察增加浮点运算部件对性能的影响。 ( 5) 考察增加 forward 部件对性能的影响。 ( 6) 观察转移指令在转移成功和转移不成功时候的流水线开销。 注意: 除( 2)以外,浮点加、乘、除部件都只有一个; 本问题中所有浮点延迟部件设置为:加法: 2 个延迟周期;乘法: 5 个延迟周期;除 法 19 个延迟周期。 五、实验器材(设备、元器件) : IBM PC兼容机 Windows 3.0 以上的操作系统 六、实验步骤及操作: 1、双击 WinDLX图标运行 WinDLX。装入测试程序之前, 先初始化 WinDLX模拟器:点击 File 菜 单中的

5、Reset all 菜单项,弹出一个“ Reset DLX”对话框。然后点击窗口中的“确认”按 钮即可。 2、选择 File / Load Code or Data ,按如下步骤操作,可将 fact.s 和 input.s 这两个程序 装入主存: 点击 lcm.s 点击 select 按钮 点击 input.s 点击 select 按钮 点击 load 按钮 3、按 F7键程序顺序执行观察 6 个子窗口的情况。 七、实验数据及结果分析: (修改,自己写一个程序完成某个功能,如何体现的三个相关,对 计算机性能有什么影响) 1、先装入 lcm.s 再转入 input.s 时,因为程序顺序执行,地址

6、顺序符合程序执行顺序,程序 能够正确执行;顺序相反时,因为 input.s 的地址高,而程序顺序执行到 input.s 时将没有 正确的输入窗口,程序执行到输出结果时,也不会出现结果 如上图所示,三种相关均出现,数据相关 89 项,结构相关 18 项,控制相关 14 项 2、程序中出现数据相关 lbu r3,0 x0(r2) seqi r5,r3,0 xa bnez r5,Finish 程序中出现控制相关 sgt r3,r1,r2 bnez r3,r1Greater 程序中出现结构相关: div r6,r4,r1 div r7,r5,r1 3、源程序分析 .data ;*prompts for

7、 input Prompt1: .asciiz First Number: ;输入第一个数 Prompt2: .asciiz Second Number: ;输入第二个数 ;Data for Printf-Trap PrintfFormat: .asciiz LCM=%dnn ;输出最小公倍数 .align 2 ;表示下面采用字对齐 PrintPar: .word PrintfFormat PrintValue: .space 4 .text ; 第一代码段,默认情况下代码段 $CODE会加载到内存 0 x100 地址处 .global main ; 定义一个全局符号 main ,即该代码段的

8、首地址 main: ;*read two positive integer numbers into R1 and R2 addi r1,r0,Prompt1 第一个数加 r0 给 r1 jal InputUnsigned 调用 InputUnsigned 函数输入 R1 add r2,r1,r0 将第一个数存到 r2 addi r1,r0,Prompt2 第二个数存到 r1 jal InputUnsigned add r4,r1,r0 将 r1 的值存入 r4 add r5,r2,r0 将 r2 的值存入 r5 Loop: ;* 比较 R1和 R2 seq r3,r1,r2 ;R1=R2?

9、bnez r3,lcm ; 转到 lcm sgt r3,r1,r2 ;R1R2? bnez r3,r1Greater ; 转到 r1Great r2Greater: ;*subtract r1 from r2 sub r2,r2,r1 ;r2-r1-r2 j Loop ; 循环 r1Greater: ;*subtract r2 from r1 sub r1,r1,r2 ;r1-r2-r1 j Loop ; 循环 lcm: div r6,r4,r1 ;r4/r1-r6 div r7,r5,r1 ;r5/r1-r7 mult r8,r6,r1 ;r8=r6*r1 mult r9,r7,r8 ;r9

10、=r7*r8 result: sw PrintValue,r9 ;output the result addi r14,r0,PrintPar trap 5 trap 0 4、查看实验结果,程序执行完成后出现消息” Trap #0 occurred ”输入第一个数为 4,第 个数 5,输出最小公倍数为 20 6、使用定向技术,观察数据如下图 增加 forward 部件后,以下数据发生变化: (1)、周期数减少到 204(原为 219) (2)、数据相关减少到 50(原为 89) 可见增加 forward 部件后,总周期数减少,数据相关减少,由于该部件的使用,将运算结 果值提前传送到有关缓冲寄存器,使后续指令得以不停顿地进入流水线,并及时得到需要的 操作数,所以性能有所提高。 加速比: 219/204=1.0735 八、实验结论: 程序的装入要严格按照顺序,顺序将影响程序的正确执行; 程序执行顺序,部件的个数都会对程序的执行产生影响; 为减少数据相关,应调整程序的执行顺序; 为减少控制相关,程序的跳转必须要在合适的位置; 为

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论