说volatile和MESI协议没有关系的水货们请闭嘴吧

一直很想说这个问题,垃圾培训机构已经把韭菜们带偏了,网上千篇一律的说volatile和MESI协议没有关系,那究竟有没有关系呢??坐好认真听!

1、缓存一致性问题

  由于存储设备与处理器的运算速度差距很大,计算机系统在内存与处理器之间增加了一层高速缓存,将运算需要的数据复制到缓存中,让运算能快速进行。

        

  有了高速缓存的存在以后,每个CPU的处理过程是, 先将计算需要用到的数据缓存在CPU高速缓存中,在CPU 进行计算时,直接从高速缓存中读取数据并且在计算完成 之后写入到缓存中。在整个运算过程完成后,再把缓存中 的数据同步到主内存。

  通过高速缓存很好解决了处理器与内存处理速度的矛盾,但是也带来了缓存一致性问题:不同的线程可能运行在不同的CPU内,同一个数据也会被缓存到多个CPU中,在不同CPU中运行的不同线程看到的同一份内存数据的不同值,这就是缓存一致性问题。

2、缓存锁——缓存一致性协议

  为了解决缓存一致性问题,引入了缓存锁,缓存锁的核心机制就是缓存一致性协议。常见的就是MESI协议,MESI表示缓存行的四种状态:

    *  M(modify)表示共享数据只缓存在当前 CPU 缓存中, 并且是被修改状态,也就是缓存的数据和主内存中的数据不一致。

    *  E(exclusive)表示缓存的独占状态,数据只缓存在当前 CPU缓存中,并且没有被修改 。

    *  S(shared)表示数据可能被多个CPU缓存,并且各个缓 存中的数据和主内存数据一致。

    *  I(invalid)表示缓存已失效。

  在 MESI 协议中,每个缓存的缓存控制器不仅知道自己的读写操作,而且也监听(sno

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值