![Intel IXP45X Developer'S Manual Download Page 933](http://html1.mh-extra.com/html/intel/ixp45x/ixp45x_developers-manual_2073092933.webp)
Intel
®
IXP45X and Intel
®
IXP46X Product Line of Network Processors
August 2006
Developer’s Manual
Reference Number: 306262-004US
933
AHB Queue Manager (AQM)—Intel
®
IXP45X and Intel
®
IXP46X Product Line of Network
Processors
27.4.2
Queue Status
Status information for the 64 queues is provided in the status registers. Six status flags
will be maintained for each of the queues 0-31, empty, nearly empty, full, nearly full,
underflow, and overflow. Only the four Empty, Nearly Empty, Nearly Full, and Full
Status Flags are provided for queues 32-63. The status flags will be read/write
accessible via the AHB, although the arrangement of flags differs between queues 0-31
and 32-63. The Flag Bus will communicate status for queues 0-31 to the NPEs, the
status funnel
1
will communicate status for queues 32-63 to the event inputs to the
NPEs, and two interrupts will provide status interrupting capability for the Intel XScale
processor. The following sections outline the queue status requirements.
27.4.2.1
Status Update
Following any updates for a queue access, the read and write pointers will be used in
determination of status flag settings for the accessed queue. When the queue entry
size is set to 1, status flags are updated following every queue access. If the queues
are set for multi-word entry sizes, 2 or 4, the status flags will be updated following the
queue access, that completely fills or empties a queue entry. If the read and write
pointers are equal and the last access to the queue was a read, then the queue is
empty. If the read and write pointers are equal and the last access was a write, then
the queue is full. The nearly empty and nearly full configurable watermarks are used in
determining the settings for the NE and NF Status flags. These watermarks can be set
to 0, 1, 2, 4, 8, 16, 32, or 64 entries. If the number of completely empty entries is less
than or equal to the full watermark, the queue is considered nearly full. If the number
of completely full entries is less than or equal to the empty watermark, the queue is
considered nearly empty.
Of course, status may be read at any time by an AHB read of the appropriate status
register. The status read will reflect the status of the queue at the time of the read,
respecting all previous AHB operations. By example, if two closely spaced AHB reads
are performed, one to a queue and another to that queue’s status register, the status
register read will reflect the completion of the queue read. This will require that the
second read have additional wait states inserted (by hardware) into the bus operation
in order to insure that the first operation has been completed.
The operation of the Nearly Full, Nearly Empty, Full and Empty Status Flags with the
Nearly Empty and Nearly Full watermarks set to various levels is demonstrated in
Table 294, “Queue Status Flags” on page 934
. For this example, the buffer size is set to
64 and the entry size is set to 1. When the watermarks are set to zero, the Nearly
Empty and Empty Flags will be identical and the Nearly Full and Full Flags will be
identical.
Please note in the following table the “# Entries in the Queue” represents the cardinal
number of entries in the queue for each watermark value.
1. A “status funnel,” in this context, is the logical OR of a status word across the field. For example,
if any bit of the Empty status register is set, the empty status funnel is true.