
IBM3206K0424
IBM Processor for Network Resources
Preliminary
Buffer Pool Management (POOLS)
Page 252 of 676
pnr25.chapt04.01
August 14, 2000
The lower seventeen bits of the virtual address are used in conjunction with the segment template in the
VIMEM Virtual Buffer Segment Size Register to determine from which portion of the buffer map the buffer
index is retrieved. Once the buffer index is retrieved, it is combined with the appropriate base address for that
particular buffer size. The offset into the buffer is then added to get the real 32-bit address that is used in
physical memory.
POOLS uses the data structures above to manage Packet Memory resources. Each LCD is associated with a
particular POOL and multiple different LCDs may be associated with that same POOL. Within a POOL, there
are five different resource categories and two variables to go with each resource.
9.1: POOLS Get Pointer Primitive
The POOLS Get Pointer Primitive returns a pointer to the requester. The request to the virtual packet/buffer
size 4 address will always return a memory address. If in virtual mode, the address will be virtual. Requests
made for buffer sizes 0 to 3 will not return an address but rather a buffer index in bits 15-0. The real address
associated with this index can be generated by shifting the index by the buffer size (for example, six bit posi-
tions for a 64-byte buffer) and adding the result to the base address for this size buffer. Access to buffer sizes
0 to 3 is not permitted in operational mode.
The address of the primitive also selects the pool ID. The pool ID is contained in address bits 5-2, and it
selects which pool will be charged for the pointer. The buffer size is selected with address bits 8-6.
If there are no more pointers available in the specified pool, a null pointer is returned. The active pointer count
for that pool is incremented if a non-null pointer is returned. If the guaranteed threshold has been exceeded
and a buffer from the common pool is returned, the common pools count for that size is decremented by 1.
Resources and Variables Example
Resource Type, Pool 0000
Guaranteed Number
Total Number
Virtual Memory Addresses
100
150
Buffer Type One
200
300
Buffer Type Two
50
100
Buffer Type Three
10
5
Buffer Type Four
0
10
Virtual Memory Addresses
100
150
Length
32 bits
Type
Read Only
Address
Buffer Size 0
XXXX 3200
Buffer Size 1
XXXX 3240
Buffer Size 2
XXXX 3280
Buffer Size 3
XXXX 32C0
Virtual Packets/
Buffer Size 4
XXXX 3300
Power on Value
X
’
00000000
’
Restrictions
During normal operations this register is to be used as a read only register. Writes to
this address will be ignored.