L1,L2,L3 Cache缓存原理

一、介绍

CPU缓存(Cache Memory)也被称为Cache,是存储器子系统的组成部分,存放着程序经常使用的指令和数据。从广义的角度上看,Cache是快设备为了缓解访问慢设备延时的预留的Buffer,从而可以在掩盖访问延时的同时,尽可能地提高数据传输率。

二、位置

CPU缓存位于CPU与内存之间的临时存储器,一般在在CPU内核里,它的容量比内存小但交换速度快。在缓存中的数据是内存中的一小部分,但这一小部分是短时间内CPU即将访问的,当CPU调用大量数据时,就可避开内存直接从缓存中调用,从而加快读取速度。最初缓存只有一级,二级缓存(L2 CACHE)出现是为了协调一级缓存与内存之间的速度。二级缓存比一级缓存速度更慢,容量更大,主要就是做一级缓存和内存之间数据临时交换的地方用。实际上,现在Intel和AMD处理器在一级缓存的逻辑结构设计上有所不同,所以二级缓存对CPU性能的影响也不尽相同。

三、工作原理

缓存的工作原理是当CPU要读取一个数据时,首先从缓存中查找,如果找到就立即读取并送给CPU处理;如果没有找到,就用相对慢的速度从内存中读取并送给CPU处理,同时把这个数据所在的数据块调入缓存中,可以使得以后对整块数据的读取都从缓存中进行,不必再调用内存。

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

四、为什么要分级

CPU中有L1、L2、L3甚至L4级Cache。为什么搞这么麻烦CPU厂商直接把L1和L2加倍不就好了吗?
最早先的CPU缓存是个整体的,而且容量很低,英特尔公司从Pentium时代开始把缓存进行了分类。当时集成在CPU内核中的缓存已不足以满足CPU的需求,而制造工艺上的限制又不能大幅度提高缓存的容量。因此出现了集成在与CPU同一块电路板上或主板上的缓存,此时就把 CPU内核集成的缓存称为一级缓存,而外部的称为二级缓存。一级缓存中还分数据缓存(Data Cache,D-Cache)和指令缓存(Instruction Cache,I-Cache)。二者分别用来存放数据和执行这些数据的指令,而且两者可以同时被CPU访问,减少了争用Cache所造成的冲突,提高了处理器效能。


 

 一般来说,每级缓存的命中率大概都在80%左右,也就是说全部数据量的80%都可以在一级缓存中找到,只剩下20%的总数据量才需要从二级缓存、三级缓存或内存中读取,由此可见一级缓存是整个CPU缓存架构中最为重要的部分。

多级CACHE的设计,只是为了一个目的:既快,又成本低。这就是因为主内存不够快,而又必须得控制成本不能让电脑太贵而设计的。也就是说,如果现在主流的内存DRAM够快的话,这几级cache就会完全消失的。

参考:

Cache为什么有那么多级?为什么一级比一级大?是不是Cache越大越好? - 知乎

二级缓存是什么意思 为什么要分一二三级缓存-电子发烧友网

L1/L2/L3 Cache是存储器子系统中的组成部分,用于存放程序经常使用的指令和数据。L1 Cache是CPU流水线和主存储器之间的第一级缓存L2 CacheL1 Cache之上的第二级缓存L3 CacheL2 Cache之上的第三级缓存。\[1\] 当CPU需要数据时,它首先搜索L1 Cache,如果未找到,则接下来搜索L2 CacheL3 Cache。如果找到所需的数据,则称为缓存命中。如果数据不在缓存中,则CPU必须从主内存或存储加载数据到缓存中,这会导致延迟并对性能产生不利影响,这称为缓存未命中。\[2\] 除了L1/L2/L3 Cache之外,还有其他类型的Cache,如用于虚实地址转换的TLB、MOB、ROB、Register File和BTB等。这些Cache的作用是提高数据传输率和缓解访问延迟。\[1\] 总结来说,L1/L2/L3 Cache是存储器子系统中的缓存,用于存放CPU经常使用的指令和数据,以提高数据访问速度和系统性能。\[1\]\[2\] #### 引用[.reference_title] - *1* [什么是L1/L2/L3 Cache?](https://blog.csdn.net/wujianing_110117/article/details/119663604)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [CPU缓存L1L2L3 缓存之间的区别](https://blog.csdn.net/weixin_42238387/article/details/120576720)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值