In general, in one aspect, the disclosure describes an apparatus capable
of queuing and de-queuing data stored in a plurality of queues. The
apparatus includes a status storage device to track status for each of
the plurality of queues, a status cache to track status for a subset of
the plurality of queues that are undergoing processing, and a queuing
engine to queue incoming data and de-queue outgoing data. The queuing
engine receives and updates the status for the subset of the plurality of
queues from the status cache and receives and updates the status for
remaining queues from the status storage device.