系统结构 第一二次试验报告.docx
- 文档编号:5856602
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:20
- 大小:812.29KB
系统结构 第一二次试验报告.docx
《系统结构 第一二次试验报告.docx》由会员分享,可在线阅读,更多相关《系统结构 第一二次试验报告.docx(20页珍藏版)》请在冰豆网上搜索。
系统结构第一二次试验报告
实验一熟悉模拟器WinDLX的使用
一、实验目的
1.熟练掌握WinDLX模拟器的操作和使用,熟悉DLX指令集结构及其特点。
2.加深对计算机流水线基本概念的理解。
3.了解DLX基本流水线各段的功能以及基本操作。
二、实验平台
WinDLX模拟器
三、实验任务
用WinDLX模拟器执行下列两个程序:
●求阶乘程序fact.s
●求最大公倍数程序gcm.s
分别以步进、连续、设置断点的方式运行程序,观察程序在流水线中的执行情况,观察CPU中寄存器和存储器的内容。
熟练掌握WinDLX的操作和使用。
1.用WinDLX模拟器执行求阶乘程序fact.s
(1)用WinDLX模拟器执行求阶乘程序fact.s。
这个程序说明浮点指令的使用。
该程序从标准输入读入一个整数,求其阶乘,然后将结果输出。
该程序中调用了input.s中的输入子程序,这个子程序用于读入正整数。
(2)输入数据“3”,采用单步执行方法,完成程序并通过使用WinDLX,总结WinDLX的特点。
(3)注意观察变量说明语句所建立的数据区,理解WinDLX指令系统。
(4)分别以步进、连续、设置断点的方式运行程序,观察程序在流水线中的执行情况,观察CPU中寄存器和存储器的内容。
熟练掌握WinDLX的操作和使用。
2.用WinDLX模拟器求最大公约数程序gcm.s
(1)用WinDLX模拟器执行程序。
该程序从标准输入读入两个整数,求他们的greatest common measure,然后将结果写到标准输出。
该程序中调用了input.s中的输入子程序。
(2)给出两组数6、3和6、1,采用单步和连续混合执行的方法完成程序,注意中间过程和寄存器的变化情况,观察流水线工作情况。
然后单击主菜单上的execute/display dlx-i/o,观察结果。
(3)分别以步进、连续、设置断点的方式运行程序,观察程序在流水线中的执行情况,观察CPU中寄存器和存储器的内容。
实验结果:
1、
(1)导入fact.s和input.s代码
(2)单步执行
流水线:
寄存器的值:
由图可知:
PC寄存器中存放下一条要执行的语句的地址,IMAR中存放当前执行的语句的地址。
(3)设置断点:
执行到断点:
(4)自动执行:
执行结果:
(5)程序代码:
Fact.s:
main:
;***ReadvaluefromstdinintoR1
addir1,r0,Prompt
jalInputUnsigned
;***initvalues
movi2fpf10,r1;R1->D0D0..Countregister
cvti2df0,f10
addir2,r0,1;1->D2D2..result
movi2fpf11,r2
cvti2df2,f11
movdf4,f2;1->D4D4..Constant1
;***BreakloopifD0=1
Loop:
ledf0,f4;D0<=1?
bfptFinish
;***Multiplicationandnextloop
multdf2,f2,f0
subdf0,f0,f4
jLoop
Finish:
;***writeresulttostdout
sdPrintfValue,f2
addir14,r0,PrintfPar
trap5
;***end
trap0
(6)分析结果:
点击Statistics窗口,可以看到总的周期数为81,总的暂停数为29,其中数据相关暂停数为10,占总执行周期数的百分比为12.34%;控制相关暂停数为7,占总执行周期数的百分比为8.64%;中断暂停时钟周期数Trap stalls为12,占总执行周期数的百分比为14.81%。
2、
(1)导入代码
(2)单步执行:
流水线:
执行结果:
6、3时:
6、1时:
(3)设置断点:
执行到断点:
(4)自动执行F5
结果与单步执行一致。
(5)程序代码:
Gcm.s:
main:
;***ReadtwopositiveintegernumbersintoR1andR2
addir1,r0,Prompt1
jalInputUnsigned;readuns.-integerintoR1
addr2,r1,r0;R2<-R1
addir1,r0,Prompt2
jalInputUnsigned;readuns.-integerintoR1
Loop:
;***CompareR1andR2
seqr3,r1,r2;R1==R2?
bnezr3,Result
sgtr3,r1,r2;R1>R2?
bnezr3,r1Greater
r2Greater:
;***subtractr1fromr2
subr2,r2,r1
jLoop
r1Greater:
;***subtractr2fromr1
subr1,r1,r2
jLoop
Result:
;***Writetheresult(R1)
swPrintfValue,r1
addir14,r0,PrintfPar
trap5
;***end
trap0
(6)分析结果:
当输入数据为6和1时:
点击Statistics窗口,可以看到总的周期数为121,总的暂停数为51,其中数据相关暂停数为23,占总执行周期数的百分比为19.01%;控制相关暂停数为10,占总执行周期数的百分比为8.26%;中断暂停时钟周期数Trap stalls为18,占总执行周期数的百分比为14.88%。
当输入数据为6和1时:
点击Statistics窗口,可以看到总的周期数为157,总的暂停数为63,其中数据相关暂停数为31,占总执行周期数的百分比为19.74%;控制相关暂停数为14,占总执行周期数的百分比为8.92%;中断暂停时钟周期数Trap stalls为18,占总执行周期数的百分比为11.46%。
实验二流水线中的相关
一、实验目的
1.进一步了解DLX基本流水线各段的功能以及基本操作;
2.加深对数据相关、结构相关的理解,了解这两类相关对CPU性能的影响;
3.了解解决数据相关的方法,掌握如何使用定向技术来减少数据相关带来的暂停。
二、实验平台
WinDLX模拟器
三、实验内容和步骤
1.用WinDLX运行程序structure_d.s
(1)找出存在结构相关的指令对以及导致结构相关的部件。
(2)记录由结构相关引起的暂停时钟周期数,计算暂停时钟周期数占总执行周期数的百分比。
(3)论述结构相关对CPU性能的影响,讨论解决结构相关的方法。
2.用WinDLX运行程序data_d.s
(1)在不采用定向技术的情况下(去掉Configuration菜单中EnableForwarding选项前的勾选符),用WinDLX运行程序data_d.s。
记录数据相关引起的暂停时钟周期数以及程序执行的总时钟周期数,计算暂停时钟周期数占总执行周期数的百分比。
(2)在采用定向技术的情况下(勾选EnableForwarding),用WinDLX再次运行程序data_d.s。
记录数据相关引起的暂停时钟周期数以及程序执行的总时钟周期数,计算暂停时钟周期数占总执行周期数的百分比。
(3)根据上面记录的数据,计算采用定向技术后性能提高的倍数。
实验过程:
1、第一部分:
(1)导入程序:
(2)单步执行:
(3)执行结果:
(4)源程序代码:
LHIR2,(A>>16)&0xFFFF
ADDUIR2,R2,A&0xFFFF
LHIR3,(B>>16)&0xFFFF
ADDUIR3,R3,B&0xFFFF
ADDUR4,R0,R3
loop:
LDF0,0(R2);R2->F0
LDF4,0(R3);R3->F4
ADDDF0,F0,F4;把栽入的R2和R3做浮点运算
ADDDF2,F0,F2;<-Astallisfound(anexampleofhowtoansweryourquestions)
ADDIR2,R2,#8
ADDIR3,R3,#8
SUBR5,R4,R2
BNEZR5,loop
TRAP#0;;Exit<-thisisacomment!
!
A:
.double1,2,3,4,5,6,7,8,9,10
B:
.double1,2,3,4,5,6,7,8,9,10
(5)结果分析:
点击Statistics窗口,可以看到总的周期数为139,总的暂停数为42,其中数据相关暂停数为30,占总执行周期数的百分比为21.58%;控制相关暂停数为9,占总执行周期数的百分比为6.47%;中断暂停时钟周期数Trap stalls为3,占总执行周期数的百分比为2.16%。
2、第二部分:
(1)导入data_d.s程序
(2)程序代码:
Data_d.s:
LHIR2,(A>>16)&0xFFFF;将A的值右移16位,将A与十六进制FFFF相与
ADDUIR2,R2,A&0xFFFF;先右移然后与运算
LHIR3,(B>>16)&0xFFFF
ADDUIR3,R3,B&0xFFFF;栽入R2+A->R2,栽入R3+B->R3
loop:
LWR1,0(R2)
ADDR1,R1,R3
SW0(R2),R1
LWR5,0(R1)
ADDIR5,R5,#10
ADDIR2,R2,#4
SUBR4,R3,R2
BNEZR4,loop;循环,先将R2->R1,R1+R3->R1,存储R1
TRAP#0;也就是先将之前读入的R2与R3相加->R1
A:
.word0,4,8,12,16,20,24,28,32,36
B:
.word9,8,7,6,5,4,3,2,1,0;定义好的常量
(3)在不采用定向技术的情况下(去掉Configuration菜单中EnableForwarding选项前的勾选符),用WinDLX运行程序data_d.s。
执行结果:
结果分析:
在不采用定向技术的情况下,运行程序。
打开静态窗口,可以看到,总的周期数为202,总的暂停数为116,其中数据相关暂停数为104,占总执行周期数的百分比为51.48%;控制相关暂停数为9,占总执行周期数的百分比为4.46%;中断暂停时钟周期数Trap stalls为3,占总执行周期数的百分比为1.48%。
(4)在采用定向技术的情况下(勾选EnableForwarding),用WinDLX再次运行程序data_d.s。
采用定向技术:
执行结果:
结果分析:
运行程序。
再次打开静态窗口,可以看到,总的周期数变为128,总的暂停数为42,其中数据相关暂停数为30,占总执行周期数的百分比为23.44%;控制相关暂停数仍然为9,占总执行周期数的百分比为7.32%;中断暂停时钟周期数Trap stalls仍然为3,占总执行周期数的百分比为2.34%。
(5)两次结果分析:
由上述的值可以看到不采用定向技术时总的周期数为202,采用了定向技术后总的周期数变为128,由此可以计算定向技术带来的加速比202/128=1.578, DLXforwarded 比DLXnot forwarded 快了57.8%。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 系统结构 第一二次试验报告 系统 结构 第一 二次 试验报告