AXI原子操作总结
AXI3
原子访问是一系列针对存储区域的操作。当主机想要对特定存储区域执行一系列访问时,会采用原子访问来确保该区域中的原始数据不会被其他主机写入修改。这些访问操作通常是读取、修改和写入。
在AXI5之前,主要存在两种原子访问:
- 锁定访问,lock,当主机对一个从机执行具有锁定访问属性的操作时,任何其他主机对当前从机的访问都会被拒绝。
- 独占访问,exclusive,当一个主机成功执行独占访问操作时,其他主机可以访问该从机,但不能访问执行独占操作的那片区域。
LOCK transaction
锁定访问只能用于老版本从机设备。AXI3协议必须支持锁定访问,AXI4不支持锁定访问。
在主机启动锁定访问之前,他必须保证没有其他事务等待完成。
锁定访问使用AxLOCK信号指示,
锁定访问序列必须最终以一个未置位AxLOCK的事务完成。这个事务仍然包含在锁定访问序列中,但可以移除锁定访问,允许其他主机访问该从机。
在M0进行锁定访问操作时,interconnect拒绝M1访问
AXI4
Exclusive transaction
AXI4中,独占访问与锁定访问能够更有效的执行原子操作,这是因为独占访问可以更有效地使用带宽。
独占访问操作中,其他主机可以同时访问从机,但只有一个从机将被授予访问同一内存范围的权限。
独占访问的机制可以提供向量类型的操作,而无需总线在操作期间由某个主机一直占有。这意味着总线访问延迟和最大可实现带宽不受影响。
独占访问可以由多个数据传输组成,但所有事务都必须具有相同的AW通道属性。
从机需要一个硬件监视器来记录独占访问序列的事务信息,以便知道它正在访问的内存范围和执行访问操作的主机身份。住过在独占访问完成之间没有其他主机访问监视范围,则该访问是原子性的。
从机对其他主机访问开放,从而提高了系统带宽利用的整体公平性。
AXI5
atomic operation
AXI5新增四类原子操作,分别为atomic store、atomic load、atomic swap、atomic compare。其中atomic swap和atomic compare为固定操作,分别实现数据交换和先条件判断再交换。
对于atomic load和atomic store,需要更细分为具体操作,并将发送的数据和目的地址原始数据作为操作数进行运算。
所有原子操作和具体操作类型由AXI5新增信号AWATOP[5:0]编码指示。
所有原子操作都需要通过AW发送控制信息,由W发送数据信息。atomic store和atomic load的主要区别在于,atomic store通过B通道返回atomic response,而atomic load除了B通道的响应外,还要通过R 通道返回目的地址的最原始数据。
总结
AXI3中通过锁定访问完成原子操作,降低了带宽利用率。
AXI4中引入独占访问,解决带宽利用率低问题。但此时出现新的问题,完成一个原子操作,要先进行读访问再进行写访问。也就是主机需要把目的地址的数据拉到主机处进行处理,再写回目的地址。这种机制运行良好,但会带来不确定的延迟问题。当主机与目的地址距离较远时,这一特点尤其明显。
AXI5中为了改进延迟,提出直接在目的地址处对数据进行操作,完成更新。除了降低了访问延迟,还从两个独占事务完成的操作,缩减为一次事务。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效