ibm3206k0424 ETC-unknow, ibm3206k0424 Datasheet - Page 247

no-image

ibm3206k0424

Manufacturer Part Number
ibm3206k0424
Description
Ibm Processor For Network Resources
Manufacturer
ETC-unknow
Datasheet
IBM3206K0424
Preliminary
IBM Processor for Network Resources
Entity 9: Buffer Pool Management (POOLS)
POOLS acts as a memory manager for the IBM3206K0424. Memory buffers are checked out and checked in
via two operations (primitives) supported by POOLS: the get pointer primitive and the free pointer primitive.
These primitives can be performed explicitly by accessing specified addresses within the POOLS entity, and
they may also be done by hardware. CSKED can free a buffer upon transmission if specified by the corre-
sponding packet header (see ECC Syndrome Bits on page 196), and RAALL gets buffers to store received
data. In addition, POOLS contains mechanisms to control resource utilization and supports a Real Memory
Mode and a Virtual Memory Mode.
Basic Operation in Real Memory Mode
If memory is viewed as a series of buffers, POOLS maintains a circular list of available buffers. There are
pointers (the head and tail) to the start and the end of the list. When a get pointer primitive is executed, the
buffer at the head of the list is checked out, the head pointer is advanced and the correct resource group(s) is
debited. When a free pointer primitive is executed, the freed buffer is checked in at the end of the list, the tail
pointer is advanced, and the correct resource group is credited.
Basic Operation in Virtual Memory Mode
With the addition of Virtual Memory, POOLS must maintain five sets of head and tail pointers, thresholds, and
active counts: one for the virtual buffers themselves and the rest for the four regions of real buffers that con-
stitute the virtual buffers. In this case the base virtual address is the item returned from a get pointer operation
and returned during a free pointer operation. When the get buffer primitive is executed, POOLS creates an
active buffer map (page table) for the virtual address. As the virtual address is used and buffer (page) bound-
aries are crossed, VIMEM will request buffers from POOLS when a buffer (page) fault occurs. VIMEM then
places the buffer index in the buffer map. When the virtual buffer is no longer needed and a free pointer prim-
itive is issued with the starting virtual address, POOLS takes the contents of the buffer map and frees the
resources that were assigned to the buffer map.
Resource Controls
POOLS adds another layer of service by creating "pools" of buffers (currently a maximum of 16 pools). For
each pool, a maximum number of allowable buffers can be specified. The intent is to make it possible for sev-
eral applications to use an IBM3206K0424 at once without one or more applications starving the remaining
applications for memory buffers. Particular pools buffers are divided into “guaranteed” and “common” buffers.
All the guaranteed buffers are considered to be dedicated to their respective pool and are therefore not avail-
able for general use. The common buffers are all the memory buffers remaining after the guaranteed buffers
are subtracted from the total buffers. To maintain the buffer limits on each pool, every pool has a guaranteed
threshold, total threshold, and an active count. When a request is made for a buffer from a particular pool, the
guaranteed threshold is first checked. If the active count of the pool is less than the guaranteed threshold, the
buffer is provided. If the guaranteed threshold has been reached, then the total threshold is checked. If the
active count is equal to the total threshold, no buffer is provided. If the active count is less than the total
threshold, and a common buffer is available, a buffer is provided. If there are no common buffers available, a
buffer cannot be provided and a null index is returned. To determine if a common buffer is available, a count
is maintained for each size of buffer.
pnr25.chapt04.01
Buffer Pool Management (POOLS)
August 14, 2000
Page 247 of 676

Related parts for ibm3206k0424