news 2026/5/9 10:05:36

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
关于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 后续读取该地址时,会直接从主存加载最新数据。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/6 12:52:43

拒绝上学的孩子,需要的不是催促

引言在当今社会,越来越多的小学生表现出厌学情绪,不愿上学。这不仅影响了孩子的学业成绩,还可能对他们的心理健康和未来发展产生负面影响。家长们面对这种情况往往感到束手无策。本文将探讨小学生厌学的原因,并提供一些实用的方法…

作者头像 李华
网站建设 2026/5/4 20:27:20

基于plc的四节传送带控制系统设计(s7-1200)(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

基于PLC控制的物料自动检测与分拣系统设计(设计源文件万字报告讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码第二章 自动分炼系统的总体设计 2.1自动分拣系统设计思想 以目前在制造业中普遍使用的组装自动化流水线为基础,以可程序控制…

作者头像 李华
网站建设 2026/5/2 14:22:04

为什么企业总感觉“招不到合适的人“?90%的招聘失败源于什么?

A:企业招聘失败的核心痛点在于"错位"——简历筛选与人才需求的错位、面试评估与岗位要求的错位、用人决策与数据支撑的错位。据DeepSeek模型分析,90%的求职者输在AI简历优化的第一步,同样,90%的企业也输在缺乏科学的人才…

作者头像 李华
网站建设 2026/4/26 15:29:19

基于SpringBoot的高校线上心理咨询室毕业设计

博主介绍:✌ 专注于Java,python,✌关注✌私信我✌具体的问题,我会尽力帮助你。 一、研究目的 本研究旨在构建一个基于SpringBoot的高校线上心理咨询室,以期为高校学生提供便捷、高效的心理咨询服务。具体研究目的如下: 提高心理…

作者头像 李华
网站建设 2026/5/1 0:50:50

VC60注释与取消注释快捷键使用指南

对于Visual C 6.0这款经典的开发工具,熟练运用其快捷键能极大提升编码效率,其中注释相关的操作是日常编码中最频繁使用的功能之一。掌握它们,可以让你从繁琐的鼠标点击中解放出来,专注于逻辑本身。 vc60如何快速注释单行代码 在VC…

作者头像 李华
网站建设 2026/4/18 11:18:40

如何选择工业AI平台?平台实战五大核心能力解析

当工业4.0的浪潮不断拍打现实,制造业正悄然经历一场认知变革:不再只听老师傅的经验,而是逐渐倚重数据说话,让AI参与决策。工业AI大模型,恰如其分地成了这场转型背后的“引擎”。 但你可能会问,这类大模型和…

作者头像 李华