并发编程(四)CPU缓存一致性协议MESI

一、MESI概念

  定义:MESI 是指缓存行的四种状态的首字母。

  PS:每个缓存行有4个状态,可用2个bit【2位】表示,它们分别是:

并发编程(四)CPU缓存一致性协议MESI

二、多核缓存协同操作流程分析

  假设有三个CPU A、B、C;对应三个缓存分别是缓存A、B、 C;并在主内存中定义了x的引用值为0。

并发编程(四)CPU缓存一致性协议MESI

1、单核读取

并发编程(四)CPU缓存一致性协议MESI

2、双核读取

并发编程(四)CPU缓存一致性协议MESI

3、修改数据

并发编程(四)CPU缓存一致性协议MESI

4、同步数据

并发编程(四)CPU缓存一致性协议MESI

三、缓存行伪共享

什么是伪共享?

  CPU缓存系统中是以缓存行为单位存储的,目前主流的CPU Cache 的缓存行大小都是64Bytes

  定义:在多线程情况下,如果需要修改共享同一个缓存行的变量,就会无意中影响彼此的性能,这就是伪共享。

  举个

上一篇:缓存一致性协议(MESI)


下一篇:【线程、锁】MESI协议以及带来的问题:伪共享