www.ti.com
SRIO Functional Description
TX_Queue_Map has been programmed to send two messages from Queue 0 before moving to Queue 1,
it will re-attempt to send the same message from Queue 0 before moving on. Whether it is successful or
not, the next attempt will come from Queue 1. Within a given queue, the hardware will always try to send
the head buffer descriptor and can not move to the next buffer descriptor in the queue until a completion
code is written. The weighted round robin control advocates, that statistically over many transmissions, the
messages will be transmitted in accordance with the percentages programmed into the registers .
Network traffic can also affect the packet delivery order. The physical layer of the RapidIO peripheral can
re-order packets of different priorities when fabric congestion occurs.
If message ordering is needed, the following must be obeyed:
•
Multi Segmented Messages
–
If there are only two devices A sending to B where ordering has to be guaranteed:
•
- Use one TX queue
•
- Use the same priority
•
- Map all messages to the same RX queue
–
If there are multiple devices A and B both sending to C, and ordering has to be guaranteed for
both:
•
- Use one TX queue in each sending device
•
- Use the same priority within each TX queue
•
- Map all A messages to the same RX queue and all B messages to another queue by disabling
the promiscuous mode and programming allowable sourceIDs.
•
Single Segmented Messages
–
There will never be a retry so even if there are multiple senders:
•
- Use one TX queue in each sending device
•
- Use the same priority within each TX queue
•
- Map all messages to the same RX queue
SPRUE13A – September 2006
Serial RapidIO (SRIO)
55
Submit Documentation Feedback