北邮计算机系统结构实验报告-实验一到五-WINDLX模拟器全解
更新时间:2023-11-15 22:03:01 阅读量: 教育文库 文档下载
- 北邮计算机系统结构期末推荐度:
- 相关推荐
北京邮电大学
实验报告
课程名称 计算机系统结构
计算机学院 2016111303班
王陈(2016110711)
目录
实验一 WINDLX模拟器安装及使用........................................................................... 3
·实验准备........................................................................... 错误!未定义书签。 ·实验环境........................................................................... 错误!未定义书签。 ·实验步骤........................................................................... 错误!未定义书签。 ·实验内容及要求............................................................... 错误!未定义书签。 ·实验过程........................................................................... 错误!未定义书签。 ·实验总结............................................................................................................. 8 实验二 指令流水线相关性分析................................................................................ 9
·实验目的............................................................................................................. 9 ·实验环境............................................................................................................. 9 ·实验步骤............................................................................................................. 9 ·实验过程........................................................................... 错误!未定义书签。 ·实验总结........................................................................................................... 16 实验三 DLX处理器程序设计 ................................................................................ 17
·实验目的........................................................................................................... 17 ·实验环境........................................................................... 错误!未定义书签。 ·实验步骤........................................................................... 错误!未定义书签。 ·实验过程........................................................................................................... 17
A. 向量加法代码及性能分析 ................................................................................. 17 B.双精度浮点加法求和代码及结果分析 ........................................................... 22 ·实验总结........................................................................................................... 26 实验四 代码优化...................................................................................................... 27
·实验目的........................................................................................................... 27 ·实验环境........................................................................... 错误!未定义书签。 ·实验原理........................................................................................................... 27 ·实验步骤........................................................................... 错误!未定义书签。 ·实验过程........................................................................................................... 27 ·实验总结+实习体会......................................................................................... 32 实验五 循环展开...................................................................................................... 32
·实验目的........................................................................................................... 32 ·实验环境........................................................................... 错误!未定义书签。 ·实验原理........................................................................................................... 32 ·实验步骤........................................................................... 错误!未定义书签。 ·实验过程........................................................................................................... 32
矩阵乘程序代码清单及注释说明 ......................................................................... 32 相关性分析结果 ......................................................................................................... 38 增加浮点运算部件对性能的影响 ......................................................................... 38 增加forward部件对性能的影响 ......................................................................... 38 转移指令在转移成功和转移不成功时候的流水线开销 ................................ 38 ·实验总结+实习体会+课程建议....................................................................... 38
2
实验一 WINDLX模拟器安装及使用
WinDLX模拟器的结构和功能说明
1.点击运行之后,会看到一个如下图所示的窗口。
它包括Register, Code, Pipeline, Clock Cycle Diagram, Statistics, Breakpoints。接下来详细介模拟器的结构及各个部件的功能。 2.Register窗口介绍
Rigister窗口中显示的是各个寄存器的名称及内容。如下图:
可以看到寄存器中以十六进制标识,从上图可以看出各个寄存器中的内容。
2.Code窗口介绍
在没有进行任何执行的时候,初次打开code窗口,即为下图所示
3
窗口现实的信息是各个存储器内同。第一列标识存储器的地址;第二列是机器代码,用16进制表示;第三列是汇编指令。
当我们点击上方的
,可以选择单步或多步执行(也可以使用快捷键
F7或F8)。若选择单步执行,每按一次F7,指令执行一次,可以看到,一次执行的为IF->ID->intEX->MEM->WB,没执行一次还有颜色的变化。颜色是用来标识指令处于哪个流水段的,如下图。
当然,我们也可以使用多步执行,按快捷键F8,选择5步流水,即可。
3.Pipeline窗口介绍
通过阅读WinDLX模拟器说明书可以知道,Pipeline窗口显示的是DLX处理器的内部结构。窗口用下图标识DLX五段流水。当然,如同Code窗口介绍讲述的那样,不同的颜色显示了指令处于哪段流水线。使用快捷键F7单步执行,可以明显的看出,不同时候流水段执行的不同指令。如下图。
4
图片反映的正式与Code中所处的时刻相同的指令流水。可以清晰看到不同流水段执行的是哪条指令。
4.Clock Cycle Diagram窗口
实验准备中我们已经知道,该窗口显示的是流水线的时空图。时空图反映的是不同时隙内的运行情况。如下图。
在我看来,时空图是最好理解的。因为它反映的就是流水段的并行程度。在这个DLX模拟器中,并不存在一些数据或者控制上的冲突问题。所以可以依靠上图很清晰的看到指令所处的不同流水段,及指令执行情况。该时空图同样也是和前面的Code等相对应。也可以通过快捷键F7来进一步执行指令,可以看到流水线时空图的扩展情况。
任意双击指令的一行,可以详细看到不同流水段的情况。如下图所示。
5
分支,如下图所示:
由上图可知,转移指令一共8条,成功转移2条(占25%),不成功为6条。所以,静态指令调度算法只能解决数据相关,条件转移结果与原来相比没有变化。即,若转移不成功,对流水线的执行无影响,流水线的吞吐率和效率没有降低;若转移成功,则要废弃预先读入的指令,重新从转移成功处读入指令,执行效率会下降。
·实验总结
本次试验中,主要遇见一个问题,就是在当初文件加载时没有成功,后来通过查询资料和自己的尝试,发现,在选择文件的顺序很关键,它决定了文件在存储器中出现的顺序。
本次实验,主要通过对于三中相关的观察,分析出现相关时的指令,分析浮点运算部件和forward部件对性能的影响,观察转移指令在转移成功和不成功时的流水线开销,这些实验一步一步,通过WinDLX形象生动的表示,使我在实践中更加深入的认识了流水线。
16
实验三 DLX处理器程序设计
·实验目的
学习使用DLX汇编语言编程,进一步分析相关现象
·实验过程
A. 向量加法代码及性能分析 首先给据题目要求,需要熟练掌握DLX编程语言,然后根据规范格式编写向量的代码。
1) 向量声明
VectorLength: .word 16 //声明向量长度
Vector1: .word 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 //声明两个向量 Vector1和Vector2
Vector2: .word 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 Result: .space 4 //声明一个空间来存放打印的数据 Loop: //循环体
ld f10,Vector1(r2)
ld f12,Vector2(r2) //读入两个提前声明的向量 add f4,f2,f0 //加法运算 trap 5 //系统中断
2) 源代码
17
运行结果分析
当运行到如下图所示的时候,则表示运行结束。
运行结果为
接下来我们可以查看Statistics可以看到运行结果的数据显示,如下图所示。
18
1)程序相关性分析结果
数据相关 由上图的可以看出,该程序产生了11.31%的数据相关。所以当对当前指令的操作数寄存器进行操作(EX)的时候,前几条指令的运算结 果还未写回(WB)结果寄存器,由此产生数据相关。
结构相关
由于程序只简单的做了一次加法,所以没有结构相关产生。 控制相关
查看pipeline中可以看到,当执行到如下情况时,发生了控制相关。
由Statistics中的可以看出,其控制相关发生了5.3%。分析可知,由于系统按照预测成功来执行指令,所以执行bnez后马上将其下一条指令trap 读进来。
2)浮点运算部件带来的影响
当我们通过设置浮点部件的个数,并将程序运行完毕,查看Statistics中的数据作对比。如下图所示。
19
将浮点加法器由1个增加为4个后(左图为4个),可以由上图看出,程序执行的性能未得到提升。 分析原因我们知道,由于该程序为产生浮点加法器的结构相关,所以增加浮点加法器的数量对程序执行的性能提升没有帮助。
3)forward部件的影响
20
由上图的对比可以看出,增加forwarding技术后,流水线的加速比为: 474/352=1.347
流水线性能有明显改善。
4)转移指令在转移成功和转移不成功时候的流水线开销。
由Conditional Branches的数据可以看出,该转移指令“not taken”的情况占绝大多数(95.24%)。在一共的21中,发生了仅为1次,所以预测顺序取对流水线的性能是有利的。转移不成功时:顺序预取的下条指令可以直接在流水线中执行,保证流水线不断流;转移成功时:顺序预取的下条指令作废,需要转到转移地址处重新取指,流水线发生了断流现象。
·实验总结
在实验中,我主要遇到的问题是WinDLX所加载的.s文件不要出现中文格式,不然会导致加载失败(开始好几次为了方便我直接起名为“双精度浮点向量加.s”却怎么样也导入不成功);在编写双精度浮点数运算时有些对于指令掌握不熟练,
26
并且双精度double型运算指令,其所有的运算指令名称上面都要加上“d”才ok。而如果是单精度的,则需要添加字母“f”;其次,对于浮点数的相关设置,包括状态寄存器和浮点寄存器都需要在实验之前查资料了解透彻,不然在试验中就会有语法错误。
通过此次实验我对实验二所进行的数据相关、控制相关、结构相关的性能分析做了更深入的了解,以及对于功能部件对流水线的影响,forwarding技术对流水线的影响,还有就是静态指令调度等。
通过自行编写向量矢量算法,在代码中初始化两个向量,按照分量顺序进行运算。当然,如果想要改变源向量,直接处理代码中的相关数据即可。
总之,该实验主要着重对浮点运算以及对于流水线的相关影响及性能分析,使我受益匪浅。
实验四 代码优化
·实验目的
学习简单编译优化方法,观察采用编译优化方法所带来的性能的提高。
·实验原理
采用静态调度方法重排指令序列,减少相关,优化程序
·实验过程
选择上一个实验的向量加法运算作为优化对象。优化后的代码如下图所示。
27
当如下图所示的时候证明已经执行完毕。
执行完毕后,我们点击Statistics查看运行结果数据分析。
28
1)程序相关性分析结果 优化之后其中断数据显示为:
优化前为:
29
由上述两图对比可以看出,
数据相关:其RAW相关由优化前的34.12%减少为20.57%,性能改善很多; 结构相关没有发生改变;
控制相关:由原来的3.94%变为4.75%,没有改善。
因此,可以看出,我所进行的代码优化对性能方面改善并不是很强烈,主要影响还是在数据相关方面。
2)增加浮点运算部件对性能的影响。
上图左图为4个浮点部件执行结果,右图为原始默认1个浮点部件执行结果。由此可以看出,其部件个数对统计结果并无
影响。
原因为该运算过程中不存在结构相关,因此并行度没有增加,程序影响不大,部件增加对于系统的性能并没有改善。
30
正在阅读:
北邮计算机系统结构实验报告-实验一到五-WINDLX模拟器全解11-15
第03章 数据的输入和输出07-23
【现货白银】跌13美元测1180支撑,美元走强削弱黄金保值魅力08-05
《短文两篇》 - 模板10-10
微元法在解题中的应用 - -物理10-20
阆中市人民政府门户网站栏目内容保障方案08-21
2016 - 2017学年第一学期人教版三年级语文上册教学计划04-06
2007-2013全国计算机二级C++等级考试真题及答案06-21
食堂利润和盈亏分析月报表08-25
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 实验
- 北邮
- 模拟器
- 结构
- 计算机
- 报告
- WINDLX
- 系统
- 市场调查报告及买方、卖方市场调查问卷
- 设计部图纸管理细则
- 简洁面试邀请函模板
- 四川农大生理每章习题
- 《步步高》2014高考语文(苏教版)大一轮 第一章高频考点:语言文字运用《图文转换》
- 2016-2021年裤子行业深度调查及发展前景研究报告
- 清科2016年4月中国创业投资暨私募股权投资统计报告
- 建筑工程定额预算
- 2011年上学期B卷参考答案
- 2012无机习题-new
- 高职《食品理化检验》课程项目化教学特色研究-教育文档
- 色谱法中的定量分析
- 九年级第二次中考模拟考试英语试卷分析
- 2018年度全国初中应用物理竞赛试卷 - 图文
- 托福备考:TPO29综合写作文本与解析
- 徐州市2018年初中学业水平考试解析
- 三标一体化体系考试参考答案
- VIE结构相关法律风险分析
- 《审计学》复习提纲(三)综合题
- 08清单综合解释续;2013.6.20