1) is response ordering logic need to be developed at Slave side?
2) Consider Single master-Single slave connection, master issue the outstanding read command to slave with following transaction
1st transaction: ARID =4, ARLEN=10
2nd transaction: ARID=4 ARLEN=3
3rd transaction: ARID=5 ARLEN=18
4th transaction: ARID=4 ARLEN=3
Could slave give response as follows for the above transaction sequence?, where 1st transaction issued first and 4th issued last:
4th transaction response first generated, then
1st transaction response generated then,
3rd transaction response generated then
2nd transaction response generated last.
3) if response generated like said above interconnect will give response to master IP like this by doing the re-ordering the response:
1st transaction response,
3rd transaction response
2nd transaction response
4th transaction response.
Rather than just answer your question directly, think about what giving the response to the fourth transaction first would tell the master.
This fourth transaction uses ARID=4, so the master knows that this response is for an ID=4 transaction, but is that for the first, second or fourth transaction ?
The master doesn't know !
So as the protocol states, you can only re-order transactions with different IDs. See section A5.3.1 in the protocol.
It's a violation of protocol, if slave gives response of 4th transaction before the 1st and 2nd transaction response.
If 4th transaction response generated before others, master will treat it as a response for the 1st transaction.
conclusion remarks: "Axi slave must have response ordering logic by which it make ordering depadancies between transaction response having same ID." Isn't it?.
I guess the answer is "yes", but I'm not sure I would describe it as the slave needing response ordering logic, it simply needs to process the first transaction of any ID before any other using that same ID.
So yes, it needs to be aware of the protocol requirements before deciding if it can start reordering responses.
Thanks @Colin Campbell for guidance.
View all questions in SoC Design forum