CHI到底有啥用 保证Cache一致性 2.1 Cache一致性问题是啥

2.1组件系统搭建起来后,会有cache一致性的问题

cache一致性的问题是什么呢?还是之前那个图,cpu,cache给标了一个号
在这里插入图片描述
假设现在所有的cache都没有数据
–cpu0从DDRC读了一个数据到L00,这个数据地址是0x0010,数据是0x1111。那么L2,L10,L00都有这个数据了!
–然后CPU0对这个地址数据改写了,把这个地址数据改成0x2222,写回到L00 。那么现在,L00里面地址0x0010的数据是0x2222. L10,L2,DDRC里面这个地址的数据是0x1111.
–然后现在!我CPU1也要读一个数据,地址还是这个0x0010,请问!!我CPU读到这个地址的数据是什么呢,应该是L10里的0x1111,还是L00里面的0x2222呢!
–CPU2,CPU3读这个地址应该读到什么数据呢

先说目标:cache一致性的目标,是要让所有的CPU都读到最新更新的0x2222这个数据,而不是0x1111这个旧数据

再来说cache一致性问题是什么:不同的cpu(或者是其他的模块),读同一个地址,读到的数据不一样,这就是cache一致性的问题(的最简单的理解)。反正也不考试,大概能领会到这玩意是个啥就行吧!

再来说导致这个问题的原因:是因为多个cache的存在! 同一个物理地址只能存一个数据,多级cache的存在造成了同一个物理地址的数据在不同的cache中可能有不同的数据。

其实已经说的很好理解了,强行解释一下多个cache:
在图中就有L0,L1,L2三级cache,假设L0,L1 cache没有了,只剩下L2了,那就不叫做多个cache了,那是不是就没有这个问题了?
诶~是的。
那实际中,可不可以去掉这些L0,L1 cache呢?
诶~可以。不过会影响soc的性能
在图中就有L0,L1,L2三级cache,假设L2,L1 cache没有了,只剩下L0了,那是不是就没有这个问题了?
额~L0不是有3个吗,照样有这个问题哟

可能有小许人看完这,脑子还是觉得CHI跟AXI差不多,都是用来传输数据的,你这Cache有一致性问题,跟我CHI有啥关系,难道我CHI还得帮你解决cache一致性吗?
啊哈,是啊!不然我这是讲故事催你睡觉吗?不确切地说来CHI应该跟ACE比较像(ACE我没搞过)

那怎么解决这个问题呢,不着急,我们先看cache state model

  • 16
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
AMBA (Advanced Microcontroller Bus Architecture) 是 ARM 公司提出的一种片上总线架构,它可以用于连接处理器、存储器、外设和其他系统组件。AMBA 协议提供了一种用于 CPU 和其他系统组件之间的通信方式,其中包括一些机制来实现缓存一致性。 AMBA 协议对缓存一致性的实现方式主要有两种:ACE (AXI Coherency Extensions) 和 CHI (Coherent Hub Interface)。 1. ACE:ACE 是一种 AXI (Advanced eXtensible Interface) 总线协议的扩展,它增加了一些机制来实现缓存一致性。ACE 协议支持多个处理器和 DMA 控制器之间的缓存一致性,从而提高了系统性能。 ACE 协议的主要特点包括: - 支持多个处理器和 DMA 控制器之间的缓存一致性; - 支持多种缓存一致性协议,包括 MESI、MOESI 和 MOESIF 等; - 支持多级缓存; - 支持数据和指令的缓存一致性。 2. CHICHI 是 ARM 公司推出的一种新的片上总线架构,它是 AMBA 协议的下一代版本。CHI 协议在 ACE 的基础上进行了进一步的优化和改进,从而提高了系统的性能和可扩展性。 CHI 协议的主要特点包括: - 支持多个处理器和 DMA 控制器之间的缓存一致性; - 支持多种缓存一致性协议,包括 MOESI 和 MOESIF 等; - 支持多级缓存; - 支持数据和指令的缓存一致性; - 支持高带宽和低延迟的数据传输; - 支持虚拟化和安全性。 综上所述,AMBA 协议通过 ACE 和 CHI 两种协议来实现缓存一致性,提高了系统的性能和可扩展性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值