A background memory manager (BMM) for managing a memory in a data
processing system has circuitry for transferring data to and from an
outside device and to and from a memory, a memory state map associated
with the memory, and a communication link to a processor. The BMM manages
the memory, determining if each data structure fits into the memory,
deciding exactly where to place the data structure in memory, performing
all data transfers between the outside device and the memory, and
maintaining the memory state map according to memory transactions made,
and informing the processor of new data and its location. In preferred
embodiments the BMM, in the process of storing data structures into the
memory, provides an identifier for each structure to the processor. The
system is particularly applicable to Internet packet processing in packet
routers.