Memory organization in a switching device
First Claim
1. A network device, comprising:
- a plurality of input ports to receive variable length data units;
a memory to temporarily store the variable length data units;
a buffer;
a data handler to;
receive a first variable length data unit of the variable length data units,identify a key for the first variable length data unit,store the key in an entry in the buffer, the entry being associated with the first variable length data unit,determine a starting address in the memory where a first portion of the first variable length data unit is to be stored,store the starting address in the entry in the buffer associated with the first variable length data unit,store the first portion in the memory,store a second portion of the first variable length data unit in the memory, the location of the next portion being identified by an offset, andstore the offset in the entry in the buffer associated with the first variable length data unit;
a route lookup engine toperform a lookup based on the key, andidentify an output port of the network device for the first variable length data unit based on the lookup; and
an indirect cell processor, where when the first variable length data unit comprises more than a particular number of portions, the indirect cell processor is to identify at least one offset associated with at least one portion, of the first variable length data unit, exceeding the particular number of portions.
0 Assignments
0 Petitions
Accused Products
Abstract
A network device switches variable length data units from a source to a destination in a network. An input port receives the variable length data unit and a divider divides the variable length data unit into uniform length data units for temporary storage in the network device. A distributed memory includes a plurality of physically separated memory banks addressable using a single virtual address space and an input switch streams the uniform length data units across the memory banks based on the virtual address space. The network device further includes an output switch for extracting the uniform length data units from the distributed memory by using addresses of the uniform length data units within the virtual address space. The output switch reassembles the uniform length data units to reconstruct the variable length data unit. An output port receives the variable length data unit and transfers the variable length data unit to the destination.
50 Citations
19 Claims
-
1. A network device, comprising:
-
a plurality of input ports to receive variable length data units; a memory to temporarily store the variable length data units; a buffer; a data handler to; receive a first variable length data unit of the variable length data units, identify a key for the first variable length data unit, store the key in an entry in the buffer, the entry being associated with the first variable length data unit, determine a starting address in the memory where a first portion of the first variable length data unit is to be stored, store the starting address in the entry in the buffer associated with the first variable length data unit, store the first portion in the memory, store a second portion of the first variable length data unit in the memory, the location of the next portion being identified by an offset, and store the offset in the entry in the buffer associated with the first variable length data unit; a route lookup engine to perform a lookup based on the key, and identify an output port of the network device for the first variable length data unit based on the lookup; and an indirect cell processor, where when the first variable length data unit comprises more than a particular number of portions, the indirect cell processor is to identify at least one offset associated with at least one portion, of the first variable length data unit, exceeding the particular number of portions. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 19)
-
-
10. A method of routing a variable length data unit through a network device located on a network, comprising:
-
receiving, at a plurality of ports of the network device, variable length data units; temporarily storing, at a memory of the network device, the variable length data units; receiving, at a data handler, a first variable length data unit of the variable length data units; identifying, by the data handler, a key for the first variable length data unit; storing, by the data handler, the key in an entry in a buffer, the entry being associated with the first variable length data unit; determining, by the data handler, a starting address in the memory where a first portion of the first variable length data unit is to be stored; storing, by the data handler, the starting address in the entry in the buffer associated with the first variable length data unit; storing, by the data handler, a next portion of the first variable length data unit in the memory, the location of the next portion being identified by an offset; storing, by the data handler, the offset in the entry in the buffer associated with the first variable length data unit; storing the first portion in the memory at the starting address; performing, by a route lookup engine, a lookup based on the key, identifying, by the route lookup engine, an output port of the network device for the first variable length data unit based on the lookup, and identifying, by an indirect cell processor, at least one offset associated with at least one portion, of the first variable length data unit, exceeding more than a particular number of portions of the first variable length data unit. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
Specification