用动图的方式,理解 CPU 缓存一致性协议!
        【摘要】  MESI 状态到底是如何在不用加锁的情况下,是如何实现 CPU 缓存一致性的。
    
    
    
     
我先给大家复习下 MESI 协议,然后再跟大家讲一些这个网站怎么用。
MESI 协议
-  Modified,已修改 
-  Exclusive,独占 
-  Shared,共享 
-  Invalidated,已失效 

 
网站体验
 
-  第一部分,内存。显示内存地址和数据; 
-  第二部分,CPU 缓存。显示 CPU 缓存的变量数据和 MESI 协议状态,因为我现在还没开始操作,所以显示的是空白。 
-  第三部分,CPU 操作。共有三个 CPU,每个 CPU 都有各自的 Cache,CPU 操作分别「读」和「写」,这部分是我们手动操作的部分。 
-  数据总线(Data Bus):在CPU与内存之间来回传送需要处理或是需要储存的数据。 
-  地址总线(Adress Bus),用来指定在内存之中储存的数据的地址。 
-  shared,这个我也不知道是什么总线,网上没搜到资料,网站上最细那条总线就是这个名字,作用是控制 Cache 的数据状态。 
 
 
 
-  点击 CPU2 的 read a0 操作; 
-  CPU2 会向地址总线,发送读取 a0 变量的数据的请求,此时该请求不仅会被内存收到,也会被其他 CPU 核心收到。 
-  CPU1 从地址总线得知,CPU2 发起的读取地址存在于 CPU1 Cache 里,于是 CPU1 Cache 里数据的状态会从 E(独占)变更为 S(共享); 
-  内存收到 CPU2 发起的读取 a0 数据的请求后,就会通过数据总线将数据传递给 CPU2; 
-  最后数据会写到 CPU2 Cache 里,且状态是 S(共享)。 
            【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
                cloudbbs@huaweicloud.com
                
            
        
        
        
        
        
        
        - 点赞
- 收藏
- 关注作者
 
             
           
评论(0)