AXI write response

I have been recently reading the AXI specification and have some questions about transaction responses.

1.  In A4.3, it mentions that Transactions on the write channels have one or more write responses. How should I determine the number of responses?

2. BRESP is an optional signal, does this mean the manager can ignore this signal or the subordinate can choose not to send a response?

3. BCOMP is used in the case of multiple responses, what is its function?

  • 1.  In A4.3, it mentions that Transactions on the write channels have one or more write responses. How should I determine the number of responses?

    This is described further on in that same section.

    BCOMP is only present if an interface is using a feature that can have two write responses, these are:

    • Cache maintenance for Persistence, see A10.8 CMOs for Persistence.

    • Memory Tagging, see A13.2 Memory Tagging Extension (MTE).

    2. BRESP is an optional signal, does this mean the manager can ignore this signal or the subordinate can choose not to send a response?

    If either device does not have this signal, then the connecting device has to assume it takes the default value of OK (00).  As described:

    BRESP is an optional signal. If the BRESP_WIDTH property is 0, it is not present and assumed to be 0b000 (OKAY).

    A subordinate must always the send the required number of responses, where a write will have one or two responses.

    3. BCOMP is used in the case of multiple responses, what is its function?

    BCOMP is used to signal a completion, meaning the result of the write is observable.  For a Clean to Persist operation, it also indicates that the caches are clean.

    For Clean to Persist, it allows the write to be observable before clean to the persistent memory is complete.  For example, writing the data to the Persistent location may be slow, and so knowing the write is observable before this allows it to be removed from some tracking structures, and could allow the manager to progress.

    For MTE, it allows the Match response to be returned separately from the Completion.