体系结构流水线.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
体系结构流水线

计算机科学与技术学院 课程 学 号: 级:专 业: 学生姓名:吕梦瑶 2015年月 学 号:2012061216 时间:2015年6月14日8:00-17:30 地点:21号楼428实验室 实验课程名称:计算机体系结构 一、实验名称:求等差数列前n项并计算总和 二、实验原理: 1、WinDLX WinDLX模拟器是一个图形化、交互式的DLX流水线模拟器,能够演示DLX流水线是如何工作的。该模拟器可以装载DLX汇编语言程序(后缀为“.s”的文件),然后单步、设断点或是连续执行该程序。CPU的寄存器、流水线、I/O和存储器都可以用图形表示出来,以形象生动的方式描述DLX流水线的工作过程。模拟器还提供了对流水线操作的统计功能,便于对流水线进行性能分析。 2、流水线执行过程: 指令执行的5个阶段 (1)取指令周期 (2)指令译码/读寄存器周期 (3)执行/有效地址计算周期 (4)存储器访问/分支完成周期 (5)写回周期 3、流水线中的相关: (1)结构相关:当某一条机器指令需要访问物理器件时,如加法器,此时加法器正被另一条机器指令使用,从而产生结构相关; (2)数据相关:当某一条指令需要访问某个寄存器时,此时这个寄存器正被另一条指令所使用,从而产生数据相关; (3)控制相关:当程序执行到某个分支语句时,顺序执行的下一条语句将被跳过而去执行分支语句中满足条件的那条指令,从而产生控制相关。 四、实验内容: 使用WinDLX模拟器,对lmy.s做如下分析: 分析lmy.s和imput.s输入顺序不同时产生的影响。 分析lmy.s中汇编语言含义,同时分析程序执行流程。 观察程序中出现的数据/控制/结构相关。指出程序中出现上述现象的指令组合。 考察增加浮点运算部件对性能的影响。 考察增加forward部件对性能的影响。 观察转移指令在转移成功和转移不成功时候的流水线开销。 注意: 除(2)以外,浮点加、乘、除部件都只有一个; 本问题中所有浮点延迟部件设置为:加法:2个延迟周期;乘法:5个延迟周期;除法19个延迟周期。 五、实验器材(设备、元器件): IBM PC兼容机 Windows 3.0以上的操作系统WinDLX模拟器1、双击WinDLX图标运行WinDLX。装入测试程序之前,先初始化WinDLX模拟器:点击File 菜单中的 Reset all 菜单项,弹出一个“Reset DLX”对话框。然后点击窗口中的“确认”按钮即可。 2、选择File / Load Code or Data,按如下步骤操作,可将.s和input.s这两个程序装入主存: 点击 点击select按钮 点击input.s 点击select按钮 点击load按钮 3、按F7键程序顺序执行观察6个子窗口的情况 1、装入顺序先装入.s再转入input.s时,因为程序顺序执行,地址顺序符合程序执行顺序,程序能够正确执行;顺序相反时,因为input.s的地址高,而程序顺序执行到input.s时将没有正确的输入窗口,程序执行到输出结果时,也不会出现结果 3、三种相关及消除方法程序中出现数据相关因为下面两条指令r6中的数据,而subi r6,r6,1还在执行阶段,r6中的数据还未写回,所以需要等待,发生数据相关 通过重定向技术解决,可选中此选项 再次执行如图: 通过对比看出数据相关由154变为93,明显减少: (2)结构相关:当指令在重叠执行过程中,硬件资源满足不了指令重叠执行的要求,发生资源冲突时将产生”结构相关”。 以下程序代码段因争夺乘法运算部件而产生结构相关: mult r12,r2,r3 mult r13,r3,r6 mult r15,r13,r4 可通过增加乘法运算单元解决,将其由一个变为三个 修改前后运行对比,结构相关由4变为0,全部消除: (3)控制相关:当不满足条件时或者其他改变PC值的跳转指令,通常发生”控制相关”。 以下代码因跳转产生控制相关: Loop1: sb data1(r10),r5 addi r10,r10,1 add r5,r5,r4 subi r6,r6,1 bnez r6,Loop1 下一条指令取指后留下气泡 通过循环展开解决:复制循环体 修改前后对比发现,因循环体展开两次,所以控制相关减少两个: 4.源代码: .data ;输入提示 Prompt1: .asciiz I

文档评论(0)

haihang2017 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档