CPU 多级缓存

在多线程并发场景下,普通的累加很可能错的

CPU 多级缓存

  1. Main Memory : 主存
  2. Cache : 高速缓存,数据的读取存储都经过此高速缓存
  3. CPU Core : CPU 核心
  4. Bus : 系统总线

CPU Core 和 Cache 通过快速通道连接,Main menory 和 Cache 都挂载到 Bus 上通信,Bus 还用于其它组件的通信,在 Cache 出现后,系统变得越来越复杂,Cache 和 Main memory 的速度差异越来越大,直到加入另一级 Cache,新加入的 Cache 比第一级 Cache 要大,但是速度更慢,由于加大一级 Cache 从经济上不划算,所以出现了二级 Cache,三级 Cache。

为什么要使用 CPU CACHE

CPU 的频率太快了,快到主存跟不上,在 CPU 时钟周期内,CPU 需要等待主存,浪费资源,这样 CPU 会花很长时间等待数据或把数据写入主存。所以 Cache 出现的意义是匹配 Main menory(主存)和 CPU 速度不匹配的问题。
CPU > CACHE > Main Memory

CPU CACHE 的意义

缓存的容量要远远小于 Main Memory(主存),因此出现缓存不命中的情况在所难免。

CACHE 意义

1.时间局部性:如果一个数据被访问,那么在不久的将来很可能再次被访问。

2.空间局部性:如果一个数据被访问,那么它相邻的数据很可能被再次访问。

缓存的工作原理:当 CPU 读取一个数据时,先从 Cache(缓存)中查找,如果查到了,就直接送给 CPU 处理,反之就会去速度慢的 Main Memory(主存)去读取,并把该数据写入到 Cache(缓存),下次 CPU 再次读取该数据时,直接去 Cache 取。

Cache(缓存)的命中率很高(90%),也就是说 CPU 下一次读取数据 90%都在缓存,只有 10%的数据需要去 Main Memory(主存)中读取。

相关推荐
AI人工智能+电脑小能手8 分钟前
大白话说Java设计模式-40-备忘录模式(业务实战篇)
java·设计模式·事务回滚·备忘录模式·状态保存·spring transactional·购物车快照
SimonKing9 分钟前
白嫖国产多模态大模型:商汤 SenseNova 接入指南
java·后端·程序员
小江的记录本9 分钟前
【ORM框架】MyBatis核心原理、ORM思想、MyBatis vs JPA
java·数据库·后端·spring·spring cloud·oracle·mybatis
_明月21 分钟前
汇川技术股份有限公司面试--Java外包岗
java·面试·职场和发展
BD_Marathon22 分钟前
Hadoop常用端口号
java·大数据·hadoop
青石路28 分钟前
好好的OceanBase官方驱动你不用,非要用第三方驱动,ArrayIndexOutOfBoundsException了吧
java·后端
长谷深风11130 分钟前
读懂 MCP:能力、传输与多 Server 连接
java·大数据·ai·ai agent·mcp·streamable http·agent设计
深念Y32 分钟前
Makefile vs go run:Go 项目构建方式对比
java·开发语言·golang·k8s·编译·流水线·cicd
我命由我1234543 分钟前
Android Camera - 获取当前设备屏幕的旋转角度、保存帧到外部存储的私有空间
android·java·开发语言·java-ee·android jetpack·android-studio·android runtime
niuniudengdeng1 小时前
从小程序到 WebView:一个理发店管理系统的全栈架构设计与落地实践
java·python