Cell-based queue management in software
OwnerUday Naik, Alok Kumarinventors
Life of this patent
Estimating the term…
Abstract
A system and method to implement cell-based queue management in software. Packets are received from a packet-based medium. In response, packet pointers are enqueued into a virtual output queue (“VOQ”). When a dequeue request to dequeue a cell for the VOQ is received, one of the packet pointers is speculatively prefetched from the VOQ. A cell is then transmitted onto a cell-based fabric containing at least a portion of one of the packets received from the medium and designated by a current packet pointer from among the packet pointers of the VOQ.
Claims24
A method, comprising:
- enqueuing packet pointers into a virtual output queue (“VOQ”) in response to receiving packets from a packet-based medium;
- speculatively prefetching one of the packet pointers from the VOQ in response to a dequeue request to dequeue a cell for the VOQ;
- and
- transmitting the cell onto a cell-based fabric containing at least a portion of one of the packets received from the medium and designated by a current packet pointer from among the packet pointers of the VOQ.
A machine-accessible medium that provides instructions that, if executed by a machine, will cause the machine to perform operations comprising:
- prefetching packet pointers from virtual output queues (“VOQs”) in response to dequeue requests to dequeue at least one cell for each of the VOQs, the packet pointers designating corresponding packets received from a packet-based network;
- waiting until a last one of the packet pointers is prefetched;
- and
- transmitting at least one cell onto a cell-based network, including at least a portion of one of the packets, for each of the VOQs.
A system, comprising:
- a first processing engine to execute a receive block to receive packets from a packet-based network;
- external static random access memory (“SRAM”) coupled to store virtual output queues (“VOQs”) of packet pointers designating the packets received from the network;
- a second processing engine coupled to the external SRAM, the second processing engine to execute a queue manager to manage the VOQs, the queue manager to prefetch the packet pointers from the VOQs in response to dequeue requests to dequeue at least one cell fro each of the VOQs;
- and
- a third processing engine coupled to execute a transmit block to transmit the cells to a cell-based fabric, each of the cells including at least a portion of one of the packets received from the network.
Dependencies are inferred from the claim text.