• 多核处理器上的内存访问一致性


    多核处理器上的内存访问一致性是指在多个处理器共享同一块内存时,保证每个处理器对内存的读写操作能够得到正确和一致的结果。

    为了保证多核处理器上的内存访问一致性,需要解决以下两个问题:

     缓存一致性:缓存一致性是指在多个处理器都有自己的缓存时,保证每个处理器对缓存的读写操作能够及时地反映到内存和其他处理器的缓存中,避免出现缓存不一致的情况。

    缓存一致性通常通过一些协议来实现,比如MSI协议,MESI协议,MOESI协议等。³ 这些协议定义了缓存行的状态和转换,以及处理器之间的通信和同步机制。


     内存模型:内存模型是指在多个处理器都有自己的指令乱序执行和写缓冲区时,保证每个处理器对内存的读写操作能够按照一定的顺序和规则来进行,避免出现内存不一致的情况。

    内存模型通常分为强内存模型和弱内存模型,强内存模型要求处理器严格按照程序代码的顺序来执行内存操作,而弱内存模型允许处理器在一定程度上打乱内存操作的顺序,以提高性能。⁴ 弱内存模型通常需要使用一些同步指令或原子操作来保证内存操作的顺序和可见性。

     

    (1) 内存一致性(Memory Consistency) https://zhuanlan.zhihu.com/p/422848235.
    (2) 每个程序员都应该知道的 CPU 知识:https://zhuanlan.zhihu.com/p/336365600.
    (3) cache之多核一致性(二) - MSI协议 - 知乎 - 知乎专栏. https://zhuanlan.zhihu.com/p/95435168.
    (4) 多核cpu可以并行读取内存中的数据吗? - 知乎. https://www.zhihu.com/question/468575212.
    (5) 介绍内存一致性(Memory Consistency)和缓存一致性(Cache Coherence)-CSDN博客. https://blog.csdn.net/iNostory/article/details/119047985.

     

  • 相关阅读:
    多层全连接网络:实现手写数字识别50轮准确率92.1%
    Docker guide
    CatFly【汇编代码还原】
    【Notepad】Notepad++ 安装XML/Json插件,格式化xml/json文件
    济宁ISO9001认证带标与不带标的区别
    使用自开发的代理服务器解决 SAP UI5 FileUploader 上传文件时遇到的跨域访问错误试读版
    NeRF~
    数据围栏简述
    SpringCloud01:Eureka的使用
    小程序经典案例
  • 原文地址:https://blog.csdn.net/usstmiracle/article/details/133710292