哈工程体系结构实验

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

12020年4月19日哈工程体系结构实验文档仅供参考22020年4月19日实验报告学生姓名:学号:时间:6月27日8:00-17:30地点:21号楼427实验室实验课程名称:计算机体系结构(随意自己,可是能体现三个相关计算机性能等)一、实验名称:流水线中的相关—求最小公倍数二、实验原理:1、WinDLXWinDLX模拟器是一个图形化、交互式的DLX流水线模拟器,能够演示DLX流水线是如何工作的。该模拟器能够装载DLX汇编语言程序(后缀为“.s”的文件),然后单步、设断点或是连续执行该程序。CPU的寄存器、流水线、I/O和存储器都能够用图形表示出来,以形象生动的方式描述DLX流水线的工作过程。模拟器还提供了对流水线操作的统计功能,便于对流水线进行性能分析。2、流水线执行过程:指令执行的5个阶段(1)取指令周期(2)指令译码/读寄存器周期(3)执行/有效地址计算周期(4)存储器访问/分支完成周期(5)写回周期3、流水线中的相关:(1)结构相关:当某一条机器指令需要访问物理器件时,如加法器,此时加法器正被另一条机器指令使用,从而产生结构相关;(2)数据相关:当某一条指令需要访问某个寄存器时,此时这个寄存器正被另一条指令所使用,从而产生数据相关;(3)控制相关:当程序执行到某个分支语句时,顺序执行的下一条语句将被跳过而去执行分支语句中满足条件的那条指令,从而产生控制相关。文档仅供参考32020年4月19日三、实验目的:(不改)1、经过该模拟实验,进一步掌握和巩固流水线的基本知识;2、初步掌握在特定体系结构下的汇编代码的编写和优化;3、培养运用所学知识解决实际问题的能力4、对流水线性能分析5、了解影响流水线效率的因素6、了解各类相关及解决方法四、实验内容:(根据具体情况修改,文件名字可修改,其它不用改)使用WinDLX模拟器,对lcm.s做如下分析:(1)分析lcm.s和imput.s输入顺序不同时产生的影响。(2)分析lcm.s中汇编语言含义,同时分析程序执行流程。(3)观察程序中出现的数据/控制/结构相关。指出程序中出现上述现象的指令组合。(4)考察增加浮点运算部件对性能的影响。(5)考察增加forward部件对性能的影响。(6)观察转移指令在转移成功和转移不成功时候的流水线开销。注意:除(2)以外,浮点加、乘、除部件都只有一个;本问题中所有浮点延迟部件设置为:加法:2个延迟周期;乘法:5个延迟周期;除法19个延迟周期。五、实验器材(设备、元器件):IBMPC兼容机Windows3.0以上的操作系统六、实验步骤及操作:1、双击WinDLX图标运行WinDLX。装入测试程序之前,先初始化WinDLX模拟器:点击File菜单中的Resetall菜单项,弹出一个“ResetDLX”对话框。然后点击窗口中的“确认”按钮即可。2、选择File/LoadCodeorData,按如下步骤操作,可将fact.s和input.s这两个程序装入主存:点击lcm.s点击select按钮点击input.s点击select按钮点击load按钮3、按F7键程序顺序执行观察6个子窗口的情况。文档仅供参考42020年4月19日七、实验数据及结果分析:(修改,自己写一个程序完成某个功能,如何体现的三个相关,对计算机性能有什么影响)1、先装入lcm.s再转入input.s时,因为程序顺序执行,地址顺序符合程序执行顺序,程序能够正确执行;顺序相反时,因为input.s的地址高,而程序顺序执行到input.s时将没有正确的输入窗口,程序执行到输出结果时,也不会出现结果如上图所示,三种相关均出现,数据相关89项,结构相关18项,控制相关14项2、程序中出现数据相关lbur3,0x0(r2)seqir5,r3,0xabnezr5,Finish程序中出现控制相关sgtr3,r1,r2bnezr3,r1Greater文档仅供参考52020年4月19日程序中出现结构相关:divr6,r4,r1divr7,r5,r13、源程序分析.data;***promptsforinputPrompt1:.asciizFirstNumber:;输入第一个数Prompt2:.asciizSecondNumber:;输入第二个数;DataforPrintf-TrapPrintfFormat:.asciizLCM=%d\n\n;输出最小公倍数.align2;表示下面采用字对齐PrintPar:.wordPrintfFormatPrintValue:.space4.text;第一代码段,默认情况下代码段$CODE会加载到内存0x100地址处.globalmain;定义一个全局符号main,即该代码段的首地址main:;***readtwopositiveintegernumbersintoR1andR2addir1,r0,Prompt1;第一个数加r0给r1jalInputUnsigned;调用InputUnsigned函数输入R1文档仅供参考62020年4月19日addr2,r1,r0;将第一个数存到r2addir1,r0,Prompt2;第二个数存到r1jalInputUnsignedaddr4,r1,r0;将r1的值存入r4addr5,r2,r0;将r2的值存入r5Loop:;***比较R1和R2seqr3,r1,r2;R1=R2?bnezr3,lcm;转到lcmsgtr3,r1,r2;R1R2?bnezr3,r1Greater;转到r1Greatr2Greater:;***subtractr1fromr2subr2,r2,r1;r2-r1--r2jLoop;循环r1Greater:;***subtractr2fromr1subr1,r1,r2;r1-r2--r1jLoop;循环lcm:divr6,r4,r1;r4/r1--r6divr7,r5,r1;r5/r1--r7multr8,r6,r1;r8=r6*r1multr9,r7,r8;r9=r7*r8result:swPrintValue,r9;outputtheresultaddir14,r0,PrintPartrap5;***endtrap04、查看实验结果,程序执行完成后出现消息”Trap#0occurred”输入第一个数为4,第二个数5,输出最小公倍数为20文档仅供参考72020年4月19日6、使用定向技术,观察数据如下图增加forward部件后,以下数据发生变化:(1)、周期数减少到204(原为219)文档仅供参考82020年4月19日(2)、数据相关减少到50(原为89)可见增加forward部件后,总周期数减少,数据相关减少,由于该部件的使用,将运算结果值提前传送到有关缓冲寄存器,使后续指令得以不停顿地进入流水线,并及时得到需要的操作数,因此性能有所提高。加速比:219/204=1.0735八、实验结论:程序的装入要严格按照顺序,顺序将影响程序的正确执行;程序执行顺序,部件的个数都会对程序的执行产生影响;为减少数据相关,应调整程序的执行顺序;为减少控制相关,程序的跳转必须要在合适的位置;为减少结构相关,器件的个数应该合理分配;九、总结及心得体会:经过该模拟实验,我们对DLX的汇编语言有了一定了解,学会用它编写简单的程序,同时经过对此程序结果的分析,掌握并熟悉了指令相关性及其解决办法,进一步掌握和巩固流水线的基本知识;熟悉了程序的运行环境;增强了运用所学知识解决实际问题的能力。报告评分:指导教师签字:

1 / 8
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功