计算机系统结构实验报告讲解.doc

上传人:小飞机 文档编号:4089770 上传时间:2023-04-03 格式:DOC 页数:22 大小:892KB
返回 下载 相关 举报
计算机系统结构实验报告讲解.doc_第1页
第1页 / 共22页
计算机系统结构实验报告讲解.doc_第2页
第2页 / 共22页
计算机系统结构实验报告讲解.doc_第3页
第3页 / 共22页
计算机系统结构实验报告讲解.doc_第4页
第4页 / 共22页
计算机系统结构实验报告讲解.doc_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《计算机系统结构实验报告讲解.doc》由会员分享,可在线阅读,更多相关《计算机系统结构实验报告讲解.doc(22页珍藏版)》请在三一办公上搜索。

1、计算机系统结构实验报告 3.1流水线中的相关一、实验目的 1. 掌握WinDLX模拟器的操作和使用,熟悉DLX指令集结构及其特点; 2. 加深对计算机流水线基本概念的理解; 3. 进一步了解DLX基本流水线各段的功能以及基本操作; 4. 加深对数据相关、结构相关的理解,了解这两类相关对CPU性能的影响; 5. 了解解决数据相关的方法,掌握如何使用定向技术来减少数据相关带来的暂停。 二、实验平台WinDLX模拟器。三、实验内容、步骤及实验结果 1.用WinDLX模拟器执行下列三个程序: 􀁺 求阶乘程序fact.s 􀁺 求最大公倍数程序gcm.s ⣶

2、98; 求素数程序prim.s 分别以步进、连续、设置断点的方式运行程序,观察程序在流水线中的执行情况,观察CPU中寄存器和存储器的内容。熟练掌握WinDLX的操作和使用。 结果总结:三种方式:步进的方式是按快捷键F7或者选择菜单栏Execute中的Single Cycle;连续的方式是按快捷键F5或者选择Execute中的Run;设置断点是通过选择window菜单栏中的code,然后在菜单栏中多出一项code项,选中你想要插入的指令,在多出来的code项中找到set breakpoint,即可插入断点,然后按F5执行即可。以fact.s为例Pipeline图指出了每个功能段所进行的具体指令,

3、点击指令还可以看到指令的具体相关的其他方面的内容。时空图更加直观的形式显示出了在某个时间周期某个功能段所执行的具体的指令。Register图指出了各个寄存器和存储器的值,如执行完了第一条加法指令之后,R1=OX00001000。Statistics图指出了指令的相关分析数据,例如,执行了6个cycles,4条指令在流水线中等相关的总结信息。执行结果图gcm.s、prim.s类似,所以只给出运行的结果图 gcm.s结果图Prim.s结果图2. 用WinDLX运行程序structure_d.s,通过模拟找出存在资源相关的指令对以及导致资源相关的部件;记录由资源相关引起的暂停时钟周期数,计算暂停时钟

4、周期数占总执行周期数的百分比;论述资源相关对CPU性能的影响,讨论解决资源相关的方法。结果图资源相关的指令:addd f0,f0,f4addd f2,f0,f2(发生先写后读的数据相关导致消除了资源相关)由图可知是因为只有一个faddEX的运算部件,而它需要两个时钟周期,当第一条addd指令执行EX段时,第二条指令势必要等一个周期等faddEX部件空闲了才能够使用。但是,同时由于这两条指令存在先写后读数据相关,暂停一个周期之后没有了资源相关单条指令的详细资源冲突图因为Statistics图中的分析数据没有看见structural stall,但是根据图知道这个存在addd f2,f0,f2时的

5、资源冲突,大概循环了6次,总共时钟周期是139个,所以资源相关引起的暂停的时钟周期的个数是6个,暂停时钟周期数占总执行周期数的百分比为6/139 = 4.3%Statistics数据分析图资源相关降低CPU性能,并行运算的速度降低,解决资源相关的方法有停顿几个时钟周期法(针对访存冲突和设备资源冲突(轮流单个使用)或者是增加硬件设备(解决设备资源冲突)。3. 在不采用定向技术的情况下(去掉Configuration菜单中Enable Forwarding选项前的勾选符),用WinDLX运行程序data_d.s。记录数据相关引起的暂停时钟周期数以及程序执行的总时钟周期数,计算暂停时钟周期数占总执行

6、周期数的百分比。 在采用定向技术的情况下(勾选Enable Forwarding),用WinDLX再次运行程序data_d.s。重复上述3中的工作,并计算采用定向技术后性能提高的倍数。1、不定向技术:总时钟周期=202 数据相关引起的暂停时钟周期=104暂停时钟周期数占总执行周期数的百分比=51.48%2、定向技术:总时钟周期=128 数据相关引起的暂停时钟周期=30暂停时钟周期数占总执行周期数的百分比=23.44%定向技术的加速比 = 202/128 = 1.578四、心得体会通过使用WinDlX对指令模拟与分析,我们对流水线的执行过程更加熟悉,也对执行时出现的问题,如资源相关,数据相关等产

7、生原因有了清晰的认识,进一步加深了使我们对流水线的理解。3.2循环展开及指令调度一、实验目的1. 加深对循环级并行性、指令调度技术、循环展开技术以及寄存器换名技术的理解; 2. 熟悉用指令调度技术来解决流水线中的数据相关的方法; 3. 了解循环展开、指令调度等技术对CPU性能的改进。 二、实验平台 WinDLX模拟器。三、实验内容、步骤及实验结果1用指令调度技术解决流水线中的结构相关与数据相关(1)用DLX汇编语言编写代码文件*.s,程序中应包括数据相关与结构相关(假设:加法乘法除法部件各有2个,延迟时间都是3个时钟周期) (2)通过Configuration菜单中的“Floating poi

8、nt stages” 选项,把加法乘法除法部件的个数设置为2个,把延迟都设置为3个时钟周期; (3)用WinDLX运行程序。记录程序执行过程中各种相关发生的次数、发生相关的指令组合,以及程序执行的总时钟周期数; (4)采用指令调度技术对程序进行指令调度,消除相关; (5)用WinDLX运行调度后的程序,观察程序在流水线中的执行情况,记录程序执行的总时钟周期数; (6)根据记录结果,比较调度前和调度后的性能。论述指令调度对于提高CPU性能的意义。1) 代 码:divf f2,f5,f6divf f1,f2,f6divf f3,f1,f5divf f0,f4,f7addf f14,f0,f6add

9、f f15,f5,f7multf f20,f4,f6multf f21,f5,f72)设置运算部件个数以及运算时钟周期数 Pipeline图以下为出现的数据相关先写后读相关由于只有两个除法部件,所以出现了功能部件的冲突。总的执行周期是38指令调度后代码:将无关指令放在一起执行,相关指令分开尽量避免数据相关divf f2,f5,f6multf f20,f4,f6multf f21,f5,f7divf f1,f2,f6addf f15,f5,f7divf f3,f1,f5divf f0,f4,f7addf f14,f0,f6 Pipeline图Statistics图总执行时钟周期为35个。(6)指

10、令调度后,数据相关减少了,总时钟周期数减少了,效能提高了。调度前的时钟周期数为38,调度后的时钟周期数减少为35,加速比 = 38/35= 1.082. 用循环展开、寄存器换名以及指令调度提高性能(1)用DLX汇编语言编写代码文件*.s,程序中包含一个循环次数为4的整数倍的简单循环; (2)用WinDLX运行该程序。记录执行过程中各种相关发生的次数以及程序执行的总时钟周期数; (3)将循环展开3次,将4个循环体组成的代码代替原来的循环体,并对程序做相应的修改。然后对新的循环体进行寄存器换名和指令调度; (4)用WinDLX运行修改后的程序,记录执行过程中各种相关发生的次数以及程序执行的总时钟周

11、期数; (5)根据记录结果,比较循环展开、指令调度前后的性能。带循环指令代码:求四个1相加的和,结果存在r2中 .text.globalmainmain:addi r1,r0,#4 addi r2,r0,#0Loop:sgt r3,r1,r0 bnez r3,Sub1 trap 0Sub1: addi r2,r2,#1 subi r1,r1,#1 j Loop结果:总时钟周期是42个,5 raw stalls,循环了4次,结果r2 = 4循环展开:代码: .text.globalmainmain:addi r1,r0,#4 addi r2,r0,#0 addi r2,r2,#1 subi r1

12、,r1,#1 addi r2,r2,#1 subi r1,r1,#1 addi r2,r2,#1 subi r1,r1,#1 addi r2,r2,#1 subi r1,r1,#1 trap 0结果:总时钟周期是15个,0 raw stalls,执行了4次,结果r2 = 4原因对比:是因为LOOP指令执行完后会有一个nop指令的延迟。四、实验总结a) 指令调度技术可以明显的优化指令执行的效率,通过指令调度使得功能部件被尽可能的充分使用,从而进一步加强指令执行的效率;b) 循环在执行时会出现不同循环次数的执行过程中出现相关,导致数量增加,通过寄存器换名等方法,使得这种相关性数量下降。3.3 Ca

13、che性能分析一、实验目的 1 加深对Cache的基本概念、基本组织结构以及基本工作原理的理解; 2 了解Cache的容量、相联度、块大小对Cache性能的影响; 3 掌握降低Cache失效率的各种方法,以及这些方法对Cache性能提高的好处; 4 理解Cache失效的产生原因以及Cache的三种失效; 5 理解LRU与随机法的基本思想,及它们对Cache性能的影响; 二、实验平台SimpleScalar模拟器。三、实验内容及步骤1在基本配置情况下运行程序(请指明所选的测试程序),统计Cache总失效次数、三种不同种类的失效次数; 配置好了环境之后,用hello.c生成的a.out文件来进行模

14、拟演示。由图可知:Cache的总失效次数为458,容量失效和冲突失效都发生了替换总共为202,那么强制性冲突就为256。2改变Cache容量(*2,*4,*8,*64),运行程序(指明所选的测试程序),统计各种失效的次数,并分析Cache容量对Cache性能的影响; 测试程序为test-math。Cache参数设定举例:-cache:dl1 dl1:2:32:4:r 第一个参数为集合数,第二个参数为块的大小,第三个参数为相联度,最后一个参数为策略。改变集合数,设定块大小为32B,相联度为4路,采取LRU策略,来考虑容量对cache性能的影响。*2:设定容量为2*32*4B时,结果如下: *4:

15、设定容量为4*32*4B时,结果如下:*8:设定容量为8*32*4B时,结果如下:*64:设定容量为64*32*4B时,结果如下:从上面的数据中提取出有用的数据信息,制作下面的表。容量大小总失效率总失效数容量失效和冲突失效数强制性失效数*20.1264726572578*40.07444277426116*80.03802180215426*640.0100575319256结论:随着cache容量的增大,总失效率减小,总失效数也减少,容量失效和冲突失效数也减小,但是强制性失效数反而升高。3改变Cache的相联度(1路,2路,4路,8路,64路),运行程序(指明所选的测试程序),统计各种失效的

16、次数,并分析相联度对Cache性能的影响;测试程序为test-printf.参数dl1:2:32:1(2,4,8,64):l,固定其他的参数,只改变相联度的参数,观察相联度对cache性能的影响。1路:2路:4路8路:64路:相联度总失效率总失效数容量失效和冲突失效数强制性失效数1路0.420222328422328222路0.256313621613621244路0.1011537445373688路0.046224527245111664路0.0011603475128 结论:随着相联度的增大,总失效率减小,但减小的幅度减小,总失效数也减少,容量失效和冲突失效数也减小,但是强制性失效数反而

17、升高。4 改变Cache块大小(*2,*4,*8,*64),运行程序(指明所选的测试程序),统计各种失效的次数,并分析Cache块大小对Cache性能的影响;测试程序:test-fmath参数:dl1:64:8(16,32,64):1:l(块大小8B)(块大小16B)(块大小32B)(块大小64B)Cache块大小总失效率总失效数容量失效和冲突失效数强制性失效数*2(8B)0.108918121556256*4(16B)0.0567944688256*8(32B)0.0300499243256*16(64B)0.015626029256结论:随着相联度的增大,总失效率减小,总失效数也减少,容量

18、失效和冲突失效数也减小,但是强制性失效数反而升高但到了一定程度保持稳定。5分别采用LRU与随机法,在不同的Cache容量、不同的相联度下,运行程序(指明所选的测试程序)统计Cache总失效次数,计算失效率。分析不同的替换算法对Cache性能的影响。测试程序: test-lswlrLRU:参数dl1:8:8:2:l 随机法:参数dl1:32:32:1:rLRU:参数dl1:16:8:2:l随机法:参数dl1:16:8:2:r情况总失效率总失效数容量失效和冲突失效数强制性失效数LRU8*8*20.3919185318476随机法8*8*20.39761880186416LRU16*8*20.37541775174332随机法32*32*20.37991796176432结论:相对而言还是LRU较好,只是当容量变大,相联度变大时,这种差距会缩小。最后的结论:对于cache来说,容量越大、块大小越大、相联度越大以及采用LRU策略的话,cache性能越好,命中率越高。实验总结:通过这两次实验,利用windlx工具了解到了流水线中的数据相关和资源相关,以及相关的解决技术:定向技术或者指令调度技术。利用simplescalar工具了解到了cache容量、相联度、块大小策略对cache性能的影响。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号