Hi guys ,
1. I am issuing back to back locked read and write transactions for the axi interconnect . The sequence here is read locked --> write locked transactions to the same slave .. if in the middle of a read locked transaction , if i issue a write locked transaction , will the write requests processes only when the read locked requests is completed (ie the outstanding requests for the read becomes 0) ....? ( please consider that there are no outstanding transactions on ar ,aw channel on initiation of the locked request )
2. If i issue a non-locked transfer of read and write requests to the same slave at different regions , can the handshaking happens at the same time for the 2 address channels ..?
3. I have read that the both the channels (ar and aw) have to be locked before sending the requests of locked transactions to the required slave .. does it mean that the grant of arbiter at the slave port shall change only when the both the locked read and write requests are completed ...? (ie for the both the channels the outstanding transfer are 0.)
Thanks in advance ,
Vishnu Prasad
Vishnu Prasad said:1. I am issuing back to back locked read and write transactions for the axi interconnect . The sequence here is read locked --> write locked transactions to the same slave .. if in the middle of a read locked transaction , if i issue a write locked transaction , will the write requests processes only when the read locked requests is completed (ie the outstanding requests for the read becomes 0) ....? ( please consider that there are no outstanding transactions on ar ,aw channel on initiation of the locked request )
Relative ordering of the different channels still applies, even though you are doing LOCKed accesses.
If you issue the write before waiting for the read to complete, then there is no guarantee what order the accesses will be performed in, and no guarantee what order they reach the subordinate in.
If you require the write to be ordered after the read, then you must wait for the read to complete first before issuing the write.
Vishnu Prasad said:2. If i issue a non-locked transfer of read and write requests to the same slave at different regions , can the handshaking happens at the same time for the 2 address channels ..?
Yes.
Vishnu Prasad said:3. I have read that the both the channels (ar and aw) have to be locked before sending the requests of locked transactions to the required slave .. does it mean that the grant of arbiter at the slave port shall change only when the both the locked read and write requests are completed ...? (ie for the both the channels the outstanding transfer are 0.)
LOCKing applies to both reads and writes. In other words, if a manager issues a LOCKed access, then that subordinate can only be accessed by that manager for both reads and writes until it is unlocked by either an unLOCKing read or write.
Hi Christopher,
Thanks for your reply, I had some more doubts regarding the locked transfer,
Can a master requests for a locked sequence for multiple slaves at the same time , ie let's say m1 --> s1, s2 .....sn , at the same time , where it can be a mix of the read and write locked requests, if we consider that there are no outstanding transactions for any particular slaves , eventually the locking happens for the same master with multiple slaves at the same time .... is it legal in this scenario.?
This is legal but not recommended. From the AXI Spec:
"This specification recommends the following restrictions, but they are not mandatory:
• keep any locked transaction sequence within a single 4KB address region
• limit any locked transaction sequence to two transactions."
The reason is that Locked transfers are bad for system performance, as they allow one manager to block all the other managers from accessing the subordinate. Hence, the advice is that if you do have to use Locked transfers, that you minimise their impact as much as possible.
Thanks, Christopher for ur response :)