【计算机组成】Cache与CPU的直接映射、全相联映射与组相联映射

news2024/11/16 7:30:52

一.Cache与CPU需要映射的原因

        CPU准备访问内存时,会先问问cache存储器有没有已经提前准备好了数据,如果没有则再找内存要:

        如果Cache刚好命中,则直接从Cache中读取数据:

        如果Cache没有命中(Cache失效),则CPU再去找内存要:

        但通常来说,因为Cache(容量小,速度快)和内存的容量(容量大,速度较Cache略慢)不一样,导致Cache和内存记录数据存储方式不一样,而CPU一般只认识内存的记录方法:

        所以就有了Cache与内存的地址映射,方便CPU直接找数据:

二.什么是Cache与CPU的映射

         Cache的地址映射中,会以Cache的容量为标准将内存分成相同大小的块(页或者区),根据映射方法的不同,地址的表达方式也不同,常见的映射方式分为:直接映射、全相联映射和组相联映射。

三.直接映射

        先把映射方式写出来,再详细介绍:

        主存映射如下: 

        直接映射顾名思义,就是直接把内存的地址“直接”原封不动地放到Cache中,但问题来了,Cache可没有主存那么大的容量,怎么“直接”放呢?后来人们就想到一个办法,把内存分成好几区,每一区就刚刚好是Cache的容量大小,根据空间局部性原理时间局部性原理将不同的区放到Cache中去,如果CPU需求的块刚好存在了Cache里,就说这是“命中了”,如果没有,就说是“失效”了。

        如内存容量为1G,Cache容量为8M,采用直接映射方式就可以将内存分为(1G/8M=128)128块,至于128块中要把哪块分到Cache里面去,就是资源调度需要做的事情了。所以,地址映射中就有“区号”(也称之为块)这个部分,让Cache知道这个区块是从CPU哪个地方拿下来的:

       但这样做的一个缺点是,每个区块的页都是固定位置的,如主存中每个区的第 0 页,只能进入到 Cache 的第 0 页。若当前时刻 Cache 中 0 号页已被占据,而 1 到15 页空闲,现在要将 1 区第 0 页(即内存的 16 页)调入 Cache 是会发生冲突的。所以直接映像的区块冲突率非常高

        最后举个例子,如果你想找到一本书里面的某个句子,先找到第几章(区号)后,再找是第几页(页号)中的第几段(页内地址),就能找到你所要的句子,这就是直接映射的地址映射方式。

四.全相联映射

        全相联映像使用相联存储器(什么是相联存储可以参考我之前写的文章:【计算机组成】三分钟了解顺序存储、直接存储、随机存储和相联存储的区别)组成的 Cache 存储器。全相联映像方式很简单,就是主存的每一页可以映像到 Cache 的任一页。如果淘汰 Cache 中某一页的内容 ,则可调入任一主存页的内容:

        没有直接映射方式的分区,是一页一页地放进Cache里面去,所以地址映射比较简单:

        全相联映射最大的缺点是采用了相联存储的方式,也就是按内容访问(要是不懂的快去看看我上面发的那个连接!!)的方式进行搜索,在进行搜索时,主存地址不能直接提取 Cache 页号,而是需要将主存页标记与Cache 各页的标记逐个比较,直到找到标记符合的页(访问 Cache 命中),或者全部比较完后仍无符合的标记(访问 Cache 失败)。因此这种映像方式速度很慢,失掉了高速缓存的作用,这是全相联映像方式的最大缺点。如果让主存页标记与各 Cache 标记同时比较,则成本又太高

五.组相联映射

        组相联映射则是集以上两者映射方式之大成,即分区又分组,组内可以随意调换位置,很好了折中了直接映射和全相联映射的最大缺点,同时又拥有自己的新东西(分组),使得CPU读取变得更为灵活。怎么分组呢?就是在分完区之后,再在区块里面分组,分多少组就得看看Cache的容量有多大,分完组后,组内的页可以随意调换位置,没有特定的限制:

        组相联映像的规则是:主存中的组与Cache 的组形成直接映像关系,而每个组内的页是全相联映像关系。如主存 1区 0页,他在 0组中,所以只能进入 Cache的 0组中,至于进入到 Cache的 0组 0页,还是 0组 1页,并无强制要求,可任意放置。

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

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

相关文章

时序数据库InfluxDB快速入门使用

推荐博客: Influxdb中文文档 linux安装influxdb Influxdb安装、启动influxdb控制台、常用命令、Influx命令使用、Influx-sql使用举例、Influxdb的数据格式、Influxdb客户端工具 1.安装 1、influxdb数据库官网的下载链接: https://portal.influxdata.c…

如何利用MES系统进行生产防呆防错?

一、认识MES系统的防呆防错功能 首先,我们要清楚了解,什么是MES系统的防呆防错。MES系统防呆防错是指利用MES系统来避免生产过程中的错误和缺陷,保障生产排程和生产过程顺利进行的过程。MES系统防呆防错包括以下方面: 1. 自动识别…

relation-graph关系图谱组件2.0版本遇到的问题

前提:之前已经写过一篇1.1版本的问题,这里就不过多讲了(如果想要解决火狐低版本兼容,看那个就行) 这次主要讲的是和1.X版本的区别和一些其它问题 区别 参数名不同:以前的links>lines (虽然现在links也…

遇见未来,降低职场焦虑——中国人民大学与加拿大女王大学金融硕士来助力

身在职场的你有感到一丝丝的焦虑吗?偶尔的小焦虑可以作为我们工作中的动力,时刻提醒我们保持奋进。预见未来才能遇见未来,随着社会经济不断发展,没有什么是一成不变的。处于职场上升期的我们更要懂得未雨绸缪,增加自身…

ClickHouse集群搭建总结

简介 ClickHouse是俄罗斯最大的搜素引擎Yandex于2016年开源的列式数据库管理系统,使用C 语言编写, 主要应用于OLAP场景。 使用理由 在大数据量的情况下,能以很低的延迟返回查询结果。 笔者注: 在单机亿级数据量的场景下可以达到毫秒级的查询…

SpringCloudAlibaba 微服务生态

一 微服务架构 1.1 微服务 微服务其实是一种架构风格,我们在开发一个应用的时候这个应用应该是由一组小型服务组成,每个小型服务都运行在自己的进程内;小服务之间通过HTTP的方式进行互联互通。 1.2 微服务架构的常见问题 一旦采用微服务系…

ChatGPT 之后,B 端产品设计会迎来颠覆式革命吗?| Liga妙谈

近日,脑机接口公司 Neuralink 宣布,其植入式脑机接口设备首次人体临床研究已被准许启动。遥想当年,我们还嘲讽罗老师「动嘴做 PPT」,谁曾想不久后我们可能连嘴都不用动🙊。 脑机接口何时会引爆人机交互革命尚未可知&a…

简述三观;

文章目录 三观世界观人生观价值观三观不合怎么看三观不正: 教养育儿教育心智不成熟的表现 三观 指人生观,世界观和价值观; https://wenku.baidu.com/view/102a655fd4bbfd0a79563c1ec5da50e2534dd1d8.html?fraladdin664466&ind1&_wkts_1685949448098&…

深入理解API网关Kong:动态负载均衡配置

深入理解API网关Kong:动态负载均衡配置 背景 在 NGINX 中,负载均衡的配置主要在 upstream 指令中进行。upstream 指令用于定义一个服务器群组和负载均衡方法。客户端请求在这个服务器群组中进行分发。 NGINX 提供了以下几种负载均衡方法: …

python接口自动化 —— 什么是接口、接口优势、类型(详解)

简介 经常听别人说接口测试,接口测试自动化,但是你对接口,有多少了解和认识,知道什么是接口吗?它是用来做什么的,测试时候要注意什么?坦白的说,笔者之前也不是很清楚。接下来先看一下…

从简历被拒到收割 8 个高薪 offer,我用了 3 个月...

半年前我一个小老弟从外包离职了,本以为有两年经验进个一般的公司没有问题的,结果人家一看是外包出来的,面试问的问题也不是很懂,简历被拒了好几次。还好这个小老弟没有气馁,在论坛博客和里面的大佬虚心学习&#xff0…

地震勘探基础(八)之地震动校正

地震动校正 在地震资料数字处理过程中,速度分析,动校正和水平叠加三个处理内容是相互关联的。水平叠加是为了提高地震资料的信噪比,要想得到好的叠加效果,必须做好动校正。而做好动校正,需要进行准确的速度分析。只有…

Tomcat部署

目录 Tomcat 什么是 servlet? 什么是 JSP? Tomcat 功能组件结构: Container 结构分析: Tomcat 请求过程: ---------------------Tomcat 服务部署------------------------- 1.关闭防火墙,将安装 Tomcat 所需软…

长尾词挖掘,长尾词的优化方法有哪些

我们都知道,长尾词能给我们带来较高的流量和转化率,且优化难度低,成本低。今天就来分享长尾词的优化方法。 首先需要挖掘长尾词,挖掘长尾词的方法以下3种比较实用: 1、使用长尾词挖掘工具 可以通过第三方工…

ROS:tf坐标系广播与监听的编程实现

目录 一、创建功能包二、创建代码并编译运行(C)2.1创建代码2.2编译2.3运行 一、创建功能包 创建的 learning_tf 包来进行代码存放和编译 cd ~/catkin_ws/src catkin_create_pkg learning_tf roscpp rospy tf turtlesim二、创建代码并编译运行&#xff…

银行业务相关

省联社,农商行、农村信用社之间的关系 一些知乎回答 省联社、农商行、农村信用社之间有什么联系? - mobye的回答 - 知乎 https://www.zhihu.com/question/24220844/answer/28276903 发源于空想社会主义,世界上第一个信用合作社诞生于1984年的…

第9章集 合

文章目录 9.1 Java集合框架9.1.1 集合接口与实现分离9.1.3 迭代器9.1.4 泛型实用方法 9.2 集合框架中的接口9.3.1 链表9.3.2 数组列表9.3.3散列集9.3.4 树集9.3.5 队列与双端队列9.3.6 优先队列 9.4 映射9.4.1 基本映射操作9.4.2 更新映射条目9.4.3 映射视图9.4.4 弱散列映射9.…

python数据可视化-matplotlib学习总结

目录 (一)常见的图形 1、趋势图(直线图):plot() 2、散点图:scatter(): (二)统计图形 1、柱状图:bar( 2、条形图:barh() 3、直方图&#xff…

RSA加密算法解析

目录 RSA加密 数学原理 证明: 欧拉函数 欧拉定理 模反元素 模运算 指数运算 同余 欧几里德算法GCD 填充(padding) 对称加密的应用工作流程 非对称加密的应用工作流程 1)加密过程 2)解密过程 代码实现 密码学知识扩展 加密体制 如何破解…

亚马逊云科技出海日倒计时,潮向新世界,亮点抢先知

数字化浪潮之下,中国企业的全球化步伐明显提速。从“借帆出海”到“生而全球化”,中国企业实现了从传统制造业“中国产品”出口,向创新“中国技术”和先导“中国品牌”的逐步升级。 作为全球云计算的开创者与引领者,亚马逊云科技…