【AMBA Bus ACE 总线 9.1 -- Non-cache Master 写操作 详细介绍】

本文详细介绍了ARM的ACE接口如何在多核系统中确保非缓存主控(Non-cacheable Master)的写操作实现缓存一致性。在系统级缓存一致性下,非缓存主控通过AC、CR和CD通道与其他主控交互,invalid相关缓存行,并进行数据merge,最终写入主内存。
摘要由CSDN通过智能技术生成


请阅读【AMBA Bus ACE 总线与Cache 专栏 】

欢迎学习:【嵌入式开发学习必备专栏】


Non-cache Master

ARM的ACE(AXI Coherency Extension)是一种用于增强系统级缓存一致性的接口规范。它扩展了AMBA AXI协议,提供了一套机制,使得多个处理器核心和其他主设备(Masters)能够以一种高效且一致的方式访问共享内存。在讨论ACE非缓存主控(Non-cacheable Master)之前,先简单概述ACE与系统级缓存一致性的基本概念。

ACE 和系统级缓存一致性

  • 系统级缓存一致性:在多核系统中,每个核心可能有自己的本地缓存。系统级缓存一致性确保了一个核心对共享数据的修改能够被其他核心正确地感知,即使这些数据存储在它们自己的本地缓存中。
  • ACE:ACE为实现系统级缓存一致性提供了硬件级别的支持,通过定义一组事务类型、信号和协议来管理多个主控之间的缓存一致性和内存访问。

ACE 非缓存主控(Non-cacheable Master)

AC(Snoop address)通道
CR(Snoop response)通道
CD:(Snoop data)通道
在这里插入图片描述

图 1-1

Non-cached Master 意思就是,比如对于master0,它想写的时候,就直接发起transaction,它不是对自己的local cache进行操作,比如以non-shareable write 为例,如果下图1-2,Master0 在写的时候分别在AW,和 W channel发起命令和数据。

在这里插入图片描述

图 1-2

这个时候 Coherency 总线,在收到 AW channel 的请求之后,分别向 master1和 master2 AC channel发起请求,请求把 master1 和 master2 对应的 Cache行给 Invalid 掉,, 如下图1-3 所示。

在这里插入图片描述

图 1-3

当把 cache 行 invalid 掉之后(假设希望写的地址提前已经存在master2中),Hit 的cache 将数据返回给 Coherency 总线,coherency 总线进而将数据传递给 master 口,原来master0发起的 W 数据就会和 CD 返还回来的数据进行 merge,merge完成以后再将数据发送下来, 如下图 1-4 所示:
在这里插入图片描述

图 1-4

merge 完成以后最后将数据发送给main memoroy,如下图 1-5 所示:
在这里插入图片描述

图 1-5

在这个例子中既有non-cached master0又有 带 write-back 策略的 cache 的 master1 和 master2。

基本的思路对于写来讲
就需要通过coherency总线去把它相同的cache行进行invalid掉,对于non-cached 的master来讲,会有一个返回的data和希望写的data 进行一个merge,merge以后进行一个写的过程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

主公讲 ARM

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值