Hi,
What is real time application of AXI exclusive access.
Is it necessarily to do Exclusive read first then exclusive write.
May i know the reason is it so?
To allow Exclusive instructions (LDREX/STREX/LDXR/STXR) on the processor to non-cached addresses.
Exclusive accesses are used to implement synchronization primitives, such as mutexes and semaphores. There are various resources with more detailed descriptions, but a quick summary:
That way software can:
Must such locks will be in cacheable memory, so the exclusivity checking can be handled within the processor or as part of cache coherency. Meaning you wouldn't see any exclusives accesses on the bus. But, if for example, you're synchronizing with a non-cached/non-cache coherent master (such as a system controller) then you need to the monitoring in the memory system. And hence need the AXI exclusive accesses.
For a more detailed description, try the Cortex-A Programmer's Guides.
Developer Guides and Articles
Hi pkoti0583,
AXI exclusive accesses are used whenever a master needs to do a read-modify-write sequence, during which time it must know if any other master attempted to write to the location it is modifying.
Exclusive sequences must always start with an exclusive read, and then assuming the read returns a successful EXOKAY response the master can then complete the exclusive sequence with the exclusive write.
They are always read-then-write sequences, hence the requirement the read happens first.
Regards,
JD