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日

相关推荐

  • 如何创建有效的网站导航结构

    本文将探讨如何创建有效的网站导航结构,这是网站用户体验和信息架构(IA)中的核心组件。在设计中,有五个核心观点必须被考虑,这些包括:简洁性(1)、直觉性(2)、一致性(3)、可达性(4)和可扩展性(5)。简洁性要求网站导航应精简选项以避免过载。直觉性关注用户能够轻松找到所需信息。一致性是关于导航从一…

    2023年11月16日
    800
  • MySql有什么有效的优化参数设置的方法

    方法有:一、开启查询缓存;二、调整连接线程池大小;三、 调整InnoDB缓存池大小;四、调整MyISAM缓存大小;五、调整查询缓存大小;六、调整最大连接数;七、调整表缓存大小;八、调整临时表大小;九、调整排序缓存大小;十、调整线程栈大小。 一、开启查询缓存 查询缓存可以将查询结果缓存到内存中,以便在…

    2023年5月30日
    7400
  • 为什么redis比mysql快

    Redis比MySQL快的主要原因在于其特殊的数据结构和存储机制,包括:1. 内存存储;2. 数据结构优化;3. 单线程模型;4. 无需磁盘I/O操作;5. 支持多种数据类型;6.简化的查询语言;7.持久化策略的灵活性。内存存储让Redis可以快速访问和操作数据,因为相比磁盘,内存的读写速度要迅速得…

    2023年7月12日
    21700
  • 进度计划编制软件有哪些

    进度计划编制软件有:1、广联达斑马进度计划;2、翰文进度计划编制系统;3、品茗智绘进度计划软件;4、施工进度计划表;5、鲁班进度计划;6、筑业进度计划软件。广联达斑马进度计划属于工程建筑的管理软件,能够为大家带来更为高效的网络计划。

    2023年1月4日
    1.4K00
  • 如何搭建wiki在线文档

    搭建wiki在线文档的步骤:一、选择Wiki软件;二、安装Wiki软件;三、配置Wiki;四、编写文档;五、分享文档。首先需要选择一个Wiki软件。一些流行的Wiki软件包括MediaWiki, DokuWiki和Confluence。需要考虑个人自身的需求以及团队的技术水平来选择合适的软件。 一、…

    2023年3月21日
    71300
  • PM和PO有什么区别

    PM与PO的区别有:1、定义与角色;2、主要职责;3、所在团队;4、决策权限;5、所需技能;6、交互对象。其中,定义与角色指的是这两者在团队中扮演的不同角色,PM一般是项目管理,而PO则是产品负责人。 1、定义与角色 PM(项目经理):负责管理项目的整体进度、资源和风险,确保项目能够按时、按质、按预…

    2023年7月30日
    62100
  • 抽象类和接口的区别是什么

    抽象类和接口是面向对象编程中两个核心概念,它们都不能被实例化,但是有许多不同点:1.继承和实现的差异;2.属性的存在与否;3.访问修饰符的限制;4.继承的限制;5.功能的定义与实现。其中,抽象类可以拥有成员变量和具体方法的实现,而接口通常只定义方法的签名。 1.继承和实现的差异 抽象类是使用 ext…

    2023年7月16日
    37000
  • ChatGPT如何在游戏开发中被应用

    ChatGPT在游戏开发领域主要的应用体现在 内容生成、玩家交互、开发支持、和测试反馈这四个核心指标上。通过 1、 利用自然语言处理技术生成游戏故事、对话和任务;2、 提供实时的玩家交互和客服支持;3、 协助开发者撰写和优化代码,提高开发效率;4、 作为测试者提供游戏的即时反馈和bug报告,Chat…

    2023年11月28日
    400
  • 协同办公工具中的AI和机器学习功能有何用途

    协同办公工具中集成的AI(人工智能)和机器学习功能极大地提升了工作效率和决策质量。这些工具能够通过一系列核心用途实现智能化办公体验。核心功能主要包括:1、自动化任务执行;2、数据分析与洞察;3、自然语言处理;4、智能搜索和信息检索;5、个性化工作体验。人工智能能够通过识别工作模式和优化日常任务来简化…

    2023年11月20日
    600
  • 如何进行有效的协同办公培训和指导

    摘要:在快节奏的工作环境中,有效的协同办公培训和指导已成为提升团队协作效率与创新能力的关键所在。本篇文章旨在探讨此类培训和指导的实施策略,重点聚焦于1、需求分析、2、定制培训计划、3、采用混合式学习、4、培养沟通与反馈文化、5、持续追踪与评估五大要素。在需求分析阶段,重在识别员工与团队的具体需求并制…

    2023年11月20日
    1700

发表回复

登录后才能评论
站长微信
站长微信
电话联系

400-800-1024

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

分享本页
返回顶部