系统结构 第一、二次试验报告_第1页
系统结构 第一、二次试验报告_第2页
系统结构 第一、二次试验报告_第3页
系统结构 第一、二次试验报告_第4页
系统结构 第一、二次试验报告_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验一 熟悉模拟器WinDLX的使用一、 实验目的1. 熟练掌握WinDLX模拟器的操作和使用,熟悉DLX指令集结构及其特点。2. 加深对计算机流水线基本概念的理解。3.了解DLX基本流水线各段的功能以及基本操作。二、 实验平台WinDLX模拟器三、 实验任务用WinDLX模拟器执行下列两个程序:l 求阶乘程序fact.sl 求最大公倍数程序gcm.s分别以步进、连续、设置断点的方式运行程序,观察程序在流水线中的执行情况,观察CPU中寄存器和存储器的内容。熟练掌握WinDLX的操作和使用。1.用WinDLX模拟器执行求阶乘程序fact.s(1)用WinDLX模拟器执行求阶乘程序fact.s。这

2、个程序说明浮点指令的使用。该程序从标准输入读入一个整数,求其阶乘,然后将结果输出。该程序中调用了input.s中的输入子程序,这个子程序用于读入正整数。(2) 输入数据“3”,采用单步执行方法,完成程序并通过使用WinDLX,总结WinDLX的特点。(3)注意观察变量说明语句所建立的数据区,理解WinDLX指令系统。(4)分别以步进、连续、设置断点的方式运行程序,观察程序在流水线中的执行情况,观察CPU中寄存器和存储器的内容。熟练掌握WinDLX的操作和使用。2.用WinDLX模拟器求最大公约数程序gcm.s(1)用WinDLX模拟器执行程序。该程序从标准输入读入两个整数,求他们的greate

3、stcommonmeasure,然后将结果写到标准输出。该程序中调用了input.s中的输入子程序。(2)给出两组数6、3和6、1,采用单步和连续混合执行的方法完成程序,注意中间过程和寄存器的变化情况,观察流水线工作情况。然后单击主菜单上的execute/displaydlx-i/o,观察结果。(3 ) 分别以步进、连续、设置断点的方式运行程序,观察程序在流水线中的执行情况,观察CPU中寄存器和存储器的内容。实验结果:1、(1)导入fact.s和input.s代码(2) 单步执行流水线:寄存器的值:由图可知:PC寄存器中存放下一条要执行的语句的地址,IMAR中存放当前执行的语句的地址。(3)设

4、置断点:执行到断点:(4)自动执行:执行结果:(5) 程序代码:Fact.s:main:;* Read value from stdin into R1addir1,r0,PromptjalInputUnsigned;* init valuesmovi2fp f10,r1;R1 - D0D0.Count registercvti2df0,f10addir2,r0,1 ;1 - D2D2.resultmovi2fpf11,r2cvti2df2,f11movdf4,f2;1- D4 D4.Constant 1;* Break loop if D0 = 1Loop:ledf0,f4;D0=1 ?bf

5、ptFinish;* Multiplication and next loopmultdf2,f2,f0subdf0,f0,f4jLoopFinish: ;* write result to stdoutsdPrintfValue,f2addir14,r0,PrintfPartrap5;* endtrap0(6) 分析结果:点击Statistics窗口,可以看到总的周期数为81,总的暂停数为29,其中数据相关暂停数为10,占总执行周期数的百分比为12.34%;控制相关暂停数为7,占总执行周期数的百分比为8.64%;中断暂停时钟周期数Trapstalls为12,占总执行周期数的百分比为14.81

6、%。2、 (1)导入代码(2) 单步执行:流水线:执行结果:6、3时:6、1时:(3) 设置断点: 执行到断点:(4) 自动执行F5结果与单步执行一致。(5) 程序代码:Gcm.s:main:;* Read two positive integer numbers into R1 and R2addir1,r0,Prompt1jalInputUnsigned;read uns.-integer into R1addr2,r1,r0;R2 R2 ?bnezr3,r1Greaterr2Greater:;* subtract r1 from r2subr2,r2,r1jLoopr1Greater:;

7、* subtract r2 from r1subr1,r1,r2jLoopResult: ;* Write the result (R1)swPrintfValue,r1addir14,r0,PrintfPartrap5;* endtrap0(6) 分析结果:当输入数据为6和1时: 点击Statistics窗口,可以看到总的周期数为121,总的暂停数为51,其中数据相关暂停数为23,占总执行周期数的百分比为19.01%;控制相关暂停数为10,占总执行周期数的百分比为8.26%;中断暂停时钟周期数Trapstalls为18,占总执行周期数的百分比为14.88%。当输入数据为6和1时: 点击Sta

8、tistics窗口,可以看到总的周期数为157,总的暂停数为63,其中数据相关暂停数为31,占总执行周期数的百分比为19.74%;控制相关暂停数为14,占总执行周期数的百分比为8.92%;中断暂停时钟周期数Trapstalls为18,占总执行周期数的百分比为11.46%。实验二 流水线中的相关一、 实验目的1. 进一步了解DLX基本流水线各段的功能以及基本操作;2. 加深对数据相关、结构相关的理解,了解这两类相关对CPU性能的影响;3. 了解解决数据相关的方法,掌握如何使用定向技术来减少数据相关带来的暂停。二、 实验平台WinDLX模拟器三、 实验内容和步骤1.用WinDLX运行程序struc

9、ture_d.s(1)找出存在结构相关的指令对以及导致结构相关的部件。(2)记录由结构相关引起的暂停时钟周期数,计算暂停时钟周期数占总执行周期数的百分比。(3)论述结构相关对CPU性能的影响,讨论解决结构相关的方法。2. 用WinDLX运行程序data_d.s(1)在不采用定向技术的情况下(去掉Configuration菜单中Enable Forwarding选项前的勾选符),用WinDLX运行程序data_d.s。记录数据相关引起的暂停时钟周期数以及程序执行的总时钟周期数,计算暂停时钟周期数占总执行周期数的百分比。(2)在采用定向技术的情况下(勾选Enable Forwarding),用Wi

10、nDLX再次运行程序data_d.s。记录数据相关引起的暂停时钟周期数以及程序执行的总时钟周期数,计算暂停时钟周期数占总执行周期数的百分比。(3)根据上面记录的数据,计算采用定向技术后性能提高的倍数。实验过程:1、第一部分:(1)导入程序:(2) 单步执行:(3) 执行结果:(4) 源程序代码: LHI R2, (A16)&0xFFFF ADDUI R2, R2, A&0xFFFF LHI R3, (B16)&0xFFFF ADDUI R3, R3, B&0xFFFF ADDU R4, R0, R3 loop: LD F0, 0(R2) ;R2-F0 LD F4, 0(R3) ;R3-F4 A

11、DDD F0, F0, F4 ;把栽入的R2和R3做浮点运算 ADDD F2, F0, F2 ; - A stall is found (an example of how to answer your questions) ADDI R2, R2, #8 ADDI R3, R3, #8 SUB R5, R4, R2 BNEZ R5, loop TRAP #0 ; Exit 16) & 0xFFFF ;将A的值右移16位, 将A与十六进制FFFF相与 ADDUI R2, R2, A & 0xFFFF ; 先右移然后与运算 LHI R3, (B16)&0xFFFF ADDUI R3, R3, B

12、&0xFFFF ;栽入R2+A-R2, 栽入R3+B-R3 loop: LW R1, 0 (R2) ADD R1, R1, R3 SW 0(R2), R1 LW R5, 0 (R1) ADDI R5, R5, #10 ADDI R2, R2, #4 SUB R4, R3, R2 BNEZ R4, loop ;循环,先将R2-R1, R1+R3-R1, 存储R1 TRAP #0 ;也就是先将之前读入的R2与R3相加-R1 A: .word 0, 4, 8, 12, 16, 20, 24, 28, 32, 36 B: .word 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 ;定义好的

13、常量(3)在不采用定向技术的情况下(去掉Configuration菜单中Enable Forwarding选项前的勾选符),用WinDLX运行程序data_d.s。执行结果:结果分析:在不采用定向技术的情况下,运行程序。打开静态窗口,可以看到,总的周期数为202,总的暂停数为116,其中数据相关暂停数为104,占总执行周期数的百分比为51.48%;控制相关暂停数为9,占总执行周期数的百分比为4.46%;中断暂停时钟周期数Trapstalls为3,占总执行周期数的百分比为1.48%。(4)在采用定向技术的情况下(勾选Enable Forwarding),用WinDLX再次运行程序data_d.s。采用定向技术:执行结果:结果分析:运行程序。再次打开静态窗口,可以看到,总的周期数变为128,总的暂停数为42,其中数据相关暂停数为30,占总执行

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论