Forced compensation sequence insertion, Transport layer, Forced compensation sequence insertion –19 – Altera RapidIO MegaCore Function User Manual
Page 65: Transport layer –19
Chapter 4: Functional Description
4–19
Transport Layer
August 2014
Altera Corporation
RapidIO MegaCore Function
User Guide
The following event also causes the transmit buffer to be flushed, and any stored
packets to be lost:
■
Receive four consecutive link-request control symbols with the cmd set to
reset-device
.
Forced Compensation Sequence Insertion
As packet data is written to the transmit buffer, it is stored in 64-byte blocks. To
minimize the latency introduced by the RapidIO IP core, transmission of the packet
starts as soon as the first 64-byte block is available (or the end of the packet is reached,
for packets shorter than 64 bytes). Should the next 64-byte block not be available by
the time the first one has been completely transmitted, status control symbols are
inserted in the middle of the packet instead of idles as the true idle sequence can be
inserted only between packets and cannot be embedded inside a packet. Embedding
these status control symbols along with other symbols, such as packet-accepted
symbols, causes the transmission of the packet to be stretched in time.
The RapidIO specification requires that compensation sequences be inserted every
5,000 code groups or columns, and that they be inserted only between packets. The
RapidIO IP core checks whether the 5,000 code group quota is approaching before the
transmission of every packet and inserts a compensation sequence when the number
of code groups or columns remaining before the required compensation sequence
insertion falls below a specified threshold.
The threshold is chosen to allow time for the transmission of a packet of maximum
legal size—276 bytes—even if it is stretched by the insertion of a significant number of
embedded symbols. The threshold assumes a maximum of 37 embedded symbols, or
148 bytes, which is the number of status control symbols that are theoretically
embedded if the traffic in the other direction consists of minimum-sized packets.
Despite these precautions, in some cases—for example when using an extremely slow
Avalon system clock—the transmission of a packet can be stretched beyond the point
where a RapidIO link protocol compensation sequence must be inserted. In this case,
the packet transmission is aborted with a stomp control symbol, the compensation
sequence is inserted, and normal transmission resumes.
When the receive side receives a stomp control symbol in the midst of a packet, it
provides an error indication to the Transport layer. Because the packet was
prematurely terminated at transmission, no traffic is lost and no protocol violation
occurs.
Transport Layer
The Transport layer is a required module of the RapidIO IP core. The Transport layer
is intended for use in an endpoint processing element and must be used with at least
one Logical layer module or the Avalon-ST pass-through interface.
You can optionally turn on the following two Transport layer parameters:
■
Enable Avalon-ST pass-through interface
—If you turn on this parameter, the
Transport layer routes all unrecognized packets to the Avalon-ST pass-through
interface.