
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.