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

cache映射

从主存到cache

假设把每个内存块分为4份,每次从主存中读取都是以块为单位,一次读取一个块。
(因为根据空间的局部性原理,当需要用到一个地址时,后续很大概率要用到其相邻的地址,因此一次读取一个块这种预读操作可以减少读取次数并提高缓存的命中率)
在这里插入图片描述

cache映射

直接映射

主存中的每一个块只能被放置到Cache中唯一的一个指定位置。
若这个位置已有内容,则产生块冲突,原来的块将无条件地被替换出去。

直接映像的块冲突概率最高。因为每个主存块只能映射到指定的Cache块,当多个主存块试图映射到同一个Cache位置时,就会发生冲突。

组相联映射

将Cache空间分成大小相同的组,主存的一个数据块可以装到对应的cache组内的任一个位置,即组间采取直接映射,组内采取全相联映射。

组相联映像是直接映像和全相联映像的折中。

组相联映像的块冲突概率介于直接映像和全相联映像之间。在组内,块冲突概率较低,因为类似于全相联映像,主存块可以映射到组内的任意位置;但在组间,块冲突概率则较高,因为类似于直接映像,每个主存块只能映射到特定的组

2个块为一组则称为二路组相联
8个块为一组则称为八路组相联

全相联映射

主存中的任何一个块均可以映像装入到Cache中任何一个块的位置上。
这种方式灵活,Cache的块冲突概率最低、空间利用率最高。

全相联映像的块冲突概率最低。因为主存块可以映射到Cache中的任意位置,只要Cache中有空闲区,都能调入,所以只有当Cache块全部满了时才会发生冲突

主存物理地址 = 标记 + 块内地址
主存物理地址 = 标记 + 组号 + 块内地址
主存物理地址 = 标记 + cache行号 + 块内地址

相关文章:

  • 【python】OpenCV—Feature Detection and Matching
  • 速锐得解码汽车以太网技术特点接口定义数据传输及应用
  • Redis+定式任务实现简易版消息队列
  • 学习笔记——动态路由——OSPF(工作原理)
  • 安全与加密常识(0)安全与加密概述
  • Ubuntu20.04 有线网络图标消失解决方案
  • 知识图谱的构建与应用
  • JS面试题5——JS继承有哪些方式
  • Android studio Logcat 功能介绍
  • springboot中使用springboot cache
  • iOS端授权页添加自定义按钮
  • android 是Application类先运行还是AndroidManifest.xml中action先运行?Application类先运行
  • 计算机公共课面试常见问题:线性代数篇
  • 计算机视觉 | 基于图像处理和边缘检测算法的黄豆计数实验
  • TS_开发一个项目
  • avalon2.2的VM生成过程
  • ECMAScript 6 学习之路 ( 四 ) String 字符串扩展
  • GraphQL学习过程应该是这样的
  • laravel with 查询列表限制条数
  • Selenium实战教程系列(二)---元素定位
  • Spring Boot MyBatis配置多种数据库
  • 闭包--闭包之tab栏切换(四)
  • 从 Android Sample ApiDemos 中学习 android.animation API 的用法
  • 从零开始在ubuntu上搭建node开发环境
  • 对象管理器(defineProperty)学习笔记
  • 深入 Nginx 之配置篇
  • 使用 Node.js 的 nodemailer 模块发送邮件(支持 QQ、163 等、支持附件)
  • 新书推荐|Windows黑客编程技术详解
  • 在Docker Swarm上部署Apache Storm:第1部分
  • 【云吞铺子】性能抖动剖析(二)
  • 7行Python代码的人脸识别
  • ​LeetCode解法汇总2304. 网格中的最小路径代价
  • # 深度解析 Socket 与 WebSocket:原理、区别与应用
  • #laravel 通过手动安装依赖PHPExcel#
  • #ubuntu# #git# repository git config --global --add safe.directory
  • #快捷键# 大学四年我常用的软件快捷键大全,教你成为电脑高手!!
  • #如何使用 Qt 5.6 在 Android 上启用 NFC
  • #中的引用型是什么意识_Java中四种引用有什么区别以及应用场景
  • (16)Reactor的测试——响应式Spring的道法术器
  • (cljs/run-at (JSVM. :browser) 搭建刚好可用的开发环境!)
  • (Redis使用系列) Springboot 使用Redis+Session实现Session共享 ,简单的单点登录 五
  • (附源码)ssm经济信息门户网站 毕业设计 141634
  • (四)汇编语言——简单程序
  • (转)关于如何学好游戏3D引擎编程的一些经验
  • .[hudsonL@cock.li].mkp勒索加密数据库完美恢复---惜分飞
  • .Net 中Partitioner static与dynamic的性能对比
  • .Net+SQL Server企业应用性能优化笔记4——精确查找瓶颈
  • .NET大文件上传知识整理
  • .NET应用架构设计:原则、模式与实践 目录预览
  • @Controller和@RestController的区别?
  • @transactional 方法执行完再commit_当@Transactional遇到@CacheEvict,你的代码是不是有bug!...
  • [ vulhub漏洞复现篇 ] JBOSS AS 5.x/6.x反序列化远程代码执行漏洞CVE-2017-12149
  • [2017][note]基于空间交叉相位调制的两个连续波在few layer铋Bi中的全光switch——
  • [20181219]script使用小技巧.txt
  • [202209]mysql8.0 双主集群搭建 亲测可用