4. Switch Fabric > Input Buffer
CPS-1848 User Manual
89
June 2, 2014
Formal Status
This document is confidential and is subject to an NDA.
Integrated Device Technology
4.3
Input Buffer
The Input Buffer can store a maximum of 12 packets of any size. The Input Buffer enforces buffer allocation rules that are
consistent with the RapidIO specification requirements for VC0 deadlock avoidance. The VC0 buffer allocation rules are
enforced according to packet priority only – the CRF bit is not taken into account. Buffer allocation rules control the number of
free buffers at which packets of a specific priority stop being accepted. There are two modes, controlled by the
.BUF_ALLOC field, as displayed in
.
For example, if “Two Buffers Per Priority” mode is selected, five buffers are free and a packet of priority 1 is received, that
packet can be accepted. If another packet of priority 1 is received, that packet will be retried because there are now only four
buffers free. Note that packets of priority 3 will be accepted whenever there is a free buffer.
4.4
Input Buffer to Crosspoint Buffer Transfers
The CPS-1848 can wait until the entire packet has been received, or can start to forward the packet to a Crosspoint Buffer as
soon as possible. Once a packet’s destID information has been received, the CPS-1848 can determine what output port to
send the packet to. “Store-and-Forward” mode indicates a packet must be completely received before being forwarded, while
“Cut-Through” indicates a packet should be forwarded as soon as possible. “Store-and-forward” and “Cut-through” mode are
selected for all input ports using the
.CUT_THRU_EN field.
Packets accepted by the Input Buffer are managed using Virtual Output Queues (VoQs). There is a set of VoQs for
maintenance packets with a hop count of 0, and one set of VoQs for each Crosspoint Buffer. A set of VoQs consists of a list of
packets at each priority and CRF combination.
Non-maintenance packets that are multicast have one VoQ entry for each Crosspoint Buffer to which they will be transferred.
Maintenance packets with a hop count of 0 have a single entry in the set of VoQs associated with the maintenance block. If a
Maintenance packet is to be multicast (that is, a port-write), the packet is replicated by the Maintenance Block.
The highest priority packet available in an Input Buffer is transferred first. Maintenance packets with a hop count of 0 have the
highest priority regardless of their RapidIO priority. If no maintenance packet with a hop count of 0 can be transferred, then
packets with priority 3 and the CRF bit set are sent, followed by packets with priority 3 and the CRF bit cleared, and so on down
to packets with priority 0 and the CRF bit cleared. If there are packets with the same priority being sent to different Crosspoint
Buffers, the packet chosen is based on a round-robin basis among the VoQs.
Table 26: Input Buffer Allocation Mode
Priority
One Buffer Per
Priority Mode
Two Buffers Per
Priority Mode
3
0 buffers free
0 buffers free
2
1 buffer free
2 buffers free
1
2 buffers free
4 buffers free
0
3 buffers free
6 buffers free
The
.BUF_ALLOC also controls buffer allocation for the Crosspoint
Buffers and Final Buffers.
Store-and-Forward is the default mode. Use Cut-Through mode only if all active ports have the same
capacity (for example, all ports are 2x with a lane rate of 5 Gbps). Cut-Through mode, however, can
cause congestion in the Switch Fabric if there is a mix of fast and slow ports in the system.