Cache(高速缓冲存储器)工作原理

cache 的基本概念 cache 是学习 ACE 协议的基础,是 CPU 结构中重要的组成部分。 阅读详情
AI摘要

本文介绍了缓存存储器(Cache)的概念及其存在的意义,并详细解释了三种不同的地址映射方式:全相联映射、直接映射和组相联映射。此外,还讨论了替换算法和写策略等内容。

什么是cache?

cache的中文译名为高速缓冲存储器(快取记忆体),高速缓冲存储器(Cache)其原始意义,是指存取速度比一般随机存取记忆体(ram)来得快的一种ram,一般而言它不像系统主记忆体那样使用DRAM技术,而使用昂贵但较快速的SRAM技术。

cache的存在意义?

CPU发展速度大大快于主存,CPU性能每年增长大约增长50%,符合CPU摩尔定律,而主存每十年提升50%,cache的存在弥补了CPU与主存间的速度不匹配问题。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

地址映射:

在这里插入图片描述
如何映射:
主存中的某一块可以随意放到cache有空位的某一块。

在这里插入图片描述
Q:怎么判断此时要存储的cache行内是否存在数据呢?(命中与未命中)

A:可以通过设置有效位来判断cache行内是否有数据存在。
在这里插入图片描述

Q:还有一个问题,因为我们是在cache内随机存储的,那么该怎么判断这一行数据是代表主存里的哪行数据?

A:数据存储到cache时顺便把蓝色框框里面的主存字块标记也存到cache里面对应的位置,由于整块地址传过去的时候块中间的地址顺序是没有打乱的,所以不需要传输字块内地址(就是图中黑色的部分)。
在这里插入图片描述
在这里插入图片描述
如何映射:
主存当中某一块通过一定的计算方法固定放到cache中固定的某一块。
在这里插入图片描述

但是如图中,连续放到cache第7块后就放满了,假如想要继续放第8块数据,就需要用8这个在主存中的行号除以cache的总行数8,得到的余数0就是接下来主存中的块准备放在cache的行号。

这是也会出现与全相联映射同样的问题,需要在cache中标记这是代表主存中哪一块的数据。

在全相联映射中所选取的标记项包括绿色和蓝色的部分,这是因为全相联映射在cache中只保证了每一行内部的地址顺序,行之间的顺序是乱的。

但是在直接映射中,不仅保证了行内地址的顺序,还保证了8行(图中的例子为8行)为一组之间行的顺序。
在这里插入图片描述

所以,代表cache字块地址的蓝色部分是不需要保存的,只需要保存高位的主存字块标记(绿色部分)即可,如图所示,0行~7行的绿色部分都是000……0,直到主存第8行需要再次保存到cache中第0行的时候,绿色部分才发生了变化。

全相联映射和直接映射的优缺点:

全相联映射因为是有空位就随意放,所以空位的利用率是非常高的;

而直接映射利用率就差了些,比如,放置了第0行后,而且后面7行都还没有存放数据,如果现在想要存放的是主存内第8块数据,由于直接映射的特性,第8块只能被限制存放在cache中第0行,所以,即使后面还有空位也无法存放,只能替换掉cache中第0行的数据。

但是直接映射的优点就是需要额外存放的标记项比较少,同时cache是需要硬件来帮助识别这些对应的位置的,在需要识别的信息比较多的时候电路也是比较复杂的,所以从这两个方面来看,直接映射相比全相联映射是有优势的。

而接下来的第三种方法则综合了前面两种方法的优势。

在这里插入图片描述

如何映射:
先按照编号分组,分完组后再到组内随意存放。

假设:
在这里插入图片描述
也可以说成二路组相联(每组有两块)。
在这里插入图片描述
主存紫色二进制代表cache的组号,蓝色框框作为标记项。

地址映射的总结:

在这里插入图片描述
在这里插入图片描述

cache满了或者准备要存放的位置被占用了该怎么办?

这就需要考虑替换方法了,而替换的方式是根据一定的替换算法来实现的。

替换算法:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

用例题来解析:

一、
在这里插入图片描述
在这里插入图片描述

那么计算机是怎么知道此时有没有命中呢?

内置有相联存储器这个物理器件。
在这里插入图片描述

在放入主存的第5号块后,还需要放置第2号块内存,但是cache内已经放满了,那接下来就需要用到替换算法了,而且不同的替换算法会对cache产生不同的结果。

在这里插入图片描述
在这里插入图片描述
LRU的手动算法:
从后往前看,如果这块号以往出现过,就划掉以往出现的,没有出现过就不用管,然后再从前往后看,第一块没被划掉的就是最近最少使用的块。

二、

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
因为直接映射是相当于对号入座的,所以在映射的时候一旦有冲突就会直接替换掉,不涉及替换策略。

三、

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

写策略:

cache工作原理小结:

简图:
在这里插入图片描述
详细化:
在这里插入图片描述

cache除了有存储体之外,还会有一个cache主存地址映射变换机构,作用就是为了完成上述的地址映射功能,CPU在传送地址的时候可以通过总线把地址同时传送给主存和cache主存地址映射变换机构。
在命中的情况下,地址通过这个映射机构之后就会被翻译成相对应的cache地址,然后cache就能通过这个地址获取到数据,通过数据总线把数据传送给CPU;
在没有命中的情况下,就会用到一个cache替换机构,作用就是完成上述的替换策略,在这个机构的控制下,主存和cache之间会通过一个直接通路进行快速的替换,替换成功后再由cache和CPU之间进行交流,或者也可以直接由主存在替换的过程中把数据传送给CPU。

假设:

现在CPU发出一个地址,想要访问的是主存的3号块,那么根据cache主存地址映射变换机构判断,如果命中,CPU就能直接从cache中获取数据并处理数据,如果是读操作,cache和主存中的数据是不发生变化的,如果是写操作,就涉及到了写策略的问题。

写策略有两种情况:

①写回法: 因为CPU可能会多次修改准备改写的数据,这样的话每次改写都通知主存就会增加工作量,所以可以让cache中的数据被改写不用及时反馈给主存,等全部改写完成再反馈给主存,类似之前的有效位,这样的操作也需要通过设置一个脏位来完成,作用是来表示cache中某一块数据是否被修改,当某一块数据不被需要了,就可以通过脏位来判断这一块数据是被直接覆盖掉还是写回主存。
在这里插入图片描述

②全写法: 当cache中的数据被修改时,对应的把主存的数据也修改了,这样的策略不需要设置脏位,但是由于改写cache数据和改写主存数据的速度差距是很大的,所以一般会增加一个写缓冲,写缓冲的作用就是用来暂存一系列的写回操作,暂存的速度是非常快的,暂存完之后CPU就可以去做其他事情,之后就可以由写缓冲缓慢地写回主存,但是写缓冲也会面临着在写操作的频率过高时发生溢出的情况。
在这里插入图片描述

如果没有命中, 对于写操作,与命中情况一样,对应着两种写策略。

①写分配法: CPU就会发现想要改写的数据不在cache中,会从主存中调入cache,此时调入后再次访问就命中了,由于改写cache数据的速度比直接改写主存数据的速度块,所以就直接改写cache数据,之后与写回法一样,设置一个脏位判断是否写回主存。
在这里插入图片描述

②非写分配法: 直接在主存改写数据,不调入cache。
在这里插入图片描述

写策略小结:
在这里插入图片描述
结合两种写策略的优缺点,可以采用多级cache。
在这里插入图片描述

什么是cache?为什么需要cache?cache存在的合理性 文章目录为什么需要cache?为什么从cache里面读取就能提高cpu的数据处理效率?cache存在的合理性程序的局部性原理什么是cache?cache的工作流程如何写出提高 Cache 命中率的代码?结尾 为什么需要cache? ..这里用一句话概括,CPU的数据处理速度,远远高于从内存中读取数据的速度,也就是说,如果CPU直接从内存中读取数据进行处理,CPU很长一段时间会用在等待数据读取完毕,这显示十分浪费CPU资源的。所以通过cache来缓存一部分数据,CPU读取数据时,先从cache里面找,从而提 阅读详情

相关推荐

cache基础解析

cache 是一个放置在处理器和主存之间的小容量高速存储器阵列。它是一个存储部分最近访问的主存内容的缓冲。相比于系统存储器,处理器在可能的情况下更优先使用cache存储器,以改善系统的平均性能。写缓冲器是一个位于处理器内核与主存之间的非常小的先进先出(FIFO)存储器,它可以把处理器内核与cache存储器从低速的主存写操作中解脱出来。局部性原理说明,程序在执行过程中会频繁运行小范围的循环代码,而这些代码会对数据存储器中的局部数据反复访问。它解释了为什么使用带cache的内核后,系统的平均性能会显著改善。

weixin_55953651的博客 5399

4.2 计算机体系结构——存储层次结构——cache工作原理

cache是小容量、高速缓冲存储器,由SRAM组成,速度几乎和CPU一样快。一般将cache和主存的存储空间都划分为若干大小相同的块

知识,既贵,又便宜。 2万+

存储器3高速缓冲存储器(Cache)

 高速缓冲存储器(Cache)高速缓存是位于CPU和主存之间的高层存储子系统。采用高速缓存的主要目的是提高存储器的平均访问速度,从而使存储器的速度也CPU的速度相匹配。1、Cache的基本工作原理和结构Cache通常由两部分组成,块表和快速存储器。Cache的工作原理是:处理机按主存地址访问存储器,存储器地址的高段通过主存-Cache地址映象机构借助查表判定该地址的存储单元是否在C

1794

磁盘缓存和内存缓存的区别

内存缓存高速缓存(英语:cache,英语发音:/kæʃ/ kash [1][2][3],简称缓存),其原始意义是指访问速度比一般随机存取存储器(RAM)快的一种RAM,通常它不像系统主存那样使用DRAM技术,而使用昂贵但较快速的SRAM技术。原理 Cache一词来源于1967年的一篇电子工程期刊论文。其作者将法语词“cache”赋予“safekeeping storage”的涵义,用于电脑工程领域

Android developer. 2万+

CRISPR筛选全流程指南:从文库构建到数据分析实战

功能基因组学研究需要高效解析基因型与表型的关联,高通量筛选技术是其中的关键工具。基于CRISPR系统的筛选方法通过大规模sgRNA文库扰动基因功能,结合慢病毒递送和测序分析,能够系统鉴定影响细胞增殖、耐药、病毒感染的候选基因。与RNAi或化学小分子筛选相比,CRISPR筛选具有覆盖全基因组、脱靶率低、信号清晰等优势,已广泛应用于药物靶点发现、合成致死和免疫治疗机制研究。本文围绕实验设计与操作中的核心要点展开,涵盖文库扩增、病毒滴度控制、MOI把握、筛选模式选择以及基于MAGeCK的sgRNA丰度分析,并针对

weixin_31188927的博客 285

手写数字数据集MNIST

文章目录一、 简介二、下载MNIST数据集训练集和测试集的长度输出图像数据和标记数据的形状显示手写数字图片输出数据集中的第1个样本显示图片 一、 简介 MNIST是一个非常有名的手写体数字识别数据集(手写数字灰度图像数据集),在很多资料中,这个数据集都会被用作深度学习的入门样例。 MNIST数据集是由0到9的数字图像构成的。训练图像有6万张,测试图像有1万张。MNIST数据集是NIST数据集的一个子集,它包含了60000张图片作为训练数据,10000张图片作为测试数据。由250个不同的人手写而成。 每一张图

qq_37289115的博客 1万+

高速缓冲存储器Cache的工作原理

 Cache的工作原理 1.Cache的引入 请注意下面两种情况: ①大容量主存一般采用DRAM,相对SRAM速度慢,而SRAM速度快,但价格高。 ②程序和数据具有局部性,即在一个较短的时间内,程序或数据往往集中在很小的存储器地址范围内。 因此,在主存和CPU之间可设置一个速度很快而容量相对较小的存储器,如图3.35所示。在其中存放CPU当前正在使用以及一个较短的时间内将要使用的程序和数据,这

Jay Gao 4529

LTE随机接入实战:如何通过PRACH前导码优化小区覆盖半径(附计算公式)

本文深入探讨了LTE网络中PRACH前导码格式对小区覆盖半径的关键影响。通过解析不同前导码格式(如Format 0-3)的物理参数与覆盖能力,提供了核心计算公式与实战Python脚本,指导网络工程师根据覆盖需求、环境多径和容量等因素,科学选择前导码格式以优化边缘用户接入成功率,实现精准的网络规划与优化。

qq_27496129的博客 575

26考研——存储系统_高速缓冲存储器_程序访问的局部性原理 & Cache 的基本工作原理 & Cache 和主存的映射方式(3)

26考研408计算机组成原理——存储系统,持续更新ing

主攻整理408、专升本资料~ 1375

第八篇 永磁同步电机控制-MTPA、MTPV

MTPA 的全称是 Maximum Torque Per Ampere,即 最大转矩电流比控制。核心思想:在输出特定转矩时,通过控制定子电流的幅值和相位(即d轴和q轴电流的分量),使得所需要的定子电流幅值最小。通俗理解:就是用“最省电”的方式产生所需要的力矩。就像开车时,找到一个最合适的油门和档位配合,使得在输出相同动力时,油耗最低。

深耕汽车电子:AUTOSAR、电机控制,助力数字汽车 1874

SAP接口错误查询日志

随着数字经济的迅速发展,企业数字化转型不在只追求“业财一体化”,而是在业务端也想要进行更为精细化的管理,所以很多企业在SAP ERP的基础上,集成更多垂直领域更精细的外围系统,比如销售CRM系统,采购SRM系统,生产MES系统等等,琳琅满目的产品,那对SAP实施来说,系统集成过程中,接口的一些报错查询能力必不可少,今天我们就介绍一下,SAP和CRM系统集成中接口常见的报错。

weixin_43657667的博客 2049

高速缓冲存储器cache的组织方式及工作原理

早期的计算机存储器层次结构只有简单的三层:CPU寄存器组,DRAM主存储器和磁盘存储。不过随着时间的发展,CPU和主存之间的速度差距逐渐增大,系统设计者被迫在CPU寄存器文件和主存之间插入一个容量小但速度快的SRAM高速缓存存储器,我们一般称之为cache。 简单的抽象图如下,一定注意哦,这只是为了方便理解的灵魂抽象图。 cache工作的原理: 程序运行的空间局部性和时间局部性。空间局限性指的是当一条指令正在被执行,在很短的时间内,这条指令周围的指令也会有很大的概率被执行。时间局部性指的是当一条指

zhao_wjh的博客 2529

《Cesium 基础知识点》- 申请 Cesium Ion 密钥

一、访问 https://cesium.com/ion/signin/tokens 二、登录/注册 三、申请 四、使用 // 密钥 let defaultAccessToken = 'your token string'; // 设置 Cesium.Ion.defaultAccessToken = defaultAccessToken; // 初始化 let viewer = new Cesium.Viewer('cesiumContainer', {}); ...

前端技术 2572

3.6 高速缓冲存储器3.6.1程序访问的局部性原理3.6.2Cache 的基本工作原理

加油哦 棒棒哒ε٩(๑⌓̈๑)۶з 各位同学大家好,从这个小节开始,我们要进入这一章的重中之重,大题和小题的高频考点就是cash那之前我们学习了存储系统的一些优化策略,对于储存我们可以用双端口run,还有多模块存储器,这样的方式来提高储存的工作速度,但是无论组成的速度再怎么提高。来提高相比于CPU的读写运算速度,依然这个速度差距是很大的,所以如何解决这个问题,一个比较容易想到的方法是我们可以设计更高速的存储单元,比如说把第1万金片改成S镜片,但是这就意味着我们的存储器价格会更...

江船夜雨听笛的博客 758

fasterlio原理及代码框架梳理

Faster-LIO 的优势是在保持同等高精度的前提下,显著提升计算效率,以支持更极端的应用场景(如高速无人机)和更廉价的硬件平台。可以把 Faster-LIO 理解为用一把更快的“空间哈希筛子”(iVox)替换了原来精细的“动态平衡树”(ikd-Tree),从而在精度损失极小的情况下,实现了效率的显著提升。:只在实际有地图点的空间区域动态创建和保留体素单元,形成一个稀疏的体素地图。是关键:将去畸变点云中的每个点,在 iVox 维护的局部地图中搜索近邻(如5个最近点),构建点到面的距离残差。

Studying…… 246

DaVinci Developer和DaVinci Configurator:AutoSAR开发与配置工具

a. 组件创建:DaVinci Developer允许开发人员创建不同类型的AutoSAR软件组件,如应用软件组件(Application Software Component,SWC)、基础软件组件(Basic Software Component,BSWC)等。除了以上功能,DaVinci Developer和DaVinci Configurator还提供了丰富的文档和代码生成功能,以支持开发人员和配置人员进行文档编写、代码生成和文档浏览等任务。用户可以根据具体需求对软件组件进行灵活的配置。

HmoaAmp的博客 2262

高速缓冲存储器Cache是如何工作的、主要功能、高速缓冲存储器Cache和主存有哪些区别

存储近期可能访问的数据和指令:Cache会存储CPU近期可能访问的数据和指令,当CPU需要访问这些数据或指令时,会首先在Cache中查找,如果找到则直接访问Cache,从而减少对内存的访问次数。未命中:如果CPU要访问的内容不在Cache中,则称为未命中,此时需要访问主存,并将所需的数据或指令调入Cache中,以便下次访问时能够提高速度。Cache中的数据是主存数据的一部分副本,当Cache中的数据更新时,需要确保与主存中的数据保持一致。主存的访问速度相对较慢,但容量较大,用于存储当前运行的程序和数据。

DKPT的博客 1198

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

计算机高速缓冲存储器工作原理,高速缓冲存储器部件结构及原理解析

高速缓冲存储器部件结构及原理解析高速缓存 CACHE用途设置在 CPU 和 主存储器之间,完成高速与 CPU交换信息,尽量避免 CPU不必要地多次直接访问慢速的主存储器,从而提高计算机系统的运行效率。高速缓存 CACHE实现原理把CPU最近最可能用到的少量信息(数据或指令)从主存复制到CACHE中,当CPU下次再用到这些信息时,它就不必访问慢速的主存,而直接从快速的CACHE中得到,从而提高了速度...

weixin_30471581的博客 3501

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

存储系统--高速缓冲存储器cache介绍

主要内容: 高速缓冲存储器的工作原理 告诉缓冲存储器的地址映射 替换策略 写操作策略 高速缓存cache **作用:**解决Cpu与主存速度不匹配的问题。 一、工作原理 程序访问的局部性: 在一段时间内,对局部方位内的存储器频繁访问,而对其他大区域很少访问。 大量的典型程序运行情况分析表明,程序访问具有局部性。 根据程序访问的局部性特点,在cpu与主存之间设置一高速但容量较小的...

weixin_42649617的博客 1347

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

13高速缓冲存储器

3.6 高速缓冲存储器 由于程序的转移概率不会很低,数据分布的离散性较大,所以单纯依靠并行主存系统提高主存系统的频宽是有限的,这就需要从系统结构上进行改进,即采用存储体系,通常将存储系统分为"Cache-主存"层次和"主存-辅存"层次 3.6.1 程序访问的局部性原理 程序访问的局部性原理包括时间局部性和空间局部性.时间局部性是指在最近的未来要用到的信息,很可能是现在正在使用的信息,因为程序中存在循环.空间局部性是指在最近的未来要用到的信息,很可能与现在正在使用的信息在存储空间上是邻近的,因为指令通常是顺序

weixin_46129834的博客 1989

计算机组成原理(笔记8高速缓冲存储器Cache,计算机组成原理的重难点全、直接、组相连)

重点。

m0_72827793的博客 1787

高速缓冲存储器(Cache)是位于CPU和主存之间的一种容量较小但速度很快的存储器

高速缓冲存储器(Cache)是位于CPU和主存之间的一种容量较小但速度很快的存储器。它的主要作用是用来缓解CPU与主存之间速度不匹配的问题,提高系统的整体性能。

[Blog][Domain] programb.blog.youkuaiyun.com 2972

2.6高速缓冲存储器2.6.1cache工作原理

Cache存储器的作用 用于解决CPU和主存之间速度不匹配的问题。 CPU要取数据,先从Cache中查找,,如果每次都能查找到,就相当于CPU是与Cache打交道,变相提高了CPU访问主存的速度。如果没有与主存建立连接查找,然后将访问的数据复制一份到Cache中。 衡量Cache的好坏参数: ...

meternal的博客 334

Cache---高速缓冲存储器

定义:比主存储器体积小但速度快,用于保有从主存储器得到指令的副本——很可能在下一步为处理器所需——的专用缓冲器。 高速缓冲存储器(Cache)其原始意义是指存取速度比一般随机存取记忆体(RAM)来得快的一种RAM,一般而言它不像系统主记忆体那样使用DRAM技术,而使用昂贵但较快

bj_xiufeng的专栏 2584

cache 的工作原理 及与flash RAM的关系

cache 的工作原理 基于上一篇,本小编讲一下cache。如图一个典型系统的硬件组成框图如下: 注:本小编主要讲解部分是绿色部分哦。 概念 高速缓冲存储器(cache),是位于CPU与主内存间的一种容量较小但速度很高的存储器,如上图所示。(CPU <— > 寄存器<— > 缓存<— >内存) 为什么存在cache? 由于CPU的速度远高于主内存,CPU直接从...

qq_34982652的博客 2210
上一篇: 0型文法、1型文法、2型文法、3型文法
下一篇: 指令格式
黄色猴子
博客等级 码龄7年 87粉丝 104原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值