当前位置: 首页 > news >正文

计算机系统结构——Cache性能分析

一、实验目的

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

二、实验平台

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

三、实验内容及步骤

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

1、Cache容量对不命中率的影响

  1. 启动MyCache。
  2. 用鼠标点击“复位”按钮,把各参数设置为默认值。
  3. 选择一个地址流文件。方法:选择“访问地址”→“地址流文件”选项,然后点击“浏览”按钮,从本模拟器所在的文件夹下的“地址流”文件夹中选取。
  4. 选择不同的Cache容量,包括:2KB,4KB,8KB,16KB,32KB,64KB,128KB,256KB,分别执行模拟器(单击“执行到底”按钮即可执行),然后在表A.4.1中记录各种情况下的不命中率。
  5. 以容量为横坐标,画出不命中率随Cache容量变化而变化的曲线。并指明地址流文件名。
  6. 根据该模拟结果,你能得出什么结论?
  • Cache容量越大,不命中率越低,增加Cache容量可以有效地减少Cache的不命中率。

A.4.1 不同容量下Cache的不命中率

Cache容量(KB)

2

4

8

16

32

64

128

256

不命中率

9.87%

7.19%

4.48%

2.65%

1.42%

0.89%

0.60%

0.49%

地址流文件名:  all.din  

2、相联度对不命中率的影响

  1. 用鼠标单击“复位”按钮,把各参数设置为默认值。此时的Cache容量为64KB。
  2. 选择一个地址流文件。方法:选择“访问地址”→“地址流文件”选项,然后单击“浏览”按钮,从本模拟器所在的文件夹下的“地址流”文件夹中选取。
  3. 选择不同的Cache相联度,包括:直接映象,2路,4路,8路,16路,32路,分别执行模拟器(单击“执行到底”按钮即可执行),然后在表A.4.2中记录各种情况下的不命中率。
  4. 把Cache的容量设置为256KB,重复(3)的工作,并填写表A.4.3。
  5. 以相联度为横坐标,画出在64KB和256KB的情况下不命中率随Cache相联度变化而变化的曲线。并指明地址流文件名。
  6. 根据该模拟结果,你能得出什么结论?
  • 相联度越高,不命中率越低,提高相联度可以减少Cache的不命中率。

A.4.2 当容量为64KB时,不同相联度下Cache的不命中率

相联度

1

2

4

8

16

32

不命中率

1.97%

1.15%

0.99%

0.93%

0.92%

0.91%

地址流文件名:  cc1.din  ​​​​​​​

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

相联度

1

2

4

8

16

32

不命中率

0.98%

0.78%

0.74%

0.73%

0.71%

0.71%

地址流文件名:   cc1.din   

3、Cache块大小对不命中率的影响

  1. 用鼠标单击“复位”按钮,把各参数设置为默认值。
  2. 选择一个地址流文件。方法:选择“访问地址”→“地址流文件”选项,然后单击“浏览”按钮,从本模拟器所在的文件夹下的“地址流”文件夹中选取。
  3. 选择不同的Cache块大小,包括:16B,32B,64B,128B,256B,对于Cache的各种容量,包括:2KB,8KB,32KB,128KB,512KB,分别执行模拟器(单击“执行到底”按钮即可执行),然后在表A.4.4中记录各种情况下的不命中率。
  4. 分析Cache块大小对不命中率的影响。
  • 增强了空间局部性,减少了强制性不命中;减少了Cache中块的数目,所以有可能会增加冲突不命中。

A.4.4 各种块大小情况下Cache的不命中

块大小

(B)

Cache容量(KB)

2

8

32

128

512

16

7.80%

7.40%

7.20%

7.20%

7.20%

32

5.40%

5.00%

4.70%

4.70%

4.70%

64

4.00%

3.40%

3.10%

3.10%

3.10%

128

4.40%

3.30%

2.40%

2.40%

2.40%

256

6.50%

5.10%

1.90%

1.90%

1.90%

地址流文件名:  eg.din   

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

  1.  用鼠标单击“复位”按钮,把各参数设置为默认值。
  2. 选择一个地址流文件。方法:选择“访问地址”→“地址流文件”选项,然后单击“浏览”按钮,从本模拟器所在的文件夹下的“地址流”文件夹中选取。
  3. 对于不同的替换算法、Cache容量和相联度,分别执行模拟器(单击“执行到底”按钮即可执行),然后在表A.4.5中记录各种情况下的不命中率。
  4. 分析不同的替换算法对Cache不命中率的影响。
  • 在Cache容量较小时,LRU算法的不命中率低于随机算法,当Cache容量较大时,两者差距不明显。 

A.4.5  LRU和随机替换法的不命中率的比较

Cache

容量

相  联  度

2 路

4 路

8 路

LRU

随机算法

LRU

随机算法

LRU

随机算法

16KB

1.06%

1.73%

0.66%

1.09%

0.53%

1.84%

64KB

0.25%

0.28%

0.22%

0.26%

0.22%

0.36%

256KB

0.21%

0.21%

0.21%

0.21%

0.21%

0.21%

1MB

0.21%

0.21%

0.21%

0.21%

0.21%

0.21%

地址流文件名:   spice.din   

四、MyCache模拟器使用方法

1. 启动模拟器:用鼠标双击MyCache.exe。

2. 系统会打开一个操作界面。该界面的左边为设置模拟参数区域,右边为模拟结果显示区域。如图A.4.1所示。

3. 可以设置的参数包括:是统一Cache还是分离Cache,Cache的容量,块大小,相联度,替换算法,预取策略,写策略,写不命中时的调块策略。可以直接从列表里选择。

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

5. 模拟结果包括:

(1)访问总次数,总的不命中次数,总的不命中率;

(2)读指令操作的次数,其不命中次数及其不命中率;

(3)读数据操作的次数,其不命中次数及其不命中率;

(4)写数据操作的次数,其不命中次数及其不命中率;

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

 图A.4.1 MyCache模拟器的操作界面示意图

http://www.xdnf.cn/news/453367.html

相关文章:

  • 苹果处理器“仿生“命名背后的营销策略与技术创新
  • 【ROS2】报错记录及对应解决方案
  • Open3D 体素化下采样
  • 当DeepSeek遇上百年医院:解码AI医疗落地实践
  • 香橙派/树莓派读取GY39数据
  • Spring Boot 日志
  • 仿真每日一练 | 多刚体动力学分析中的自由度问题
  • 领麦微红外温度传感器:发面机非接触测温
  • AI短期学习计划(持续完善更新)
  • 基于CETOL 6σ的生产不良判定与故障分析技术应用
  • Android Framework学习五:APP启动过程原理及速度优化
  • Made with Unity | 拓展“双点”宇宙版图
  • 再来1章linux系列-17 ssh sshd sshd非对称加密(密钥加密)‌SSH对称加密组件/流程
  • 树莓派3B+ wiringPi库安装
  • 【golang】网络数据包捕获库 gopacket
  • 用户模块 - IP归属地框架吞吐测试
  • 运维日志管理全解析:从存储优化到合规审计
  • LeetCode 题解 41. 缺失的第一个正数
  • 静电的起因与静电效应:技术分析与应用
  • svn status . 命令返回分析
  • 交易所功能设计的核心架构与创新实践
  • 论文查询的ai工具 —— SCAICH
  • 总共76dp 空出20dp然后放一个控件的写法
  • Shell和Bash介绍
  • PT2022E单触控三段LED调光IC
  • 云渲染实用指南:如何高效省心地使用炫云平台
  • JVM 精华
  • [特殊字符] GSG 插件 + 渲染 101:C4D 渲染效率革命!
  • 程序设计语言----软考中级软件设计师(自用学习笔记)
  • 防御保护-----第十三章:L2TP VPN