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

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

3天内不再提示

CPU一级缓存与二级缓存深度分析

Dbwd_Imgtec 来源:未知 作者:胡薇 2018-04-16 10:52 次阅读

CPU缓存:通过优化的的读取机制,可以使CPU读取缓存的命中率非常高(大多数CPU可达90%左右),也就是说CPU下一次要读取的数据90%都在缓存中,只有大约10%需要从内存读取。这大大节省了CPU直接读取内存的时间,也使CPU读取数据时基本无需等待。

总的来说,CPU读取数据的顺序是先缓存后内存。

CPU内核集成的缓存称为一级缓存(L1 cache),而外部的称为二级缓存(L2 Cache);后来随着生产技术的不断提高,最终二级缓存也被挪进了CPU当中。通常一级缓存中还分数据缓存(Data Cache, D-Cache)和指令缓存(Instruction Cache, I-Cache)。二者分别用来存放数据和执行这些数据的指令,而且两者可以同时被CPU访问,减少了争用Cache所造成的冲突,提高了CPU效能。

CPU的一级缓存通常都是静态RAM,速度非常的快,但是静态RAM集成度低(存储相同的数据,静态RAM的体积是动态RAM的6倍),而且价格也相对较为昂贵(同容量的静态RAM是动态RAM的四倍)。

扩大静态RAM作为缓存是一个不太合算的做法,但是为了提高系统的性能和速度又必须要扩大缓存,这就有了一个折中的方法:在不扩大原来的静态RAM缓存容量的情况下,仅仅增加一些高速动态RAM做为L2级缓存。高速动态RAM速度要比常规动态RAM快,但比原来的静态RAM缓存慢,而且成本也较为适中。一级缓存和二级缓存中的内容都是内存中访问频率高的数据的复制品(映射),它们的存在都是为了减少高速CPU对慢速内存的访问。

二级缓存是CPU性能表现的关键之一,在CPU核心不变化的情况下,增加二级缓存容量能使性能大幅度提高。而同一核心的CPU高低端之分往往也是在二级缓存上存在差异,由此可见二级缓存对CPU的重要性。

CPU在缓存中找到有用的数据被称为命中,当缓存中没有CPU所需的数据时(这时称为未命中),CPU才访问内存。从理论上讲,在一颗拥有二级缓存的CPU中,读取一级缓存的命中率为80%。也就是说CPU一级缓存中找到的有用数据占数据总量的80%,剩下的20%从二级缓存中读取。由于不能准确预测将要执行的数据,读取二级缓存的命中率也在80%左右(从二级缓存读到有用的数据占总数据的16%)。那么还有的数据就不得不从内存调用,但这已经是一个相当小的比例了。

目前的较高端CPU中,还会带有三级缓存,它是为读取二级缓存后未命中的数据设计的—种缓存,在拥有三级缓存的CPU中,只有约5%的数据需要从内存中调用,这进一步提高了CPU的效率,从某种意义上说,预取效率的提高,大大降低了生产成本却提供了非常接近理想状态的性能。除非某天生产技术变得非常强,否则内存仍会存在,缓存的性能递增特性也仍会保留。

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

    关注

    68

    文章

    10794

    浏览量

    210661
  • RAM
    RAM
    +关注

    关注

    8

    文章

    1353

    浏览量

    114411
  • 缓存
    +关注

    关注

    1

    文章

    229

    浏览量

    26623

原文标题:讲一讲CPU的一级缓存与二级缓存

文章出处:【微信号:Imgtec,微信公众号:Imagination Tech】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    CPU二级缓存打开器-加速

    CPU二级缓存打开器-加速软件简介:般的CPU在出厂时都是没有真正打开二级缓存的!就像你吃馒头,你可以吃4个,但吃了会觉得太饱,但也不会有
    发表于 03-02 17:04

    Java程序员笔记之mybatis结合redis实战二级缓存

    Java程序员笔记——mybatis结合redis实战二级缓存
    发表于 06-10 09:15

    二级缓存致性

    裸机下运行多核程序,开128KB的二级缓存时,结果没问题,但是开了256KB的二级缓存时,结果出现偏差,请问这种问题该怎么排查解决
    发表于 08-24 21:40

    CPU一级缓存

    CPU一级缓存              CPU
    发表于 12-24 10:21 455次阅读

    CPU二级缓存容量

    CPU二级缓存容量            CPU缓存(Cache Memory)是位
    发表于 12-24 10:22 526次阅读

    什么是联合并行处理二级缓存

    什么是联合并行处理二级缓存? 联合并行处理二级缓存是(set-associative)将二级缓存划分不同的片段,在每片段中包含许多缓存线
    发表于 02-04 10:34 312次阅读

    什么是CPU一级缓存/二级缓存

    什么是CPU一级缓存/二级缓存?  即L1 Cache。集成在CPU内部中,用于CPU
    发表于 02-04 10:43 1139次阅读

    Mybatis缓存一级缓存

    本文主要讲mybatis的一级缓存一级缓存是SqlSession级别的缓存。mybatis提供查询缓存
    发表于 11-27 20:44 1208次阅读
    Mybatis<b class='flag-5'>缓存</b>之<b class='flag-5'>一级</b><b class='flag-5'>缓存</b>

    一级缓存二级缓存、三缓存区别是什么 详解它们的区分方法

    一级缓存(Level 1 Cache)简称L1 Cache,位于CPU内核的旁边,是与CPU结合最为紧密的CPU
    发表于 08-14 09:27 8w次阅读

    怎样启用CPU二级缓存 如何查看二级缓存的参数

    提到二级缓存容量的差距,还得从两大CPU巨头对一级缓存的理解说起。对,没看错,就是平常曝光率远逊于二级缓存的“
    的头像 发表于 08-14 10:20 1.1w次阅读

    如何检测cpu二级缓存是否损坏 详解二级缓存CPU性能影响

    综上所述,在CPU性能方面,并非只从二级缓存容量上作对比就可以得到准确的答案,实际上还要考虑到缓存的总体设计结构、一级数 据缓存容量等因素。
    发表于 08-14 10:39 1w次阅读
    如何检测<b class='flag-5'>cpu</b><b class='flag-5'>二级缓存</b>是否损坏 详解<b class='flag-5'>二级缓存</b>对<b class='flag-5'>CPU</b>性能影响

    二级缓存的简单配置教程详解 浅谈二级缓存之功效

    缓存是指可以进行高速数据交换的存储器,它先于内存与CPU交换数据,因此速度很快。L1Cache(一级缓存)是CPU
    发表于 08-14 15:28 4207次阅读
    <b class='flag-5'>二级缓存</b>的简单配置教程详解 浅谈<b class='flag-5'>二级缓存</b>之功效

    处理器缓存有啥用

    按照数据读取顺序和与CPU结合的紧密程度,CPU缓存可以分为一级缓存二级缓存,如今主流
    的头像 发表于 01-21 17:11 1.5w次阅读

    CPU缓存的作用及原理有哪些

    CPU缓存是位于CPU与内存之间的临时存储器,它的容量比内存小很多,但交换速度比内存要快很多。 CPU缓存分为三类:
    的头像 发表于 08-27 15:58 1.1w次阅读

    mybatis一级缓存二级缓存的原理

    MyBatis是种轻量级的持久化框架,它提供了一级缓存二级缓存的机制来优化数据库操作性能。一级缓存
    的头像 发表于 12-03 11:55 1020次阅读