This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Question about AXI Exclusive Access Process

Let's think about the case that a master issues a exclusive write transaction to a slave.

On the AXI Specifiaction document, it says that if the slave doesn't support "Exclusive Accesss", then it will always update the target.

But what about the response?

If the slave respond with "OKAY", the master may think that target is not updated. ("OKAY" is error response for the exclusive write transaction)

But, as slave doesn't support "Exclusive Access", it can not respond with "EXOKAY".

How can slave handle this case?

Parents
  • If a slave doesn't support exclusive transactions it will simply treat this as a normal transaction and will both update the target and return an OKAY response.

    So the master receiving this OKAY response to an exclusive transaction knows that this is an exclusive failure, and also must then understand that the target WAS updated.

    However the protocol does not allow an exclusive write transaction before there has been a matching preceding exclusive read transaction, and as the target slave for that matching preceding exclusive read transaction would also presumably have returned an OKAY response telling the master that it does not support exclsuives, why would your master then attempt the exclusive write transaction, knowing that it must fail, AND that it then has to undo the result of that target being updated ?

    Either your master has blindly attempted an exclusive write knowing that the target slave does not support exclusives (because it saw the OKAY response for the earlier matching exclsuive read), or the master is violating the protocol by performing an exclsuive write without a previous matching exclusing read, so both issues that can be fixed in the master design, meaning that you don't then have a scenario where the target slave is updated.

Reply
  • If a slave doesn't support exclusive transactions it will simply treat this as a normal transaction and will both update the target and return an OKAY response.

    So the master receiving this OKAY response to an exclusive transaction knows that this is an exclusive failure, and also must then understand that the target WAS updated.

    However the protocol does not allow an exclusive write transaction before there has been a matching preceding exclusive read transaction, and as the target slave for that matching preceding exclusive read transaction would also presumably have returned an OKAY response telling the master that it does not support exclsuives, why would your master then attempt the exclusive write transaction, knowing that it must fail, AND that it then has to undo the result of that target being updated ?

    Either your master has blindly attempted an exclusive write knowing that the target slave does not support exclusives (because it saw the OKAY response for the earlier matching exclsuive read), or the master is violating the protocol by performing an exclsuive write without a previous matching exclusing read, so both issues that can be fixed in the master design, meaning that you don't then have a scenario where the target slave is updated.

Children