MEMORY ORGANIZATION IN A SWITCHING DEVICE
First Claim
Patent Images
1. A router for switching data packets from a source to a destination in a network, the router comprising:
- an input port for receiving a data packet;
a physically distributed memory including two or more banks, each memory bank including a global data area for storing portions of the data packet;
an input switch for streaming across the memory banks uniform portions of the data packet;
a controller for determining packet routing through the router;
an output switch for extracting in order the portions of packet data stored in the global data area of each memory bank and forwarding the packet data to an appropriate output port; and
an output port for transferring the data packet to the destination.
3 Assignments
0 Petitions
Accused Products
Abstract
A router for switching data packets from a source to a destination in a network in which the router includes a distributed memory. The distributed memory includes two or more memory banks. Each memory bank is used for storing uniform portions of a data packet received from a source and linking information for each data packet to allow for the extraction of the uniform portions of a data packet from distributed locations in memory in proper order after a routing determination has been made by the router.
-
Citations
18 Claims
-
1. A router for switching data packets from a source to a destination in a network, the router comprising:
-
an input port for receiving a data packet;
a physically distributed memory including two or more banks, each memory bank including a global data area for storing portions of the data packet;
an input switch for streaming across the memory banks uniform portions of the data packet;
a controller for determining packet routing through the router;
an output switch for extracting in order the portions of packet data stored in the global data area of each memory bank and forwarding the packet data to an appropriate output port; and
an output port for transferring the data packet to the destination.
-
-
2. A router for switching data packets from a source to a destination in a network, the router comprising:
a distributed memory comprising two or more memory banks, each memory bank for storing uniform portions of a data packet received from a source and linking information for each data packet to allow for the extraction of the uniform portions of a data packet from distributed locations in memory in proper order after a routing determination has been made by the router. - View Dependent Claims (3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
14. A method of routing a data packet through a router in a system transmitting data packets between a source and a destination over a network including the router, the method comprising:
-
receiving the data packet;
dividing the data packet into a cells of a fixed size;
storing the cells in a distributed memory, the distributed memory including two or more memory banks where consecutive cells from the data packet are stored in consecutive banks of the distributed memory; and
storing linking information in one bank of the memory for linking cells of the data packet that are stored throughout the distributed memory, the linking information used for extracting the cells in order for transmission from the router to the destination.
-
-
15. A method of storing a data packet in a router while a look-up engine determines the proper path through the router for the data packet in a system transmitting data packets between a source and a destination over a network including the router, the method comprising:
-
dividing the data packet into fixed length cells;
storing the cells and linking information for reconstructing the data packet across a global data buffer, the global data buffer including two or more memory banks where the data packet is divided among the memory banks.
-
-
16. A method for determining which data packets stored in a router are to be passed through the router in a system transmitting data packets between a source and a destination over a network including the router, the method comprising:
-
determining a route through the router for a data packet, the route including a notification indicating a starting address in memory where the data packet is stored;
processing the notification including queuing the notification with other notifications to be output on the same output port of the router in a stream queue;
determining the fullness of the stream queue;
determining a drop criterion based in part on fullness of the stream queue;
generating a random number;
comparing the random number and the drop criterion and dropping the notification based upon results of the comparison. - View Dependent Claims (17, 18)
-
Specification