Performing lookup operations using associative memories optionally including selectively determining which associative memory blocks to use in identifying a result and possibly propagating error indications
First Claim
1. A method performed by an associative memory for generating a lookup result in the associative memory, the associative memory including a plurality of associative memory blocks, the method comprising:
- receiving a profile ID;
retrieving an indication of a subset of the plurality of associative memory blocks to use in determining the lookup result from a memory based on the profile ID, each of the subset of the plurality of associative memory blocks indicating an associative memory block lookup result;
selecting a highest priority hit result from said associative memory block lookup results from the subset of the plurality of associative memory blocks; and
indicating the highest priority hit result as the lookup result.
1 Assignment
0 Petitions
Accused Products
Abstract
Methods and apparatus are disclosed for performing lookup operations using associative memories, including, but not limited to modifying search keys within an associative memory based on modification mappings, forcing a no hit condition in response to a highest priority matching entry including a force no hit indication, selecting among various blocks or sets of associative memory entries in determining a lookup result, and detecting and propagating error conditions. In one implementation, indications of which associative memory blocks to use and/or enable in a particular lookup operation are retrieved from one or more memories, such as that based on received a profile ID. In one implementation, which may or may not be in a cascaded configuration, one or more identified or received error conditions are propagated in such a manner as to identify a source of each error condition.
91 Citations
38 Claims
-
1. A method performed by an associative memory for generating a lookup result in the associative memory, the associative memory including a plurality of associative memory blocks, the method comprising:
-
receiving a profile ID; retrieving an indication of a subset of the plurality of associative memory blocks to use in determining the lookup result from a memory based on the profile ID, each of the subset of the plurality of associative memory blocks indicating an associative memory block lookup result; selecting a highest priority hit result from said associative memory block lookup results from the subset of the plurality of associative memory blocks; and indicating the highest priority hit result as the lookup result. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. An associative memory device comprising:
-
a plurality of associative memory blocks, each of the associative memory blocks indicating an associative memory block lookup result; and an output selector configured to retrieve from a memory an indication of the plurality of associative memory blocks to consider in producing an overall lookup result, and to select among said plurality of associative memory block lookup results based on the indication of the plurality of associative memory blocks to consider in producing the overall lookup result; wherein the associative memory device is configured to receive a profile ID; and
wherein the output selector is configured to retrieve the indication of the plurality of associative memory blocks to consider from the memory based on the profile ID. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17)
-
-
18. An apparatus for performing lookup operations, the apparatus comprising:
-
a first associative memory configured to receive a lookup request and to perform a lookup operation to generate a first set of results, the first associative memory including means for identifying a first set of error conditions and means for relaying indications of the first set of results and one or more indications of the first set of error conditions to a second associative memory; and the second associative memory, coupled to the first associative memory, configured to receive said indications of the first set of results and said indications of the first set of error conditions, the second associative memory including means for forwarding said one or more indications of the first set of error conditions to a next device. - View Dependent Claims (19, 20, 21, 22)
-
-
23. An associative memory for generating a lookup result, the associative memory including a plurality of associative memory blocks, the associative memory comprising:
-
means for retrieving an indication of a subset of the plurality of associative memory blocks to use in determining the lookup result, each of the subset of the plurality of associative memory blocks indicating an associative memory block lookup result; means for selecting a highest priority hit result from said associative memory block lookup results from the subset of the plurality of associative memory blocks; and means for indicating the highest priority hit result as the lookup result; and
means for identifying and reacting to an abort condition. - View Dependent Claims (24, 25, 26)
-
-
27. An associative memory for generating a lookup result, the associative memory including a plurality of associative memory blocks, the associative memory comprising:
-
means for receiving a profile ID; means for identifying, based on the profile ID an indication of a subset of the plurality of associative memory blocks to use in determining the lookup result, each of the subset of the plurality of associative memory blocks indicating an associative memory block lookup result; means for selecting a highest priority hit result from said associative memory block lookup results from the subset of the plurality of associative memory blocks; and
means for indicating the highest priority hit result as the lookup result. - View Dependent Claims (28)
-
-
29. An associative memory for generating a lookup result, the associative memory including a plurality of associative memory blocks, the associative memory comprising:
-
means for retrieving an indication of a subset of the plurality of associative memory blocks to use in determining the lookup result, each of the subset of the plurality of associative memory blocks indicating an associative memory block lookup result; means for selecting a highest priority hit result from said associative memory block lookup results from the subset of the plurality of associative memory blocks; means for indicating the highest priority hit result as the lookup result; and means for receiving and reacting to one or more error signals from one or more previous stage results. - View Dependent Claims (30)
-
-
31. An apparatus for performing lookup operations and to simultaneously produce one or more lookup results, the apparatus comprising:
-
a plurality of associative memory blocks, each of the associative memory blocks indicating an associative memory block lookup result; and a plurality of output selectors, each of the plurality of output selectors are coupled to each of the plurality of associative memory blocks and configured to retrieve from a memory an indication of the plurality of associative memory blocks to select among in producing a selected lookup result, and configured to select among said plurality of associative memory block lookup results based on the indication of the plurality of associative memory blocks to select among in producing the selected lookup result. - View Dependent Claims (32, 33, 34, 35, 36, 37, 38)
-
Specification