03:CPU缓存和内存屏障

CPU的缓存
        存在三级:
            
 注意:没有CPU都有缓存自己的L1和L2,但是L3是多核共用的。
      CPU读取数据:L1>L2>L3>内存>硬盘
多个缓存中的数据一致性问题:
    多个缓存同时持有一个数据时,谁的修改会被承认呢,CPU厂商们讨论出一个协议,名叫MESI协议。
    MESI 协议为缓存中数据添加了四种状态:
            
    多处理器是:CPU对缓存中的数据改动后要通知给别的cpu。
CPU运行时指令重排
    CPU会将指令排序后执行。(不会改变结果)由于L3缓存是共享的。为了达到不等待的目的,CPU会控制指令的执行顺序。为了提高并行效率。
内存屏障
    CPU提供了两个内存屏障指令:
            1:写内存屏障:对缓存的修改要强制的同步到主内存之后才能被别的CPU使用。
            2:读内存屏障:强制让缓存去同步主内存中的数据。

 

 

posted on 2020-03-30 20:41  笑明子  阅读(161)  评论(0编辑  收藏  举报

导航