1、西安邮电大学Cache性能分析实验报告 资料仅供参考 西 安 邮 电 大 学 (计算机学院) 课内实验报告 实验名称: cache性能分析 专业名称: 软件工程 班 级: 学生姓名: 学号(8位): 指导教师: 杨锐 实验日期: 5月20日 1 实验目的 (1) 加深对Cache的基本概念、基本组织结构以及基本工作原理的理解。 (2) 掌握Cach
2、e容量、相联度、块大小对Cache性能的影响。 (3) 掌握降低Cache不命中率的各种方法。 2 实验平台 采用MyCache模拟器。 MyCache模拟器的使用方法: (1) 双击MyCache.exe,启动模拟器。 (2) 系统打开操作界面,如下图所示: MyCache-Cache模拟器 设置参数区 模拟结果显示区 执行控制区 (3) 能够设置的参数包括Cache的容量、块大小、相联度、替换算法、预取策略、写策略、写不命中时的调块策略。能够直接从列表中选择。 (4) 访问地址能够选择来自地址流文件,也能够选择手动输入。如果是前者,则能够经过单击“浏
3、览”按钮,从模拟器所在文件夹下的“地址流”文件夹中选取地址流文件(.din)文件,然后执行。执行得方式能够是单步,也能够选择一次执行结束。如果选择手动输入,就能够在“执行控制”区域中输入块地址,然后单击“访问”按钮。系统会在界面的右边显示访问类型、地址、块号以及块内地址。 (5) 模拟结果包括: l 访问总次数,总的不命中次数,总的不命中率。 l 读指令操作的次数,其不命中次数及其不命中率。 l 读数据操作的次数,其不命中次数及其不命中率。 l 写数据操作的次数,其不命中次数及其不命中率。 l 手动输入单次访问的相关信息。 3 实验内容和步骤 3.1 Cache容量对不
4、命中率的影响 (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的不命中
5、率 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) 选择一个地址流文件
6、具体方法:选择“访问地址”→“地址流文件”选项,然后单击“浏览”按钮,从本模拟器所在的文件夹下的“地址流”文件夹中选取。 (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) 把
7、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块大小对不命中率的影响
8、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
9、 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
10、的块大小保持不变时,未命中率随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%
11、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块大小,以及所采用的算法等因素。






