Method and apparatus for verifying the integrity of a content-addressable memory result
First Claim
1. A method comprising:
- generating an index by a content-addressable memory based on an input value;
acquiring a mask value and a data protection field based on the index;
generating a comparison value based on the mask value and the input value; and
comparing the comparison value to the data protection field in order to determine the integrity of a result of the content-addressable memory associated with the index.
1 Assignment
0 Petitions
Accused Products
Abstract
Methods and apparatus are disclosed for verifying the integrity of an index or result produced by a content-addressable or associated memory or other device. A pre-computed data protection field is stored, either as part of a returned index of a content-addressable memory or in a separate storage. In one implementation, a data protection operation is performed on all or part of the returned index and a comparison is made with a pre-computed data protection field. In one implementation, a copy of the masks employed by a ternary content-addressable memory and a set of pre-computed data protection fields are stored. A particular mask and pre-computed data protection field are selected based on the generated index. The original input value is then masked by the selected mask and provided to a data protection function. The result of this function is then compared to the selected pre-computed data protection field.
71 Citations
66 Claims
-
1. A method comprising:
-
generating an index by a content-addressable memory based on an input value; acquiring a mask value and a data protection field based on the index; generating a comparison value based on the mask value and the input value; and comparing the comparison value to the data protection field in order to determine the integrity of a result of the content-addressable memory associated with the index. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A computer-readable medium containing computer-readable instructions for performing a set of steps, the set of steps comprising:
-
retrieving a mask value and a data protection field from a storage based on an index value generated by a content-addressable memory based on an input value; masking the input value with the mask value to generate a masked input value; performing a data protection function on the masked input value to generate a comparison result; and comparing the comparison result with the data protection field in order to identify whether or not there was a data protection error. - View Dependent Claims (14, 15, 16, 17, 18, 19)
-
-
20. An apparatus comprising:
-
a content-addressable memory configured to receive an input word and to generate an index; one or more storage mechanisms coupled to the content-addressable memory to receive the index and to produce a mask value and a data protection field; a masking device coupled to said one or more storage mechanisms to generate a masked result based on the input word and the mask value; a data protection generator coupled to the masking device to generate a comparison value based on the masked result; and a comparison mechanism coupled to the data protection generator and said one or more storage mechanisms to compare the comparison value and the data protection field in order to identify whether or not there was a data protection error. - View Dependent Claims (21, 22, 23, 24, 25)
-
-
26. An apparatus comprising:
-
a content-addressable memory including a plurality of entries, each of the plurality of entries including a value and a data protection field, wherein the content-addressable memory is configured to identify one of the plurality of entries in response to a look operation on an input word; a data protection generator, coupled to the content-addressable memory, to receive said value of said identified one of the plurality of entries and to generate a comparison value; and a comparison mechanism, coupled to the data protection generator and the content-addressable memory, configured to compare the comparison value and said data protection field of the identified one of the plurality of entries in order to identify whether or not there was a data protection error. - View Dependent Claims (27, 28)
-
-
29. A method comprising:
-
receiving a content-addressable memory index generated based on a lookup operation in a content-addressable memory on an input word, the content-addressable memory index including a value field and a data protection field; extracting the value field and the data protection field from the content-addressable memory index; performing a data protection function on the value field to generate a comparison result; and comparing the comparison result with the data protection field in order to identify whether or not there was a data protection error. - View Dependent Claims (30, 31, 32)
-
-
33. An apparatus comprising:
-
a content-addressable memory configured to receive an input word and to generate an index; a memory, coupled to the content-addressable memory and a comparison mechanism, to receive at least a first portion of the index generated by the content-addressable memory and to retrieve a data protection field from a location identified based on the index; a data protection generator, coupled to the content-addressable memory and the comparison mechanism, configured to receive at least a second portion of the index generated by the content-addressable memory and to generate a comparison value based on the index; and the comparison mechanism configured to compare the comparison value generated by the data protection generator and the data protection field retrieved from the memory in order to identify whether or not there was a data protection error. - View Dependent Claims (34)
-
-
35. A method comprising:
-
generating an index by a content-addressable memory based on an input value, the index identifying a matching entry of the content-addressable memory; generating a comparison value by a data protection generator based at least on a portion of the index received from the content-addressable memory; acquiring a data protection field from a memory the data protection field being retrieved from an address based at least on a portion of the index received from the content-addressable memory; and comparing the comparison value generated by the data protection generator to the data protection field acquired from the memory to identify whether or not an error exists. - View Dependent Claims (36, 37, 38, 39, 40)
-
-
41. An apparatus comprising:
-
means for generating an index by a content-addressable memory based on an input value; means for acquiring a mask value and a data protection field based on the index; means for generating a comparison value based on the mask value and the input value; and means for comparing the comparison value to the data protection field in order to identify whether or not an error exists. - View Dependent Claims (42, 43, 44, 45, 46, 47)
-
-
48. An apparatus comprising:
-
means for receiving an input word and for generating an index; means for receiving the index and for producing a mask value and a data protection field; means for generating a masked result based on the input word and the mask value; means for generating a comparison value based on the masked result; and means for comparing the comparison value and the data protection field in order to identify whether or not an error exists. - View Dependent Claims (49, 50, 51, 52, 53)
-
-
54. An apparatus comprising:
-
means for receiving an index and for producing a value and a data protection field based on the index; means for generating a comparison value based on the value; and means for comparing the comparison value to the data protection field in order to identify whether or not an error exists. - View Dependent Claims (55, 56)
-
-
57. An apparatus comprising:
-
means for generating an index based on an input value to a content-addressable memory identifying a matching entry of the content-addressable memory; means for generating a comparison value based on the index received from the content-addressable memory; means for acquiring a data protection field from a memory based on the index received from the content-addressable memory; and means for comparing the comparison value generated by said means for generating the comparison value to the data protection field acquired by said means for acquiring the data protection field in order to identify whether or not an error exists. - View Dependent Claims (58, 59, 60)
-
-
61. A computer-readable medium containing computer-executable instructions for performing operations, said operations comprising:
-
receiving a content-addressable memory index; extracting a value field and a data protection field from the content-addressable memory index; performing a data protection function on the value to generate a comparison result; and comparing the comparison result with the data protection field in order to identify whether or not an error exists. - View Dependent Claims (62, 63, 64)
-
-
65. An apparatus comprising:
-
a content-addressable memory configured to receive an input word and to perform a content-addressable memory lookup operation in order to generate a data result for the input word, the data result including a value and a data protection field of an entry in the content-addressable memory matching the input value; a data protection generator, coupled to the content-addressable memory, configured to generate a comparison data protection value based on the value; and a comparison mechanism, coupled to both of the data protection generator and the content-addressable memory, configured to compare the comparison data protection value and the data protection field in order to identify whether or not there was a data protection error for said content-addressable memory lookup operation. - View Dependent Claims (66)
-
Specification