Cache多核之间的一致性MESI

快速链接:

  • 【精选】ARMv8/ARMv9架构入门到精通-[目录] 👈👈👈

思考:
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之间的一致性需要维护
    在这里插入图片描述
    其中,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的状态
在这里插入图片描述

3、MESI协议的原理

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

(看以下图表,我就不说话了)
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
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

关注"Arm精选"公众号,备注进ARM交流讨论区。

1138106487-65f6cf311889c.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/515415.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

电商技术揭秘一:电商架构设计与核心技术

文章目录 引言一、电商平台架构概述1.1 架构设计原则与架构类型选择1.2 传统电商平台架构与现代化架构趋势分析 二、高并发处理与负载均衡2.1 高并发访问特点分析与挑战2.2 负载均衡原理与算法选择 三、分布式数据库与缓存技术3.1 分布式数据库设计与一致性考量3.2 缓存策略与缓…

C++实现二叉搜索树的增删查改(非递归玩法)

文章目录 一、二叉搜索树的概念结构和时间复杂度二、二叉搜索树的插入三、二叉搜索树的查找四、二叉搜索树的删除(最麻烦,情况最多,一一分析)3.1首先我们按照一般情况下写,不考虑特殊情况下4.1.1左为空的情况&#xff…

分享:搭建企微知识库简单易学步骤

说起企微知识库,可能有些人还不太清楚,为什么现在很懂企业选择搭建企微知识库?其实,企微知识库就是一个装满了企业的各种知识、经验和资料的载体。目的是为了方便员工随时查找和学习、有助于知识的传承和共享、加强团队协作和沟通…

自然语言处理: 第二十一章大模型基底之llama2

文章地址: LLaMA:OpenandEfficient Foundation Language Models 项目地址: meta-llama/llama: Inference code for Llama models (github.com) 前言 在LLaMa1的基础之上有兴趣的可以看看我上一篇博客自然语言处理: 第二十一章大模型基底之llama1。Meta 又继续推出了LLaMa2&a…

windows安装OpenUSD

一、下载OpenUSD git clone https://github.com/PixarAnimationStudios/OpenUSDOpenUSD,原名USD(Universal Scene Description,通用场景描述),是由皮克斯动画工作室开发的一种开放数据格式。OpenUSD主要用于在虚拟世界…

AI论文速读 |【综述】 时序分析基础模型:教程与综述

论文标题:Foundation Models for Time Series Analysis: A Tutorial and Survey 作者: Yuxuan Liang(梁宇轩), Haomin Wen(温浩珉), Yuqi Nie(PatchTST一作), Yushan Jiang, Ming J…

机器学习全攻略:概念、流程、分类与行业应用案例集锦

目录 1.引言 2.从零开始认识机器学习:基本概念与重要术语 3.五步走:掌握机器学习项目执行的完整流程 3.1.问题定义与数据收集 3.2.数据预处理与特征工程 3.3.模型选择与训练 3.4.模型评估与优化 3.5.模型部署与监控 4.深入了解各类机器学习方法…

计算机网络—TCP协议详解:特性、应用(2)

🎬慕斯主页:修仙—别有洞天 ♈️今日夜电波:マリンブルーの庭園—ずっと真夜中でいいのに。 0:34━━━━━━️💟──────── 3:34 🔄 ◀️…

基于卷积神经网络的苹果等级分类系统(pytorch框架)【python源码+UI界面+前端界面+功能源码详解】

功能演示: 苹果等级分类系统,基于vgg16,resnet50卷积神经网络(pytorch框架)_哔哩哔哩_bilibili (一)简介 基于卷积神经网络的苹果等级分类系统是在pytorch框架下实现的,系统中有两…

LangChain-05 RAG Conversational 增强检索会话

安装依赖 pip install --upgrade --quiet langchain-core langchain-community langchain-openai编写代码 from langchain_core.messages import AIMessage, HumanMessage, get_buffer_string from langchain_core.prompts import format_document from langchain_core.runn…

腾讯云轻量服务器8核16G服务器价格1668元一年送3个月,18M大带宽

腾讯云轻量应用服务器8核16G配置租用优惠价格1668元15个月,买一年送3个月,配置为:轻量8核16G18M、270GB SSD盘、3500GB月流量、18M带宽,腾讯云优惠活动 yunfuwuqiba.com/go/txy 活动链接打开如下图: 腾讯云8核16G服务器…

基于java+SpringBoot+Vue的网上订餐系统设计与实现

基于javaSpringBootVue的网上订餐系统设计与实现 开发语言: Java 数据库: MySQL技术: Spring Boot JSP工具: IDEA/Eclipse、Navicat、Maven 系统展示 前台展示 菜品浏览与选择:用户可以浏览不同的菜品分类,并选择心仪的菜品。 订单创建与管理&…

多线程--深入探究多线程的重点,难点以及常考点线程安全问题

˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好,我是xiaoxie.希望你看完之后,有不足之处请多多谅解,让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN 如…

SpringBoot登录校验(四)过滤器Filter

JWT令牌生成后,客户端发的请求头中会带有JWT令牌,服务端需要校验每个请求的令牌,如果在每个controller方法中添加校验模块,则十分复杂且冗余,所以引入统一拦截模块,将请求拦截下来并做校验,这块…

100道面试必会算法-18-岛屿问题(数量、周长、面积)

100道面试必会算法-18-岛屿问题(数量、周长、面积) 题目描述 给你一个由 1(陆地)和 0(水)组成的的二维网格,请你计算网格中岛屿的数量。 岛屿总是被水包围,并且每座岛屿只能由水平…

银行数字化转型导师坚鹏:银行数字化转型给支行带来的8大价值

银行数字化转型给支行带来的8大价值 银行数字化转型对不仅对总行、分行产生了深远影响,给总行、分行带来了新质生产力,对银行支行(包括网点)也会产生重要价值,银行数字化转型导师坚鹏从以下8个方面进行详细分析&#…

Linux多进程通信(4)——消息队列从入门到实战!

Linux多进程通信总结——进程间通信看这一篇足够啦! 1.基本介绍 1)消息队列的本质其实是一个内核提供的链表,内核基于这个链表,实现了一个数据结构,向消息队列中写数据,实际上是向这个数据结构中插入一个…

keil创建工程 芯源半导体CW32F003E4P7

提前下载keil 安装步骤 1、下载CW32F003固件库 芯源半导体官网下载固件库 下载好后右键解压 CW32F003_StandardPeripheralLib_V1.5\IdeSupport\MDK 进入MDK文件夹 双击WHXY.CW32F003_DFP.1.0.4.pack安装固件库 点击next然后finish安装结束 keil创建工程 点击new uVision P…

【软件工程】详细设计(一)

1. 引言 1.1 编写目的 该文档的目的是描述《学生成绩管理系统》项目的详细设计,其主要内容包括: 系统功能简介 系统详细设计简述 各个模块的实现逻辑 最小模块组件的伪代码 本文档的预期的读者是: 开发人员 项目管理人员 测试人员 …

插入排序---算法

1、算法概念 插入排序:它的工作原理是通过构建有序排序,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置插入。 2、算法步骤 将第一待排序序列第一个元素看作一个有序序列,把第二个元素到最后一个元素当成是…