The rules for the ordering of transactions are as follows:
- 来自不同Master的事务没有顺序限制,它们可以以任何顺序完成。
- 来自相同Master但具有不同ID的事务没有顺序限制,它们可以以任何顺序完成。
- 一系列具有相同ARID的读事务的数据传输必须按照Master发出地址的顺序返回。
- 一系列具有相同AWID的写事务的数据传输必须按照Master发出地址的顺序完成。
- 读、写事务之间没有顺序限制。
Read Ordering
-
在Master接口侧,来自具有相同ARID值的事务的读数据必须按照Master发出地址的顺序到达。(来自不同ARID值的读事务的数据可以以任何顺序到达)
-
Slave必须以它接收地址的顺序给一系列具有相同ARID的事务返回数据。
-
Slave必须确保任何返回数据的RID值与其响应地址的ARID值匹配。
-
Interconnect必须确保(来自一系列具有相同ARID值的面向不同从设备的事务)读数据被Master按(它发出地址的顺序)序接收。
Normal Write Ordering
-
除非Master知道从设备支持写间插,它必须按照发出事务地址的相同顺序发出写事务的数据。
-
如果Interconnect将来自不同Master的写事务合并到一个从设备,则必须确保按照地址的顺序转发数据。
-
(Note)There is no mechanism by which a master can determine whether a slave supports write data interleaving.
-
(Note)Most slave designs do not support write data interleaving.
Read and Write Interaction
-
AXI has no ordering restrictions between read and write transactions.They can complete in any order.
-
如果Master要求读写之间的关系,那么它必须确保在发出新的事务之前,先前的事务要完成。(接收到写响应,才可以认为一个写事务完成)
-
对于内存读写,Master可能会针对outstanding事务执行地址检查,以确定新事务是否位于相同或重叠的内存地址。如果读和写事务不重叠,则Master可以启动新事务,而无需等待先前的事务完成