实验1 Cache性能分析1

更新时间:2023-10-01 21:58:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验1 Cache性能分析

1 实验目的

(1) 加深对Cache的基本概念、基本组织结构以及基本工作原理的理解。 (2) 掌握Cache容量、相联度、块大小对Cache性能的影响。 (3) 掌握降低Cache

2 实验平台

采用MyCache模拟器。

MyCache模拟器的使用方法:

(1) 双击MyCache.exe,启动模拟器。 (2) 系统打开操作界面,如下图所示:

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

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

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中记录各种情况下的不命中率。

地址流文件名: D:\\系统结构模拟器\\MyCache模拟器\\地址流\\all.din

表1.1 不同容量下Cache的不命中率 2 4 8 16 32 64 128 256 Cache容量 不命中率

(4) 指明地址流文件名,以容量为横坐标,画出不命中率虽Cache容量变化而变化的曲线

图。

9.87% 7.19% 4.48% 2.65% 1.42% 0.89% 0.60% 0.49%

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

结论:不命中率随Cache容量的增大而减小。

3.2 相联度对不命中率的影响

(1) 单击“复位”按钮,将各参数设置为默认值。此时的Cache容量为64KB。

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

(3) 选取不同的Cache相联度,包括直接映像、2路、4路、8路、16路和32路。分别执行模拟器(单击“执行到底”按钮),然后再表1.2中记录各种情况下的不命中率。

表1.2 容量为64KB时,不同相联度的不命中率 相联度 不命中率

地址流文件名: D:\\系统结构模拟器\\MyCache模拟器\\地址流\\all.din

(4) 把Cache的容量设置为256KB,重复(3)步骤填表1.3。

表1.3容量为256KB时,不同相联度的不命中率 1 2 4 8 16 32 相联度 0.49% 0.38% 0.36% 0.36% 0.35% 0.35% 不命中率 (5) 以相联度为横坐标,画出在64KB和256KB的情况下不命中率随Cache相联度变化而

变化的曲线。并指令地址流文件名。

1 0.89% 2 0.53% 4 0.47% 8 0.45% 16 0.44% 32 0.44% Cache容量为64K时:

Cache容量为256K时:

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

结论:不命中率随Cache相联度的增大而减小,逐渐趋于平稳。

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) 16 32 64 128 256 2 12.02% 9.87% 9.36% 10.49% 13.45% 8 5.79% 4.48% 4.03% 4.60% 5.35% Cache容量 32 1.86% 1.42% 1.20% 1.08% 1.19% 128 0.95% 0.60% 0.43% 0.35% 0.34% 512 0.71% 0.42% 0.27% 0.20% 0.16% 地址流文件名:D:\\系统结构模拟器\\MyCache模拟器\\地址流\\all.din

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

答:在Cache容量不变的情况下,Cache块越大不命中率越小,最后趋于平稳。

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

(1) 单击“复位”按钮,将各参数设置为默认值。 (2) 选择地址流文件all.din。

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

表7.5 LRU和随机算法的不命中率的比较

Cache容量 16KB 64KB 256KB 1MB 相联度 2路 LRU 1.71% 0.53% 0.38% 0.35% 随机算法 2.08% 0.67% 0.40% 0.35% LRU 1.33% 0.47% 0.36% 0.35% 4路 随机算法 1.90% 0.64% 0.37% 0.35% LRU 1.21% 0.45% 0.36% 0.35% 8路 随机算法 2.05% 0.60% 0.36% 0.35% (4) 分析不同的替换算法对Cache不命中率的影响。

①LRU和随机算法的不命中率随相联度的增加而减小且随着cache容量的增加而减小; ②在相联度相同,cache容量相同时,使用LRU替换算法的不命中率比随机算法的不命中率小;

4 实验总结与心得

通过本次实验,我对Cache的基本概念、基本组织结构以及基本工作原理有了进一步的了解,掌握了Cache容量、相联度、块大小对Cache性能的影响,了解了LRU和随机算法对Cache不命中率的影响及Cache块大小对不命中率的影响等。这让我在以后的计算机系统结构的学习中打下了良好的基础。

本文来源:https://www.bwwdw.com/article/d2td.html

Top