三十七、L1,L2,L3 Cache究竟在哪里

很多人有个疑问,为什么Intel系列CPU在2005年后可以力压AMD十多年?优秀的Cache设计和卓越的微架构是主要的原因。大多数高层程序员认为 Cache 是透明的,CPU可以很聪明地安排他们书写的程序,不需要关心数据是在内存中还是在Cache里。 他们也许是对的,大部分时间Cache都可以安静的工作。但对于操作系统、编译软件、固件工程师和硬件工程师来说,Cache则需要我们特别关照。现在越来越多的数据库软件和人工智能引擎也对Cache越来越敏感,需要针对性地优化。Cache设计和相关知识从而不再是阳春白雪,你也许某一天就会需要了解它。

本系列希望通过将Cache相关领域知识点拆解成大家关心的几个问题,来串起相关内容。这些问题包括:

  1. Cache究竟在哪里?
  2. Cache是怎么组织和工作的?什么是n-ways Set-Associative Cache?
  3. 什么是Cache Coloring (Page Coloring)? 什么是Inclusive Cache或者Exclusive Cache?
  4. Cache line淘汰算法有哪些?
  5. Cache为什么有那么多级?为什么一级比一级大?是不是Cache越大越好?
  6. Cache的一致性是怎么保证的?
  7. Cache的属性是谁设定的,怎么设定的?

下面是本系列的第一篇。

什么是Cache?

Cache Memory也被称为Cache,是存储器子系统的组成部分,存放着程序经常使用的指令和数据,这就是Cache的传统定义。从广义的角度上看,Cache是快设备为了缓解访问慢设备延时的预留的Buffer,从而可以在掩盖访问延时的同时,尽可能地提高数据传输率。 快和慢是一个相对概念,与微架构(Microarchitecture)中的 L1/L2/L3 Cache相比, DDR内存是一个慢速设备;在磁盘 I/O 系统中,DDR却是快速设备,在磁盘 I/O 系统中,仍在使用DDR内存作为磁介质的Cache。在一个微架构中,除了有L1/L2/L3 Cache之外,用于虚实地址转换的各级TLB, MOB( Memory Ordering Buffers)、在指令流水线中的ROB,Register File和BTB等等也是一种Cache。我们这里的Cache,是狭义 Cache,是CPU流水线和主存储器的 L1/L2/L3 Cache。

L1,L2,L3 指的都是CPU的缓存,他们比内存快,但是很昂贵,所以用作缓存,CPU查找数据的时候首先在L1,然后看L2,如果还没有,就到内存查找一些服务器还有L3 Cache,目的也是提高速度。

高速缓冲存储器Cache是位于CPU与内存之间的临时存储器,它的容量比内存小但交换速度快。在Cache中的数据是内存中的一小部分,但这一小部分是短时间内CPU即将访问的,当CPU调用大量数据时,就可避开内存直接从Cache中调用,从而加快读取速度。由此可见,在CPU中加入Cache是一种高效的解决方案ÿ

L1/L2/L3 Cache是存储器子系统中的组成部分,用于存放程序经常使用的指令和数据。L1 Cache是CPU流水线和主存储器之间的第一级缓存,L2 Cache是L1 Cache之上的第二级缓存,L3 Cache是L2 Cache之上的第三级缓存。\[1\] 当CPU需要数据时,它首先搜索L1 Cache,如果未找到,则接下来搜索L2 Cache和L3 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缓存:L1、L2 和 L3 缓存之间的区别](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 ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值