This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

SRIO DirectIO: NWRITE - priority of fragmented packet

Hi,

I'm looking in the documentation and in the forum without success.

If I start at same time two NWRITE operation to the same destination, with the same LSU (so using at least 2 shadow at the same time) in loopback, with different sizes, both greater then 256bytes (say, for instance  4Kbytes and 64Kbytes), the fragments  of the two transaction will be interleaved of not?

That is if the longer transfert start first, the shorter one will be scheduled only at the and of the first?

In this case, there is a way to inteleave the two transaction?

With my test software is seem the shorter transfer complete only when the longer one completes. Not that I verified that when I launch the two trasferts the code don't hang waiting for a free shadow and don't wait for the end of transfer. The two fransfer also raise a doorbell (with two different code). The doorbell of the shorter one seem to arrive only after the completition of the longer one.

  • You are correct, if you are using the same LSU, the transactions will complete in order of submission to the shadow registers.  This is an important point because even if the second transaction is higher priority, it is blocked until the first is sent.  If you want to pre-empt a transaction and start a higher priority one, or if you want to interleave transactions of the same priority, you must use different LSUs.  There are 8 LSUs, each with their own shadow registers.

    Regards,

    Travis