CHI总线

参考资料

有图,好像写的很好,但是收费:AMBA-CHI协议详解(一)-CSDN博客

知乎这个好像会好一些:https://zhuanlan.zhihu.com/p/675313798

B站的这个视频好像也不错:【AMBA系列】AMBA CHI协议通信_哔哩哔哩_bilibili

香山也使用了CHI总线:总线接口 - 香山开源处理器用户手册

gem5的CHI实现在,对应描述在《cache memory》的75页:https://github.com/gem5/gem5/tree/d22064c1c05f5857431219da888de7e29a268c16/src/mem/ruby/protocol/chi

CHI总线

CHI(Coherent Hub Interface),

ACE(AXI Coherency Extensions)是ARM公司为AXI(Advanced eXtensible Interface)总线协议设计的一致性扩展协议,主要用于支持多核处理器系统中的缓存一致性。它是基于监听(snooping)的一致性协议,允许多个处理器核心或代理(agents)共享内存数据时保持缓存一致性。

MOESI

MOESI 的五个状态分别是:

状态名称描述
​M​Modified (修改)缓存行已被当前核心修改(Dirty),且 ​​唯一持有​​,主存数据已过时。必须负责在逐出时写回主存。
​O​Owned (拥有)缓存行是 ​​Dirty​​ 的,但可能被多个核心 ​​Shared​​。当前缓存负责维护数据一致性(如写回主存或传递给其他缓存)。
​E​Exclusive (独占)缓存行 ​​未被修改(Clean)​​,且 ​​仅当前缓存持有​​。可随时写入,无需通知其他缓存。
​S​Shared (共享)缓存行 ​​可能被多个缓存共享​​,数据 ​​可能是 Clean 或 Dirty​​(但当前缓存不负责写回)。
​I​Invalid (无效)缓存行 ​​不在当前缓存中​​,或数据已失效。

​2. MOESI 与 MESI 的区别​

MOESI 在 MESI 的基础上增加了 ​​Owned (O) 状态​​,主要优化 ​​共享脏数据​​ 的处理:

  • ​MESI 的问题​​:
    当多个核心共享一个 ​​Modified (M)​​ 行时,必须降级为 ​​Shared (S)​​,并立即写回主存,导致 ​​不必要的带宽消耗​​。
  • ​MOESI 的改进​​:
    引入 ​​Owned (O)​​ 状态,允许脏数据在多个缓存间共享,但 ​​仅一个缓存(O 状态)负责最终写回主存​​,减少主存访问。

CHI总线节点

主要有三种类型的节点:请求节点(RN)、home节点(HN)和从节点(SN)。此外还有杂项节点(MN)。

中文名称英文全称英文缩写关键功能
​请求节点​Request NodeRN发起读写请求(分RN-F/RN-I/RN-D子类)
​Home节点​Home NodeHN事务排序、监听管理、地址归属权
​从节点​Subordinate NodeSN存储实际数据(如内存、外设)
​杂项节点​Miscellaneous NodeMN调试、性能监测等辅助功能
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值