Network switching device and method dividing packets and storing divided packets in shared buffer
AssigneeFujitsu Semiconductor Limited
InventorTaul Katayama
Life of this patent
Estimating the term…
Abstract
A network switching device that prevents its shared buffer from suffering a blocking problem, while achieving a higher memory use efficiency in buffering variable-length packets. Every received packet is divided into one or more fixed-length data blocks and supplied to the buffer. Under the control of a buffer controller, a transmit queue is created to store up to a fixed number of data blocks for each different destination network, and the data blocks written in the buffer are registered with a transmit queue corresponding to a given destination. The linkage between data blocks in each packet, as well as the linkage between packets in each transmit queue, is managed as a linked list structure based on the locations of data blocks in the buffer.
Claims20
A network switching device that transfers variable-length packets between a plurality of networks, the device comprising:
- a buffer for shared use as data storage areas for both incoming packets and outgoing packets;
- a packet divider that divides a received packet into one or more data blocks with a fixed length and supplies the divided data blocks to said buffer;
- and
- a buffer controller that creates a transmit queue for each destination network to store up to a fixed number of data blocks, registers the received packet with one of the transmit queues that corresponds to a given destination of the received packet after writing the divided data blocks into said buffer, and manages linkage between the data blocks in each packet, as well as linkage between packets in each transmit queue, as a linked list structure based on locations of data blocks in said buffer;
- wherein said buffer controller comprises:
- a pointer stack storing pointers in a unified manner, the pointers indicating the locations of the data blocks in said buffer;
- a receive pointer buffer disposed for each source network to receive pointers obtained from said pointer stack, as well as to count the number of pointers that are received;
- a transmit queue pointer counter disposed for each destination network to count the number of pointers corresponding to the data blocks that are registered with the corresponding transmit queue;
- and
- a transmit pointer buffer disposed for each destination network to receive pointers used in transmitting a packet from the corresponding transmit queue, as well as to count the number of pointers that are received.
A network switching method for transferring variable-length packets between a plurality of networks by using a buffer to store and forward the packets, comprising:
- dividing a packet into one or more data blocks with a fixed length for storage in the buffer;
- creating, by a buffer controller, a transmit queue for each destination network to store up to a fixed number of data blocks;
- registering the packet with one of the transmit queues that corresponds to a given destination of the packet after the divided data blocks are written into the buffer;
- managing linkage between the data blocks within each packet, as well as linkage between packets in each transmit queue, as a linked list structure based on locations of data blocks in the buffer;
- storing pointers into a pointer stack in a unified manner, the pointers indicating the locations of the data blocks in said buffer;
- receiving pointers obtained from said pointer stack at a receive pointer buffer disposed for each source network and counting the number of pointers that are received;
- counting the number of pointers corresponding to the data blocks that are registered with the corresponding transmit queue;
- and
- receiving pointers used in transmitting a packet from the corresponding transmit queue at a transmit pointer buffer disposed for each destination network and counting the number of pointers that are received.
Dependencies are inferred from the claim text.