System and method using hierarchical parallel banks of associative memories
First Claim
1. In a network device having a plurality of ports for receiving and sending network messages having a plurality of fields, a classification engine configured to examine the network messages for predefined criteria and to generate corresponding actions to be applied to network messages containing the predefined criteria, the classification engine comprising:
- a plurality of associative memories arranged into one or more stages, the associative memories configured with at least some of the predefined criteria; and
a single, shared memory resource coupled to each of the plurality of associative memories of at least one stage, the shared memory resource configured with the actions to be applied to network messages,whereby two or more associative memories of the one or more stages are organized into a parallel bank that can process the same field of different network messages at substantially the same time and for each network message return one of the actions stored in the single, shared memory resource.
1 Assignment
0 Petitions
Accused Products
Abstract
A system and method provide for efficient classification of long strings of data, such as network messages. The system, which may be a classification engine for use in a network device, is configured to include one or more stages having one or more banks of ternary content addressable memories (TCAMs). The TCAM banks of each stage are organized into one or more groups and each group processes the network messages for a different set of the network device'"'"'s ports. The system further includes at least one memory resource that is shared by the TCAM banks of all groups. That is, the parallel banks of TCAMs operate in a distributed fashion while the shared memory resource operates in a centralized fashion. Accordingly, the system can process network messages at high speed while minimizing the number of required components.
81 Citations
40 Claims
-
1. In a network device having a plurality of ports for receiving and sending network messages having a plurality of fields, a classification engine configured to examine the network messages for predefined criteria and to generate corresponding actions to be applied to network messages containing the predefined criteria, the classification engine comprising:
-
a plurality of associative memories arranged into one or more stages, the associative memories configured with at least some of the predefined criteria; and a single, shared memory resource coupled to each of the plurality of associative memories of at least one stage, the shared memory resource configured with the actions to be applied to network messages, whereby two or more associative memories of the one or more stages are organized into a parallel bank that can process the same field of different network messages at substantially the same time and for each network message return one of the actions stored in the single, shared memory resource. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A network device for processing a plurality of network messages in parallel, the network device comprising:
-
a plurality of associative memories organized into a parallel bank, each associative memory including a first plurality of entries; a shared memory resource including a second plurality of entries configured to store a plurality of actions to be applied to the network messages, wherein each of the first plurality of entries is configured to specify one of the second plurality of entries; and a control logic configured to apply a plurality of fields from the network messages to the associative memories at substantially the same time and to match one of the fields to one of the first plurality of entries, and, in response thereto, to return one the plurality of actions stored in the shared memory resource. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23)
-
-
24. A method for processing a plurality of network messages in parallel, the method comprising:
-
extracting a predetermined field from each network message to provide a plurality of fields; searching for the plurality of fields in a parallel bank of associative memories at substantially the same time, the associative memories comprising a first plurality of entries; specifying a second plurality of entries in a shared memory resource in response to each field of the plurality of fields matching one entry of the first plurality of entries; and applying each of a plurality of actions to a corresponding one of the plurality of network messages, wherein each action is associated with one of the second plurality of entries by the shared memory resource. - View Dependent Claims (25, 26, 27, 28, 29, 30, 31, 32, 33)
-
-
34. A network device for processing a plurality of network messages in parallel, the network device comprising:
-
means for extracting a predetermined field from each network message to provide a plurality of fields; means for searching for the plurality of fields in a parallel bank of associative memories at substantially the same time, the associative memories comprising a first plurality of entries; means for specifying a second plurality of entries in a shared memory resource in response to each field of the plurality of fields matching one entry of the first plurality of entries; and means for applying each of a plurality of actions to a corresponding one of the plurality of network messages, wherein each action is associated with one of the second plurality of entries by the shared memory resource.
-
-
35. Computer readable instructions encoded in one or more computer readable media for execution by a processor, and when executed operable to:
-
extract a predetermined field from each network message to provide a plurality of fields; search for the plurality of fields in a parallel bank of associative memories at substantially the same time, the associative memories comprising a first plurality of entries; specify a second plurality of entries in a shared memory resource in response to each field of the plurality of fields matching one entry of the first plurality of entries; and apply each of a plurality of actions to a corresponding one of the plurality of network messages, wherein each action is associated with one of the second plurality of entries by the shared memory resource.
-
-
36. An apparatus comprising:
-
a plurality of associative memories organized into a parallel bank, each associative memory including a first plurality of entries; a shared memory resource including a second plurality of entries configured to store a plurality of unique coordinate value sequences (UCVSs), wherein each of the first plurality of entries is configured to specify one of the second plurality of entries; and a control logic configured to apply a plurality of fields from a network message to the associative memories at substantially the same time and to match one of the fields to one of the first plurality of entries, and, in response thereto, to return one the UCVS stored in the shared memory resource; at least one additional associative memory; and wherein the control logic is further configured to apply the returned one the UCVS along with at least one additional field from the network message to the additional associative memory to cause the return of an action. - View Dependent Claims (37, 38, 39, 40)
-
Specification