计算机系统结构实验报告Word文件下载.docx
《计算机系统结构实验报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《计算机系统结构实验报告Word文件下载.docx(14页珍藏版)》请在冰豆网上搜索。
注:
为简单起见,可以固定矩阵的大小,如20*20,可以不赋初值,不输出计算结果,目的是考察矩阵乘循环的指令序列。
实
验
结
果
与
分
析
实验结果与分析:
一、实验中采用2行2列的矩阵A与2行4列的矩阵B相乘结果如下:
二、程序中出现很多的数据相关、控制相关和结构相关现象,例如:
数据相关指令:
multur4,r6,r8与subr4,r4,1、addir2,r10,dat1与addir2,r2,1等;
控制相关指令:
bnezr4,loop1、beqzr6,outputA、ltff4,f9bfpfasign等;
三、使用DLX平台提供的功能可以实验程序在运行过程中观察
Pipeline窗口流水线的执行步骤、
ClockCycleDiagram窗口查看流水线的时空图以、实验程序中数据在内存中的地址、实验运行结束后对应的内存分配以及在Statistics窗口中程序执行的相关执行周期等信息;
如下图所示:
1、Pipeline窗口流水线的执行步骤(执行完毕各存储器中的内容):
2、
ClockCycleDiagram窗口查看流水线的时空图:
3、实验程序中数据在内存中的地址
程
序
代
码
4、实验运行结束后对应的内存分配
5、使用定向技术观察Statistics窗口中程序执行的相关执行周期等信息
6、使用非定向技术观察Statistics窗口中程序执行的相关执行周期等信息
7、由以上采用定向技术和采用非定向技术两种方式运行下的Statistics窗口得到的信息可知在定向技术下执行总周期为1779,而在非定向技术下执行总周期为2179;
因此计算定向技术带来的加速比:
S=2179/1779=1.22
Martrix.s程序代码:
;
------------------------------------------------------------------------
Programbeginsatsymbolmain
requiresmoduleINPUT
Readtwoarrays,calculatethemultiplitionoftwoarrays
andwritetheresulttostdout
.data
dat1:
.space64
dat2:
result:
Prompt1:
.asciiz"
inputthemartrixAline:
"
Prompt2:
inputthemartrixAcolumnandthemartrixBline:
"
Prompt3:
.asciiz"
inputthemartrixBcolumn:
Prompt4:
inputthemartrixA'
snumber:
Prompt5:
inputthemartrixB'
Prompt6:
Doyouwantagain(yes=1,no=0):
PrintfFormat:
%d"
.align2
PrintfPar:
.wordPrintfFormat
PrintfValue:
.space4
PrintfFormat1:
.asciiz"
\n"
PrintfPar1:
.wordPrintfFormat1
PrintfValue1:
PrintfFormat2:
outputthemartrixA:
PrintfPar2:
.wordPrintfFormat2
PrintfValue2:
PrintfFormat3:
outputthemartrixB:
PrintfPar3:
.wordPrintfFormat3
PrintfValue3:
PrintfFormat4:
outputthemartrixC:
PrintfPar4:
.wordPrintfFormat4
PrintfValue4:
.text
.globalmain
main:
addir1,r0,Prompt1
jalInputUnsigned
movi2fpf1,r1;
矩阵A的行数
addir1,r0,Prompt2
movi2fpf2,r1;
矩阵A的列数,矩阵B的行数
addir1,r0,Prompt3
jalInputUnsigned
movi2fpf3,r1;
矩阵B的列数
movfp2ir8,f1
movfp2ir6,f2
multur4,r6,r8;
分别读入矩阵A的元素值
addir2,r10,dat1
loop1:
addr1,r0,Prompt4
jalInputUnsigned
sb0(r2),r1
addir2,r2,1
subr4,r4,1
bnezr4,loop1
addir10,r0,0;
分别读出矩阵A的元素值
swPrintfValue2,r1
addir14,r0,PrintfPar2
trap5
loopA:
lbur1,0(r2)
swPrintfValue,r1
addir14,r0,PrintfPar
subr6,r6,1
beqzr6,outputA
jloopA
outputA:
swPrintfValue1,r1
addir14,r0,PrintfPar1
subr8,r8,1
beqzr8,countiuB
jloopA
countiuB:
movfp2ir6,f2
movfp2ir12,f3
addir10,r0,0
multur4,r6,r12;
分别读入矩阵B的元素值
addir2,r10,dat2
loop2:
addir1,r0,Prompt5
bnezr4,loop2
分别读出矩阵B的元素值
swPrintfValue3,r1
addir14,r0,PrintfPar3
loopB:
swPrintfValue,r1
subr12,r12,1
beqzr12,outputB
jloopB
outputB:
addir14,r0,PrintfPar1
beqzr6,countiue
movfp2ir12,f3
jloopB
countiue:
addir11,r0,0;
temp,表示矩阵C的一个元素的累加器
addir4,r0,0;
r初始化矩阵C的偏移量
addir5,r0,0;
矩阵A当前被扫描的行号
line:
movi2fpf4,r5;
判断是否扫描完
ltff4,f1;
f4>
f1跳转(矩阵A的行是否扫描完)
bfpffinish;
是,则跳转结束程序
addir6,r0,0;
col,r6表示当前B矩阵的列号
column:
movi2fpf4,r6
ltff4,f3;
col(f3)<
f4,矩阵B的列是否扫描完
bfpfleveladd;
是,则跳到矩阵a的下一行
movfp2ir1,f2
multur10,r5,r1;
r10表示矩阵A当前行的第一个元素的索引
addir7,r6,0;
movcoltoj(矩阵B某一列的某个元素的索引)
temp=0,矩阵C当前的元素值的初始化
addir9,r5,1;
r9代表矩阵A当前数组中的实际行号
movfp2ir1,f2;
f2是矩阵A的列数
multur9,r1,r9;
r9代表矩阵A当前行中最后一个元素在数组中的索引
calculate:
movi2fpf4,r10
movi2fpf9,r9
ltff4,f9;
判断是否计算到当前行的最后一个元素)
bfpfasign;
当前行列相乘完毕,得出结果矩阵C的一个元素
addir1,r10,dat1;
取矩阵A当前元素在内存区域中的地址
lbur2,0(r1);
从r1所指向的内存单元中取出矩阵A当前的元素暂存在r2
addir1,r7,dat2;
取矩阵B当前元素在内存区域中的地址
lbur3,0(r1);
从r1所指向的内存单元中取出矩阵B当前的元素暂存在r3
multur1,r2,r3;
temp1<
-dat1[i]+dat2[j]
addr11,r11,r1;
temp<
-temp+temp1,累加到累加器
addir10,r10,1;
i++,计算矩阵A当前行的下个元素的索引
movfp2ir1,f3
addr7,r7,r1;
j<
-j+k,计算矩阵B的当前列的下个元素的索引
jcalculate
asign:
addir1,r4,result;
r1表示矩阵C当前的地址
sb0(r1),r11;
把新计算出来的元素放入当前内存单元
addir4,r4,1;
赋值完一个元素,偏移量自增1
addir6,r6,1;
矩阵B的当前列数自增1
jcolumn;
矩阵B新的一列开始
leveladd:
addir5,r5,1;
矩阵A当前行自增1
jline;
矩阵A新的一行开始
finish:
分别读出矩阵C的元素值
addir2,r10,result
swPrintfValue4,r1
addir14,r0,PrintfPar4
loop3:
addir14,r0,PrintfPar
beqzr12,outputC
jloop3
outputC:
swPrintfValue1,r1
beqzr8,choice
jloop3;
***end
choice:
addr1,r0,Prompt6
beqzr1,end
jmain
end:
trap0
心
得
体
会
通过本次实验,我对于DLX仿真平台和DLX指令有了一定程度的认识,基本上能够读懂DLX编写的程序。
同时通过观察实验数据,对流水线的冲突和解决冲突的方法有了更深入的认识,当出现冲突时,修改指令的执行顺序是一个比较好的解决方法。
在这次实验的过程中,通过认真阅读源代码,基本上学会了对DLX仿真试验平台的运用。
成
绩
评
定
教师签名:
年月日