Download Print this page

Freescale Semiconductor MPC8313E PowerQUICC II Pro Family Reference Manual page 893

Integrated
Hide thumbs Also See for MPC8313E PowerQUICC II Pro:

Advertisement

if not ring_empty(ring) then
credit[ring] = credit[ring] + weight[ring];
endif
while credit[ring] > 0 loop
transmit_frame(ring);
credit[ring] = credit[ring] - frame_size;
if ring_empty(ring) then
credit[ring] = 0;
endif
endloop
endloop
The algorithm checks registers TQUEUE[EN0–EN7] for
and TRxWT for
ring_empty(),
throughput for that ring is:
rate of queue[k] (K = 1 to 7) = (available bandwidth) * WTk/(sum(WTi) + 6WT0)
rate of queue(0) = (available bandwidth) * 7 * WT0/(sum(WTi) + 6WT0)
where i = 0 to 7
15.6.5
Lossless Flow Control
The eTSEC DMA subsystem is designed to be able to support simultaneous receive and transmit traffic at
gigabit line rates. If the host memory has sufficient bandwidth to support such line rates, then the principle
cause of overflow on receive traffic is due to a lack of Rx BDs. Thus, the long term receive throughput is
determined by the rate at which software can process receive traffic. If a user desires to prevent dropped
packets, they can inform the far-end link to stop transmission while the software processing catches up
with the backlog.
To avoid overflow in the latter case, back pressure must be applied to the far-end transmitter before the Rx
descriptor controller encounters a non-empty BD and halts with a BSY error. As there is lag between
application of back-pressure and response of the far-end, the pause request must be issued while there are
still BDs free in the ring. In the traditional eTSEC descriptor ring programming model, there is no way for
hardware to know how many free BDs are available, so software must initiate any pause requests required
during operation. If software is backlogged, the request may be not be issued in time to prevent BSY errors.
To allow the eTSEC to generate the pause request automatically, additional information (a pointer the last
free BD and ring length) is required.
15.6.5.1
Back Pressure Determination through Free Buffers
Ultimately, the rate of data reception is determined by how quickly software can release buffers back into
the receive ring(s). Each time a buffer is freed, the associated BD has its empty bit set and hardware is free
to consume both. Thus the number of free BDs in a given Rx ring indicates how close hardware is to the
end of that ring. To prevent data loss, back pressure should be applied when the number of free BDs drops
below some critical level. The number of BDs that can be consumed by an incoming packet stream while
back-pressure takes effect is determined by several factors, such as: receive traffic profile, transmit traffic
profile, Rx buffer size, physical transmission time between eTSEC and far-end device and intra-device
latency. Theoretically, the worst case is as follows:
MPC8313E PowerQUICC™ II Pro Integrated Processor Family Reference Manual, Rev. 2
Freescale Semiconductor
. For TxBD ring k, having a weight WTk, the long term average
weight()
Enhanced Three-Speed Ethernet Controllers
, TSTAT[THLT0–THLT7] for
enabled()
15-175

Advertisement

loading

This manual is also suitable for:

Mpc8313 powerquicc ii pro