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

news2025/2/2 7:56:57

3.1 实验目的

加深对Cache的基本概念及其工作原理的理解;

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

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

3.2 实验平台

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

3.3 实验内容

快速阅读课件“第7章 存储系统”的“7.2节 映象规则/查找算法/替换算法/ 写策略”(19-41屏),“7.3节 降低Cache不命中率”(49-56屏)。

3.3.1 Cache块访问分析

1)启动MyCache,点击“复位”,把各参数设置为默认值,选择一个地址流文件,比如all.din。查看一下地址流文件all.din中的前4行:

2  408ed4         读指令

0  10019d94       读数据

2  408ed8         读指令

1  10019d88       写数据

每行都由两个数字组成,第一个数字表示操作类型(0:读数据,1:写数据,2:读指令),第二个数字表示地址(16进制)。比如:第一行的意思就是读指令(指令地址是408ed4)。

2)按默认设置,即:统一Cache(容量64KB),块大小32B,相联度为1(即直接映像),替换策略LRU,不预取,写回法,写不命中时按写分配。

    步进执行,自己分析写出前4步操作(即前4行)每步访问的主存块号、块内地址、Cache块号,分析不命中/命中的原因。

1.  2  408ed4         读指令

因为是第一次访问该块,所以cache中没有该块,所以不命中。

地址流文件中,指令地址为408ed4,换算成十进制为4,230,868,即为模拟结果中的地址。

因为统一Cache(容量64KB),块大小32B,相联度为1(即直接映像),所以有2048块(组),索引占11位。

该块的块号为2 0476(16进制),块内地址为14,索引(组)为476。

2. 0  10019d94       读数据

因为是第一次访问该块,所以cache中没有该块,所以不命中。

地址流文件中,数据地址为10019d94,换算成十进制为268,541,332,即为模拟结果中的地址。

因为统一Cache(容量64KB),块大小32B,相联度为1(即直接映像),所以有2048块(组),索引占11位。

该块的块号为80 0CEC(16进制),块内地址为14,索引(组)为4EC。

3. 2  408ed8         读指令

地址流文件中,指令地址为408ed8,换算成十进制为4,230,872,即为模拟结果中的地址。

因为统一Cache(容量64KB),块大小32B,相联度为1(即直接映像),所以有2048块(组),索引占11位。

该块的块号为2 0476(16进制),块内地址为18,索引(组)为476。

因为是第二次访问该块,cache中有该块,所以命中。

4. 1  10019d88       写数据

地址流文件中,数据地址为10019d88,换算成十进制为268,541,320,即为模拟结果中的地址。

因为统一Cache(容量64KB),块大小32B,相联度为1(即直接映像),所以有2048块(组),索引占11位。

该块的块号为80 0CEC(16进制),块内地址为8,索引(组)为4EC。

因为是第二次访问该块,cache中有该块,所以命中。

3.3.2 Cache容量对不命中率的影响

1)点击“复位”按钮,把各参数设置为默认值。选择一个地址流文件,比如all.din。

2)选择不同的Cache容量,分别2KB、4KB、8KB、16KB、32KB、64KB、128KB、256KB。分别执行模拟器(点“执行到底”按钮),自己列表记录各种情况下的不命中率。

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

3)根据该模拟结果,写出你得出的结论。

由表可见,Cache容量越高,不命中率越低。原因是当Cache容量越高时,访问的块越有可能被保留在cache中。其中,当cache容量大于64KB时,不命中率的降低幅度大幅下降。

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

  1. 点击“复位”按钮,把各参数设置为默认值,此时的Cache容量为64KB。选择一个地址流文件,比如all.din。
  2. 选择不同的Cache相联度,分别为直接映像、2路、4路、8路、16路和32路。分别执行模拟器(点“执行到底”按钮),自己列表记录各种情况下的不命中率。
  3. 根据该模拟结果,写出你得出的结论。

Cache相联度(路)

1(直接映像)

2

4

8

16

32

不命中率(%)

0.89

0.53

0.47

0.45

0.44

0.44

由表可见,Cache相联度越高,不命中率越低。原因是因为cache相联度越高时,块存放的自由度越高,被替换出的可能性越小。其中,当Cache相联度大于8时,不命中率的降低幅度大幅下降。

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

  1. 点击“复位”按钮,把各参数设置为默认值。选择一个地址流文件,比如all.din。
  2. 对于不同的Cache容量,分别为2KB、8KB、32KB和128KB,在每种容量下选择不同的Cache块大小(分别为16B、32B、64B、128B和256B)进行实验。分别执行模拟器(点“执行到底”按钮),自己列表记录各种情况下的不命中率。
  3. 分析Cache块大小对不命中率的影响。

Cache容量(KB)/

不命中率(%)/

Cache块大小(B)

2

8

32

128

16

12.02

5.79

1.86

0.95

32

9.87

4.48

1.42

0.60

64

9.36

4.03

1.20

0.43

128

10.49

4.60

1.08

0.35

256

13.45

5.35

1.19

0.34

由表可见,当Cache容量一定时,随着Cache块大小增加,不命中率下降后又上升。这是因为增加块大小会产生双重作用:(1)块存放的自由度增高,减少了强制性不命中;(2)Cache中可存放的块的数目减少,增加了不命中率。当块比较小时,第(1)种作用起主要效果,使不命中率下降;当块比较大时,第(2)种作用效果超过第一种作用,使不命中率上升。

-------------------------------------------------------------------------------------------------------

最后一点碎碎念:如果各位有发现本文有哪处有误或理解不当的地方,敬请指正。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1329109.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

论文解读:Informer-AAAI2021年最佳论文

论文背景 应用背景 训练的是历史数据,但预测的是未来的数据,但是历史数据和未来数据的分布不一定是一样的,所以时间序列应用于股票预测往往不太稳定 动作预测: 基于之前的视频中每一帧动作,预测下一帧这个人要做什么…

Yolov5水果分类识别+pyqt交互式界面

Yolov5 Fruits Detector Yolov5 是一种先进的目标检测算法,可以应用于水果分类识别任务。结合 PyQT 框架,可以创建一个交互式界面,使用户能够方便地上传图片并获取水果分类结果。以下将详细阐述 Yolov5 水果分类识别和 PyQT 交互式界面的实现…

PHP数组定义和输出

数组就是一组数据的集合,把一系列数据组织起来,形成一个可操作的整体。 PHP中的数组与Java的数组不一样,需要有key(键)和value(值),相当于Java中数组和键值对的结合。 数组的定义 …

12.21_黑马数据结构与算法笔记Java

//最近在复习,,java的进度会比较慢一些 目录 219 排序算法 基数排序2 220 排序算法 java排序 221 排序 e01 根据另一个数组次序排序 222 排序 e02 根据出现频率排序 thinking:关于比较器 223 排序 e03 最大间距 解法1(超出内…

千帆 AppBuilder 初体验,不仅解决解决了我筛选简历的痛苦,更是让提效10倍!

文章目录 🌟 前言🌟 什么是百度智能云千帆 AppBuilder🌟 百度智能云千帆 AppBuilder 初体验🌟 利用千帆AppBuilder搭建简历小助手🌟 让人眼前一亮的神兵利器 - 超级助理 🌟 前言 前两天朋友 三掌柜 去北京…

【Linux进阶之路】线程

文章目录 一、初始线程1.概念2.执行3.调度4.切换 二、线程控制1.创建2.等待3.分离4.退出5.取消 三、线程安全1.互斥1.1初始1.2理解1.3锁1.3.1概念1.3.2原理1.3.4死锁 2.同步2.1概念2.2原理 3.生产消费者模型 总结尾序 一、初始线程 1.概念 简单的概念: 线程就是一…

NPOI 导出Excel提示内容有问题的解决方法

NPOI导出Excel 使用Microsoft Excel 打开提示内容有问题,如下: 原因是:在使用NPOI导出excel时,获得 workbook.Write(ms)生成的 MemoryStream后,使用了 ms.GetBuffer()返回文件内容,导致生成的 Excel文件结尾…

关于频谱仪是如何来实现辐射功率测量

1.1 内部基本原理框架 首先是接收到外部信号输入,然后经过可变衰减器衰减,接着进行变频,接着经过带宽带通滤波器进行滤波,滤波后的信号送入检波器进行信号检测,再经对数放大器放大后,送入低通滤波器进行视频…

【网络技术】BGP 基础与概述

该笔记主要作用与 BGP 路由协议的基础和概述讲解,其萌芽作用 参考视频:红茶三杯 关键词阐述:AS 独立自治网络系统机构 前置知识 在我们学习 BGP 路由之前所学习的所有动态路由策略,都同属一个路由类中:IGP BGP 路由协…

位运算:Leetcode137.只出现一次的数字(2)

题目描述: 给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。 示例 1: 输入:nums [2,2,3,2] 输出:3示例 2: 输入&…

【网络安全】学习Web安全必须知道的一本书

【文末送书】今天推荐一本网络安全领域优质书籍。 目录 正文实战案例1:使用Docker搭建LAMP环境实战案例2:使用Docker搭建LAMP环境文末送书 正文 学习Web安全离不开Web,那么,需要先来学习网站的搭建。搭建网站是每一个Web安全学习…

数据结构---算法的空间复杂度

文章目录 空间复杂度概念实例 空间复杂度 概念 空间复杂度也是一个数学表达式,是对一个算法在运行过程中临时占用存储空间大小的量度 。 空间复杂度不是程序占用了多少bytes的空间,因为这个也没太大意义,所以空间复杂度算的是变量的个数。…

超级逼真人脸生成,Stable Diffusion的3个关键技巧

大家好,你是否曾想过,为什么别人可以使用AI图像生成技术生成如此逼真的人脸,而自己的尝试却充满了错误和瑕疵,让人一眼看出是假的。尝试过调整提示和设置,但似乎仍无法与他人的质量相匹配。 本文将带大家了解使用Stab…

提示“由于找不到mfc140u.dll,无法继续执行代码”如何解决?

在计算机使用过程中,我们经常会遇到一些错误提示,其中之一就是找不到某个动态链接库文件,比如mfc140u.dll。这个问题可能会导致某些应用程序无法正常运行或打开。 一、关于找不到mfc140u.dll文件造成会的问题 mfc140u.dll是Visual C中的一个…

【华为鸿蒙系统学习】- HarmonyOS4.0之App项目开发|自学篇

🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 💫个人格言:"没有罗马,那就自己创造罗马~" 目录 创建鸿蒙第一个App项目 项目创建 工程目录区 预览区 运行Hello World 基本工程目录 ws:工…

吴恩达RLHF课程笔记

1.创建偏好数据集 一个prompt输入到LLM后可以有多个回答,对每个回答选择偏好 比如{prompt,answer1,answer2,prefer1} 2.根据这个数据集(偏好数据集),创建reward model,这个model也是一个LLM,并且它是回归模型&#…

ASP.Net实现姓名添加查询(三层架构)

目录 演示功能: 点击启动生成页面 点击搜索模糊查询 点击添加跳转新界面 点击Button添加姓名 步骤: 1、建文件 2、添加引用关系 3、根据数据库中的列写Models下的XueshengModels类 4、DAL下的DBHelper(对数据库进行操作)…

如何选择出最适合的backbone模型?图像分类模型性能大摸底

到2023年图像分类backbone模型已经拓展到了几十个系列,而有的新算法还在采样vgg、resnet做backbone,比如2022年提出的GDIP-YOLO还在用VGG16做IA参数预测,那是在浪费计算资源并限制了模型性能的提升,应该将目光放到现在的最新模型中…

Unity | HybridCLR 热更新(Windows端)

目录 一、准备工作 1.环境相关 2.Unity中配置 二、热更新 1.创建 HotUpdate 热更新模块 2.安装和配置HybridCLR 3.配置PlayerSettings 4.创建热更新相关脚本 5.打包dll 6.测试热更新 一、准备工作 1.环境相关 安装git环境。Win下需要安装visual studio 2019或更高版…

STM32能够做到数据采集和发送同时进行吗?

STM32能够做到数据采集和发送同时进行吗? 在开始前我有一些资料,是我根据自己从业十年经验,熬夜搞了几个通宵,精心整理了一份「STM32的资料从专业入门到高级教程工具包」,点个关注,全部无偿共享给大家&…