电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

北邮大三计算机体系结构实验三DLX处理器程序设计VIP免费

北邮大三计算机体系结构实验三DLX处理器程序设计_第1页
1/10
北邮大三计算机体系结构实验三DLX处理器程序设计_第2页
2/10
北邮大三计算机体系结构实验三DLX处理器程序设计_第3页
3/10
实验三DLX处理器程序设计1.实验目的学习简单编译优化方法,观察采用编译优化方法所带来的性能的提高。2.实验原理采用静态调度方法重排指令序列,减少相关,优化程序。3、实验内容和要求自编一段汇编代码,完成一维向量加法运算,并输出结果。观察程序中出现的数据/控制/结构相关。(注:使用一维数组表示一维向量。)4.1向量加法代码清单及注释说明1、向量加法设计源代码.dataVectorLength:.word16Vector1:.word1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16Vector2:.word1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16;声明向量长度以及声明向量1、2Printf1:.asciiz"Vector="Printf2:.asciiz"%f".align2PrintPrompt:.wordPrintf1PrintPar:.wordPrintf2Result:.space4;存放打印数据的空间申请.textmain:addir14,r0,PrintPrompttrap5lwr20,VectorLengthaddir2,r0,0Loop:ldf10,Vector1(r2)ldf12,Vector2(r2);循环体中读入向量cvti2df0,f10cvti2df2,f12adddf4,f2,f0;加法运算Finish:;****Finish,writeresultintostdoutsdResult,f4addir14,r0,PrintPartrap5;系统中断,输出结果addir2,r2,4subir20,r20,1bnezr20,Loop;****Endtrap02、运行结果5.1程序相关性分析结果(1)观察程序中出现的数据/控制/结构相关。指出程序中出现上述现象的指令组合。产生34.12%的数据相关。当对当前指令的操作数寄存器进行操作的时候,前几条指令的运算结果还未写回结果寄存器,由此产生数据相关。没有产生结构相关。产生3.94%的控制相关。系统按照预测成功来执行指令,执行一条指令后马上将其下一条指令trap读进来。(2)考察增加浮点运算部件对性能的影响。1个浮点运算部件3个浮点运算部件同一段代码执行相同步,但是经过对比发现浮点运算部件的多少对于程序执行效率并没有什么影响,浮点运算部件的多少对统计结果都不造成影响,可能是由于该程序不存在争用浮点运算部件资源的情况(3)考察增加forward部件对性能的影响。不使用forward部件使用forward部件使用forward部件之后执行相同的代码用的时钟周期比不使用forward部件少了大约100个时钟周期,由于没有结构相关,所以使用forward部件主要使得RAW相关明显减少了,占总的时钟周期比例也减少了,对控制相关没有什么影响。总之,使用forward部件后,总的时钟周期减少,数据相关减少,流水线的性能得到很大的改善。(4)观察转移指令在转移成功和转移不成功时候的流水线开销。在本次实验中转移成功的几率比较大,进行16次转移只有一次转移不成功的,因为系统按照预测成功来执行指令,当判断转移不成功时,系统对trap指令进行的操作被全部作废,转而去执行跳转到的指令。4.2双精度浮点加法求和代码清单及注释说明1、双精度浮点加法求和源代码.data;初始化两个用于相加的一维向量(双精度浮点数),向量长度为20a:.double1.9,2.1,3.7,4.6,5.5,6.4,7.3,8.2,9.1,10.1,11.2,12.3,13.4,14.5,15.6,16.7,17.8,18.9,19.0,20.2b:.double1.1,2.2,3.3,4.4,5.5,6.6,7.7,8.8,9.8,10.9,11.8,12.7,13.6,14.5,15.4,16.3,17.2,18.1,19.9,20.8PrintfFormat:.asciiz"Theresultis\n\n%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t\n\n".align2PrintfPar:.wordPrintfFormatr:.space200;r为保存相加结果的向量空间.text.globalmainmain:addir1,r0,0;r1计数相加的次数adduir4,r0,8;r4为常数8loop:;循环计算向量相加结果subir2,r1,20;r1=20时,跳转到finishbeqzr2,finishmultur3,r1,r4;r3为当前分量相对于向量基址的偏移(每个分量占8B)ldf0,a(r3);取a中第r1个分量ldf2,b(r3);取b中第r1个分量adddf4,f0,f2;相加结果放在f4中sdr(r3),f4;将相加结果放入结果向量r中addir1,r1,1;下一分量jloopfinish:;输出向量相加的结果addir14,r0,PrintfPartrap52、运行结果:5.2程序相关性分析结果(1)观察程序中出现的数据/控制/结构相关。指出程序中出现上述现象的指令组合。产生了53.78%的数据相关。当对当前指令的操作数寄存器进行操作的时候,前几条指令的运算结果还未写回结果寄存器,由此产生数据相关。产生数据相关的指令主要有:1)addir1,r0,0subir2,r...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

北邮大三计算机体系结构实验三DLX处理器程序设计

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部