This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Should the SPLIT and RETRY response be given only for NONSEQ transfer?

In the waveform shown in spec for SPLIT/RETRY response, its been given for NONSEQ transfer that is first transfer of burst. Can these responses be given in the middle of a burst. And should the Master restart the burst from first beat or from middle of the burst if SPLIT/RETRY given in middle of a burst.

Parents
  • SPLIT and RETRY responses would normally be given to an AHB master request when the slave knows it won't be able to respond to the required transfer for a number of cycles, so to avoid stalling the bus these responses allow the local arbiter to possibly grant another master that could use the bus at this time.

    However when would the slave need to signal this ?

    The typical example would be when the slave needs to fetch in a bank of data from elsewhere, something that might take many cycles, so then you would expect it to be the first transfer in the burst (the NONSEQ) that causes the slave to fetch in this data, and then hopefully any susequent SEQ accesses would not need a SPLIT or RETRY response as the data would now be available.

    It wouldn't be illegal to give a SPLIT or RETRY response to a SEQ access, it would just be uncommon (not that use of SPLIT or RETRY ever was common).

    So if your slave does give a SPLIT or RETRY response to a SEQ access, the master would need to start a new burst from this failing access (it must not repeat the entire burst from the initial NONSEQ access again), so if the original burst was an INCR8, and it was the second transfer (a SEQ) that sees the SPLIT or ERROR, the AHB master when next granted would need to now perform a 7-beat burst starting with a new NONSEQ, so probably an undefined length INCR.

    But as I have said in reply to many AHB questions, are you really using this old version of AMBA 2 AHB when there are much simpler and better performance later issues of the protocol (AMBA 3 AHB-lite or AMBA 5 AHB), is there something in this particular version of the protocol that you don't see in these newer releases ?

Reply
  • SPLIT and RETRY responses would normally be given to an AHB master request when the slave knows it won't be able to respond to the required transfer for a number of cycles, so to avoid stalling the bus these responses allow the local arbiter to possibly grant another master that could use the bus at this time.

    However when would the slave need to signal this ?

    The typical example would be when the slave needs to fetch in a bank of data from elsewhere, something that might take many cycles, so then you would expect it to be the first transfer in the burst (the NONSEQ) that causes the slave to fetch in this data, and then hopefully any susequent SEQ accesses would not need a SPLIT or RETRY response as the data would now be available.

    It wouldn't be illegal to give a SPLIT or RETRY response to a SEQ access, it would just be uncommon (not that use of SPLIT or RETRY ever was common).

    So if your slave does give a SPLIT or RETRY response to a SEQ access, the master would need to start a new burst from this failing access (it must not repeat the entire burst from the initial NONSEQ access again), so if the original burst was an INCR8, and it was the second transfer (a SEQ) that sees the SPLIT or ERROR, the AHB master when next granted would need to now perform a 7-beat burst starting with a new NONSEQ, so probably an undefined length INCR.

    But as I have said in reply to many AHB questions, are you really using this old version of AMBA 2 AHB when there are much simpler and better performance later issues of the protocol (AMBA 3 AHB-lite or AMBA 5 AHB), is there something in this particular version of the protocol that you don't see in these newer releases ?

Children