Error-correcting content addressable memory
First Claim
Patent Images
1. A content addressable memory (CAM) device comprising:
- a plurality of CAM cells;
a plurality of row parity storage elements to store row parity values that correspond to contents of respective rows of the CAM cells;
a plurality of column parity storage elements to store column parity values that correspond to contents of respective columns of the CAM cells; and
a write circuit to provide an input value to a selected row of the CAM cells, the write circuit including a row parity generator to generate an updated row parity value based on the input value, wherein the write circuit is adapted to provide the updated row parity value to one of the row parity storage elements that corresponds to the selected row of the CAM cells, and wherein the write circuit is adapted to provide the updated row parity value to the one of the row parity storage elements concurrently with providing the input value to the selected row of the CAM cells.
12 Assignments
0 Petitions
Accused Products
Abstract
A content addressable memory (CAM) device having an error correction function. The CAM device includes an array of CAM cells, row parity storage elements and column parity storage elements. The row parity storage elements store row parity values that correspond to contents of respective rows of the CAM cells, and the column parity storage elements store column parity values that correspond to respective columns of the CAM cells. A bit error in the array is detected through row and column parity checking that uniquely identifies the row and column location of the error and enables correction of the error.
178 Citations
43 Claims
-
1. A content addressable memory (CAM) device comprising:
-
a plurality of CAM cells; a plurality of row parity storage elements to store row parity values that correspond to contents of respective rows of the CAM cells; a plurality of column parity storage elements to store column parity values that correspond to contents of respective columns of the CAM cells; and a write circuit to provide an input value to a selected row of the CAM cells, the write circuit including a row parity generator to generate an updated row parity value based on the input value, wherein the write circuit is adapted to provide the updated row parity value to one of the row parity storage elements that corresponds to the selected row of the CAM cells, and wherein the write circuit is adapted to provide the updated row parity value to the one of the row parity storage elements concurrently with providing the input value to the selected row of the CAM cells.
-
-
2. A content addressable memory (CAM) device comprising:
-
a plurality of CAM cells; a plurality of row parity storage elements to store row parity values that correspond to contents of respective rows of the CAM cells; a plurality of column parity storage elements to store column parity values that correspond to contents of respective columns of the CAM cells; and a parity control circuit to remove, in response to a write request, a parity contribution of a value stored within a selected row of the CAM cells from a column parity word stored within the column parity storage elements, the column parity word being formed by the column parity values. - View Dependent Claims (3, 4, 5, 6)
-
-
7. A content addressable memory (CAM) device comprising:
-
a plurality of CAM cells; a plurality of row parity storage elements to store row parity values that correspond to contents of respective rows of the CAM cells; a plurality of column parity storage elements to store column parity values that correspond to contents of respective columns of the CAM cells; and a parity control circuit to read rows of the CAM cells in a predetermined sequence and to logically combine values read from the rows to generate a column parity word, the column parity word comprising the column parity values. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A content addressable memory (CAM) device comprising:
-
a CAM array including a plurality of CAM cells arranged in rows and columns, each row of CAM cells having a row address; and a scan controller coupled to the plurality of CAM cells to read a respective row value from each row of CAM cells in succession to determine whether the row value contains a row parity error, the scan control circuit including circuitry to combine the bits within each column of the CAM cells to determine whether the column contains a column parity error, and wherein, in response to determining that a first row value read from the CAM array contains a row parity error, and that a first column of bits within the CAM array contains a column parity error, the scan controller is adapted to correct a selected bit within the first row value to generate a corrected row value. - View Dependent Claims (18, 19, 20)
-
-
21. A method of operation within a content addressable memory (CAM) device, the method comprising:
-
storing a plurality of row parity values, each row parity value indicating a parity for a respective row of CAM cells within the CAM device; and storing a plurality of column parity values, each column parity value indicating a parity for a respective column of the CAM cells, wherein storing a plurality of column parity values comprises logically combining values stored within the rows of CAM cells to generate the column parity values, and wherein logically combining values stored within the rows of CAM cells to generate the column parity values comprises; reading row values from the rows of the CAM cells; and exclusive-ORing the row values with one another to generate a column parity word, the column parity values being constituent bits of the column parity word. - View Dependent Claims (22)
-
-
23. A method of operation within a content addressable memory (CAM) device, the method comprising:
-
storing a plurality of row parity values, each row parity value indicating a parity for a respective row of CAM cells within the CAM device; storing a plurality of column parity values, each comprise parity values indicating a parity for a respective column of the CAM cells; and storing an input value within a selected row of the CAM cells after storing the plurality of row parity values and the plurality of column parity values, wherein storing the input value within the selected row of the CAM cells comprises; reading a stored value from the selected row of the CAM cells; removing a parity contribution of the stored value from the plurality of column parity values; storing the input value within the selected row of the CAM cells; and applying a parity contribution of the input value to the plurality of column parity values. - View Dependent Claims (24, 25)
-
-
26. A method of operation within a content addressable memory (CAM) device, the method comprising:
-
determining that a row value stored in a first row of CAM cells within the CAM device is a corrupted row value; combining the corrupted row value with row values stored in other rows of CAM cells within the CAM device to generate an updated column parity word; comparing the updated column parity word with a previously generated column parity word to determine a bit in error in the corrupted row value; correcting the bit in error in the corrupted row value to generate a corrected row value; and wherein comparing the updated column parity word with a previously generated column parity word to determine the bit in error comprises exclusive-ORing the updated column parity word with the previously generated column parity word to produce a column syndrome value indicative of a location of the bit in error in the corrupted row value. - View Dependent Claims (27)
-
-
28. A method of operation within a content addressable memory (CAM) device, the method comprising:
-
determining that a row value stored in a first row of CAM cells within the CAM device is a corrupted row value; combining the corrupted row value with row values stored in other rows of CAM cells within the CAM device to generate an updated column parity word; comparing the updated column parity word with a previously generated column parity word to determine a bit in error in the corrupted row value; and wherein determining that a row value is a corrupted value comprises; reading each row value stored within the CAM device; for each row value, exclusive-ORing each of the constituent bits of the row value with one another to generate a parity-check bit that corresponds to the row value; and determining that the parity-check bit does not match a row parity bit associated with the corresponding row value. - View Dependent Claims (29, 30, 31)
-
-
32. A method of operation within a content addressable memory (CAM) device, the method comprising:
-
receiving a request to store a write value in a selected row of CAM cells in a CAM array; reading a row value from the selected row of CAM cells in response to the request; removing a parity contribution of the row value from a column parity word; applying a parity contribution of the write value to the column parity word; and storing the write value in the selected row of CAM cells. - View Dependent Claims (33, 34, 35, 36, 37)
-
-
38. A content addressable memory (CAM) device comprising:
-
a CAM array; means for receiving a request to store a write value in a selected row of CAM cells in the CAM array; means for reading a row value from the selected row of CAM cells in response to the request; means for removing a parity contribution of the row value from a column parity word; means for applying a parity contribution of the write value to the column parity word; and means for storing the write value in the selected row of CAM cells. - View Dependent Claims (39, 40, 41, 42, 43)
-
Specification