计算机体系结构实验

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

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

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

资源描述

实验3用MIPS指令实现求两个数组的点积班级姓名学号1.实验目的(1)通过实验熟悉实验1和实验2的内容(2)增强汇编语言编程能力(3)学会使用模拟器中的定向功能进行优化(4)了解对代码进行优化的方法2.实验原理本次实验通过MIPS语句实现对应的功能,通过代码在指令级和流水线操作级模拟器MIPSsim上执行,根据加载的文档代码中对应操作的通用寄存器,来观察执行的结果是否正确;然后通过观察统计一栏中汇总的执行周期总数,来判断优化和定向前后执行的效率高低,并判断静态调度的情况。3.实验内容和步骤:(1)自行编写一个计算两个向量点积的汇编程序,该程序要求可以实现求两个向量点积计算后的结果。向量的点积:假设有两个n维向量a、b,则a与b的点积为:两个向量元素使用数组进行数据存储,要求向量的维度不得小于10(2)启动MIPSsim。(3)载入自己编写的程序,观察流水线输出结果。注意:不要使用浮点指令及浮点寄存器!!使用TEQ$r0$r0结束程序!!代码如下:.textmain:ADDIU$r1,$r0,array1ADDIU$r2,$r0,array2ADDIU$r3,$r0,10ADDIU$r7,$r0,0loop:LW$r4,0($r1)LW$r5,0($r2)MUL$r6,$r4,$r5ADD$r7,$r7,$r6#r7存放的是点积结果ADDI$r1,$r1,4ADDI$r2,$r2,4ADDI$r3,$r3,-1BGTZ$r3,loopTEQ$r0,$r0.dataarray1:.word0,1,2,3,4,5,6,7,8,9array2:.word0,1,2,3,4,5,6,7,8,9运行结果如下:汇总情况如下:时钟周期图如图所示:(中间部分省略)(4)使用定向功能再次执行代码,与刚才执行结果进行比较,观察执行效率的不同。使用定向功能执行,汇总如下:由此可见,定向后的执行效率为定向前的134.188034%,同时,所少的执行周期为RAW停顿周期。时钟周期图如图所示:(5)采用静态调度方法重排指令序列,减少相关,优化程序代码如下:.textmain:ADDIU$r1,$r0,array1ADDIU$r2,$r0,array2ADDIU$r3,$r0,10ADDIU$r7,$r0,0loop:LW$r4,0($r1)LW$r5,0($r2)MUL$r6,$r4,$r5ADDI$r1,$r1,4ADDI$r2,$r2,4ADDI$r3,$r3,-1ADD$r7,$r7,$r6#此处进行了优化BGTZ$r3,loopTEQ$r0,$r0.dataarray1:.word0,1,2,3,4,5,6,7,8,9array2:.word0,1,2,3,4,5,6,7,8,9运行结果如下:汇总情况如下:时钟周期如下:(中间部分省略)与进行优化前相比,效率为原来的157/127=123.62205%,所少的周期数为RAW停顿周期数。(6)对优化后的程序使用定向功能执行,与刚才执行结果进行比较,观察执行效率的不同。采用定向优化后,执行结果如下:时钟周期如图所示:(中间部分省略)由此可见,定向后的执行效率为定向前的127/107=118.6916%所少的周期数为RAW停顿周期数。4.分析结果代码优化后的性能要比代码优化前的性能提高很大。代码优化之前,需要397个时钟周期,而优化后需要316个时钟周期,停顿周期也从237个时钟周期减少到了134个时钟周期,数据相关和控制相关都有所减少。但是代码优化后因为trap停顿的时钟周期数有所增加5.实验总结通过本次实验更进一步了解了代码优化的重要性,实际应用中一个优化的代码可以提高工作效率,减少不必要的开销,代码优化最重要的工作时分析各种相关性,这样才有可能进一步将代码优化。平时学习时更应该注意对代码优化的学习。

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

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

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

×
保存成功