CPU的三级缓存

CPU缓存(Cache Memory)是位于CPU与内存之间的临时存储器,它的容量比内存小的多但是交换速度却比内存要快得多。高速缓存的出现主要是为了解决CPU运算速度与内存读写速度不匹配的矛盾,因为CPU运算速度要比内存读写速度快很多,这样会使CPU花费很长时间等待数据到来或把数据写入内存。在缓存中的数据是内存中的一小部分,但这一小部分是短时间内CPU即将访问的,当CPU调用大量数据时,就可先缓存中调用,从而加快读取速度。

CPU缓存有三类,一级缓存(一级缓存虽然速度最快,但容量最小,单位都是KB,不同CPU之间一级缓存没有差距,所以现在不怎么提了),二级缓存(二级缓存容量也不大,基本都是个位数MB,除了一些服务器CPU会有10几MB之外,现在CPU也不怎么提二级缓存),三级缓存。。常见的CPU的三级缓存只有10MB左右(现在AMD EPYC 的X系列已经达到768MB的三级缓存)。L3读写速度比内存快得多得多。CPU中缓存是为了加快CPU读取数据的速度,也是为了给内存一个缓冲期。因为CPU运算速度太快了,光靠内存读写完全跟不上,而CPU缓存的数据交换比内存快多了,大部分时候CPU可以直接从缓存读取数据,找不到的话再从内存读取,这样可以节省CPU读取内存数据时浪费的时间。CPU读取缓存时会先从一级缓存开始,然是二级缓存,而读取二级缓存有时候会出现数据未命中的情况,这时候就需要从三级缓存读取。

参考链接:https://zhuanlan.zhihu.com/p/558199980

相关推荐
先睡2 小时前
Redis的缓存击穿和缓存雪崩
redis·spring·缓存
ZWZhangYu3 小时前
LangChain 构建向量数据库和检索器
数据库·langchain·easyui
feifeigo1234 小时前
升级到MySQL 8.4,MySQL启动报错:io_setup() failed with EAGAIN
数据库·mysql·adb
weixin_446122465 小时前
JAVA内存区域划分
java·开发语言·redis
火龙谷5 小时前
【nosql】有哪些非关系型数据库?
数据库·nosql
TT哇5 小时前
JavaEE==网站开发
java·redis·java-ee
焱焱枫6 小时前
Oracle获取执行计划之10046 技术详解
数据库·oracle
qq_392397128 小时前
Redis常用操作
数据库·redis·wpf
一只叫煤球的猫9 小时前
真实事故复盘:Redis分布式锁居然失效了?公司十年老程序员踩的坑
java·redis·后端
一只fish9 小时前
MySQL 8.0 OCP 1Z0-908 题目解析(17)
数据库·mysql