|ARM Technical Support Knowledge Articles|
If a master performs lots of back-to-back LOCKed access sequences, the selected slave has no idea when one sequence ends and a new one starts.
In a multi-layer AHB system, if one master is performing LOCKed accesses to a slave, no other master can access that slave until the LOCKed sequence has ended.
If in that multi-layer system the master attempts LOCKed accesses to a number of slaves, each NOT ending with unLOCKed accesses, that master will progressively LOCK up more and more of the system slaves, stopping other masters accessing them.
There is then a risk of system deadlock if 2 masters attempt LOCKed sequences crossing between 2 different slaves, one to slave A then slave B, and the other to slave B then slave A. Each master will complete its LOCKed transfers to the first slave, but will then be deadlocked because the other master has not released the first slave. Reset (or a SPLIT/RETRY response from one slave) would be the only way out of this.
The ADK BusMatrix insists that LOCKed sequences do not cross between different slaves, so deadlock is not possible.
Did you find this article helpful? Yes No
How can we improve this article?