当前位置: 首页 > news >正文

关于CPU的介绍(四)----CMO(Cache Maintenance Operations)

在阅读ACE协议spec的时候,有关于CMO的介绍,下面详细介绍下CMO操作:

一、CMO 的定义

CMO(Cache Maintenance Operations,缓存维护操作)是一套硬件指令或总线事务,用于主动管理缓存的状态,解决缓存与主存、多核心缓存之间的数据一致性问题,是复杂 SoC 中保证系统正确性的关键机制。


二、两类核心 CMO 操作

1. Cache cleaning(缓存清理)
  • 核心作用:将缓存中 “脏”(Dirty)的缓存行内容写回主存,确保这些写入操作对非一致性代理(Non-coherent agents,如 DMA、外设)可见。
  • 触发场景
    • 当需要让外设(非一致性代理)读取最新数据时,必须先清理缓存,将脏数据同步到主存。
    • 系统休眠、复位前,清理缓存以避免数据丢失。
  • 关键特点
    • 仅对脏缓存行(被修改过、与主存不一致的缓存行)执行写回。
    • 写回后,缓存行仍保留在缓存中(状态变为 “干净” Clean),后续读操作仍可命中缓存。
2. Cache invalidation(缓存失效)
  • 核心作用:使缓存中的指定缓存行失效,确保后续对该地址的加载操作会直接从主存读取,而非使用缓存中的旧数据。
  • 触发场景
    • 外设(非一致性代理)向主存写入数据后,需要使 CPU 缓存中对应地址的缓存行失效,避免 CPU 读取旧数据。
    • 多核心场景下,其他核心修改了共享数据,需要使本核心缓存中的对应行失效。
  • 关键特点
    • 失效操作会直接标记缓存行为 “无效”,不会写回数据(因此若缓存行是脏的,需先清理再失效)。
    • 失效后,所有代理(一致性 / 非一致性)都可以安全地更新该地址的数据。

三、两类操作的核心区别

操作类型目标对脏缓存行的处理缓存行最终状态典型使用场景
Cache cleaning同步缓存到主存写回主存保留在缓存中,状态变为 Clean让外设读取最新数据、系统休眠前数据持久化
Cache invalidation丢弃缓存中的旧数据不写回(需提前清理)从缓存中移除 / 标记为 Invalid外设写入后让 CPU 读主存、多核心共享数据更新

四、典型组合场景

在实际系统中,这两个操作经常配合使用:例如,当 DMA 需要读取 CPU 写入的数据时,流程为:

  1. Cache cleaning:CPU 将脏缓存行写回主存,确保数据对 DMA 可见。
  2. DMA 从主存读取数据。
  3. DMA 写入数据到主存后,触发Cache invalidation:使 CPU 缓存中对应地址的缓存行失效。
  4. CPU 后续读取该地址时,会直接从主存加载最新数据。

http://www.jsqmd.com/news/314411/

相关文章:

  • 【课程设计/毕业设计】基于springboot的文物知识科普“江西文物时讯”微信小程序博物馆文物科普知识普及系统微信小程序【附源码、数据库、万字文档】
  • 计算机小程序毕设实战-基于springboot的文物知识科普“江西文物时讯”微信小程序【完整源码+LW+部署说明+演示视频,全bao一条龙等】
  • 【计算机毕业设计案例】博物馆文物科普知识普及系统微信小程序基于springboot的文物知识科普“江西文物时讯”微信小程序(程序+文档+讲解+定制)
  • 【毕业设计】基于微信小程序的驾校预约系统的设计与实现(源码+文档+远程调试,全bao定制等)
  • 【毕业设计】基于手机端的陕西地区特色农产品团购平台设计与实现小程序(源码+文档+远程调试,全bao定制等)
  • 小程序计算机毕设之基于springboot的文物知识科普“江西文物时讯”微信小程序(完整前后端代码+说明文档+LW,调试定制等)
  • opencv实现图像拼接
  • 上海药物所突破:AI滤波器精准筛选神经系统疾病新药
  • 20260128让天启AIO-3576Q38开发板在天启Buildroot下适配uart2m1
  • 第六届机械设计与仿真国际学术会议(MDS 2026)
  • 【EI期刊征稿、EI(JA)检索】第五届智能电网和绿色能源国际学术会议(ICSGGE 2026)
  • 【EAI-JA期刊】第二届能源系统与电气工程国际学术会议(ESEE 2026)
  • 【SPIE出版】2026计算机科学与量子信息技术国际会议(CSQIT 2026)
  • 在农村,Wi-Fi 7是利器还是摆设?
  • KaiwuDB 分布式执行引擎的演进之路
  • 情感视角:AI伦理测试中的开发者责任
  • SYNBO AMA 回顾|将共识转化为 Alpha
  • 为什么企业总感觉“招不到合适的人“?90%的招聘失败源于什么?
  • Markdown学习(Typora使用简单说明)
  • 前端开发必备:VS Code的6个“效率插件”,
  • VC60注释与取消注释快捷键使用指南
  • 基于plc的四节传送带控制系统设计(s7-1200)(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码
  • 如何选择适合的环境噪声在线监测设备?
  • 上海团队让人人都能当“数字城市建造师“
  • 计算机毕业设计springboot基于协同过滤算法的服装风格推荐系统 基于用户行为分析的个性化服饰搭配推荐平台设计与实现 融合协同过滤技术的时尚穿搭智能推荐引擎构建
  • 计算机毕业设计springboot中国非物质文化遗产宣传管理系统 基于Spring Boot的中华传统非物质文化遗产数字化保护与推广平台 面向Web的华夏非遗文化资源智能管理与多维度展示系统
  • 海AI实验室团队揭秘:LLM训练新招数让AI学习效率提升36%
  • TCN-Transformer-BiLSTM组合模型回归+SHAP分析+新数据预测+多输出!深度学习可解释分析MATLAB代码
  • STM32H7B0VBT6 Fatfs SD卡读取文件列表
  • VNU University of Science:精准调控技术提升机器人执行能力