Cache是什么

缓存(cache),原始意义是指访问速度比一般随机存取存储器(RAM)快的一种高速存储器,通常它不像系统主存那样使用DRAM技术,而使用昂贵但较快速的SRAM技术。缓存的设置是所有现代计算机系统发挥高性能的重要因素之一。

Cache是什么

一、Cache是什么

缓存(cache),原始意义是指访问速度比一般随机存取存储器(RAM)快的一种高速存储器,通常它不像系统主存那样使用DRAM技术,而使用昂贵但较快速的SRAM技术。缓存的设置是所有现代计算机系统发挥高性能的重要因素之一。

缓存只是内存中少部分数据的复制品,所以CPU到缓存中寻找数据时,也会出现找不到的情况(因为这些数据没有从内存复制到缓存中去),这时CPU还是会到内存中去找数据,这样系统的速率就慢下来了,不过CPU会把这些数据复制到缓存中去,以便下一次不要再到内存中去取。随着时间的变化,被访问得最频繁的数据不是一成不变的,也就是说,刚才还不频繁的数据,此时已经需要被频繁的访问,刚才还是最频繁的数据,又不频繁了,所以说缓存中的数据要经常按照一定的算法来更换,这样才能保证缓存中的数据是被访问最频繁的。

二、主要意义

缓存工作的原则,就是“引用的局部性”,这可以分为时间局部性和空间局部性。空间局部性是指CPU在某一时刻需要某个数据,那么很可能下一步就需要其附近的数据;时间局部性是指当某个数据被访问过一次之后,过不了多久时间就会被再一次访问。对于应用程序而言,不管是指令流还是数据流都会出现引用的局部性现象。

举个简单的例子,比如在播放DVD影片的时候,DVD数据由一系列字节组成,这个时候CPU会依次从头处理到尾地调用DVD数据,如果CPU这次读取DVD数据为1分30秒,那么下次读取的时候就会从1分31秒开始,因此这种情况下有序排列的数据都是依次被读入CPU进行处理。从数据上来看,对于Word一类的应用程序通常都有着较好的空间局部性。用户在使用中不会一次打开7、8个文档,不会在其中某一个文档中打上几个词就换另一个。大多数用户都是打开一两个文档,然后就是长时间对它们进行处理而不会做其他事情。这样在内存中的数据都会集中在一个区域中,也就可以被CPU集中处理。

从程序代码上来考虑,设计者通常也会尽量避免出现程序的跳跃和分支,让CPU可以不中断地处理大块连续数据。游戏、模拟和多媒体处理程序通常都是这方面的代表,以小段代码连续处理大块数据。不过在办公运用程序中,情况就不一样了。改动字体,改变格式,保存文档,都需要程序代码不同部分起作用,而用到的指令通常都不会在一个连续的区域中。于是CPU就不得不在内存中不断跳来跳去寻找需要的代码。这也就意味着对于办公程序而言,需要较大的缓存来读入大多数经常使用的代码,把它们放在一个连续的区域中。如果缓存不够,就需要内存中的数据,而如果缓存足够大的话,所有的代码都可以放入,也就可以获得较高的效率。同理,高端的数据应用以及游戏应用则需要更高容量的缓存。

延伸阅读

工作原理

1、读取顺序

CPU要读取一个数据时,首先从Cache中查找,如果找到就立即读取并送给CPU处理;如果没有找到,就用相对慢的速度从内存中读取并送给CPU处理,同时把这个数据所在的数据块调入Cache中,可以使得以后对整块数据的读取都从Cache中进行,不必再调用内存。

正是这样的读取机制使CPU读取Cache的命中率非常高(大多数CPU可达90%左右),也就是说CPU下一次要读取的数据90%都在Cache中,只有大约10%需要从内存读取。这大大节省了CPU直接读取内存的时间,也使CPU读取数据时基本无需等待。总的来说,CPU读取数据的顺序是先Cache后内存。

2、缓存分类

Intel从Pentium开始将Cache分开,通常分为一级高速缓存L1和二级高速缓存L2。在以往的观念中,L1 Cache是集成在CPU中的,被称为片内Cache。在L1中还分数据Cache(D-Cache)和指令Cache(I-Cache)。它们分别用来存放数据和执行这些数据的指令,而且两个Cache可以同时被CPU访问,减少了争用Cache所造成的冲突,提高了处理器效能。

3、读取命中率

CPU在Cache中找到有用的数据被称为命中,当Cache中没有CPU所需的数据时(这时称为未命中),CPU才访问内存。从理论上讲,在一颗拥有2级Cache的CPU中,读取L1 Cache的命中率为80%。也就是说CPU从L1 Cache中找到的有用数据占数据总量的80%,剩下的20%从L2 Cache读取。由于不能准确预测将要执行的数据,读取L2的命中率也在80%左右(从L2读到有用的数据占总数据的16%)。那么还有的数据就不得不从内存调用,但这已经是一个相当小的比例了。在一些高端领域的CPU(像Intel的Itanium)中,我们常听到L3 Cache,它是为读取L2 Cache后未命中的数据设计的—种Cache,在拥有L3 Cache的CPU中,只有约5%的数据需要从内存中调用,这进一步提高了CPU的效率。

文章标题:Cache是什么,发布者:E.Z,转载请注明出处:https://worktile.com/kb/p/62015

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
E.ZE.Z认证作者
上一篇 2023年7月27日 下午8:53
下一篇 2023年7月27日

相关推荐

  • 产品管理如何与市场营销协同工作

    在当今商业环境下,产品管理与市场营销的协同工作是企业获得成功的关键。本文通过分析1、双方角色的相互补充;2、共享市场情报;3、协调一致的品牌信息传递;4、配合执行战略上市计划;5、共同策划和参与市场反馈机制等核心观点,探讨了这种协同如何实现并对企业成长带来的益处。产品管理的专注在于产品的规划与交付,…

    2023年11月15日
    35900
  • ug编程刀口用什么洗好

    UG编程中刀口的清洗通常采用以下方法:1、使用清洗液,2、超声波清洗,3、纯净水冲洗。这里重点展开第一种方法:使用清洗液进行清洗。在工业生产中,尤其是精密加工领域,保持刀具的洁净对于保证加工质量至关重要。清洗液可以有效去除刀口上的切削液残留、金属颗粒以及其他杂质。一般来说,清洗液都含有专门的化学成分…

    2024年4月27日
    1100
  • dns服务器是什么

    dns服务器是指域名服务器,是进行域名和与之相对应的IP地址转换的服务器,它是一种管理名字的方法,这种方法是分不同的组来负责各子系统的名字,系统中的每一层叫做一个域,每个域用一个点分开,dns实际上就是装有域名系统的主机,它是一种能够实现名字解析的分层结构数据库。 一、dns服务器是什么 dns服务…

    2023年7月22日
    43800
  • 为什么学多门编程语言很难

    学习多门编程语言难度较高的主要原因有3个:1、语法和结构的差异性;2、学习和应用上的认知负荷;3、上下文切换的成本。重点探究语法和结构的差异性,每种编程语言都有其独特的设计哲学、语法规则和使用场景。例如,面向对象语言如Java与函数式编程语言如Haskell在思维模式和代码结构上会有显著不同。这种差…

    2024年4月27日
    1300
  • 如何制定产品定价策略

    制定产品定价策略涉及多个决策因子,是确保公司盈利能力的关键。1、成本加成定价通过确保每件产品销售额覆盖成本并赚取利润;2、竞争者定价对标行业内的同类产品价格,保持竞争力;3、价值定价侧重于产品对消费者实际提供的价值定价;4、需求定价根据市场需求的变化相应调整价格;5、动态定价采取灵活的价格策略以适应…

    2023年11月15日
    49700
  • 网络编程达人的博客是什么

    网络编程达人的博客是一个提供编程教程、技术分享、最新编程趋势分析及问题解决方案的在线资源平台。 在这个博客上,一位网络编程达人可能会详细讲解如何高效使用网络编程技术,比如TCP/IP协议、Socket编程以及异步编程模型等。这些内容对初学者和专业开发者来说都是宝贵的学习资源。 例如,该达人可能会详细…

    2024年4月27日
    1000
  • 编程适合什么人看的书

    编程适合具备解决问题能力、逻辑思维强、热爱学习、耐心与细致、创造欲望以及乐于合作的人。以解决问题能力为例,编程本质上是解决现实世界问题的过程。程序员需要不断地面对各种挑战,他们必须能分析问题、设计算法,以及编写和调试代码来找到有效的解决方案。这一能力对于编程至关重要,因为它是编码实践中经常会遇到的核…

    2024年4月28日
    500
  • 孩子学习编程有什么好

    孩子学习编程有三大好处:1、培养逻辑思维能力;2、增加创造力;3、提高解决问题的能力。 其中,培养逻辑思维能力尤为重要。逻辑思维是学习编程的基础,通过学习编程,孩子们可以学会如何按照逻辑思考问题,并将复杂的问题分解成小的、可管理的部分,从而逐步找到解决问题的方法。这种能力不仅仅适用于计算机科学领域,…

    2024年4月27日
    1300
  • 什么是PMC管理

    pmc管理模式是指对生产及物料控制。通常它分为两个部分:PC和MC。PC:生产控制或生产管制(台、日资公司俗称生管)。主要职能是生产的计划与生产的进度控制。MC:物料控制(俗称物控),主要职能是物料计划、请购、物料调度、物料的控制(坏料控制和正常进出用料控制)等。 一、什么是PMC管理 pmc管理模…

    2023年7月28日
    1.1K00
  • 为什么数字足迹至关重要

    数字足迹重要是因为:它们是相对永久性的,一旦这些数据公开 – 甚至是半公开,就像 Facebook 帖子那样 – 所有者几乎无法控制其他人如何使用这些数据。数字足迹可以确定一个人的数字声誉,现在人们认为这与他们的线下声誉一样重要。 数字足迹十分重要,因为: 它们是相对永久性的…

    2022年10月23日
    61700

发表回复

登录后才能评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部