对缓存一致性算法(MESI)的理解

本文介绍了缓存一致性算法MESI的背景、概念、cache line的四种状态及其在总线操作和处理器操作下的影响。 MESI协议确保多核处理器中l1/l2 cache的数据一致性,减少与主存的交互。文章通过状态转移图详细阐述了状态变化、回写主存和数据同步的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一:背景

缓存一致性算法是为了解决多核处理器之前独占缓存的缓存一致性问题而提出的。
现代计算机架构,根据成本和IO速度将存储分为了寄存器、l1/l2/l3cache、ssd、hdd等多种存储介质,其中在多核处理器中,由于每个处理器有自己的l1/l2cache,那么如何保证多个处理器之间的l1/l2cache的数据一致性成为了一个问题。
并且如何保证cache尽可能少的和主存进行读写也是一大问题。

二:概念

在了解MESI协议之前,我们需要知道几个概念:

  1. cache:这里特指处理器的l1\l2缓存,因为这两个是处理器独享的。
  2. bus:总线,可以监听每个处理器cache的读写操作。由于本次总线监听不是重点,这里我们只需要知道总线可以知道每个处理器cache的读写操作,并且可以把这种操作进行广播就可以了。
  3. 处理器对cache的操作:分为读/写两种;此时不同cache根据自身的状态不同,可能会进行两种操作:总写读\总线写。
  4. 总线的操作:总线的操作分为总线读和总线写(在这里为了简单,我们不区分总线写入已有cache和未有cache),同时不同的cache根据此时自身的状态可能会选择忽略总线操作,或者是接受总线操作然后进行状态更改。
  5. 写回操作(write back):cache将自身的数据写入到主存当中。

在这里插入图片描述
此处借用一下知乎@兰新宇的图片,原文链接:https://zhuanlan.zhihu.com/p/94811032

可以从此图看到处理器、cache、总线以及主存之间的关系。

三:cache line状态

cache line的具体概念这里就不细说了,可以理解为ca

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值