zoukankan      html  css  js  c++  java
  • 浅谈CPU三级缓存和缓存命中率

    CPU

    CPU缓存(Cache Memory)是位于CPU与内存之间的临时存储,它的容量比内存小的多但是交换速度却比内存要快得多。缓存的出现主要是

    了解决CPU运算速度与内存读写速度不匹配的矛盾,因为CPU运算速度要比内存读写速度快很多,这样会使CPU花费很长时间等待数据到来或

    把数据写入内存。在缓存中的数据是内存中的一小部分,但这一小部分是短时间内CPU即将访问的,当CPU调用大量数据时,就可避开内存直接

    从缓存中调用,从而加快读取速度。由此可见,在CPU中加入缓存是一种高效的解决方案,这样整个内存储器(缓存+内存)就变成了既有缓存的高

    度,又有内存的大容量的存储系统了。缓存对CPU的性能影响很大,主要是因为CPU的数据交换顺序和CPU与缓存间的带宽引起的。

        缓存的工作原理是当CPU要读取一个数据时,首先从缓存中查找,如果找到就立即读取并送给CPU处理;如果没有找到,就用相对慢的速度内

    存中读取并送给CPU处理,同时把这个数据所在的数据块调入缓存中,可以使得以后对整块数据的读取都从缓存中进行,不必再调用内存。

        正是这样的读取机制使CPU读取缓存的命中率非常高(大多数CPU可达90%左右),也就是说CPU下一次要读取的数据90%都在缓存中,大约10%需要从内存读取。

    这大大节省了CPU直接读取内存的时间,也使CPU读取数据时基本无需等待。总的来说,CPU读取数据的顺序是先缓存后内存。按照数据读取顺

    序和与CPU结合的紧密程度,CPU缓存可以分为一级缓存,二级缓存,部分高端CPU还具有三级缓存,每一级缓存中所储存的全部数据都是下一

    级缓存的一部分,这三种缓存的技术难度和制造成本是相对递减的,所以其容量也是相对递增的。当CPU要读取一个数据时,首先从

    一级缓存中查找,如果没有找到再从二级缓存中查找,如果还是没有就从三级缓存或内存中查找。一般来说,每级缓存的命中率大概都在80%左

    右,也就是说全部数据量的80%都可以在一级缓存中找到,只剩下20%的总数据量才需要从二级缓存、三级缓存或内存中读取,由此可见一级缓

    是整个CPU缓存架构中最为重要的部分

    cpu形象图:


    赐教!

  • 相关阅读:
    评论啦 测试 PHP
    简易JSON格式化 PHP
    36进制 PHP
    CSS3字体阴影演示 PHP
    IE下获取所有客户端字体,设置背景色 PHP
    获取页面宽高数据 PHP
    recognize和recognition
    增强Activex控件,暴露method方法,在javascript中操作activex控件并调用web service方法
    javascript 也可以用try catch了.
    toggle
  • 原文地址:https://www.cnblogs.com/melons/p/5791816.html
Copyright © 2011-2022 走看看