【重回基础】理解CPU Cache及缓存一致性MESI

一、前言

原打算重新学习一下 volatile 的实现原理,其中涉及到指令调度重排和数据可见性保证,这两者的理解离不开对 CPU Cache的掌握,因此,先重温一下CPU Cache,便有了本文。

二、为何需要CPU Cache

CPU的发展呈现出摩尔定律(近期越来越多的声音觉得结束了),发展速度迅猛,每18-24个月性能翻番。而内存的发展相较之下显得十分缓慢,与CPU的性能差距越来越大。为了缓冲两者的速度差,引入了采用SRAM做Cache的三级缓存(L1、L2、L3),以提高CPU的计算效率。当然了,其实内存并非无法提速,只是出于成本和容量的平衡。

1965 年,英特尔联合创始人戈登·摩尔提出以自己名字命名的「摩尔定律」,意指集成电路上可容纳的元器件的数量每隔 18 至 24 个月就会增加一倍,性能也将提升一倍。

在这里插入图片描述

这就好像咱们去超市购物,所购买的东西经常就那么几样,真正购物的时间很短,但是交通耗时、买单排队耗时通常就已经占据了大部分的时间。出于成本考虑,一个小区配备一个超市显然不太可能。于是引入了住宅楼下的自动售卖机、社区的便利店等。如此一来,购物效率自然提高了。

三、L1、L2 、L3 Cache 三级缓存结构

三级缓存集成在CPU中,组成如下,每个CPU核都拥有自己的L1 Cache、L2 Cache,而L3 Cache为所有核心共享。其中,L1距离Execution Units计算单元距离最近,计算速度通常十分接近;L2 、L3分别次之。另外,L1 Cache 一般分为 L1d 数据缓存 和 L1i 指令集缓存,用以减少CPU多核心/多线程竞抢缓存引起的冲突。

读取数据时,逐级访问,即执行单元访问L1,若不存在该数据,则L1访问L2,L2若同样没有则访问L3,最后L3访问内存。

在这里插入图片描述

三级缓存的大小通常不大,以本机i5-8259u为例:

i5-8259u:

L1 Data Cache :32.0 KB x 4

L1 Instructio

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值