2 single port with 1x or 4x operation, 3 unavailable outbound credit – Texas Instruments TMS320TCI648x User Manual
Page 76
www.ti.com
2.3.12.2
Single Port With 1x or 4x Operation
2.3.12.3
Unavailable Outbound Credit
SRIO Functional Description
The physical layer buffers act like a FIFO unless there is a retry of a packet from the connected device, in
which case a re-ordering algorithm is used. The algorithm searches backward through the buffer group for
the first packet with the highest priority. If there are no higher priority packets in the queue, the current
packet is sent again. As an example of the re-ordering algorithm, suppose a physical layer buffer group
contains packets with the following priorities:
0 0 1 2 3 3 1 0
where the leftmost 0 represents the packet that was the first in, or the head of the queue. If this packet is
retried, the next packet to be sent is the earliest packet with priority 3 (the lefthand 3). If that packet is sent
successfully, the physical layer attempts to send the original retried packet again; otherwise, the physical
layer repeats the re-ordering algorithm.
In the case when only one portis used, logical layer buffers are grouped per priority. Each priority is 8
buffers deep. A counter is maintained for each priority to track available buffer credit across the UDI. The
count is initialized to 8 credits per port. The count is decremented each time a packet is sent across the
UDI for a port. Each port buffer group has a buffer release signal which indicates the release of a packet
from the logical layer buffer to the port's physical buffer, thus indicating the freeing up of space in the
port's logical buffer.
A priority arbiter empties the logical layer buffer with the highest priority available first. For example, it
empties all available priority 3 buffers before priority 2, 1, or 0.
The physical layer buffers act like a FIFO unless there is a retry of a packet from the connected device, in
which case a re-ordering algorithm is used.The algorithm searches backward through the buffer group for
the first packet with the highest priority. If there are no higher priority packets in the queue, the current
packet is sent again. As an example of the re-ordering algorithm, suppose a physical layer buffer group
contains packets with the following priorities:
0 0 1 2 3 3 1 0
where the leftmost 0 represents the packet that was the first in, or head of the queue. If this packet is
retried, the next packet to be sent is the earliest packet with priority 3 (the lefthand 3). If that packet is sent
successfully, the physical layer attempts to send the original retried packet again; otherwise, the physical
layer repeats the re-ordering algorithm.
At any time, if one of the credit counters reaches 0, no more buffer credit is available. The following
describes how the protocol units deal with this case.
MAU or RXU.In the case of the MAU or the RXU, all outbound packets are response packets. As a result,
the MAU or RXU is free to promote a packet’s priority level until priority 3 is reached. If priority 3 cannot
warrant a credit, the MAU or RXU keeps retrying on priority 3 until credit is available. The assumption is
that if all priority levels become backed up, the physical layer re-ordering mechanism will be implemented
to send out the highest priority packets first.
LSUs. For single-packet transfers, if the transfer is unsuccessful after 256 times of credit request, a
completion code of 111b is indicated in the LSU status register (LSUn_REG6). After reading this status,
software must determine whether to try again, increase the priority, or try a different control flow.
For transfers (with up to 4K-byte payloads) requiring multiple packets, if the transfer is unsuccessful after
256 times of credit request for the first packet, a completion code of 111b is indicated in LSUn_REG6.
After the first packet is successfully completed, subsequent packets are given more retry attempts. The
LSU makes up to 64K attempts to gain outbound credit for the subsequent packets. If the LSU is
unsuccessful after the 64K attempts, a completion code of 111b is indicated in LSUn_REG6.
TXU. The TXU cannot change state to handle inbound responses while it is requesting outbound credit.
To avoid deadlock situations, the TXU tries for outbound credit in the following manner.
For single-segment messages, if the transfer is unsuccessful after 256 times of credit request, the TXU
moves to the next queue in the round-robin loop of TX buffer descriptor queues. The TXU tries to send the
unsent message again the next time the round-robin scheduler returns to the given queue.
76
Serial RapidIO (SRIO)
SPRUE13A – September 2006