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 on Exclusive access

Hi All,

I am a bit confused with Exclusive access and Locked access

Would you give me example what scenario master will use exclusive access and Locked access? 

Thanks a lot!

Parents
  • "Atomic" accesses such as exclusive and locked accesses are used whenever a transaction source needs to know that it can complete a series of transfers to a target without any other transaction source being able to access that target address range.

    So examples of this could be any reconfiguration exercise where you don't want another transaction source being able to use this target while it is only partially configured (or reconfigured), so maybe where you are setting up a lookup table and don't want it used before you have finished setting it up. Or where you are passing semaphores between processes, so need to know that the semaphore value you read, modify and then write, hasn't been written to between the read and write accesses.

    Locked accesses are simpler to implement, they just stop any other transaction source being able to access this target while it is locked, but this has a latency impact if this "locked" target is a large device that other sources could be wanting access to areas not being updated by the "locked" sequence.

    So exclusive accesses improve access latency for other sources by allowing all accesses to this target, but monitoring just the address range being exclusive accessed so that the exclusive sequence can be marked as successful if no other source wrote to any of the monitored address range locations during the exclusive sequence, or failed (and needing repeating) if any of the monitored locations were updated. But at a cost of complexity as you need to have monitoring logic to keep track of accesses to the "exclusive" address range to know if the exclusive sequence was successful or not.

Reply
  • "Atomic" accesses such as exclusive and locked accesses are used whenever a transaction source needs to know that it can complete a series of transfers to a target without any other transaction source being able to access that target address range.

    So examples of this could be any reconfiguration exercise where you don't want another transaction source being able to use this target while it is only partially configured (or reconfigured), so maybe where you are setting up a lookup table and don't want it used before you have finished setting it up. Or where you are passing semaphores between processes, so need to know that the semaphore value you read, modify and then write, hasn't been written to between the read and write accesses.

    Locked accesses are simpler to implement, they just stop any other transaction source being able to access this target while it is locked, but this has a latency impact if this "locked" target is a large device that other sources could be wanting access to areas not being updated by the "locked" sequence.

    So exclusive accesses improve access latency for other sources by allowing all accesses to this target, but monitoring just the address range being exclusive accessed so that the exclusive sequence can be marked as successful if no other source wrote to any of the monitored address range locations during the exclusive sequence, or failed (and needing repeating) if any of the monitored locations were updated. But at a cost of complexity as you need to have monitoring logic to keep track of accesses to the "exclusive" address range to know if the exclusive sequence was successful or not.

Children