Intel IXP42X 用户手册

下载
页码 568
Intel
®
 IXP42X Product Line of Network Processors and IXC1100 Control Plane Processor
September 2006
DM
Order Number: 252480-006US
559
AHB Queue Manager (AQM)—Intel
®
 IXP42X product line and IXC1100 control plane processors
21.4.1
Queue Control
The queues are implemented as circular buffers where adding an entry is performed by 
a write to a queue and removing an entry is performed by a read from a queue. Entries 
are read from a queue in the same order in which they were written to the queue. The 
read/write pointers track the removal/addition of entries from/to a queue. The queue 
control performs the autonomous access of the queues. External agents wanting to 
access a queue, will perform an AHB read or write to the Queue Access Register 
locations. As a result of the access to these locations, the AQM will perform the 
requested access to the queue in SRAM. Support is provided for 64 queues. Upon 
receiving a queue read or queue write from the AHB interface, queue control fetches 
the selected queue configuration from SRAM. The queues or circular buffers will reside 
in internal SRAM. Configuration for each queue will consists of:
• A Base Address – this is the address where the queue starts and is configurable for 
placing the queue buffer on any 16 word boundary within the SRAM address range 
of 000H to 7C0H (word address).
• A Write Pointer – this is a pointer to the next queue location to be written and is 
maintained by queue control.
• A Read Pointer – this is a pointer to the next location to be read and is maintained 
by queue control.
• Queue Entry Size – this indicates size of each queue entry and is configurable for 1, 
2, or 4 words.
• Queue Size – this indicates the number of words allocated to the queue and is 
configurable for 16, 32, 64 or 128 words.
• NE watermark – this field indicates the maximum number of occupied entries for 
which a queue is considered to be nearly empty. It can be set to 0, 1, 2, 4, 8, 16, 
32, or 64 entries.
• NF watermark – this field indicates the maximum number of empty entries for 
which a queue is considered to be nearly full. It can be set to 0, 1, 2, 4, 8, 16, 32, 
or 64 entries. 
To access any given queue, after the selected queue configuration is read from SRAM, 
the queue base address is summed with the read or write pointer to form the queue 
address. If the queue isn’t empty, when the request is a read, or full, when the request 
is a write, queue control will perform the requested queue access at the calculated 
queue address. If the request is a read, the queue data read from SRAM at the 
calculated queue address is passed to the AHB interface for the corresponding data 
acknowledge to the AHB read request. If the request is a write, the data from the AHB 
0x00417
Queue 0 to 31 Underflow/Overflow Status Register
2 x 4 Bytes
0x00410
0x0040F
Queue 0 to 31 Interrupt Status Register
4 x 4 bytes
0x00400
0x003FF
Queue 0 to 63 Read/Write Access
64 x 16 bytes
0x00000
Table 176.
AHB Queue Manager Memory Map