计算机系统结构 实验四 Cache性能分析

一、实验目的

(1)加深对Cache的基本概念、基本组织结构以及基本工作原理的理解。

(2)掌握Cache容量、相联度、块大小对Cache性能的影响。

(3)掌握降低Cache不命中率的各种方法以及这些方法对提高Cache性能的好处。

(4) 理解LRU与随机法的基本思想以及它们对Cache性能的影响。

二、实验硬、软件环境

   Windows计算机、Mycache算法模拟器

三、实验内容及步骤

1. 首先要掌握MyCache模拟器的使用方法。

(1)双击 MyCache.exe,启动模拟器。

(2)系统打开操作界面,如下图所示:

(3)可以设置的参数包括Cache的容量、块大小、相联度、替换算法、预取策略、写策略、写不命中时的调块策略。可以直接从列表中选择。

(4)访问地址可以选择来自地址流文件,也可以选择手动输入。如果是前者,则可以通过单击“浏览”按钮,从模拟器所在文件夹下的“地址流”文件夹中选取地址流文件(.din)文件,然后执行。执行得方式可以是单步,也可以选择一次执行结束。如果选择手动输入,就可以在“执行控制”区域中输入块地址,然后单击“访问”按钮。系统会在界面的右边显示访问类型、地址、块号以及块内地址。

(5)模拟结果包括:

a) 访问总次数,总的不命中次数,总的不命中率。

b) 读指令操作的次数,其不命中次数及其不命中率。

c) 读数据操作的次数,其不命中次数及其不命中率。

d) 写数据操作的次数,其不命中次数及其不命中率。

e) 手动输入单次访问的相关信息。

2. 设计方法降低Cache不命中率

方法一:探究Cache容量对不命中率的影响

(1)选择不同的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%

(2)选择    all.din     地址流文件。

(3)以容量为横坐标,画出不命中率随Cache容量变化而变化的曲线。

    

(4)根据该模拟结果,分析Cache容量对不命中率的影响。

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

方法二:相联度对不命中率的影响

(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.40%

选择    all.din     地址流文件。

  1. 把Cache的容量设置为256KB,重复3)的工作,并填写表4.3.

                            表4.3 当Cache容量为256KB时,不同相联度下Cache的不命中率

相联度

1

2

4

8

16

32

不命中率

0.49%

0.38%

0.36%

0.36%

0.35%

0.35%

(5)以相联度为横坐标,画出在64KB和256KB的情况下不命中率随Cache相联度变化而变化的曲线,并指明地址流文件名all.din。

   

(6)根据该模拟结果,你能得出什么结论?

答:从图中可以看出,提高相联度可以降低Cache不命中率。但随着相联度提到到一定程度后(8路相联),再提高相联度Cache的不命中率几乎不变了。

方法三: 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

64

128

512

16

12.02%

5.79%

1.86%

1.26%

0.95%

0.71%

32

9.87%

4.48%

1.42%

0.89%

0.60%

0.42%

64

9.36%

4.03%

1.20%

0.71%

0.43%

0.27%

128

10.49%

4.60%

1.08%

0.64%

0.35%

0.20%

256

13.45%

5.35%

1.19%

0.67%

0.34%

0.16%

地址流文件名:all.din。

(4)分析Cache块大小对不命中率的影响。

答:从上图可以看出,当Cache容量一定的时候,若增大Cache块大小,Cache的不命中率先是下降,然后反升。这是因为增加块大小会产生双重作用: (1)增加了空间局部性,减少了强制性不命中;(2)减少了Cache中块的数目,所以有可能增加冲突不命中。当块比较小时,第(1)种作用会超过(2)种作用,使不命中率下降:当块比较大时,第(2)种作用超过第(1)种作用,反而使不命中率上上升。

方法四:替换算法对不命中率的影响

(1)用鼠标单击“复位”按钮,把各参数设置为默认值。

(2)选择地址流文件all. din。方法:选择“访问地址”—>“地址流文件”选项,然后单击“浏览”按钮,从本模拟器所在文件夹下的“地址流”文件夹中选取。

(3)对于不同的替换算法、Cache容量和相联度,分别执行模拟器(单击“执行到底”按钮即可执行),然后在表4.5中记录各种情况下的不命中率。

表4.5 LRU和随机替换算法的不命中率比较

Cache容量(KB)

相联度

2路

4路

8路

LRU

随机算法

LRU

随机算法

LRU

随机算法

16KB

1.71%

2.13%

1.33%

1.92%

1.21%

2.10%

64KB

0.53%

0.47%

0.47%

0.63%

0.45%

0.61%

256KB

0.38%

0.39%

0.36%

0.37%

0.36%

0.36%

1M

0.35%

0.35%

0.35%

0.35%

0.35%

0.35%

(4)分析不同的替换算法对Cache不命中率的影响。

答:从上表数据和图示曲线可以看出,无论相联度是多大,在Cache容量比较小时,LRU法的不命中率低于随机法,但当Cache容量增加到一定程度之后(256KB), LRU法和随机法已经没有太大的差别了。

  • 4
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值