【计算机体系结构实验】Cache 性能分析

实验四 Cache 性能分析

一.实验目的:

(1) 加深对Cache的基本概念、基本组织结构以及基本工作原理的理解。
(2) 掌握Cache容量、相联度、块大小对Cache性能的影响。
(3) 掌握降低Cache不命中率的各种方法以及这些方法对提高Cache性能的好处。
(4) 理解LRU与随机法的基本思想以及它们对Cache性能的影响。

二.实验平台:

实验平台采用Cache模拟器MyCache。

三.实验内容和步骤:

1. MyCache 模拟器的使用方法:

(1) 双击 MyCache.exe,启动模拟器。
(2) 系统打开操作界面,如下图所示:
(3) 可以设置的参数包括 Cache 的容量、 块大小、 相联度、 替换算法、 预取策略、 写策略、写不命中时的调块策略。可以直接从列表中选择。
(4)访问地址可以选择来自地址流文件, 也可以选择手动输入。 如果是前者, 则可以通过单击“浏览”按钮,从模拟器所在文件夹下的“地址流”文件夹中选取地址流文件( .din)文件,然后执行。执行得方式可以是单步,也可以选择一次执行结束。如果选择手动输入,就可以在“执行控制”区域中输入块地址,然后单击“访问”按钮。系统会在界面的右边显示访问类型、地址、块号以及块内地址。
(5) 模拟结果包括:
a) 访问总次数,总的不命中次数,总的不命中率。
b) 读指令操作的次数,其不命中次数及其不命中率。
c) 读数据操作的次数,其不命中次数及其不命中率。
d) 写数据操作的次数,其不命中次数及其不命中率。
e) 手动输入单次访问的相关信息。

2.Cache容量对不命中率的影响。

(1)启动MyCache。
(2)用鼠标单击“复位”按钮,把各参数设置为默认值。
(3)选择一个地址流文件。方法:选择“访问地址”—>“地址流文件”选项,然后单击“浏览”按钮,从本模拟器所在文件夹下的“地址流”文件夹中选取。
(4)选择不同的Cache容量,包括2KB、4KB、8KB、16KB、32KB、64KB、128KB和256KB。分别执行模拟器(单击“执行到底”按钮即可执行),然后在表4.1中记录各种情况下的不命中率。
表4.1 不容量下Cache的不命中率
Cache容量(KB) 2 4 8 16 32 64 128 256
不命中率 9.78% 7.19% 4.48% 2.65% 1.42% 0.89% 0.42% 0.40%
地址流文件名:all.din。
(5)以容量为横坐标,画出不命中率随Cache容量变化而变化的曲线,并指明地址流文件名。

(6)根据该模拟结果,你能得出什么结论?
答:_根据实验结果可以看出,Cache的不命中率随着Cache容量的增大而降低,但当容量增大到一定程度后(256KB),再增大Cache的容量变化就不明显了。

3.相联度对不命中率的影响

(1)用鼠标单击“复位”按钮,把各参数设置为默认值。此时的Cache容量为64KB。
(2)选择一个地址流文件。方法:选择“访问地址”—>“地址流文件”选项,然后单击“浏览”按钮,从本模拟器所在文件夹下的“地址流”文件夹中选取。
(3)选择不同的Cache相联度,包括2路、4路、8路、16路和32路。分别执行模拟器(单击“执行到底”按钮即可执行),然后在表4.2中记录各种情况下的不命中率。
表4.2 当容量为64KB时,不同相联度下Cache的不命中率
相联度 1 2 4 8 16 32
不命中率 0.89% 0.53% 0.47% 0.45% 0.44% 0.44%
地址流文件名:all.din。
(4)把Cache的容量设置为256KB,重复3)的工作,并填写表4.3.
表4.3 当容量为256KB时,不同相联度下Cache的不命中率
相联度 1 2 4 8 16 32
不命中率 0.49% 0.38% 0.36% 0.36% 0.35% 0.35%
(5)以相联度为横坐标,画出在64KB和256KB的情况下不命中率随Cache相联度变化而变化的曲线,并指明地址流文件名。

(6)根据该模拟结果,你能得出什么结论?
答:从图中可以看出,提高相联度可以降低Cache不命中率。但随着相联度提到到一定程度后(8路相联),再提高相联度Cache的不命中率几乎不变了。

4. Cache块大小对不命中率的影响

(1)用鼠标单击“复位”按钮,把各参数设置为默认值。
(2)选择一个地址流文件。方法:选择“访问地址”—>“地址流文件”选项,然后单击“浏览”按钮,从本模拟器所在文件夹下的“地址流”文件夹中选取。
(3)选择不同的Cache块大小,包括16B、32B、64B、128B和256B。对于 Cache的各种容量,包括2KB、8KB、32KB、64KB、128KB和512KB。分别执行模拟器(单击“执行到底”按钮即可执行),然后在表4.4中记录各种情况下的不命中率。
表4.4 各种块大小情况下Cache的不命中率
块大小
(B) Cache容量(KB)
2 8 32 128 512
16 12.02% 5.79% 1.86% 0.95% 0.71%
32 9.38% 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的不命中率先是下降,然后反升。这是因为增加块大小会产生双重作用: (1)增加了空间局部性,减少了强制性不命中;(2)减少了Cache中块的数目,所以有可能增加冲突不命中。当块比较小时,第(1)种作用会超过(2)种作用,使不命中率下降:当块比较大时,第(2)种作用超过第(1)种作用,反而使不命中率上上升。

5. 替换算法对不命中率的影响

(1)用鼠标单击“复位”按钮,把各参数设置为默认值。
(2)选择地址流文件all. din。方法:选择“访问地址”—>“地址流文件”选项,然后单击“浏览”按钮,从本模拟器所在文件夹下的“地址流”文件夹中选取。
(3)对于不同的替换算法、Cache容量和相联度,分别执行模拟器(单击“执行到底”按钮即可执行),然后在表4.5中记录各种情况下的不命中率。
表4.5 LRU和随机替换法的不命中率的比较
Cache容量 相联度
2路 4路 8路
LRU 随机算法 LRU 随机算法 LRU 随机算法
16KB 1.71% 2.13% 1.33% 1.92% 1.21% 2.10%
64KB 0.53% 0.65% 0.47% 0.63% 0.45% 0.61%
256KB 0.38% 0.39% 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容量增加到一定程度之后(256KB), LRU法和随机法已经没有太大的差别了。

你可能感兴趣的:(计算机体系结构,Cache,Cache性能分析)