资源描述
西 安 邮 电 大 学
(计算机学院)
课内实验报告
实验名称: cache性能分析
专业名称: 软件工程
班 级:
学生姓名:
学号(8位):
指导教师: 杨锐
实验日期: 2023年5月20日
1 实验目的
(1) 加深对Cache的基本概念、基本组织结构以及基本工作原理的理解。
(2) 掌握Cache容量、相联度、块大小对Cache性能的影响。
(3) 掌握减少Cache不命中率的各种方法。
2 实验平台
采用MyCache模拟器。
MyCache模拟器的使用方法:
(1) 双击MyCache.exe,启动模拟器。
(2) 系统打开操作界面,如下图所示:
MyCache-Cache模拟器
设立参数区
模拟结果显示区
执行控制区
(3) 可以设立的参数涉及Cache的容量、块大小、相联度、替换算法、预取策略、写策略、写不命中时的调块策略。可以直接从列表中选择。
(4) 访问地址可以选择来自地址流文献,也可以选择手动输入。假如是前者,则可以通过单击“浏览”按钮,从模拟器所在文献夹下的“地址流”文献夹中选取地址流文献(.din)文献,然后执行。执行得方式可以是单步,也可以选择一次执行结束。假如选择手动输入,就可以在“执行控制”区域中输入块地址,然后单击“访问”按钮。系统会在界面的右边显示访问类型、地址、块号以及块内地址。
(5) 模拟结果涉及:
l 访问总次数,总的不命中次数,总的不命中率。
l 读指令操作的次数,其不命中次数及其不命中率。
l 读数据操作的次数,其不命中次数及其不命中率。
l 写数据操作的次数,其不命中次数及其不命中率。
l 手动输入单次访问的相关信息。
3 实验内容和环节
3.1 Cache容量对不命中率的影响
(1) 启动MyCache。
(2) 单击“复位”按钮,将各参数设立为默认值。
(3) 选择一个地址流文献。具体方法:选择“访问地址”→“地址流文献”选项,然后单击“浏览”按钮,从本模拟器所在的文献夹下的“地址流”文献夹中选取。
(4) 选择不同的Cache容量,涉及2KB,4 KB,8 KB,16 KB,32 KB,64 KB,128 KB和256 KB,分别执行模拟器(单击“执行到底”按钮就可执行),然后在表1.1中记录各种情况下的不命中率。
地址流文献名: all.din
表1.1 不同容量下Cache的不命中率
Cache容量
2
4
8
16
32
64
128
256
不命中率
9.87%
7.19%
4.48%
2.65%
1.42%
0.89%
0.60%
0.49%
(5) 指明地址流文献名,以容量为横坐标,画出不命中率虽Cache容量变化而变化的曲线图。
(6) 根据该模拟结果,能得出什么结论?
未命中率受cache 容量的变化而变化,cache容量越大,未命中率越低
3.2 相联度对不命中率的影响
(1) 单击“复位”按钮,将各参数设立为默认值。此时的Cache容量为64KB。
(2) 选择一个地址流文献。具体方法:选择“访问地址”→“地址流文献”选项,然后单击“浏览”按钮,从本模拟器所在的文献夹下的“地址流”文献夹中选取。
(3) 选取不同的Cache相联度,涉及直接映像、2路、4路、8路、16路和32路。分别执行模拟器(单击“执行到底”按钮),然后在表1.2中记录各种情况下的不命中率。
表1.2 容量为64KB时,不同相联度的不命中率
相联度
直接映像
2
4
8
16
32
不命中率
0.89%
0.53%
0.47%
0.45%
0.44%
0.44%
地址流文献名: all.din
(4) 把Cache的容量设立为256KB,反复(3)环节填表1.3。
表1.3容量为256KB时,不同相联度的不命中率
相联度
直接映像
2
4
8
16
32
不命中率
0.49%
0.38%
0.36%
0.36%
0.35%
0.35%
(5) 以相联度为横坐标,画出在64KB和256KB的情况下不命中率随Cache相联度变化而变化的曲线。并指明地址流文献名。
(6) 根据模拟结果,你能得出什么结论?
未命中率基本不受相联度的影响,当直接映像时与相联度为2,4,8,16,32时略有偏差。
3.3 Cache块大小对不命中率的影响
(1) 单击“复位”按钮,将各参数设立为默认值。
(2) 选择一个地址流文献。具体方法:选择“访问地址”→“地址流文献”选项,然后单击“浏览”按钮,从本模拟器所在的文献夹下的“地址流”文献夹中选取。
(3) 选择不同的Cache块大小,涉及16B,32B,64B,128B和256B。对于Cache的各种容量,涉及2KB,8 KB,32 KB,128 KB和512 KB,分别执行模拟器(单击“执行到底”),然后在表1.4中记录各种情况下的不命中率。
表1.4 各种块大小情况下Cache的不命中率
块大小(B)
Cache容量
2
8
32
128
512
16
12.02%
5.79%
1.86%
0.95%
0.71%
32
9.87%
4.48%
1.42%
0.60%
0.42%
64
9.36%
4.03%
1.20%
0.43%
0.27%
128
10.49%
4.60%
1.08%
0.35%
0.20%
256
13.45%
5.35%
1.19%
0.34%
0.16%
地址流文献名: all.din
(4) 分析Cache块大小对不命中率的影响。
cache容量会影响未命中率,cache块大小也会影响未命中率,且当cache的块大小保持不变时,未命中率随cache容量的增大而减小,当保持cache的容量不变时,未命中率随cache块大小的增大而减小。
3.4 替换算法对不命中率的影响
(1) 单击“复位”按钮,将各参数设立为默认值。
(2) 选择地址流文献all.din。
(3) 对于不同的替换算法、Cache容量和相联度,分别执行模拟器(单击“执行到底”按钮),在表1.5中记录各种情况下的不命中率。
表7.5 LRU和随机算法的不命中率的比较
Cache容量
相联度
2路
4路
8路
LRU
随机算法
LRU
随机算法
LRU
随机算法
16KB
1.71%
2.07%
1.33%
1.81%
1.21%
2.03%
64KB
0.53%
0.65%
0.47%
0.59%
0.45%
0.62%
256KB
0.38%
0.40%
0.36%
0.37%
0.36%
0.36%
1MB
0.35%
0.35%
0.35%
0.35%
0.35%
0.35%
(4) 分析不同的替换算法对Cache不命中率的影响。
算法不同对不命中率有影响,在相联度和cache容量保持不变时,LRU算法的不命中率较随机算法不命中率低。在cache容量不变时,相联度度增大,采用同一算法时cache不命中越低;当相联度不变,cache容量增大时,采用同一算法时cache不命中率越低。
4 实验总结与心得
通过本次实验我知道了Cache的不命中率受各方面因素影响,cache容量,cache块大小,以及所采用的算法等因素。
展开阅读全文