AXI4不支持锁定事务。然而,AXI3实现必须支持锁定事务。
注意
AXI4去除了对锁定事务的支持,因为:
- 大多数组件不需要锁定事务。
- 实现锁定事务对以下方面有显著影响:
- 互连的复杂性。
- 保证服务质量(QoS)的能力。
在本规范中,AxLOCK指ARLOCK或AWLOCK。
当master使用AxLOCK信号来表明一个事务是锁定事务时,互连必须确保只有那个master可以访问目标slave区域,直到来自同一个master的未锁定事务完成。互连内的仲裁器必须强制执行这一限制。
在master开始一个锁定序列,无论是读或写事务之前,它必须确保没有其他事务等待完成。
任何显示为锁定事务的AxLOCK指示的事务都会迫使互连锁定接下来的事务。因此,锁定序列必须始终以一个没有AxLOCK指示锁定事务的最终事务完成。这个最终事务包含在锁定序列中,并有效地移除锁定。
在完成锁定序列时,在发出最终解锁事务之前,master必须确保所有先前的锁定事务都已完成。它必须在开始任何进一步的事务前确保最终解锁事务已完成。
master必须确保锁定序列中的所有事务具有相同的AxID值。
注意 锁定访问要求互连在锁定序列进行时防止任何其他事务发生,因此可能会影响互连性能。本规范建议仅使用锁定访问来支持旧版设备。
本规范建议以下限制,但它们不是强制性的:
- 将任何锁定事务序列保持在单个4KB地址区域内。
- 将任何锁定事务序列限制为两次事务。