US7305519B1

Error protection for associative memory entries and lookup operations performed thereon

Summary by NHIP

Associative memory error protection

The method identifies masks and generates protected entries by combining original data with a parity bit positioned at the original mask location. Each entry is programmed into two consecutive associative memory locations, where a specific mask enables the protection bit while masking bits from other masks.

Claim Score by NHIP

Read claim 11, the broadest

Abstract

Error protection is provided for associative memory entries and lookup operations performed thereon. Protected associative memory entries are determined which include one or more protection bits. These protected entries are programmed into an associative memory, typically with each protected entry being programmed into two or more consecutive locations. Corresponding protected lookup words are generated and used to perform lookup operations in the associative memory. For binary content-addressable memories (CAMs) and ternary content-addressable memory (TCAMs), one or more error detection bits are used per entry to prevent or at least reduce the possibility of a lookup error. For example, a single parity bit or multiple error-correction code (ECC) bits may be used per entry. The use of the protection bits reduces the possibility of a false matching of a corrupted entry, and the duplicate entries reduce the possibility of not matching an entry that should be matched as all copies of the entry must be corrupt in order to not match one of the entries during a lookup operation.

US7305519B1, drawing sheet 1
Sheet 1 of 12

Term

Term ended

Expired 18 October 2025, 0.9 years ago.

  1. Priority and filed
  2. Granted
  3. Expired
  4. Today

21 claims: 7 independent, 14 dependent

  1. 1
    A method for protecting associative memory entries, the method comprising:identifying a plurality of masks used for a plurality of associative memory entries;anddetermining a protected entry for each entry in the plurality of associative memory entries, said each entry including an original data portion and an original mask portion, the protected entry including a protected data portion and a protected mask portion, the protected data portion including the original data portion and a protection bit located at a bit position corresponding to the original mask portion, and the protected mask portion including the original mask portion and a mask to enable the protection bit corresponding to the original mask portion and to mask protection bits corresponding to other masks of the plurality of masks;wherein the protection bit is determined by a parity or other error protection calculation on a result of the original data portion masked with the original mask portion.
  2. 11
    Broadest claimClaim Score 60, broad(NHIP)A method for protecting associative memory entries, the method comprising:determining a protected entry for each original entry of a plurality of original associative memory entries, the protected entry including the original entry and one or more protection bits, wherein said one or more protection bits are determined by a parity or other error protection calculation on the original entry;andprogramming an associative memory with said each determined protected entry such that each particular entry of said determined protected entries is completely replicated in two or more consecutive entries in the associative memory.
  3. 13
    An apparatus for protecting associative memory entries, the apparatus comprising:means for determining a protected entry for each original entry of a plurality of original associative memory entries, the protected entry including the original entry and one or more protection bits, wherein said one or more protection bits are determined by a parity or other error protection calculation on the original entry;andmeans for programming an associative memory with said each determined protected entry such that each particular entry of said determined protected entries is completely replicated in two or more consecutive entries in the associative memory.
  4. 15
    A method for performing lookup operations on an associative memory, the method comprising:determining a protected lookup word based on a lookup word, the lookup word including a lookup word original data portion, the protected lookup word including the lookup word original data portion and a plurality of error protection bits, each of the plurality of protection bits corresponding to one of a plurality of masks and being determined by a parity or other error protection calculation on a result of the original data portion masked with a different one of the plurality of masks;andperforming a lookup operation in the associative memory based on the protected data word.
  5. 16
    An apparatus for performing lookup operations on an associative memory, the apparatus comprising:means for determining a protected lookup word based on a lookup word, the lookup word including a lookup word original data portion, the protected lookup word including the lookup word original data portion and a plurality of error protection bits, each of the plurality of protection bits corresponding to one of a plurality of masks and being determined by a parity or other error protection calculation on a result of the original data portion masked with a different one of the plurality of masks;andmeans for performing a lookup operation in the associative memory based on the protected data word.
  6. 17
    An apparatus for performing lookup operations, the apparatus comprising:a protected lookup word generator for determining a protected lookup word, the protected lookup word generator configured to receive a lookup word, the lookup word including a lookup word original data portion, the protected lookup word including the lookup word original data portion and a plurality of error protection bits, each of the plurality of protection bits corresponding to one of a plurality of masks and being determined by a parity or other error protection calculation on a result of the original data portion masked with a different one of the plurality of masks;andan associative memory configured to receive the protected lookup word and to generate an associative memory result based on the protected lookup word.
  7. 19
    An apparatus for protecting associative memory entries, the apparatus comprising:means for identifying a plurality of masks used for a plurality of associative memory entries;means for determining a protected entry for each entry in the plurality of associative memory entries, said each entry including an original data portion and an original mask portion, the protected entry including a protected data portion and a protected mask portion, the protected data portion including the original data portion and a protection bit located at a bit position corresponding to the original mask portion, and the protected mask portion including the original mask portion and a mask to enable the protection bit corresponding to the original mask portion and to mask protection bits corresponding to other masks of the plurality of masks;wherein the protection bit is determined by a parity or other error protection calculation on a result of the original data portion masked with the original mask portion.