| Info | HW section | SW section | Addr space | Interface | Versions |
| Authors: | Martin Kosek |
| Jan Pazdera |
The Priority queues system stores the Replicator Records generated by the Replicator in dedicated queues. On request these Replicator Records are sent to the Output Packet Editors from the PQ queue that has the highest priority and is not empty. Records can be read also by software interface. This is useful in case the packet is better to be processed by software application. Special operation called 'write-back' is implemented to provide multicast feature. Priority Queues component implements modified FIFO Priority algorithm to avoid record starvation in lower-priority queues. The whole queues content is stored in external SSRAM memory (2MB).
PQ structure
Priority Queues
The queue data is stored in an external 2MB SSRAM and the control
information is stored in internal FPGA registers. The queues are
statically allocated in the SSRAM - they are implemented as
circular buffers and the control registers are composed of head
and tail address registers and size/position registers.
The core of the PQ component is a Control Unit that fulfils
requests from the Replicator (REP) at the input side and from the
Output Packet Editors (OPEs) at the output side. It gets Replicator
Records from REP containig pointers to packet data, packet
parameters and edit parameters. Those pointers are needed be
OPEs.
OPEs can request Replicator Records from queue with highest
priority or they can do a 'write-back'. Write-back operation is
using to provide multicast via one interface.
Queue Scheduler
Queue Scheduler (QS) provides the 'highest priority queue look-up'. All queues are divided into several qroups. Each of those groups is assigned to another OPE. During OPE reading request data are read from the queue with the highest priority in corresponding group. Priority algorithm is designed to prevent lower-priority-queues records starvation.


