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一级缓存、二级缓存、缓存命中率相关推荐

  1. CPU之CPU一级\二级\三级缓存

    原文:http://blog.163.com/tyw_andy/blog/static/1167902120099128381221/ CPU缓存 缓存大小也是CPU的重要指标之一,而且缓存的结构和大 ...

  2. CPU一级缓存L1 D-cache\L1 I-cache与二级缓存L2 cache深度分析

    CPU缓存:通过优化的的读取机制,可以使CPU读取缓存的命中率非常高(大多数CPU可达90%左右), 也就是说CPU下一次要读取的数据90%都在缓存(SRAM)中: 只有大约10%需要从内存(DRAM ...

  3. 硬件 - CPU 为什么要分一级二级三级缓存

    文章目录 硬件 - CPU 为什么要分一级二级三级缓存 1.为什么要给 CPU 设置缓存 2.L1 Cache.L2 Cache.L3 Cache 3.三个级别的缓存与内存数据交互速度的大概对比 4. ...

  4. CPU中的一级缓存,二级缓存,三级缓存

    缓存又叫高速缓冲存储器,其作用在于缓解主存速度慢.跟不上CPU读写速度要求的矛盾.        缓存的实现原理,是把CPU最近最可能用到的少量信息(数据或指令)从主存复制到CACHE中,当CPU下次 ...

  5. 【CPU缓存】一级二级三级缓存

    CPU缓存   CPU缓存(Cache Memory)是位于 CPU 与内存之间的临时存储器,它的容量比内存小的多,但是交换速度却快得多.   CPU运算速度要比内存读写速度快很多,这样会使CPU花费 ...

  6. 寄存器一般多大,cpu一级缓存一般多大

    寄存器个数,现在Intel的最新一代CPU里大概有上百个寄存器,扣除重复使用的相同空间的寄存器,寄存器的大小大概是2KB多,具体的寄存器如下图: 在这一堆寄存器里,最大的就是AVX/AVX2寄存器,但 ...

  7. 一级缓存、二级缓存、三级缓存

    缓冲/存储技术 +关注 大家都知道CPU缓存很重要,但对于缓存的具体细分却知之甚少,本文只要是关于CPU缓存的介绍,并着重描述了一级缓存.二级缓存.三级缓存区别方法. CPU缓存 CPU缓存(Cach ...

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

    大家都知道CPU缓存很重要,但对于缓存的具体细分却知之甚少,本文只要是关于CPU缓存的介绍,并着重描述了一级缓存.二级缓存.三级缓存区别方法. CPU缓存 CPU缓存(Cache Memory)是位于 ...

  9. 深入浅出 MyBatis 的一级、二级缓存机制

    一.MyBatis 缓存 缓存就是内存中的数据,常常来自对数据库查询结果的保存.使用缓存,我们可以避免频繁与数据库进行交互,从而提高响应速度. MyBatis 也提供了对缓存的支持,分为一级缓存和二级 ...

最新文章

  1. 嵌入式系统开发过程中遇到的——volatile
  2. 《百面机器学习》---AI算法工程师求职必备“面经”
  3. 深度语义模型以及在淘宝搜索中的应用
  4. MHA+LAMP+Keepalived实现高可负载均衡综合实验
  5. 分区表分区字段的update操作
  6. mysql not default_MySQL的not null default
  7. 《那些年啊,那些事——一个程序员的奋斗史》——65
  8. python网络爬虫系列教程——python网络数据爬虫误区,让你的爬虫更像人类
  9. pytest测试框架_带你深入理解自动化测试框架Pytest的配置文件!
  10. VIM插件——vimplus安装(centos 7)
  11. 深度学习笔记(一)——损失函数
  12. filename.whl is not supported wheel on this platform 部分第三方库无法安装的解决办法
  13. python3迭代器是什么_Python3.7之迭代器
  14. Redis常用命令-史上最全最新版本(一)
  15. 天池大数据竞赛-河北高校邀请赛——二手车交易价格预测-初赛第22名
  16. 学习 MySQL 需要知道的 28 个小技巧
  17. JAVA毕设项目基于vue框架的疫情防控知识在线答题系统设计与实现(java+VUE+Mybatis+Maven+Mysql)
  18. System.out简单解释
  19. 村上春树的那些扎心语录!请细细品味!
  20. js页面指定div刷新(局部刷新)

热门文章

  1. UNIAPP H5调起手机地图应用或跳转网页版实现导航功能
  2. 出现报错ModuleNotFoundError: No module named ‘serial’ 解决方法
  3. 高德地图:输入关键字提示匹配信息(AMap.Autocomplete)
  4. 世界计算机工程研究生院排名,2013美国大学排名-USNEWS计算机工程专业TOP100排名...
  5. 重磅:微信商品橱窗来了!它真地来了!
  6. 搅局在线教育,字节跳动走进深水区
  7. 大数据看美食 | 大众点评餐厅数据分析报告!
  8. R | 载入了名字空间‘ellipsis’ 0.3.1,但需要的是>= 0.3.2
  9. 雅思IELTS学习之路
  10. web前端基础——定位