0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Cache工作原理是什么

麦辣鸡腿堡 来源:TrustZone 作者:TrustZone 2023-10-31 11:34 次阅读

具有Cache的计算机,当CPU需要进行存储器存取时,首先检查所需数据是否在Cache中。如果存在,则可以直接存取其中的数据而不必插入任何等待状态,这是最佳情况,称为高速命中;

当CPU所需信息不在Cache中时,则需切换存取主储器,由于速度较慢,需要插入等待,这种情况称高速未命中;

在CPU存取主存储器的时候,按照最优化原则将存储信息同时写入到Cache中以保证下次可能的高速缓存命中。

因此,同一数据可能同时存储在主存储器和Cache中。同样,按照优化算法,可以淘汰Cache中一些不常使用的数据。

传统的Socket架构通常采用两级缓冲结构,即在CPU中集成了一级缓存(L1Cache),在主板上装二级缓存(L2 Cache),而SlotⅠ架构下的L2 Cache则与CPU做在同一块电路板上,以内核速度或者内核速度的一半运行,速度比Socket下的以系统外频运行的L2 Cache更快,能够更大限度发挥高主频的优势,当然对Cache工艺要求也更高。

•CPU首先在L1 Cache中查找数据,如找不到,则在L2Cache中寻找。

•若数据在L2 Cache中,控制器在传输数据的同时,修改L1Cache;

•若数据既不在L1 Cache中,又不在L2 Cache中,Cache控制器则从主存中获取数据,将数据提供给CPU的同时修改两级Cache。

•K6-Ⅲ则比较特殊,64KB L1 Cache,256KB Full Core Speed L2 Cache,原先主板上的缓存实际上就成了L3 Cache。

根据有关测试表明:

当512K2MB的三级缓存发挥作用时,系统性能还可以有2%10%的提高;

Tri-level成为PC系统出现以来提出的解决高速CPU与低速内存之间瓶颈最为细致复杂的方案;而且,今后Cache的发展方向也是大容。

在主存-Cache存储体系中,所有的指令和数据都存在主存中,Cache只是存放主存中的一部分程序块和数据块的副本,只是一种以块为单位的存储方式。

Cache和主存被分为块,每块由多个字节组成。

由上述的程序局部性原理可知,Cache中的程序块和数据块会使CPU要访问的内容在大多数情况下已经在Cache中,CPU的读写操作主要在CPU和Cache之间进行。

CPU访问存储器时,送出访问单元的地址,由地址总线传送到Cache控制器中的主存地址寄存器MAR,主存-Cache地址转换机构从MA获取地址并判断该单元内容是否已在Cache中存有副本,如果副本已存在于Cache中,即命中。当命中时,立即把访问地址变换成它在Cache中的地址,然后访问Cache。

图片

•存储体由若跟个存储单元组成,存储单元由多个存储元件组成

•存储体----存储单元(存储一串二进制串)----存储元件(存储一个0/1)

•存储单元:存放一串二进制代码。

•存储字:存储单元中的二进制代码

•存储字长:存储单元中二进制代码位数。

•存储单元按照地址进行寻址

•MAR:存储器地址寄存器,反应存储单元个数。保存了存储体的地址(存储单元的编号),反应了存储单元的个数。所以MAR的位数和存储单元的个数有关。

•MDR:存储器数据寄存器,反应存储字长(存储单元长度)。保存了要送入CPU中的数据或要保存到存储体中的数据或者刚刚从存储体中取出来来的数据。这个寄存器的长度和存储单元的长度相同。

如果CPU要访问的内容不在Cache中,即不命中,则CPU转去直接访问主存,并将包含此存储单元的整个数据块(包括该块数据的地址信息)传到Cache中,使得以后的若干次对内存的访问可转化为对Cache的访问。

若Cache存储器已满,则需在替换控制部件的控制下,根据某种替换算法/策略,用此块信息替换掉Cache中原来的某块信息。

之前记得当时面试的时候让我用golang手写缓存管理算法,哈哈哈。

所以,要想提高系统效率,必须提高Cache命中率,而Cache命中率的提高则取决于Cache的映像方式和Cache刷新算法等一系列因素,同时Cache中内容应与主存中的部分保持一致,也就是说,如果主存中的内容在调入Cache之后发生了变化,那么它在Cache中的映像也应该随之发生相应改变,反之,当CPU修改了Cache中的内容后,主存中的相应内容也应作修改。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 存储器
    +关注

    关注

    38

    文章

    7148

    浏览量

    161995
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10442

    浏览量

    206564
  • 计算机
    +关注

    关注

    19

    文章

    6649

    浏览量

    84534
  • Cache
    +关注

    关注

    0

    文章

    127

    浏览量

    27984
收藏 人收藏

    评论

    相关推荐

    感光太阳能灯工作原理。#工作原理大揭秘

    太阳工作原理DIY
    jf_24750660
    发布于 :2022年11月07日 22:26:04

    cache 问题

    cache到  ddr里面的数据呢?还是数据自动cache到L1D里面呢?能不能详细解释一下cache工作原理!期待您的答复!谢谢!
    发表于 06-21 15:10

    机械硬盘的工作原理是什么

    机械硬盘的工作原理是什么,硬盘的外部物理结构一般硬盘正面贴有产品标签,主要包括厂家信息和产品信息,如商标、型号、序列号、生产日期、容量、参数和主从设置方法等。这些信息是正确使用硬盘的基本依据,下面将
    发表于 07-12 08:26

    高速缓存(cache)的工作原理是什么?高速缓存可分为哪几类

    存储器系统的层次架构是如何构成的?高速缓存(cache)的工作原理是什么?高速缓存可分为哪几类?
    发表于 12-23 06:18

    Cache工作原理

    Cache工作原理:Cache工作原理是基于程序访问的局部性。对大量典型程序运行情况的分析结果表明,在一个较短的时间间隔内,由程序产生的地址往往集中在存储器逻辑地址空
    发表于 09-19 07:48 13次下载

    什么是Cache

    什么是Cache  英文缩写: Cache 中文译名: 高速缓存器 分  类: IP与多媒体 解  释: 信息在本地的临时存储
    发表于 02-22 17:26 956次阅读

    高速缓冲存储器Cache的原理、设计及实现

    。  本文简介了Cache的概念、原理、结构设计以及在PC及CPU中的实现。   Cache工作原理   Cache工作原理是基于程序访
    发表于 04-02 14:38 1992次阅读

    Cache的基本概念与工作原理

    那么什么是 cache?如何利用这一新特性编写高性能的程序?又有什么要注意的地方吗?
    的头像 发表于 05-07 15:24 8034次阅读
    <b class='flag-5'>Cache</b>的基本概念与<b class='flag-5'>工作原理</b>

    cache结构与工作原理

    更详细的讲,cache的结构其实和内存的结构类似,也包含地址和内容,只是cache的内容除了存的数据(data)之外,还包含存的数据的物理内存的地址信息(tag),因为CPU发出的寻址信息都是针对
    发表于 06-03 14:24 1.1w次阅读
    <b class='flag-5'>cache</b>结构与<b class='flag-5'>工作原理</b>

    一文吃透Cache处理一致性及工作原理

    可以随便到网上查一查,各大互联网公司笔试面试特别喜欢考一道算法题,即 LRU缓存机制,又顺手查了一下LRU缓存机制最近有哪些企业喜欢考察,超级大热门! 今天给大家分享一篇关于 Cache 的硬核
    的头像 发表于 09-01 14:55 3848次阅读
    一文吃透<b class='flag-5'>Cache</b>处理一致性及<b class='flag-5'>工作原理</b>

    什么是 Cache? Cache读写原理

    由于写入数据和读取指令分别通过 D-Cache 和 I-Cache,所以需要同步 D-Cache 和 I-Cache,即复制后需要先将 D-Cach
    发表于 12-06 09:55 1267次阅读

    深入理解Cache工作原理

    按照数据关系划分:Inclusive/exclusive Cache: 下级Cache包含上级的数据叫inclusive Cache。不包含叫exclusive Cache。举个例子,
    的头像 发表于 05-30 16:02 469次阅读
    深入理解<b class='flag-5'>Cache</b><b class='flag-5'>工作原理</b>

    深入理解CACHE VIPT与PIPT的工作原理

    在kernel启动过程中,虽然这里第一次出现CACHE相关的打印信息,但是,此处并不是kernel第一次操作CACHE
    的头像 发表于 06-05 14:56 1247次阅读
    深入理解<b class='flag-5'>CACHE</b> VIPT与PIPT的<b class='flag-5'>工作原理</b>

    Cache工作原理讲解 Cache写入方式原理简介

    Cache是位于CPU与主存储器即DRAM(Dynamic RAM,动态存储器)之间的少量超高速静态存储器SRAM(Static RAM),它是为了解决CPU与主存之间速度匹配问题而设置的,不能由用户直接寻址访问。
    的头像 发表于 10-17 10:37 504次阅读
    <b class='flag-5'>Cache</b><b class='flag-5'>工作原理</b>讲解 <b class='flag-5'>Cache</b>写入方式原理简介

    Cache内容锁定是什么

    “锁定”在cache中的块在常规的cache替换操作中不会被替换,但当通过C7控制cache中特定的块时,比如使某特定的块无效时,这些被“锁定”在cache中的块也将受到相应
    的头像 发表于 10-31 11:31 370次阅读