ARM Technical Support Knowledge Articles

Does a master need to issue non-LOCKed accesses when accessing a sequence of AHB slaves ?

Applies to: AHB, AMBA Design Kit (ADK), Micropack v2.0

Answer

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.

Rate this article

[Bad]
|
|
[Good]
Disagree? Move your mouse over the bar and click

Did you find this article helpful? Yes No

How can we improve this article?

Link to this article
Copyright © 2011 ARM Limited. All rights reserved. External (Open), Non-Confidential