




已阅读5页,还剩18页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机系统结构实验报告班 级: 2011211 学 号: 姓 名: 17 1. 实验一 WINDLX模拟器安装及使用 2. 实验二 指令流水线相关性分析3. 实验三 DLX处理器程序设计4. 实验四 代码优化5. 实验五 循环展开(选作)实验一 WINDLX模拟器安装及使用简要介绍WINDLX模拟器结构和功能此图为初始界面Register窗口显示寄存器中的内容ClockCycleDiagram子窗口现在双击ClockCycleDiagram子窗口,它显示DLX流水线的时空图。 Statistics子窗口 Pipeline子窗口窗口中用图表形式显示了DLX的五段流水线。可以看出,DLX执行指令的流水线是一个5段流水线,包括取指段(IF)、译码段(ID)、执行段(EX)、访存段(MEM)和写回段(WB)。显然,不同指令在执行段的操作是不同的,而且不同操作在该段的延迟也是不同的。 Breakpoint子窗口按F7键以单步方式运行程序,可以清楚的看到每条指令在流水线各个段的具体操作情况,除此之外,DLX模拟器还提供了其他几种运行程序的方式。单击主窗口中Execute子菜单,可以看到DLX模拟器共提供了4种运行程序的方式,其中SingleCycle(或按F7键)就是单步执行方式;MultipleCycles(或按F8键)是多步执行方式,选择该方式,会在屏幕上出现一个窗口,询问周期个数,它表示流水线从当前位置继续向前执行的周期个数,输入你需要的值,然后按OK键. Code子窗口里面显示的内容是两个程序(fact.s和input.s)加载到内存中的情况。最右边显示的是程序fact.s的第一条指令,对照图2.7中fact.s的第一条语句,可以看出,变量Prompt被代替以0x1000,这说明变量Prompt在程序被加载到内存中的实际地址就是0x1000,也即程序的数据区被加载到内存地址0x1000开始的地方,这里“0x”表示十六进制。中间显示的是第一条语句的机器码 表示占了内存的4个字节位置。实验二 指令流水线相关性分析一实验目的。通过使用WINDLX模拟器,对程序中的三种相关现象进行观察,并对使用专用通路,增加运算部件等技术对性能的影响进行考察,加深对流水线和RISC处理器的特点的理解。二实验原理。指令流水线中主要有结构相关、数据相关、控制相关。相关影响流水线性能。三实验过程及分析结果。(1)观察程序中出现的数据/控制/结构相关。指出程序中出现上述现象的指令组合。数据相关及指令组合:1) 截图及分析原因是管道清除在DLX trap-instruction时发现避免所有问题的可能性。这是记录在信息窗口,Trap-Pipeline-Clearing失速!“如果阶段。lbu r3,0x0(r2)要在WB周期写回r3中的数据,而下一条指令 seqi r5,r3,0xa 要在intEX周期中读取r3中的数据。发生了WR相关。存储了一个数据。2) 指令组合lbu r3,0x0(r2)seqi r5,r3,0xa控制相关及指令组合:1) 截图及分析可以看到仿真在第四周期,第一条命令是在MEM阶段, 第二条命令处于intEX段,第四条命令处于IF段,而第三条命令处于aborted。原因:第二个命令,jal是无条件分支。这个事实是只有在第三周期,当jal被解码。之后在这个周期命令movi2fp(jal)已经被获取,但下一个执行命令将在另一个地址。因此movi2fp的执行必须中止,留下一个的管道。2) 指令组合addi r1, r0 , 0x1000jal InputUnsignedmovi2fp f10,r1sw SaveR2r0,r2结构相关及指令组合:1) 截图及分析addi r2, r2, 0x1 该指令与它前面的一天指令 add r1,r1, r3发生了结构相关。由于上一条指令由于数据相关需要停4个周期,在ID段后停滞,不能进入intEX段,故 addi r2,r2,0x1 就不能进入ID段,译码部分已经被占用。故发生了结构相关。2) 指令组合add r1,r1, r3addi r2, r2, 0x1(2)考察增加浮点运算部件对性能的影响。进行20次循环,截图如下 分析:代码执行相同步,通过对比发现浮点运算部件的多少对于程序执行效率并没有什么影响,浮点运算部件的多少对统计结果都不造成影响。因为程序中浮点计算指令没有重叠,所以并行度没有增加,性能没有提高。(3)考察增加forward部件对性能的影响。进行20次循环,截图如下:不使用forward:使用forward: 分析:使用forward部件后的109个时钟周期比不使用少了21个时钟周期。使用forward部件使得RAW减少了36个,占总的时钟周期比例也减少了。可以看出使用forward部件后,时钟周期减少,数据相关减少,流水线的性能得到提高。 (4)观察转移指令在转移成功和转移不成功时候的流水线开销。截图如下:分析:转移指令一共23条。其中成功转移的2条,占8.70%,不成功转移的21条,占91.30%。若转移不成功,对流水线的执行无影响,流水线的吞吐率和效率没有降低。若转移成功,则要废弃预先读入的指令,重新从转移成功处读入指令,每执行一条条件转移指令,执行效率降低,性能就会损失。四给出实验总结:根据实验,总结采用流水线技术会遇到的问题和为解决这些问题所采用的各种技术的作用。同时简单谈谈自己对流水线技术的认识。因为这次实验是第一次开始真正使用DLX软件,所以对操作还是很不熟悉,开始没有对文档认真阅读,导致不知如何导入代码,通过观察程序中出现的数据相关、控制相关、结构相关,以及他们的指令组合,并考察增加浮点运算部件、forward部件对性能的影响,观察转移指令在转移成功和不成功时的流水线开销。我更加深入的认识了流水线的概念。而通过使用DLX软件能更直观的体现出流水线的工作过程,这也让我对流水线内在的理论和实验有了更深的了解,对今后体系结构的学习有很大的帮助。流水线技术可以让一个工作变得轻松和简单,让原本复杂的工程有了并行性,这也使得效率大大提高,对机器的使用有了更大的帮助。实验三 DLX处理器程序设计一 实验目的学习使用DLX汇编语言编程,进一步分析相关现象二 代码清单及注释说明三 程序相关性分析结果运行结果:(1)观察程序中出现的数据/控制/结构相关。指出程序中出现上述现象的指令组合。 数据相关及指令组合:1)截图及分析存在RW相关。2) 指令组合adddf4,f0,f2sdr(r3),f4控制相关及指令组合:1) 截图存在控制相关2) 指令组合jloop结构相关及指令组合:不存在数据相关(2)考察增加浮点运算部件对性能的影响。进行比较,截图如下 分析:代码执行相同步,通过对比发现浮点运算部件的多少对于程序执行效率并没有什么影响,浮点运算部件的多少对统计结果都不造成影响。因为程序中浮点计算指令没有重叠,所以并行度没有增加,性能没有提高。(3)考察增加forward部件对性能的影响。进行比较,截图如下:不使用forward:使用forward: 分析:使用forward部件后的299个时钟周期比不使用少了98个时钟周期。使用forward部件使得RAW减少了98个,占总的时钟周期比例也减少了。可以看出使用forward部件后,时钟周期减少,数据相关减少,流水线的性能得到提高。 (4)观察转移指令在转移成功和转移不成功时候的流水线开销。截图如下:分析:转移指令一共17条。其中成功转移的1条,占5.88%,不成功转移的16条,占94.12%。若转移不成功,对流水线的执行无影响,流水线的吞吐率和效率没有降低。若转移成功,则要废弃预先读入的指令,重新从转移成功处读入指令,每执行一条条件转移指令,执行效率降低,性能就会损失。实验四 代码优化一实验目的学习简单编译优化方法,观察采用编译优化方法所带来的性能的提高。二实验原理采用静态调度方法重排指令序列,减少相关,优化程序三优化程序代码清单及注释说明四参照实验要求记录你实验分析结果优化前:优化后:分析:根据原先实验3中关于相关性的分析找出代码,对其中具有相关性的指令,通过把无关紧要的代码提前或者拖后至相关性语句之间,以此来减少甚至消除数据相关性所造成的stall带来的效率低下。和优化之前相比,总花费时钟周期为268,优化前为299,花费的时钟周期大大减少,总执行指令数为不变,RAW相关占23.88%,比优化前37.79%的RAW相关明显有所改善。控制相关和结构相关均没有改变。因此可以看出本次所做代码优化对数据相关的改善最大。(1)观察程序中出现的数据/控制/结构相关。指出程序中出现上述现象的指令组合。经过修改不存在相关性。(2)考察增加浮点运算部件对性能的影响。进行比较,截图如下 分析:代码执行相同步,通过对比发现浮点运算部件的多少对于程序执行效率并没有什么影响,浮点运算部件的多少对统计结果都不造成影响。因为程序中浮点计算指令没有重叠,所以并行度没有增加,性能没有提高。(3)考察增加forward部件对性能的影响。进行比较,截图如下:不使用forward:使用forward: 分析:使用forward部件后的268个时钟周期比不使用少了66个时钟周期。使用forward部件使得RAW减少了82个,占总的时钟周期比例也减少了。可以看出使用forward部件后,时钟周期减少,数据相关减少,流水线的性能得到提高。 (4)观察转移指令在转移成功和转移不成功时候的流水线开销。截图如下:分析:转移指令一共17条。其中成功转移的1条,占5.88%,不成功转移的16条,占94.12%。若转移不成功,对流水线的执行无影响,流水线的吞吐率和效率没有降低。若转移成功,则要废弃预先读入的指令,重新从转移成功处读入指令,每执行一条条件转移指令,执行效率降低,性能就会损失。五你解决的困难和解决方法对代码优化的不理解,开始不知道应该怎么来解决问题,通过书本的理解和对软件的多次实验,才知道如何来解决问题。消除相关性来使代码优化,改变代码的位置,来解决其相关的问题。六你的实习体会通过这次计算机系统结构的实验,对流水线有了比较深刻的理解,也学会了运用DLX软件,在这几个实验中,自己对软件的使用越来越熟悉,也对DLX编写了初步的掌握,能完成一些基本的代码功能。实验一,让我对DLX软件有了初步的认识;实验二,让我能操作DLX软件来完成一些实验的要求,通过实验指导书的指导,一步一步的完成了所要求的步骤,对DLX软件有了更深的掌握;实验三,开始编写DLX代码,开始有很多
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 动物致伤考试题及答案
- (正式版)DB15∕T 3363-2024 《绵羊瘤胃微生物储备糖原的测定方法》
- 电建准入考试题及答案
- 党性锻炼考试题及答案
- 大写数字考试题及答案
- 项目委托开发合同及技术成果分享说明
- 业务流程优化分析模板及案例
- 开学第一天的故事周记记录新的开始(15篇)
- 数据报表自动化生成模板
- 特种类高压试验专业课件
- 广东省事业单位公开招聘人员报名表
- 电厂消防系统培训课件
- 广东省广州市越秀区2024-2025学年七年级下学期期末考试英语试卷(含答案无听力音频及原文)
- 四不放过原则培训
- 执法办案培训课件
- 职业中介公司管理制度
- 儿童口腔预防保健知识
- 机扩根管治疗讲课件
- 中医护理知识试题及答案
- JG/T 187-2006建筑门窗用密封胶条
- 2025-2030猫砂盆行业市场发展分析及发展前景与投资研究报告
评论
0/150
提交评论