北京邮电大学计算机学院《计算机系统结构》课程实验2015年4月实验三DLX处理器程序设计实验类别:综合型实验目的:学习使用DLX汇编语言编程,进一步分析相关现象实验学时:4实验组人数:1/1实验设备环境:DLX汇编语言环境实验原理:掌握向量运算算法和编程方法。教学要点与学习难点:DLX汇编语言实验容和要求:自编一段汇编代码,完成两双精度浮点一维向量的加法(或乘除法)运算,并输出结果。向量长度>=16。观察程序中出现的数据/控制/结构相关实验步骤:(1)熟悉DLX汇编语言。(2) 编写两双精度浮点一维向量的加法运算程序。(3) 对此程序完成上面实验二中1)、2)、3)、4)方面的分析。;初始化两个用于相加的一维向量(双精度浮点数),向量长度为20a:.,,,,,,,,,,,,,,,,,,,:.,,,,,,,,,,,,,,,,,,,:.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;: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,PrintfPartrap5trap0运行结果Statistics可以看到具体数据情况和产生相关的比例等结果分析数据相关由Statistics中的知道,%的数据相关。查看可以发现,产生的相关都为RW读写相关。它们分别为: addi r1,r0,0subi r2,r1,20 subi r2,r1,20 beqz r2,finish multu r3,r1,r4ld f0,a(r3) ld f2,b(r3) addd f4,f0,f2 addd f4,f0,f2 sd r(r3),f4 控制相关由Statistics中的可以看到,%的控制相关。 系统按照预测成功来执行指令,执行一条指令后马上将其下一条指令trap读进来。结构相关由于程序只简单的做了一次加法,所以没有结构相关产生。增加浮点运算部件对性能的影响下图分别为浮点运算部件为1和4的时
北邮实验三 dlx处理器程序设计 来自淘豆网m.daumloan.com转载请标明出处.