0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

浅析Cache多核之间的一致性MESI协议

冬至子 来源:Arm精选 作者:baron 2023-10-27 16:26 次阅读

思考:
1、为什么要学习 MESI 协议?哪里用到了?你确定真的用到了?
2、MESI 只是一个协议,总得依赖一个硬件去执行该协议吧,那么是谁来维护或执行的呢?
3、你不理解的真的是 MESI 吗,真的需要学习 MESI 吗?应该是 cache 架构吧
4、core0 和 core1 之间的一致性是 MESI?那 cluster0 和 cluster1 之间的呢?sytem1 和 sytem2 之间的呢?
5、MESI 协议中的 M、E、S、I 的比特位,都是存在哪里的?

1、系统中有哪些一致性需要维护

进入正文,我们来看现代 ARM 架构体系(DynamIQ 架构)中的 cache 层级关系图。注意 L1/L2 都在 core 中,L3 在 cluster 中。

所以从以下图中就能够直观的看到答案了:

  • (1)core0、core1… 之间的一致性 需要维护
  • (2)cluster0 和 cluster1 之间的 L3 Cache 一致性 需要维护
  • (3)system 之间的一致性需要维护

image.png

其中,core0、core1 之间的一致性是遵从 MESI 协议,而 cluster0/cluster1 之间的一致性、多个 system 之间的一致性并没有遵从 MESI 协议。
所以本文重点介绍的,也就是 core0、core1 之间的一致性,即 MESI 协议。

2、core 硬件对 MESI 协议的支持

接下来,进入下一个问题, MESI 协议中的 M、E、S、I 的比特位都是存在哪里的?这个问题并不难,告别懒惰,多翻一翻 ARM TRM 手册就能找到答案,如下是armv9 -- cortex-A710 TRM手册中的,cache 的 TAG 里都有什么?

答案显然易见,在 Cache 的 TAG 中,有两个比特位表示了 MESI 的状态

image.png

3、MESI 协议的原理

接下来进入本文的核心,MESI 协议到底是什么?怎样维护一致性的?

(看以下图表,我就不说话了)

image.png

image.png

image.png

Events

  • RH = Read Hit
  • RMS = Read miss, shared
  • RME = Read miss, exclusive
  • WH = Write hit
  • WM = Write miss
  • SHR = Snoop hit on read
  • SHI = Snoop hit on invalidate
  • LRU = LRU replacement

Bus Transactions

  • Push = Write cache line back to memory
  • Invalidate = Broadcast invalidate
  • Read = Read cache line from memory
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • RMS
    RMS
    +关注

    关注

    2

    文章

    139

    浏览量

    36011
  • ARM架构
    +关注

    关注

    15

    文章

    177

    浏览量

    36525
  • Cortex-A7
    +关注

    关注

    0

    文章

    34

    浏览量

    16585
  • cache技术
    +关注

    关注

    0

    文章

    41

    浏览量

    1106
  • TRM
    TRM
    +关注

    关注

    0

    文章

    13

    浏览量

    3341
收藏 人收藏

    相关推荐

    介绍ARM存储一致性模型的相关知识

    今天要说的这个是存储一致性(memory consistency),不要跟前面讲过缓存一致性cache coherence)混淆了。
    的头像 发表于 02-14 09:19 2004次阅读

    C6678 多核程序的初始化及L1P cache一致性问题

    工作? 2)C66x DSP CorePac User Guide上说了L1D cache和LL2之间cache一致性是由硬件维护的。但没有提到L1P
    发表于 06-21 14:21

    c6678cache一致性

    专家您好!    我现在在做6678 cache一致性的东西,想请问一下一致性的维护哪些是硬件实现的,哪些需要程序员实现?谢谢!
    发表于 06-24 04:38

    6678多核之间的L1 CACHE一致性是由硬件实现的吗

    工程师您好! 按照6678文档上所讲,每个core都有个L1D cache和L1P cache,那么这八个核之间的L1 CACHE是会存在
    发表于 12-25 11:25

    为什么需要进行WiMAX协议一致性测试?

    为什么需要进行WiMAX协议一致性测试看完你就知道
    发表于 04-15 06:16

    小编科普CPU缓存一致性协议MESI

    什么是缓存一致性协议MESIMESI协议中的状态有哪几种?MESI
    发表于 06-17 10:00

    顺序一致性和TSO一致性分别是什么?SC和TSO到底哪个好?

    如果是多核心的程序,那么顺序一致性就是,对于任何个核心而言所有核心的内存访问实际执行顺序都和程序指定顺序相同上图中左边是核心C1的程序指定顺序,右边是核心C2的程序指定顺序,中间是实际的内存访问顺序
    发表于 07-19 14:54

    改进的基于目录的Cache一致性协议

    介绍几种典型目录一致性协议并分析它们的优缺点。在综合全映射目录和有限目录优点的基础上,通过在存储器层上增加个存储器高速缓存(Cache)层的方式,提出并讨论
    发表于 04-02 09:05 32次下载

    一致性规划研究

    针对一致性规划的高度求解复杂度,分析主流一致性规划器的求解策略,给出影响一致性规划器性能的主要因素:启发信息的有效,信念状态表示方法的紧凑
    发表于 04-06 08:43 12次下载

    CMP中Cache一致性协议的验证

    CMP是处理器体系结构发展的个重要方向,其中Cache一致性问题的验证是CMP设计中的项重要课题。基于MESI
    发表于 07-20 14:18 38次下载

    DMR空中接口协议一致性测试技术

    文章介绍了DMR的产生、发展以及DRM协议体系结构。基于协议一致性测试的基本概念,划分了DRM协议一致性测试集
    发表于 12-22 15:13 35次下载
    DMR空中接口<b class='flag-5'>协议</b><b class='flag-5'>一致性</b>测试技术

    RFID协议一致性测试系统设计(二)

      软件无线电这关键技术的应用,使得RFID协议一致性测试系统能够突破传统仪器受专有硬件限制的局限性,在标准化、模块化、层次化的体系结构上满足一致性测试的需求。RFID
    发表于 03-28 17:37 1465次阅读
    RFID<b class='flag-5'>协议</b><b class='flag-5'>一致性</b>测试系统设计(二)

    RFID协议一致性测试系统设计(三)

      在具体实现了RFID协议一致性测试系统之后,我们将可以应用于对RFID单元的实际测试之中,本节以EPC UHF Class 1 Gen 2(也被称为ISO 18000-6 Type C)标准的协议
    发表于 03-28 17:37 1338次阅读
    RFID<b class='flag-5'>协议</b><b class='flag-5'>一致性</b>测试系统设计(三)

    Cache一致性协议优化研究

    问题的由来.总结了多核时代高速缓存一致性协议设计的关键问题,综述了近年来学术界对一致性的研究.从程序访存行为模式、目录组织结构、一致性粒度、
    发表于 12-30 15:04 0次下载
    <b class='flag-5'>Cache</b><b class='flag-5'>一致性</b><b class='flag-5'>协议</b>优化研究

    介绍下cpu缓存一致性MESI协议

    之前介绍了java并发包的cas原理和java内存模型,这篇我们介绍下cpu缓存一致性原理,可以帮助我们更好的理解cas的底层原理。
    的头像 发表于 06-09 16:01 4882次阅读
    介绍下cpu缓存<b class='flag-5'>一致性</b>(<b class='flag-5'>MESI</b><b class='flag-5'>协议</b>)