




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、-. z.实验报告学院:计算机学院课程名称:计算机系统构造实验名称: WINDL*模拟器实验班级:*:*:实验一 WINDL*模拟器安装及使用略实验二指令流水线相关性分析实验类别验证实验实验目的通过使用WINDL*模拟器,对程序中的三种相关现象进展观察,并对使用专用通路,增加运算部件等技术对性能的影响进展考察,加深对流水线和RISC处理器的特点的理解。实验环境Windows *P操作系统WinDL*模拟器实验原理指令流水线中主要有构造相关、数据相关、控制相关。相关影响流水线性能。数据相关定义:原有先后顺序的两条指令I1,I2)在对共享变量位置进展读、写时,指令流水线中实际完成的读、写顺序与原有
2、顺序不一致,导致流水线输出错误。三类数据相关:写读(WR)相关读写(RW)相关写写(WW)相关解决方法技术:1. 使*些流水线指令延迟、停顿一或多个周期。2.双端口存储器:如果指令和数据放在同一个存储器。3.设置两个存储器:一个数据存储,一个为指令存储器。4.软件优化编译:通过指令重新排序,消除数据相关。5.定向技术:又称旁路技术或专用通路技术,是使后续指令提前得到前指令的运算结果(适合ALU类指令2构造相关定义:如果*指令在流水线重叠执行过程中,硬件资源满足不了指令重叠执行的要求,会产生资源冲突或竞争,称为流水线构造相关解决方法技术:1. 延迟技术:使*些指令延迟、停顿一或多个时钟周期2.
3、双端口存储器:允许同时读两个数据或指令3. 设置双存储器哈弗构造:一个数据存储,一个指令存储。 4软件优化编译:通过指令重新排序消除构造相关。3控制相关定义:控制相关是指因程序执行转移类指令而引起的冲突相关。包括无条件转移、条件转移、子程序调用、中断等,它们属于分支指令,执行中可能改变程序方向,造成流水线断流。解决方法技术:静态分支技术静态转移预测技术(猜想法) ;延迟转移;提前形成条件码,生成转移目标地址;改良循环程序;动态分支预测技术转移历史表BHT;转移目标缓冲栈BTB;转移目标指令缓冲栈BTIB;实验步骤1观察程序中出现的数据/控制/构造相关。指出程序中出现上述现象的指令组合。2考察增
4、加浮点运算部件对性能的影响。3考察增加forward部件对性能的影响。4观察转移指令在转移成功和转移不成功时候的流水线开销。注意:除2以外,浮点加、乘、除部件都只有一个;本问题中所有浮点运算部件的延时都请设定为4个周期。实验过程在开场模拟之前,将fact.s和input.s加载至WinDL*中。加载完后点击Code后可以看到如下列图所示。证明加载成功,即可进展以下实验。1观察程序中出现的数据/控制/构造相关。指出程序中出现上述现象的指令组合。数据相关如下图lbu r3,00(r2)要在WB周期写回r3中的数据;而下一条指令seqi r5,r3,0a要在intE*周期中读取r3中的数据。上述过程
5、发生了WR冲突,即写读相关。为了防止此类冲突,seq r5,r4,0a的intE*指令延迟了一个周期进展。则发生数据相关的指令为1.2控制相关可知第0*00000130条指令jfact.Loop为循环指令,指令在E*时刻才能判别指令是否发生转移,此时发生了控制相关。如下所示,此时指令跳转成功,故顺序取出的指令必须中断,并且转向取出转移到的指令。jfact.Loop在E*时发现跳转成功,则在E*阶段马上完毕指令顺序取出的指令sd PrintfValue(r0),f0,转而执行led f0/4指令的取指阶段ID。由于此控制相关使得流水线断流一个时钟周期。1.3 构造相关上图说明了addi r2,r
6、2,01的详细信息。该指令与它前一条指令add r1,r1,r3发生了构造相关。并且由于此处的冲突,需要暂停2个周期。在ID段暂停后,则开场进图intE*段。所以这条指令addi r2,r2,01你不能进入ID流水段,译码局部占用,发生了构造相关。该局部的指令为:2考察增加浮点运算部件对性能的影响。取N=12设置浮点运算部件的配置。由于实验手册上面要求Delay=4,所以我们将Delay这一栏改成4,而Count可以任意,为了比照,我们第一次浮点运算部件取全部为2,第二次浮点运算部件取全部为4。分别运行50个cycles后,数据比照方下:比拟各个数据,发现没有变化。无论怎么增加浮点运算部件,统
7、计结果都一样。原因在于此程序中浮点计算指令没有重叠,所以并行度没有增加,性能没有提高。所以,浮点运算部件的增减对效率无影响。3考察增加forward部件对性能的影响。为了比照有无forward部件的性能。需要在勾选enable forwarding,以及不勾选enable configuration来看性能数据的比照。不使用forward部件:使用forward部件:从上面的数据我们可以看出增加forward部件后,总的周期数由200减少至158,RAW由原来占总时钟周期的32.5%减少至16.46%,RAW个数由原来的65减少至26。增加forward部件使得控制相关比例增加了。所以,使用f
8、orward部件后,总的时钟周期减少,数据相关减少,流水线的性能得到一定的改善。4观察转移指令在转移成功和转移不成功时候的流水线开销。可知条件分支指令总共有15条,其中有2条转移成功13.33%,有13条转移不成功。转移不成功的指令就顺序执行,故不会影响程序的运行,不会导致流水线断流;而转移成功的指令会导致流水线的断流,要废弃预先读入的指令,重新从转移成功处读入指令,执行效率会下降。经分析可知,两次断流都会导致一个周期的流水线断流。实验总结1.在流水线中,硬件资源满足不了指令重叠执行的要求,会产生资源冲突或竞争,称为流水线构造相关,而解决流水线相关的途径之一是设置双存储器哈弗构造:一个数据存储
9、,一个指令存储。实际上,本身实现DL*指令的硬件设备已经考虑到了这一点,本身已有两个存储器,一个为数据存储器,一个为指令存储器。故本身就解决了局部构造相关问题。并且fact.s中的指令并不会导致其他资源冲突,故无法表达资源相关。试验中多参加浮点数部件,运行效率等没有变化。通过观察指令的运行情况,因为不会发生构造相关硬件资源冲突,在流水线中的部件线性使用,故参加部件也不会对结果有直接的影响。2.本次实验,主要通过对于三种相关的观察,分析出现相关时的指令,分析浮点运算部件和forward部件对性能的影响,观察转移指令在转移成功和不成功时的流水线开销,这些实验一步一步,通过WinDL*形象生动的表示
10、,使我在实践中更加深入的认识了流水线。 3. 通过本次实验,我熟悉了指令执行的每个阶段的任务,对时空图的理解也更深了一步,对流水线中的三种相关性问题有了认识,同时通过此实验学习到了解决这些相关问题的方法,从而对课上所学的知识有了更系统的认识。实验三 DL*处理器程序设计实验类别综合型实验实验目的学习使用DL*汇编语言编程,进一步分析相关现象实验环境Windows *P操作系统DL*汇编语言环境实验原理掌握向量运算算法和编程方法。实验步骤1熟悉DL*汇编语言。2编写两双精度浮点一维向量的加法运算程序。3对此程序完成上面实验二中1)、2)、3)、4)方面的分析。六实验过程代码清单和注释说明.dat
11、a VectorLength: .word 16 Vector1: .word 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 Vector2: .word 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 ; 声明向量长度以及声明向量 1、2 Printf1: .asciiz Vector = Printf2: .asciiz %f .align 2 PrintPrompt: .word Printf1 PrintPar: .word Printf2 Result: .space 4 ; 存放打印数据的空间申请.te*t main:
12、addi r14,r0,PrintPrompt trap 5 lw r20,VectorLength addi r2,r0,0 Loop: ld f10,Vector1(r2) ld f12,Vector2(r2) ; 循环体中读入向量cvti2d f0,f10 cvti2d f2,f12 addd f4,f2,f0 ; 加法运算Finish:;* Finish,write result into stdout sd Result,f4 addi r14,r0,PrintPar trap 5 ; 系统中断,输出结果addi r2,r2,4 subi r20,r20,1 bnez r20,Loo
13、p ;End trap 0运行结果2观察程序中出现的数据/控制/构造相关。指出程序中出现上述现象的指令组合。无构造相关,有控制相关15次和数据相关64次。数据相关:以当对当前指令的操作数存放器进展操作E*的时候,前几条指令的运算结果还未写回WB结果存放器,由此产生数据相关。构造相关:由于只做了一次加法,所以没有产生构造相关第一条命令在WB段,第二条命令在intE*段,第四条命令在IF段。而第三条命令指示为aborted。此处发生了控制相关。3考察增加浮点运算部件对性能的影响。设置浮点运算部件的配置。由于实验手册上面要求Delay=4,所以我们将Delay这一栏改成4,而Count可以任意,为了
14、比照,我们第一次浮点运算部件取全部为2,第二次浮点运算部件取全部为4。数据比照方下:比拟各个数据,发现没有变化。无论怎么增加浮点运算部件,统计结果都一样。原因在于此程序中浮点计算指令没有重叠,所以并行度没有增加,性能没有提高。所以,浮点运算部件的增减对效率无影响。4考察增加forward部件对性能的影响。为了比照有无forward部件的性能。需要在勾选enable forwarding,以及不勾选enable configuration来看性能数据的比照。不使用forward部件:使用forward部件:从上面的数据我们可以看出增加forward部件后,总的周期数由413减少至315,RAW由
15、原来占总时钟周期的39.22%减少至20.32%,RAW个数由原来的162减少至64。增加forward部件使得控制相关比例增加了。所以,使用forward部件后,总的时钟周期减少,数据相关减少,流水线的性能得到一定的改善。5观察转移指令在转移成功和转移不成功时候的流水线开销。可知条件分支指令总共有16条,其中有15条转移成功93.75%,有1条转移不成功。转移不成功的指令就顺序执行,故不会影响程序的运行,不会导致流水线断流;而转移成功的指令会导致流水线的断流,要废弃预先读入的指令,重新从转移成功处读入指令,执行效率会下降。经分析可知,两次断流都会导致一个周期的流水线断流。实验总结通过此次实验
16、我对实验二所进展的数据相关、控制相关、构造相关的性能分析做了更深入的了解,以及对于功能部件对流水线的影响,forwarding技术对流水线的影响,还有就是静态指令调度等。通过自行编写向量矢量算法,在代码中初始化两个向量,按照分量顺序进展运算。当然,如果想要改变源向量,直接处理代码中的相关数据即可。总之,该实验主要着重对浮点运算以及对于流水线的相关影响及性能分析,使我受益匪浅。实验四代码优化实验类别综合实验实验目的学习简单编译优化方法,观察采用编译优化方法所带来的性能的提高。实验环境Windows *P操作系统DL*汇编语言环境实验原理采用静态调度方法重排指令序列,减少相关,优化程序实验步骤1使
17、用静态调度方法手工优化实验2或实验3的代码2对优化程序,重复实验二中1、2、3、4工作。六实验过程对实验三中的两双精度浮点一维向量的加法运算程序代码进展优化,如下所示:.dataVectorLength: .word 16 Vector1: .word 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 Vector2: .word 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 Printf1: .asciiz Vector = Printf2: .asciiz %f .align 2 PrintPrompt: .word Printf
18、1 PrintPar: .word Printf2 Result: .space 4 .te*t main: addi r14,r0,PrintPrompt trap 5 addi r2,r0,0 lw r20,VectorLength Loop: ld f10,Vector1(r2) ld f12,Vector2(r2) addi r2,r2,4 cvti2d f0,f10 cvti2d f2,f12 subi r20,r20,1 addd f4,f2,f0 ;此处进展优化,之前插入一条指令,防止f2的RAW冲突sd Result,f4 addi r14,r0,PrintPar trap 5 ;addi r2,r2,4 ;subi r20,r20,1 bnez r20,Loop trap 0 运行结果一样程序相性分析优化前优化后由上述两图比照可以看出,数据相关:其RAW相关由优化前的20.32%减少为16.05%,性能改善很多;构造相关没有发生改变;控制相关:由原来的4.76%变为5.02%,没有改善。因此,可以看出,我所进展的代码优化对性能方面改善并不是很强烈,主要影响还是在数据相关方面。考察增加浮点运算部件对性能的影响。由此可以看出,其浮点运算部件个数对统计结果并无影响。原因为该运算过程中不存在构造相关,因此并行度没有增加,程序影响不大,部件增加对于系统的性能并没有
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 战略合作合同协议书(经典)
- 租赁合同变更及转让协议模板
- 建筑承包合同协议书格式
- 张伟房地产开发合同纠纷案件解析
- 2024年人教版九年级中考英语现在进行时教学设计
- 合伙创业合同书
- 加盟合作合同协议
- 10《青山处处埋忠骨》教学设计-2023-2024学年统编版语文五年级下册
- 供水改造工程合同范本-施工专用
- 度销售合同模板
- 厨房菜品出品标准培训
- 【基于单片机的超市自动存储柜的设计与实现(论文)8700字】
- 2024年银行考试-商业银行考试近5年真题附答案
- 招聘笔试题与参考答案(某大型央企)2024年
- 全国装配式建筑职业技能竞赛考试题库
- Nikon尼康D3100中文说明书
- 人教版四年级上册数学期末试卷(6套)
- FZ∕T 73037-2019 针织运动袜行业标准
- 16J914-1 公用建筑卫生间
- 春节的那些事作文6篇
- (完整版)机房安全检查表
评论
0/150
提交评论