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

Burst termination with BUSY transfer on AHB

I heard that when HTRANS is BUSY, undefined length burst (INCR) will be terminated.

But when I read a document, I saw an example that BUSY transfer followed by SEQ transfer during an undefined length burst.

Doesn't it mean that INCR is not terminated?

I can't understand this case.

Parents
  • Where did you hear that "when HTRANS is BUSY, undefined length burst (INCR) will be terminated" ?

    This is definitely untrue.

    When a master signals a BUSY transfer it is indicating that it cannot YET move on to the next SEQ transfer in a burst. If the burst has a fixed length (INCR4/WRAP8 etc), the master WILL definitely move on to the next SEQ transfer at some point (unless it receives a non-OKAY response or loses grant of the bus). However if the burst has an undefined length the master issues a BUSY when it thinks it will be continuing the burst, but it can also decide after that point to end the burst.

    So a BUSY in an undefined length burst COULD be the end of that burst, but it COULD also just be a pause before that burst continues, so definitly no indication that the burst WILL be terminated.

    I can only think that you might possibly have seen this comment perhaps in the documentation of some arbitration logic, where that specific design has decided that BUSY transfers signalled during an INCR burst are a good opportunity to change to another master's transfers. However that is a design specific implentation description, not a protocol requirement, and to be honest I've never even seen this implemented in arbitration logic either, it just wouldn't be that efficient (arbiters will usually look at INCR bursts and rearbitrate either on every cycle, or after X transfer, so not looking for BUSY transfer)

Reply
  • Where did you hear that "when HTRANS is BUSY, undefined length burst (INCR) will be terminated" ?

    This is definitely untrue.

    When a master signals a BUSY transfer it is indicating that it cannot YET move on to the next SEQ transfer in a burst. If the burst has a fixed length (INCR4/WRAP8 etc), the master WILL definitely move on to the next SEQ transfer at some point (unless it receives a non-OKAY response or loses grant of the bus). However if the burst has an undefined length the master issues a BUSY when it thinks it will be continuing the burst, but it can also decide after that point to end the burst.

    So a BUSY in an undefined length burst COULD be the end of that burst, but it COULD also just be a pause before that burst continues, so definitly no indication that the burst WILL be terminated.

    I can only think that you might possibly have seen this comment perhaps in the documentation of some arbitration logic, where that specific design has decided that BUSY transfers signalled during an INCR burst are a good opportunity to change to another master's transfers. However that is a design specific implentation description, not a protocol requirement, and to be honest I've never even seen this implemented in arbitration logic either, it just wouldn't be that efficient (arbiters will usually look at INCR bursts and rearbitrate either on every cycle, or after X transfer, so not looking for BUSY transfer)

Children
No data