系统结构实验Word格式.docx
- 文档编号:22595740
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:41
- 大小:1.29MB
系统结构实验Word格式.docx
《系统结构实验Word格式.docx》由会员分享,可在线阅读,更多相关《系统结构实验Word格式.docx(41页珍藏版)》请在冰豆网上搜索。
4.1用WinDLX模拟器执行下列三个程序
4.1.1用WinDLX模拟器执行阶乘程序fact.s的结果如下所示
●步进方式运行程序结果如下所示
图1以步进方式进行的过程
●连续方式运行程序结果如下所示
图2连续方式,程序无间断的进行
●设置断点方式运行程序结果如下所示
图3通过设置不同的断点来控制程序的执行
4.1.2用WinDLX模拟器执行阶乘程序gcm.s的结果如下所示
图4以步进方式进行的过程,经过有限的步骤将程序的结果运行出来
图5连续方式,程序无间断的进行,直到程序结束
图6通过设置不同的断点来控制程序的执行
4.1.3用WinDLX模拟器执行阶乘程序prim.s的结果如下所示
图7以步进方式进行的过程
图8连续方式,程序无间断的进行,直到程序结束
图9通过设置不同的断点来控制程序的执行
4.2用WinDLX模拟运行器程序structure_d.s,进行相关实验
图10structure_d.s程序运行的流水线图
●资源相关的指令对
(1)
ADDDF0,F0,F4
ADDDF2,F0,F2;
导致资源相关的部件:
ALU;
指令ADDDF2,F0,F2在译码阶段ID停滞1周期
(2)
ADDDF2,F0,F2
ADDIR2,R2,#8
指令ADDIR2,R2,#8在执行阶段intEX停滞1周期
(3)
ADDDF2,F0,F2
ADDIR2,R2,#8;
(mem部件相关)
ADDIR3,R3,#8;
SUBR5,R4,R2;
●由资源相关引起的暂停时钟周期数
图11程序执行总的周期数以及延迟的周期数
由资源相关引起的暂停周期数为:
30
总执行周期数为:
139
暂停周期数占总执行周期数的百分比:
30/139=21.58%
●分析及解决办法
分析:
资源相关使相关指令在流水线上停滞,降低了执行效率,使cpu的性能下降。
解决方法:
在合理的指令调度范围内,尽量避免执行重复的指令。
尽量避免同一寄存器的频繁使用,若无法避免,则使用寄存器换名的方法。
4.3比较定向与不定向技术,用WinDLX模拟运行器程序data_d.s,进行相关实验
4.3.1采用不定向技术,用WinDLX模拟运行器程序data_d.s,进行相关实验
图12采用非定向技术运行的结果图
由数据相关引起的暂停时钟周期数为:
104
202
104/202=51.48%
4.3.2采用定向技术,用WinDLX模拟运行器程序data_d.s,进行相关实验
重复上述3中的工作,并计算采用定向技术后性能提高的倍数。
图13定向技术相关结果的截图
128
30/128=23.44%
总结:
采用定向技术性能提高的倍数:
202/128=1.58倍
5、总结与体会
这次实验让我很好的学习了windlx的用法,对其中的各种操作以及性质有了更好的认识与应用,为之后的学习以及发展带来了极大的便利。
同个对几个.s程序的运行,让我对流水线的过程有了更加清楚的认识,将课堂上学到的理论知识运用到了实际中去。
同时,对数据相关、资源相关等有了更好的认识与了解,对程序的简化运行有了更加清楚的认识,为以后清楚的快捷的运行提供了思想的基础。
最后,对定向技术以及其性能有了更加清楚的了解,充分认识了定向技术的优点,在以后的开发应用中,要多采用定向技术,可以减少程序的运行周期,提高程序的运行效率。
实验二循环展开及指令调度
1.加深对循环级并行性、指令调度技术、循环展开技术以及寄存器换名技术的理解;
2.熟悉用指令调度技术来解决流水线中的数据相关的方法;
3.了解循环展开、指令调度等技术对CPU性能的改进。
1.用指令调度技术解决流水线中的结构相关与数据相关
(1)用DLX汇编语言编写代码文件*.s,程序中应包括数据相关与结构相关(假设:
加
法﹑乘法﹑除法部件各有2个,延迟时间都是3个时钟周期)
(2)通过Configuration菜单中的“Floatingpointstages”选项,把加法﹑乘法﹑除法
部件的个数设置为2个,把延迟都设置为3个时钟周期;
(3)用WinDLX运行程序。
记录程序执行过程中各种相关发生的次数、发生相关的指
令组合,以及程序执行的总时钟周期数;
(4)采用指令调度技术对程序进行指令调度,消除相关;
(5)用WinDLX运行调度后的程序,观察程序在流水线中的执行情况,记录程序执行
的总时钟周期数;
(6)根据记录结果,比较调度前和调度后的性能。
论述指令调度对于提高CPU性能的
意义。
2.用循环展开、寄存器换名以及指令调度提高性能
(1)用DLX汇编语言编写代码文件*.s,程序中包含一个循环次数为4的整数倍的简单
循环;
(2)用WinDLX运行该程序。
记录执行过程中各种相关发生的次数以及程序执行的总
时钟周期数;
(3)将循环展开3次,将4个循环体组成的代码代替原来的循环体,并对程序做相应的
修改。
然后对新的循环体进行寄存器换名和指令调度;
(4)用WinDLX运行修改后的程序,记录执行过程中各种相关发生的次数以及程序执
4.1用指令调度技术解决流水线中的结构相关与数据相关
4.1.1原指令执行的相关结果
●DLX汇编语言编写代码文件*.s的内容如下所示:
addff0,f0,f1
addff1,f3,f4
addff2,f0,f2
multff6,f2,f0
addff0,f0,f1
multff1,f6,f0
subff3,f7,f8
subff7,f3,f1
trap0
●通过Configuration菜单中的“Floatingpointstages”选项,把加法﹑乘法﹑除法部件的个数设置为2个,把延迟都设置为3个时钟周期
图2-1加法器、乘法器、除法器的设置
●程序运行的流水线图
图2-2程序执行时的流水线图
●指令执行结果的统计
图2-3指令执行结果的统计
从上图中,我们可以看到指令执行的总周期是22,发生相关的次数是4,总的延迟周期是14,各种相关指令的组合如下所示:
1、addff0,f0,f1
addff1,f3,f4对f0的数据相关
2、addff2,f0,f2
multff6,f2,f0对f2的数据相关
3、addff0,f0,f1
multff1,f6,f0对f1的数据相关
4、subff3,f7,f8
subff7,f3,f1对f3的数据相关
4.1.2调整指令顺序指令执行的结果
●调整指令后的顺序如下所示
●指令执行的流水线结果如下所示
图2-4指令执行的流水线图
●周期统计图
图2-5执行结果统计图
从上图中,我们可以看到指令执行的总周期是20,发生相关的次数是2,总的延迟周期是12
指令调度后的加速比是22/20=1.1,通过指令调度,可以充分利用cpu部件利用率,减少数据相关和资源相关引起的暂停。
4.2用循环展开、寄存器换名以及指令调度提高性能
4.2.1原循环程序运行的结果
●运行的程序如下所示
.data
A:
.word1
B:
.word4
.text
.globalmain
main:
lff0,A
lff1,B
Loop:
eqff1,f2
bfptFinish
addff2,f2,f0
subff4,f3,f7
addff5,f4,f8
multff6,f3,f9
subff7,f6,f3
jLoop
Finish:
程序运行的流水线图如下图所示
图2-6
●程序运行的统计结果图如下图所示
图2-7
总计执行周期:
70
总计时延:
32个周期
4.2.2将循环程序展开运行的结果
subff4,f3,f7
●程序运行的流水线图如下图所示
图2-8
图2-9
47
31个周期
从上面的结果可以看出,循环展开后的加速比为70/47=1.49;
由此可见循环展开可以极大的提高cpu的效率。
4.2.3将程序循环展开、指令调度后运行的结果
.data
addff5,f4,f8
图2-10
39
22个周期
从上面的结果可以看出,循环展开后的加速比为70/39=1.79;
由此可见循环展开、指令调度可以极大的提高cpu的效率。
5、总计与体会
这次实验让我对指令的调度有了很好的理解,通过指令调度执行时间的计算,更好的看出了指令调度可以极大的提高cpu的运行效率。
同时,循环展开也可以很好的提高cpu的运行效率,将两者结合起来,可以极大的提高运行的效率,为程序的运行带来极大的便利,在今后的程序设置以及程序的运行中,我们可以很好的利用这一特性,来提高我们程序运行的效率,节省时间。
实验三cache性能分析
1.加深对Cache的基本概念、基本组织结构以及基本工作原理的理解;
2.了解Cache的容量、相联度、块大小对Cache性能的影响;
3.掌握降低Cache失效率的各种方法,以及这些方法对Cache性能提高的好处;
4.理解Cache失效的产生原因以及Cache的三种失效;
5.理解LRU与随机法的基本思想,及它们对Cache性能的影响;
SimpleScalar模拟器
1.在基本配置情况下运行程序(请指明所选的测试程序),统计Cache总失效次数、三种不同种类的失效次数;
2.改变Cache容量(*2,*4,*8,*64),运行程序(指明所选的测试程序),统计各种失效的次数,并分析Cache容量对Cache性能的影响;
3.改变Cache的相联度(1路,2路,4路,8路,64路),运行程序(指明所选的测试程序),统计各种失效的次数,并分析相联度对Cache性能的影响;
4.改变Cache块大小(*2,*4,*8,*64),运行程序(指明所选的测试程序),统计各种失效的次数,并分析Cache块大小对Cache性能的影响;
5.分别采用LRU与随机法,在不同的Cache容量、不同的相联度下,运行程序(指明所选的测试程序)统计Cache总失效次数,计算失效率。
分析不同的替换算法对Cache性能的影响。
测试程序:
用于实验的测试程序可以使用现有的,即benchmark目录下的所有程序;
也可以自己用C语言直接生成各类典型程序比如:
数学运算类、输入输出类等,通过本环境提供的特定C编译器,编译生成对应的xxx.out(默认是a.out)测试程序用于实验。
每个测试程序所需时间大概是10分钟,选择测试程序时注意从不同组中选择,以便使得出的结果不会因为对单项有所侧重而有失偏颇。
每个人从中选出4~6个测试程序进行测试。
4.1.基本配置情况下运行程序
默认参数如下所示:
-cache:
dl1dl1:
256:
32:
1:
l
dl2ul2:
1024:
64:
4:
il1il1:
l
Ø
对于测试程序benchmark\bin.little\test-math测试结果如下所示
il1.misses(指令cache)23761#totalnumberofmisses
dl1.misses(数据cache)804#totalnumberofmisses
ul2.misses1203#totalnumberofmisses
对于测试程序benchmark\bin.little\test-lswlr测试结果如下所示
il1.misses547#totalnumberofmisses
il1.miss_rate0.0627#missrate(i.e.,misses/ref)
dl1.misses459#totalnumberofmisses
dl1.miss_rate0.0971#missrate(i.e.,misses/ref)
ul2.misses477#totalnumberofmisses
4.2.改变Cache容量对Cache性能的影响
实验具体要求:
改变Cache容量(*2,*4,*8,*64),运行程序(指明所选的测试程序),统计各种失效的次数,并分析Cache容量对Cache性能的影响;
由于测试程序中指令项较多,因此在cache改变的实验中皆改变icache
通过下面的命令,将cache的由原来的256组变为512组
[root@localhostsimplescalar]#cd/root/simplescalar/simplesim-3.0/tests-pisa/bin.little
[root@localhostbin.little]#/root/simplescalar/simplesim-3.0/sim-cache-cache:
512:
ltest-math
1、测试程序为benchmark\bin.little\test-printf
-cache:
il1.misses112488#totalnumberofmisses
il1.miss_rate0.0620#missrate(i.e.,misses/ref)
il1.misses60016#totalnumberofmisses
il1.miss_rate0.0331#missrate(i.e.,misses/ref)
il1.misses23335#totalnumberofmisses
il1.miss_rate0.0129#missrate(i.e.,misses/ref)
2048:
il1.misses8578#totalnumberofmisses
il1.miss_rate0.0047#missrate(i.e.,misses/ref)
16384:
il1.misses1515#totalnumberofmisses
il1.miss_rate0.0008#missrate(i.e.,misses/ref)
2、测试程序为benchmark\bin.little\test-llong
il1.misses1130#totalnumberofmisses
il1.miss_rate0.0383#missrate(i.e.,misses/ref)
il1.misses936#totalnumberofmisses
il1.miss_rate0.0317#missrate(i.e.,misses/ref)
il1.misses634#totalnumberofmisses
il1.miss_rate0.0215#missrate(i.e.,misses/ref)-
il1.misses594#totalnumberofmisses
il1.miss_rate0.0201#missrate(i.e.,misses/ref)
il1.misses534#totalnumberofmisses
il1.miss_rate0.0181#missrate(i.e.,misses/ref)
3、测试程序为benchmark\bin.little\anagram
il1.misses577#totalnumberofmisses
il1.miss_rate0.0758#missrate(i.e.,misses/ref)
il1.misses512#totalnumberofmisses
il1.miss_rate0.0672#missrate(i.e.,misses/ref)
il1.misses502#totalnumberofmisses
il1.miss_rate0.0659#missrate(i.e.,misses/ref)
il1.misses477#totalnumberofmisses
il1.miss_rate0.0626#missrate(i.e.,misses/ref)
4、测试程序为benchmark\bin.little\test-fmath
il1.misses6093#totalnumberofmisses
il1.miss_rate0.1143#missrate(i.e.,misses/ref)
il1.misses4100#totalnumberofmisses
il1.miss_rate0.0769#missrate(i.e.,misses/ref)
il1.misses2231#totalnumberofmisses
il1.miss_rate0.0418#missrate(i.e.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 系统 结构 实验