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

cache和主存的映射方式

cache和主存的映射方式

全相联映射

主存块可以放在cache的任意位置

假设某个计算机的主存地址空间大小为256MB,按字节编址。

其数据cache有8个cache行,行长64B

由此可知,我们想要求出主存被分为多少块,就用256MB/64B =228/26=2^22

由于主存有28位,那么它就有22位用来表示主存块号,还有剩下6位用来表示块内地址

cache命中判定:

要访问1011010110.....001110

1.主存地址前22位,对比cache中所有块的标记
2.若标记匹配,且有效位=1,则cache命中,访问块内地址位=001110的单元
3.若没有命中,或者有效位=0,那么正常访问主存即可

直接映射

每个主存块只能放到一个特定的位置,cache块号=主存块号%cache总块数

%是取余操作,比如说cache块有8块,他映射主存的10号块的位置,那么10%8=2

假设某个计算机的主存地址空间大小为256MB,按字节编址。

其数据cache有8个cache行,行长64B

此时cache有8个块,当主存块号(二进制)对2^3进行取余 ,那么这个运算结果就相当于我们保留了末尾3位

此时如果主存地址可以映射到cache的0号位置,那么它的末尾三位一定是0

这时候相比全相联映射我们可以把表示主存块号的22位分割成19位标记+3位行号

块内地址依然是6位

此时如果想要访问101.....110001110

1.先根据主存块好找到后3位确定cache行

2.在看如果主存块号的前19位与cache标记匹配且有效位=1,那么cache命中,访问地址为001110的单元

3.若没有命中,或者有效位=0,那么正常访问主存即可

组相联映射

把cache块分组,cache块分为若干块,每个主存块可放到特定分组中任意一个位置,组号=主存块号%分组数

比如说,我们分了4组(0~3),我们要把主存15位置的数据映射到cache,那么就15%4=3,就放到第3组

假设某个计算机的主存地址空间大小为256MB,按字节编址。

其数据cache有8个cache行,行长64B

cache2路组相联映射,2块为1组,分4组

组的数量为22个,那么当主存块号(二进制)对22进行取余,相当于保留了后2位

此时也可以和直接映射一样把主存块号分为22位的标记,和2位的组号

此时如果想要访问101.....10001110

1.根据主存块号后2位,找到cache中的01组

2.如果前20位与分组哪某个标识匹配,且有效位=1,则cache命中,访问地址为001110的单元

3.若没有命中,或者有效位=0,那么正常访问主存即可

标记

为了区分主存块在cache上映射的地址,每个cache块都需要有一个标记,对应它所映射的主存块的位置
标记位如果没有指向,就让它指向0,这时候问题就来了,如果没有另外一个标识,那他们就会默认指向内存块0的位置,这样是不妥的

那么光是有标记还不够,还需要有一个有效位,来辨别这个标记是否有效。

http://www.wxhsa.cn/company.asp?id=802

相关文章:

  • Vue 2 + Element UI 技术栈的管理端项目和Git使用教程
  • 你好
  • 2025年图像、信号处理与机器学习国际学术会议(ISPML 2025)
  • 利用Ampere Altra与SpinKube实现可扩展工作流的突破性实践
  • 有向距离场SDF,在游戏中如何实现agent导航以及绕障
  • ubuntu22.04.5系统重启后网络配置消失问题
  • 第十届计算机技术与机械电气工程国际学术论坛(ISCME 2025)暨2025年泰山学术论坛-鲁东大学微纳传感器及系统专题论坛
  • SLB和NAT网关的作用
  • 基于Python+Vue开发的音乐推荐管理系统源码+运行
  • linux 系统下iperf 测试网卡性能优化步骤
  • FinRL(2)China_A_share_market_tushare.ipynb
  • 应急响应:某网站被挂非法链接
  • 笔记-每天进步一点
  • 用惯了VO,什么时候需要DTO?
  • 剑指offer-29、最⼩的k个数
  • 【初赛】时间复杂度 - Slayer
  • 微调
  • WPF 警惕 StylusPlugIn 的多线程安全问题
  • 【译】Visual Studio 八月更新已发布 —— 更智能的人工智能、更出色的调试功能以及更多控制权
  • RAG or 微调
  • 什么是AI CRM(人工智能客户关系管理)
  • 完整教程:WPF WriteableBitmap 高性能双缓冲图片显示方案
  • PHP 性能优化实战 OPcache + FPM 极限优化配置
  • 多校 3 - 1001. 求和
  • cache的基本原理
  • 【办公自动化】如何使用Python脚本自动化处理音频?
  • 如何用 vxe-table 实现2个树表格可以互相拖拽数据
  • CSP 初赛必背
  • 最新安卓版16音轨简谱编辑器软件使用说明
  • 【URP】Unity超分辨率优化实践