CHI TXLINK state deadlock possibility

In the section B14.5.1.2 Determining when to move to ACTIVATE or DEACTIVATE in IHI0050 - G AMBA® CHI Architecture Specification,

It says like below,

When remaining activity is getting response and sending last flit,

at the same time, if RXLINK of the transmitter is in DEACT state and all credit have returned,

It seems deadlock because RXLINK can not go back to ACT state according to B14.6.2 Tx and Rx state machines ,

and TXLINK must remain in RUN state according to sentence attached first in this query.

I am sharing an example which is applicable, as I think, to above case.

1. RN send CompAck with Last Credit and RN.TXLINK & ICN.RXLINK goes to DEACT state.

2. At the same time, Snoop Request goes to ICN to RN.

3. ICN.TXLINK can not proceed to DEACT state because previous Snoop request is not done.

4. RN.TXLINK can not send Snoop Response to ICN because all Credit is returned and can't get new Credit

5. both LINK can not proceed to next state and get stucked

Is this case something that could happen?

It would be helpful If you can tell me something I missed on the spec.

thanks

Parents
  • 3. ICN.TXLINK can not proceed to DEACT state because previous Snoop request is not done.

    This step isn't quite correct.  There is no requirement that the ICN.TXLINK must stay in the RUN state until it has completed the snoop request.

    Instead, the ICN.TXLINK must be aware of the ICN.RXLINK state and know that the snoop cannot be completed.  Effectively, both links will need to transition through the DEACTIVATE -> STOP -> ACTIVATE -> RUN in order to complete the request.

    As described in B14.6.1 in the CHI.G Specification

    "It is required that the activation and deactivation of the TXLINK and RXLINK are coordinated."

    We intend up add more information around the following line from the Specification:

    "• The Transmitter can determine that a transaction is not fully complete and therefore the channels should remain in RUN state until all activity has completed."

    To make it clearer that if the link in the opposite direction is observed to have changed state, then this link must also change state without depending on transactions  completing.

Reply
  • 3. ICN.TXLINK can not proceed to DEACT state because previous Snoop request is not done.

    This step isn't quite correct.  There is no requirement that the ICN.TXLINK must stay in the RUN state until it has completed the snoop request.

    Instead, the ICN.TXLINK must be aware of the ICN.RXLINK state and know that the snoop cannot be completed.  Effectively, both links will need to transition through the DEACTIVATE -> STOP -> ACTIVATE -> RUN in order to complete the request.

    As described in B14.6.1 in the CHI.G Specification

    "It is required that the activation and deactivation of the TXLINK and RXLINK are coordinated."

    We intend up add more information around the following line from the Specification:

    "• The Transmitter can determine that a transaction is not fully complete and therefore the channels should remain in RUN state until all activity has completed."

    To make it clearer that if the link in the opposite direction is observed to have changed state, then this link must also change state without depending on transactions  completing.

Children
No data