172 Software Developer’s Manual
Ethernet Interface
8.7 10/100 Mb/s Specific Performance Enhancements
8.7.1 Adaptive IFS
1
The Ethernet controller supports back-to-back transmit Inter-Frame-Spacing (IFS) of 960 ns in 100
Mb/s operation and 9.6
s in 10 Mb/s operation. Although back-to-back transmission is normally
desirable, sometimes it can actually hurt performance in half-duplex environments due to excessive
collisions. Excessive collisions are likely to occur in environments where one station is attempting
to send large frames back-to-back, while another station is attempting to send acknowledge (ACK)
packets.
The Ethernet controller contains an Adaptive IFS Throttle - AIT register (see Section 13.4.35) that
enables the implementation of a driver-based adaptive IFS algorithm for collision reduction.
Adaptive IFS throttles back-to-back transmissions in the transmit MAC and delays their transfer to
the CSMA/CD transmit function. Normally, this register should be set to zero. However, if
additional delay is desired between back-to-back transmits, then this register can be set with a
value greater than zero. By setting this register with a higher value, collisions can be reduced in
certain half-duplex environments, because the adapter is less aggressive in acquiring the wire, and
therefore less likely to collide with another adapter that attempts to transmit after minimum IFS.
Note: IFS and IPG (inter-packet gap) are equivalent terms and may be used interchangeably in this
manual.
The AIFS field provides a similar function to the IGPT field in the TIPG register (see Section
13.4.34). However this Adaptive IFS throttle register counts in units of transmit clocks (which are
8 ns, 80 ns, 800 ns for 10, 100, 1000 Mb/s mode respectively), and is 16 bits wide, thus providing a
greater maximum delay value.
Using values lower than a certain minimum (determined by the ratio of transmit clock to link
speed), has no effect on back-to-back transmission. This is because the Ethernet controller does not
start transmission until the minimum IEEE IFS (9.6 us at 10 Mb, 960 ns at 100 Mb, and 96 ns at 1
Gb) has been met regardless of the value of Adaptive IFS. For example, if the Ethernet controller is
configured for 100 Mb/s operation, the minimum IEEE IFS at 100 Mb/s is 960 ns. Setting AIFS to
a value of 10 (decimal) would not affect back-to-back transmission time on the wire, because the
800 ns delay introduced (10 * 80n s = 800 ns) is less than the minimum IEEE IFS delay of 960 ns.
However, setting this register with a value of 20 (decimal), which corresponds to 1600 ns for the
above example, would delay back-to-back transmits because the ensuing 1600 ns delay is greater
than the minimum IFS time of 960 ns.
It is important to note that this register has no effect on transmissions that occur immediately after
receives or on transmissions that are not back-to-back (unlike the IPGR1 and IPGR2 values in the
TIPG register described in Section 13.4.34). In addition, Adaptive IFS also has no effect on re-
transmission timing (re-transmissions occur after collisions). Therefore, AIFS is only enabled in
back-to-back transmission. The AIFS value is NOT
additive to the TIPG.IPGT value; instead, the
actual IPG equals the larger of AIFS and TIPG.IPGT.
1. Not applicable to the 82541xx or 82547GI/EI.