ARM CHI 全品类事务 终极汇总总表

📚 ARM CHI 全品类事务 终极汇总总表

整合 Read / Write / Combined-Write / Dataless CMO / Atomic&System / Snoop / Spec 通配符集合 七大模块,一张表全覆盖:用途、核心特征、是否监听 / 是否带数据 / 关键能力、典型场景,适合知识复习、方案设计、验证用例梳理。

一、Read 读类事务

表格

事务名称 是否 Snoop 是否分配缓存 核心特征 典型应用场景
ReadNoSnp/ReadNoSnpSep ❌ 无监听 ❌ 不分配 直通非一致空间,无一致性维护 设备寄存器、非一致内存、一次性 IO 读
ReadOnce ⚠️轻量 Snoop ❌ 不分配 查脏回写、读完丢弃、防缓存污染 临时变量、日志调试读
ReadOnceCleanInvalid ⚠️轻量 Snoop ❌ 不分配 读 + 脏回写 + 全局失效 DMA 前置准备、安全数据清理
ReadOnceMakeInvalid ⚠️轻量 Snoop ❌ 不分配 读 + 强制失效、不回写脏 事务回滚、无用脏数据丢弃
ReadClean ✅完整 Snoop ✅分配 获取干净共享副本 代码段、常量只读数据
ReadShared ✅完整 Snoop ✅分配 多核共享可读副本 全局配置、多核读多写少
ReadPreferUnique ✅完整 Snoop ✅分配 优先独占、失败降级共享 大概率改写、小概率只读
ReadUnique ✅完整 Snoop ✅分配 全局失效、独占可写 写前预读、临界区数据
ReadNotSharedDirty ✅完整 Snoop ✅分配 独占脏副本、无共享 无锁结构、专属改写预读
MakeReadUnique ✅完整 Snoop 已分配 纯权限升级、无数据传输 已持 Shared,准备改写

二、基础 Write 写类事务(含 Ptl/Full/Zero/Stash)

表格

事务名称 是否 Snoop 数据粒度 核心特征 典型应用场景
WriteNoSnp{Ptl/Full/Zero} ❌无监听 Ptl/Full/Zero 非一致直通写、不维护一致性 外设寄存器、内存清零、小域改写
WriteUnique{Ptl/Full/Zero} ✅完整 Snoop Ptl/Full/Zero 抢占独占、失效其他副本 锁变量、临界区、共享变量原子写
WriteUnique{*}Stash ✅完整 Snoop Ptl/Full 独占写 + 主动推送目标缓存 线程迁移、异构计算结果投递
WriteBack{Ptl/Full} ✅完整 Snoop Ptl/Full 本地脏行回写、不改内容 LRU 驱逐脏回写、后台刷盘
WriteCleanFull ✅完整 Snoop Full 写后立即脏回、释放独占 配置更新、写完共享读
WriteEvict{Full/OrEvict} ✅完整 Snoop Full 写完回写 + 本地驱逐 一次性写、防缓存污染

三、Combined Write 组合写(写 + CMO + 持久化)

表格

事务名称 基础写类型 CMO 动作 是否持久化 典型场景
WriteNoSnp{*}CleanInv NoSnp 脏回写 + 全局失效 外设写后清缓存、DMA 就绪
WriteNoSnp{*}CleanSh NoSnp 脏回写 + 置共享 非一致内存写完多核共享读
WriteNoSnp{*}CleanShPerSep NoSnp 脏回写 + 共享 ✅分离持久 持久内存外设高可靠写
WriteUnique{*}CleanSh Unique 写完回写 + 共享 临界区写完放开多读
WriteUnique{*}CleanShPerSep Unique 写完回写 + 共享 ✅分离持久 数据库事务提交、金融高可用
WriteBackFullCleanInv Back 脏回写 + 全局失效 脏行回收 + 释放全部缓存资源
WriteBackFullCleanSh Back 脏回写 + 置共享 脏行落地后多核共享访问
WriteCleanFullCleanSh Clean 写 clean + 再共享 高一致配置分发
WriteCleanFullCleanShPerSep Clean 写 clean + 共享 + 落盘 ✅分离持久 核心交易极致可靠链路

四、Dataless 无数据 CMO 事务

表格

事务名称 是否回写脏数据 核心状态变换 典型场景
CleanUnique Dirty→Clean Unique 脏行落地 + 保留独占改写权
MakeUnique Shared→Unique 仅权限升级、已持共享准备改写
Evict ✅若脏 任意→Invalid 本地移除 LRU 缓存替换、VM 进程销毁清理
StashOnce{Unique/Shared}{Sep} ✅按需 目标分配 Unique/Shared 数据预热、核间线程迁移
CleanShared Dirty→Clean Shared 写完释放独占、开放全局读
CleanSharedPersist{Sep} Dirty→Clean Shared + 落盘 持久内存掉电保数据
CleanInvalid 全副本失效 DMA 读准备、敏感数据销毁
MakeInvalid ❌丢弃脏 全副本强制失效 事务回滚、无效脏数据丢弃

五、Atomic 原子 & 系统辅助事务

表格

事务名称 是否改数据 是否返回值 核心用途
AtomicStore ✅写新值 ❌无返回 原子赋值、引用计数、外设原子写
AtomicLoad ❌只读 ✅返原值 无锁结构读取、状态采样
AtomicSwap ✅交换读写 ✅返旧值 无锁链表、自旋锁底层实现
AtomicCompare(CAS) ✅条件写 ✅原值 + 成败 无锁哈希、乐观并发控制
DVMOp ❌仅管理 TLB 失效、页表同步、多核虚拟内存一致
PrefetchTgt ❌预加载 软件预取、迁移数据预热降延迟
PCrdReturn ❌流控 NoC 信用回流、防拥塞流量控制

六、Snoop 监听响应类事务

表格

事务组 核心行为 是否回写脏 典型场景
SnpOnce/SnpOnceFwd 一次性轻监听、读后失效 ✅若脏 一次性访问防污染
SnpClean/SnpCleanFwd 触发远端脏回写清干净 内存一致性落地、后台刷盘
SnpNotSharedDirty{*} 回写 + 独占脏、无共享副本 远端取回独占改写资源
SnpShared{*} 协调转为共享可读 ✅按需 多核只读共享数据同步
SnpUnique{*} 全局失效、抢占独占 ✅按需 远端配合写独占操作
SnpPreferUnique{*} 优先独占、降级共享 ✅按需 混合读写自适应场景
SnpCleanShared 脏回写 + 转共享 写完放开全局读
SnpCleanInvalid 脏回写 + 全失效 DMA、安全擦除
SnpMakeInvalid{*Stash} 强制失效不回写、可选推送 脏丢弃、安全置换数据
SnpStash{Unique/Shared} Snoop 驱动远端数据推送 ✅按需 一致性 Stash 核间迁移
SnpQuery 仅查状态不修改 调试、定位一致性问题
SnpDVMOp 多核 TLB / 页表广播失效 操作系统虚拟内存管理

七、CHI Spec 通配符集合事务(精简汇总)

表格

规范通配符 覆盖子事务 统一核心特征
ReadOnce* ReadOnce / CleanInvalid / MakeInvalid 非分配、一次性轻量读
WriteNoSnp Ptl/Full 无监听写 非一致外设直通写
WriteUnique Ptl/Full/ 带 Stash 一致性独占改写族
WriteBack Ptl/Full 脏行回写 本地脏数据落地归一
StashOnce/StashOnceSep/* Shared/Unique 普通 / 分离确认 主动缓存推送预热
StashOnce*Shared / *Unique 对应共享 / 独占 Stash 全集 按目标缓存状态分类推送
CleanSharedPersist* 基础 / Sep 分离持久 缓存干净 + 共享 + 掉电持久
SnpStash* StashUnique/StashShared 一致性侧监听数据推送
DBIDResp* 标准 / Ord 有序响应 数据 buffer 流控 ID 管理

💡 全局极简背诵分层

  1. 读分三类:NoSnp 外设、Once 一次性、Shared/Unique 一致性分配读
  2. 写分基础 + 组合:NoSnp 非一致、Unique 独占、Back 回写;叠加 CleanInv/CleanSh/Persist 做系统管理
  3. Dataless 无数据:只管状态 / 驱逐 / 持久 / Stash,省带宽
  4. Atomic:多核锁 & 无锁算法底层原子原语
  5. Snoop:Home 调度远端副本,是一致性核心联动
  6. 通配符:协议文档精简描述,归类同类行为事务
相关推荐
比姚明高一截6 小时前
CHI Read 事务全流程解析
chi
比姚明高一截1 天前
CHI Write 事务全流程解析
chi
比姚明高一截8 天前
第一部分:CHI协议基础与架构概览
chi
比姚明高一截8 天前
第二部分:CHI协议核心机制详解
chi
元直数字电路验证3 个月前
CHI 协议导论与宏观架构
chi·ace·abma
比姚明高一截4 个月前
ARM CMN-700 架构设计与实现指南
chi·arm cmn-700
mustfeng5 个月前
CHI协议学习记录
chi
CodingCos3 年前
【ARM AMBA5 CHI 入门 12 -- CHI 总线学习 】
chi·home node·rn·hn·sn·ci-700·chi sam