ARM Technical Support Knowledge Articles

What is meant by the arrows in section 3.3, "Dependencies between the channel handshake signals"?

Applies to: AXI

Answer

There are two aspects to cover when considering the relationships between the AXI channel handshake signals and it is possible that much of the confusion around this section of the specification comes from the fact that these two aspects are covered in the same section.

The first aspect is the “must wait” dependencies, which are all to do with a change in direction of a transaction. The returning read data/response “must wait” until the read address has been accepted and the returning write response “must wait” until the last item of write data has been accepted.

These “must wait” dependencies are shown in the diagrams by a double headed arrow and are also described in section “3.2 Relationships between the channels”.

The second aspect is the “Can wait” and “Must not wait” dependencies, that are shown by the single headed arrows.

For channels that are traveling in the same direction (i.e. from master to slave , or vice versa) there are “can wait” and “must not wait” dependencies between the handshake signals. These dependencies are needed to prevent the deadlock situation of A waiting for B, while B is waiting for A. In the diagrams these dependencies are represented by a single headed arrow. The signal at the head (point end) of the arrow “can wait” for the signal at the tail of the arrow. The signal at the tail of the arrow “must not wait” for the signal at the head of the arrow. For example, A --> B means B "can wait" for A, but A "must not wait" for B.

It is this second part (the “must not wait”) that is actually the important one in avoiding deadlock and some users may find it easier to understand the diagrams by thinking about the single headed arrow in the opposite direction. That is, you look at each signal in turn and make sure it is not dependent on any of the signals that it has arrow pointing out towards. It does not matter about single headed arrows pointing inwards towards the signal in question, as this is just a “can wait” relationship, which means “can wait if it wants to, but does not have to”.

Article last edited on: 2008-09-09 15:47:47

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