I'm a graduate student living in south Korea. I'm studying about AMBA 3.0 AXI.
recently, i read "AMBA® AXI Protocol.pdf". but i have two questions about AXI after reading.
i wonder about interleaving and out-of order.
AXI supports out-of order and interleaving. read transaction and write transaction enable out-of order.
does interleaving be enable only write transaction?
also, the masters have slave interface including write interleaving depth. if a salve interface attaching a master(M0) has write interleaving depth of two, can the master(M0) process write data interleaving about write data having different ID filed?
Hello,
let me correct myself again.
According to AMBA® AXI™ and ACE™ Protocol Specification ARM IHI 0022D (ID102711), there are descriptions below.
A5.3.3 AXI3 write data interleaving The write data interleaving depth is the number of addresses for which a slave can accept interleaved data. However, a master interface can interleave write data with different WID values if the slave interface has a write data interleaving depth greater than one.
A5.3.3 AXI3 write data interleaving
The write data interleaving depth is the number of addresses for which a slave can accept interleaved data.
However, a master interface can interleave write data with different WID values
if the slave interface has a write data interleaving depth greater than one.
Form them, a slave should not accept the number of write interleave than the number of addresses which can hold.
It seems that the case which the data comes before the corresponding address would not be considered for the write interleave.
By this, a slave would be enough to have buffers as many as the number of acceptable addresses.
As for a master behaviour, in the specs, there is no description of how may interleave transactions can be issued.
In this meaning, "it is possible for the master to issue no more than two write-interleaving transactions with different IDs" might be correct.
Best regards,
Yasuhiko Koumoto.
AXI slave wite data interleaving depth is not necessarily the maximum number of AW addresses that can be accepted. For example, suppose the slave has a AW FIFO of depth 5, but it only checks th first two addresses when received a W data, then the maximum number of AWs that can be accepted before AWREADY down is 5. But the write data interleaving depth is 2.
When a WDATA arrives at slave, slave will check the foremost two entries in AW FIFO. If the WID matches one of these two, the data will be accepted and absorbed. However, if the WID matches AW3 (third in AW FIFO), the slave will stop and wait for AW3 to get into head of AW FIFO, and deadlock occurs.