`
henryyang
  • 浏览: 111763 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
文章分类
社区版块
存档分类
最新评论

说好的Cache呢

阅读更多

cache 是一种高速缓冲存储器,她的主要作用是提高 CPU 数据输入的速率,调和 CPU 速度与内存存储速度之间的巨大差异。

通俗一点说就是 CPU 太快,内存速度相对比较慢,而 cache 的速度快,但是 cache 的价格比较昂贵。人们想到一个办法就是利用小容量的 cache CPU 和内存中间当桥梁,也就是说把 CPU 在下一个时间段需要用到的数据提前存入 cache 中,当 CPU 需要的时候可以快速的从 Cache 中取得数据,这样就可以在一定程度上提高计算机的性能。但是怎样才能知道 CPU 在下一个时间段内用到内存中的哪些数据呢?局部性原理就可以解决这个问题。

使用 cache 改善系统性能的依据就是局部性原理。

局部性原理其实在生活中我们非常常用,我们平时所说的人以类聚、物以群分就是局部性原理的通俗表示。也就是说你周围的人都是坏蛋你也好不到哪里去;如果你周围都是好人,你绝对也坏不到哪里去。局部性原理反映在计算机中就是如果 CPU 当前时间用到内存中的某块数据,那么 CPU 在下一个时间段内用到这块数据周围的数据的可能行就非常大。这时 Cache 就派上用场了,把这个时间段中 CPU 用到的这块数据周围的数据存入 Cache 中为下一个时间段的 CPU 使用做准备,这样的话当下一个时间段 CPU 需要数据了就可以直接从存储较快的 Cache 中取得需要的数据,这样自然就提高了计算机的性能。

这里还涉及到一个问题, cache 中的数据和内存中的部分数据是一致的,那么当 CPU cache 中取得数据后怎样知道这块数据在内存中的具体地址呢?于是人们就想到到了映射的方法,将 cache 中的数据按照特定的方式和内存中的数据进行映射,这样 CPU 就很容易找到 Cache 中数据在内存中的真实位置了。

映射的方式目前有三种,通俗一点可以这么来理解。 cache 相当于一个专业里的女生,而内存相当于一个专业的所有男生。大学里一般情况下女生少男生多(这里为了便于理解,把女生人数定为一个宿舍的人数,就是 cache 的容量;男生定为 N 个宿舍的人数,就是内存的容量)。那么所谓的映射就可以这么理解:一个专业的男女同学之间谈恋爱,告诉你女生的信息按照特定的映射方式去找到与这个女生对应的男生。下面逐一介绍这三种映射方式。

  • 直接映像 :

指主存的一个字块只能映像到 Cache 的一个准确确定的字块中。

通俗一点说就是一个宿舍的女生只能和特定的某个男生宿舍的对应男生谈恋爱,例如女生407 和男生407 谈,而且床铺必须一一对应,一号铺的女生对应一号铺的男生,二号铺的女生对应二号铺的男生,以此类推……(好变态哇~~

特点:主存的字块只可以和固定的 Cache 字块对应,方式直接,利用率低。

通俗点说可能就非常容易理解了,这种映射方式就是宿舍对宿舍,八个人对八个人。也就是说这个专业中不是407 宿舍的男生根本没有机会找到自己的恋人(其他非407 的男生表示情何以堪),所以说一个专业的男生中大部分都被浪费了,便宜都让407 占了,所以男生利用率很低。而且由于女生的选择范围小,所以女生很难找到中意的白马王子,所以说命中率很低。


  • 全相联映像 :

指主存的一个字块可以映像到整个 Cache 的任何一个字块中。

特点:贮存中的字块可以和 Cache 的任何字块对应,利用率高,方式灵活,标记位较长,使用成本太高。

通 俗点说就是女生在专业范围内可以随便找男生进行恋爱,没有宿舍条件限制。这样的话由于男生人数多,总要相互比较一下呀。自然找起来时间也就长,需要的成本 当然就高了。但是这样的方式可以基本上保证女生能找到中意的白马王子,也就是说男生利用率提高,基本上优秀的男生会和自己的恋人走到一起。(哦也~


  • 组相联映像 :

是对全相联和直接映像的一种折中的处理方案。既不在主存和 Cache 之间实现字块的完全随意对应,也不在主存和 Cache 之间实现字块的多对一的硬性对应,而是实现一种有限度的随意对应。

特点:折中方案。组间全相联,组内直接映像。集中了两个方式的优点。成本也不太高。最常见的 Cache 映像方式。

通俗一点说就是和直接相连类似,也是一个女生宿舍对应一个男生宿舍,区别在于不必床铺对应床铺,只要在一个宿舍范围内即可。也就是说女生 407 可以找男生 407 的任何人谈恋爱 , 不用考虑床铺限制。(一般变态 ~~



分享到:
评论

相关推荐

    java连接cache数据库说明,数据库驱动,cache可视化工具

    5. **Cache可视化工具**:为了更好地管理和调试Cache数据库,Intersystems提供了名为"Management Portal"的可视化工具。这个Web界面允许用户查看数据库结构、运行查询、监控系统性能等。此外,还有一些第三方工具如...

    Trace_Cache的说明和介绍

    - **降低延迟**:通过提供预处理好的指令序列,Trace Cache可以显著降低处理器等待指令数据的时间。 3. **Trace Cache的变形和研究** 文档中提到的“trace cache研究的几种变形说明”可能涵盖不同的优化策略,...

    PrimoCache重置工具

    若条件允许,购买正式授权是更好的选择。 总之,PrimoCache重置工具为用户提供了在试用期内继续体验高效硬盘缓存的可能。正确使用这款工具,结合PrimoCache的优秀特性,能有效提升系统的整体性能,为日常办公和娱乐...

    cache性能分析实验

    **运行SimpleScalar模拟器**:确保虚拟环境搭建正确,并安装好SimpleScalar模拟器。 2. **基准测试**:在默认配置下运行指定测试程序,并记录总失效次数及各类型失效次数。 3. **调整Cache容量**:分别将Cache...

    cache性能分析实验报告.docx

    总的来说,本实验提供了一个实践平台,让学生通过实际操作深入理解Cache的工作原理和性能优化策略,这对于理解和优化计算机系统的性能至关重要。通过对比不同参数设置下的实验结果,我们可以得出结论,为特定应用...

    Cache性能分析.doc

    通过设置不同的变量,来观察对 Cache 命中率的影响,可以更好地理解 Cache 的基本概念、基本组织结构以及基本工作原理,并掌握降低 Cache 不命中率的各种方法以及这些方法对提高 Cache 性能的好处。 Cache 的基本...

    primocache3.09破解

    primocache3.09+破解批处理,

    PrimoCache v3.09.zip

    本文将深入探讨PrimoCache v3.09的特性和应用,以帮助用户更好地理解和利用这一强大的工具。 一、PrimoCache的工作原理 PrimoCache的基本原理是利用系统内存作为高速缓存,当数据读取时,首先尝试从内存中的缓存...

    logisim及全相联cache设计.rar

    全相联Cache可以用于其中的任一级,但通常在L1 Cache中更常见,因为其灵活性对于提高局部性好的程序性能非常有益。 Logisim是一款流行的电路设计软件,常用于教育领域,帮助学生理解和模拟数字逻辑电路。在本项目中...

    Cache数据库系统开发培训,非常好的资料.zip

    总的来说,“Cache数据库系统开发培训”资料将覆盖Cache的基础理论、开发技巧和实战经验,旨在帮助开发者全面掌握这个强大的数据库系统,提升在实际项目中的应用水平。通过深入学习和实践,开发者能够更好地应对...

    简易的cache模拟器

    总之,这个简易的Cache模拟器项目不仅是一个理论知识的实践,也是提升计算机系统理解和编程技能的好工具。通过实现和调试,开发者可以更直观地感受Cache如何提高计算机性能,为后续的系统优化和硬件设计奠定基础。

    PrimoCache v3.09

    对于那些受限于预算而无法升级至全固态存储系统的用户来说,PrimoCache提供了一个经济且有效的解决方案,让老旧的硬件焕发新生,享受到接近固态硬盘的高速体验。无论是日常办公还是专业应用,PrimoCache v3.09都能...

    supercache2 含注册机

    Cache page size一般来说不太需要动他,选大一点会有比较好的效能,但是空间使用上会比较浪费 Cache size要使用多少记忆体来当cache,最大值请勿超过实体记忆体开机以后所剩下的量,不然会反效果:t: Sort ...

    OpenCV-4.5.5 cache

    在编译OpenCV时,CMake会生成一个名为`CMakeCache.txt`的文件,这个文件包含了所有设置好的编译选项、库路径、依赖项等配置信息。当从源码编译OpenCV时,用户可能会遇到下载依赖库失败的问题,这时“cache”文件的...

    linux 查看 cache 中文件

    在Linux操作系统中,缓存(cache)是一...总的来说,`ftools`是一个能够帮助Linux用户和管理员深入了解和管理系统缓存的工具,通过编译和安装`GCC`,用户可以获得这个强大的功能,从而更好地理解和优化系统的内存使用。

    Cache数据库入门基础

    本教程将带你了解Cache数据库的基础知识,让你在医疗信息化领域中更好地掌握这一核心技术。 **1. Cache数据库概述** Cache数据库是由美国InterSystems公司开发的,其设计目标是为了解决大量实时数据处理的需求。它...

    Supercache+超级缓存使用详解

    在安装 Supercache 之前,需要先安装好重开机,然后在我的计算机里面,把要 cache 的磁盘按右键选内容,接着选择 Performance,然后点击 SuperCache II,最后点击 Start 来设定。 二、设置说明 在 Supercache 的...

    北交计算机体系结构Cache实验报告

    Cache 体系结构实验报告 Cache 体系结构实验报告旨在理解 Cache 的三种映像规则(直接映像、组相连映像、全相连... Cache 模拟器实验结果能够帮助我们更好地理解 Cache 体系结构的工作原理和 Cache 命中率的影响因素。

    npm-cache 文件

    总结来说,npm-cache是npm包管理的重要组成部分,而express、gruntjs、spm分别是Node.js Web开发中的常用工具,它们共同构成了现代前端开发的基础架构。理解并熟练运用这些工具,对于提升开发效率和项目质量至关重要...

Global site tag (gtag.js) - Google Analytics