The purpose of the tx_bctlin<N> input
is to permit the forcing of Burst Control Words that otherwise would not be transmitted.
This is a necessary function for an external scheduler that implements the Optional
Scheduling Enhancement described in section 5.3.2.1.1 of the
Interlaken Protocol Definition, Revision
1.2
. The Interlaken 600G IP core strictly observes the values
specified by the ctl_tx_burstmax and ctl_tx_burstshort configuration inputs and injects Burst
Control Words and Idle Control Words where required. Consequently, the Interlaken 600G
IP core can inject Idle Control Words that otherwise would not be required, which
results in reducing the effective bandwidth.
For example, assume the
ctl_tx_burstmax indicates BurstMax is set to 256
bytes and ctl_tx_burstshort indicates BurstShort is set to 64 bytes. If
a packet of 264 bytes is transferred across the TX LBUS without the use of
tx_bctlin<N>, the Interlaken 600G IP core will insert seven undesirable Idle Control
Words after the packet in order to satisfy BurstShort. Specifically:- 1 Burst Control Word (with start of packet) is sent
- 32 Data Words are sent
- 1 Burst Control Word (without start of packet) is sent
- 1 Data Word is sent
- 7 Idle Control Words are sent (to satisfy BurstShort)
If
tx_bctlin<N> is asserted after 128 bytes are sent, the following
occurs:- 1 Burst Control Word (with start of packet) is sent
- 16 Data Words are sent
- 1 Burst Control Word (without start of packet) is sent
- 17 Data Words are sent
- 0 Idle Control Words is sent
To ensure maximum bandwidth through the Interlaken 600G core, make sure that all rules that govern Interlaken
bursts, as defined in the
Interlaken Protocol Definition, Revision
1.2
, are followed when using
tx_bctlin<N>. In particular, ensure that the LBUS data corresponding
to each Interlaken burst (which is not EOP or EOP-1) on a given channel equals BurstMax
bytes. In other words, the data corresponding to all Interlaken bursts, except the last
two for a given packet, should equal BurstMax. Furthermore, the data corresponding to a
given Interlaken burst should be written to the LBUS in its entirety before changing
channels or transferring the data that corresponds to the next burst.Recommended:
AMD strongly recommends implementing the Optional Scheduling
Enhancement as described in section 5.3.2.1.1 of the
Interlaken Protocol Definition, Revision
1.2
to maximize throughput.