系统结构实验报告Word文档下载推荐.docx
- 文档编号:20401408
- 上传时间:2023-01-22
- 格式:DOCX
- 页数:28
- 大小:830.08KB
系统结构实验报告Word文档下载推荐.docx
《系统结构实验报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《系统结构实验报告Word文档下载推荐.docx(28页珍藏版)》请在冰豆网上搜索。
1.基本配置情况下运行程序13
2.改变Cache容量对Cache性能的影响;
14
3.改变Cache的相联度对Cache性能的影响;
16
4.改变Cache块大小对Cache性能的影响;
18
5.不同的替换算法对Cache性能的影响。
19
5.1不同容量下,不同的替换算法对Cache性能的影响19
5.2不同相联度下,不同的替换算法对Cache性能的影响21
实验一流水线中的相关
一、实验目的
1.熟练掌握WinDLX模拟器的操作和使用,熟悉DLX指令集结构及其特点;
2.加深对计算机流水线基本概念的理解;
3.进一步了解DLX基本流水线各段的功能以及基本操作;
4.加深对数据相关、结构相关的理解,了解这两类相关对CPU性能的影响;
5.了解解决数据相关的方法,掌握如何使用定向技术来减少数据相关带来的暂停
二、实验原理
用WinDLX模拟器模拟流水线。
三、实验步骤
1.用WinDLX模拟器执行下列三个程序:
求阶乘程序fact.s
求最大公倍数程序gcm.s
求素数程序prim.s
分别以步进、连续、设置断点的方式运行程序,观察程序在流水线中的执行情况,观察CPU中寄存器和存储器的内容。
熟练掌握WinDLX的操作和使用。
2.用WinDLX运行程序structure_d.s,通过模拟找出存在资源相关的指令对以及导致资源相关的部件;
记录由资源相关引起的暂停时钟周期数,计算暂停时钟周期数占总执行周期数的百分比;
论述资源相关对CPU性能的影响,讨论解决资源相关的方法。
资源相关:
ADDDF0,F0,F4
ADDDF2,F0,F2;
加法器
ADDDF2,F0,F2
ADDIR2,R2,#8;
MEM
ADDIR3,R3,#8;
SUBR5,R4,R2;
由资源相关引起的暂停时钟周期数是50个(每次循环5个,共10次循环),暂停时钟周期数占总执行周期数的百分比50/139=35.97%
资源相关降低CPU的性能,效率下降。
资源相关引起的暂停,可以采取指令调度的方法进行改进。
3.在不采用定向技术的情况下(去掉Configuration菜单中EnableForwarding选项前的勾选符),用WinDLX运行程序data_d.s。
记录数据相关引起的暂停时钟周期数以及程序执行的总时钟周期数,计算暂停时钟周期数占总执行周期数的百分比。
数据相关:
数据相关引起的时钟周期数是104个,执行程序总时钟周期数是202个。
暂停时钟周期数占总执行周期数的百分比54.18%
在采用定向技术的情况下(勾选EnableForwarding),用WinDLX再次运行程序data_d.s。
重复上述3中的工作,并计算采用定向技术后性能提高的倍数。
数据相关引起的时钟周期数是30个,执行程序总时钟周期数是128个。
暂停时钟周期数占总执行周期数的百分比23.44%
采用定向技术后性能提高202/128=1.58倍
四、实验总结
采用流水线技术会遇到:
数据相关、控制相关、资源相关等问题。
为解决数据相关引起的暂停,可以采用指令调度和定向技术的方法来避免。
通过指令调度,使相关的数据执行距离拉开,使得不会发生数据相关。
通过定向技术,可以将相关数据结果直接传送到所有需要它的功能单元的输入端,避免数据相关引起的暂停。
为解决控制相关引起的暂停,可以使用循环展开的方法来减少控制相关的次数。
为解决资源相关引起的暂停,可以采用指令调度的方法来避免。
通过指令调度,使相关的资源使用的距离拉开,使得不会发生资源相关。
实验二循环展开及指令调度
1.加深对循环级并行性、指令调度技术、循环展开技术以及寄存器换名技术的理解;
2.熟悉用指令调度技术来解决流水线中的数据相关的方法;
3.了解循环展开、指令调度等技术对CPU性能的改进。
1.指令调度技术
(1)用DLX汇编语言编写代码文件*.s,程序中应包括数据相关与结构相关(假设:
加法﹑乘法﹑除法部件各有2个,延迟时间都是3个时钟周期)
(2)通过Configuration菜单中的“Floatingpointstages”选项,把加法﹑乘法﹑除法部件的个数设置为2个,把延迟都设置为3个时钟周期;
(3)用WinDLX运行程序。
记录程序执行过程中各种相关发生的次数、发生相关的指令组合,以及程序执行的总时钟周期数;
(4)采用指令调度技术对程序进行指令调度,消除相关;
(5)用WinDLX运行调度后的程序,观察程序在流水线中的执行情况,记录程序执行的总时钟周期数;
(6)根据记录结果,比较调度前和调度后的性能。
论述指令调度对于提高CPU性能的意义。
改进之前:
共用了76个周期
共发生36次相关
资源相关:
9次
数据相关:
17次
控制相关:
7次
Trap暂停:
3次
LWR1,0(R2)
ADDR1,R1,R3;
数据相关,1次
ADDIR7,R0,8;
资源相关,1次
LWR5,0(R1)
ADDIR5,R5,#10;
数据相关,共发生8次
ADDIR2,R2,#4;
资源相关,共发生8次
SUBR7,R7,1
BNEZR7,LOOP;
BNEZR7,LOOP
TRAP#0;
控制相关,共发生7次
Trap暂停3个周期
指令调度后:
共用了59个周期
共发生10次相关
指令调度后的加速比是76/59=1.29,通过指令调度,可以充分利用cpu部件利用率,减少数据相关和资源相关引起的暂停。
2.循环展开以及指令调度提高性能
(1)用DLX汇编语言编写代码文件*.s,程序中包含一个循环次数为4的整数倍的简单循环;
(2)用WinDLX运行该程序。
记录执行过程中各种相关发生的次数以及程序执行的总时钟周期数;
(3)将循环展开3次,将4个循环体组成的代码代替原来的循环体,并对程序做相应的修改。
然后对新的循环体进行寄存器换名和指令调度;
(4)用WinDLX运行修改后的程序,记录执行过程中各种相关发生的次数以及程序执行的总时钟周期数;
(5)根据记录结果,比较循环展开、指令调度前后的性能。
单纯循环展开:
共用了58个周期
共发生24次相关
11次
1次
指令调度后的加速比是76/58=1.31,通过循环展开,可以充分利用cpu部件利用率,减少控制相关引起的冲刷和数据相关引起的暂停。
数据相关,共发生2次
控制相关,共发生1次
循环展开+指令调度:
共用了47个周期
共发生4次相关
指令调度后的加速比是76/47=1.62。
循环展开和指令调度都能提高cpu性能,减少暂停,但是两者同时进行改进时,优化性能并不是单纯的相加。
因为循环展开的改进也会减少和循环判断有关的数据相关。
同时,循环展开和指令调度对cpu性能提高的能力也因不同程序而异,若循环次数较多,则采取循环展开获得的cpu性能提升较高,若数据相关、资源相关较多,则采取指令调度获得的cpu性能提升较高。
五、代码
改进前代码:
LHIR2,(A>
>
16)&
0XFFFF
ADDUIR2,R2,A+8
LHIR3,(B>
16)&
0XFFFF
ADDUIR3,R3,B&
0XFFFF
ADDR1,R1,R3
ADDIR7,R0,8
LOOP:
ADDIR5,R5,#10
ADDIR2,R2,#4
TRAP#0
A:
.WORD0,4,8,12,16,20,24,28,32,36
B:
.WORD9,8,7,6,5,4,3,2,1,0
指令调度后代码:
LWR1,0(R2)
ADDIR2,R2,#4
SUBR7,R7,1
ADDIR5,R5,#10
循环展开后代码:
循环展开+指令调度后的代码:
实验三cache性能分析
一、实验目的
1.加深对Cache的基本概念、基本组织结构以及基本工作原理的理解;
2.了解Cache的容量、相联度、块大小对Cache性能的影响;
3.掌握降低Cache失效率的各种方法,以及这些方法对Cache性能提高的好处;
4.理解Cache失效的产生原因以及Cache的三种失效;
5.理解LRU与随机法的基本思想,及它们对Cache性能的影响;
现代微机系统结构的另一重要技术是Cache。
但是Cache一般位于CPU内部,即使是对汇编语言程序员也是不可见的。
为了直观的建立Cache技术的各种概念,形象的学习甚至于自己动手进行Cache性能分析,设计一系列有针对性的仿真实验是个很好的教学方法。
SimpleScalar工具集中有专门针对Cache技术的模拟器sim-cache和sim-cheetah,正是完成这些仿真实验的理想平台。
借助这两个工具,我们在系统结构课程中增设了Cache性能分析的系列仿真实验帮助学生更好的理解和掌握Cache技术。
三、实验过程
1.基本配置情况下运行程序
默认参数:
-cache:
dl1dl1:
256:
32:
1:
l-cache:
dl2ul2:
1024:
64:
4:
il1il1:
l
benchmark\bin.little\test-math
il1.misses23761#totalnumberofmisses
il1.miss_rate0.1113#missrate(i.e.,misses/ref)
benchmark\supplied\vortex.ss
il1.misses5122#totalnumberofmisses
il1.miss_rate0.1223#missrate(i.e.,misses/ref)
benchmark\bin.little\test-fmath
benchmark\bin.little\test-printf
512:
2048:
16384:
benchmark\bin.little\test-math
il1.misses15565#totalnumberofmisses
il1.miss_rate0.0729#missrate(i.e.,misses/ref)
il1.misses6614#totalnumberofmisses
il1.miss_rate0.0310#missrate(i.e.,misses/ref)
il1.misses2712#totalnumberofmisses
il1.miss_rate0.0127#missrate(i.e.,misses/ref)
il1.misses1636#totalnumberofmisses
il1.miss_rate0.0077#missrate(i.e.,misses/ref)
il1.misses3241#totalnumberofmisses
il1.miss_rate0.0774#missrate(i.e.,misses/ref)
il1.misses2497#totalnumberofmisses
il1.miss_rate0.0596#missrate(i.e.,misses/ref)
il1.misses1111#totalnumberofmisses
il1.miss_rate0.0265#missrate(i.e.,misses/ref)
il1.misses590#totalnumberofmisses
il1.miss_rate0.0141#missrate(i.e.,misses/ref)
Cache容量对Cache性能的影响:
Cache容量越大,失效率越低,命中率越高。
2:
8:
il1.misses13479#totalnumberofmisses
il1.miss_rate0.0631#missrate(i.e.,misses/ref)
il1.misses4889#totalnumberofmisses
il1.miss_rate0.0229#missrate(i.e.,misses/ref)
il1.misses1640#totalnumberofmisses
il1.misses2575#totalnumberofmisses
il1.miss_rate0.0615#missrate(i.e.,misses/ref)
il1.misses619#totalnumberofmisses
il1.miss_rate0.0148#missrate(i.e.,misses/ref)
il1.misses590#totalnumberofmisses
相联度对Cache性能的影响:
相联度越路数越大,失效率越低,命中率越高。
l
128:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 系统 结构 实验 报告