Nothing Special   »   [go: up one dir, main page]

US10261858B2 - TCAM soft-error detection method and apparatus - Google Patents

TCAM soft-error detection method and apparatus Download PDF

Info

Publication number
US10261858B2
US10261858B2 US15/390,465 US201615390465A US10261858B2 US 10261858 B2 US10261858 B2 US 10261858B2 US 201615390465 A US201615390465 A US 201615390465A US 10261858 B2 US10261858 B2 US 10261858B2
Authority
US
United States
Prior art keywords
tcam
parity
signatures
fault detection
output array
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
US15/390,465
Other versions
US20170206129A1 (en
Inventor
Yevgeny Yankilevich
Gal Malchi
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Priority to US15/390,465 priority Critical patent/US10261858B2/en
Assigned to INTEL CORPORATION reassignment INTEL CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MALCHI, GAL, YANKILEVICH, YEVGENY
Publication of US20170206129A1 publication Critical patent/US20170206129A1/en
Application granted granted Critical
Publication of US10261858B2 publication Critical patent/US10261858B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1064Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in cache or content addressable memories
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C15/00Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/10Test algorithms, e.g. memory scan [MScan] algorithms; Test patterns, e.g. checkerboard patterns 

Definitions

  • provisional application 62/280,851 entitled “TCAM Soft-Error Detection Method and Apparatus,” filed on Jan. 20, 2016, and claims priority to the 62/280,851 provisional application.
  • the Specification of provisional application 62/280,851 is hereby fully incorporated by reference.
  • the present disclosure relates to the fields of computing and memory.
  • the present disclosure is related to methods and apparatuses for detecting soft errors of Ternary-Content-Addressable-Memory (TCAM).
  • TCAM Ternary-Content-Addressable-Memory
  • TCAMs can be largely affected by soft-errors.
  • Common approaches of detecting and correcting these errors include a mechanism (hardware or software) which repeatedly reads the TCAM rules and compare them to corresponding error correction codes (ECC) stored in another memory.
  • ECC error correction codes
  • the Reads are highly time consuming operations in TCAMs, and amount of TCAM entries can be very large. Therefore, the common process of checking the entire TCAM for soft-errors can take mass amount of time.
  • overall failure-in-time (FIT) rate in TCAM is directly proportional to the time between the upset and its subsequent correction by the mechanism (in worst case, time needed to scan the entire array). Thus, a more efficient mechanism of checking a TCAM for soft-errors may be very helpful.
  • FIG. 1 illustrates an overview of an example TCAM array and a couple of fault detection patterns, in accordance with various embodiments.
  • FIG. 2 illustrates example Keys-Mask pairs for the fault detection patterns of FIG. 1 , according to some embodiments.
  • FIG. 3 illustrates an arrangement for checking of a TCAM for soft errors, according to some embodiments.
  • FIG. 4 illustrates an example Truth Table for encoding the TCAM, according to some embodiments.
  • FIG. 5 illustrates an example mechanism for updating the expected parity results when a TCAM rule is updated, according to some embodiments.
  • FIG. 6 illustrates an example Truth Table for implementing the “0 Value Pattern” changed” and “1 Value Pattern” changed” in FIG. 5 , according to some embodiments.
  • FIG. 7 illustrates a block diagram of an example architecture of a computing device suitable for use to practice the present disclosure, in accordance with various embodiments.
  • FIG. 8 illustrates an example computer-readable storage medium with instructions configured to enable a computing device to practice aspects of the present disclosure, in accordance with various embodiments.
  • FIG. 9 illustrates an example process for detecting TCAM soft errors, in accordance with various embodiments.
  • the technology may include a set of fault detection patterns which may be compared against all entries in TCAM (regular lookup operation) one by one, to generate a hit output pattern or array.
  • the produced hit output pattern or array may then be used to generate a parity signature and checked against an expected parity for that pattern. If these two do not match, it may mean that upset occurred, and the TCAM may be reconfigured to fix the error.
  • the technology makes the duration of checking the entire TCAM for soft-errors dependent only on the width of the TCAM (bits per rule), which in general is substantially smaller than the height by about 3 or more orders of magnitude. Additionally, in contrast to prior art mechanisms, which rely on TCAM read operations, the disclosed technology is based on compare operations, which may be much more ‘economical’ in clock cycles per operation. Further, the disclosed technology may be capable of detecting any amount (all) of errors in a single rule, while the prior art solutions are limited by ECC strength. Still further, the disclosed technology can be extended to detect any amount of Multi-Bit Upset (MBU) events which affect joint lines of the array.
  • MBU Multi-Bit Upset
  • phrase “A and/or B” means (A), (B), or (A and B).
  • phrase “A, B, and/or C” means (A), (B), (C), (A and B), (A and C), (B and C), or (A, B and C).
  • module may refer to, be part of, or include an Application Specific Integrated Circuit (ASIC), an electronic circuit, a programmable circuit (e.g., Field Programmable Gate Array (FPGA)), a processor (shared, dedicated, or group) and/or memory (shared, dedicated, or group) that execute one or more software or firmware programs with instructions that implement the logic, a combinational logic circuit, and/or other suitable components that provide the described functionality.
  • ASIC Application Specific Integrated Circuit
  • FPGA Field Programmable Gate Array
  • FIG. 1 wherein an example TCAM array and a couple of fault detection patterns, according to some embodiments, are shown. Illustrated is a N w —rule TCAM 102 which appears as a 2 ⁇ N w —entry array; each entry in this array is of N B bits wide.
  • the fault detection patterns for checking soft errors of TCAM 102 may be comprised of two sets of N B ⁇ N B patterns as illustrated. The two groups of patterns, may be example “1 Value Patterns” 104 a and example “0 Value Patterns 104 b shown in FIG. 1 . In alternate embodiments, other Value Patterns may be employed instead.
  • TCAM 102 may comprise cells that are formed with a plurality of transistors (e.g., 10-12 transistors) to store a single bit. In other embodiments, TCAM 102 may comprise cells that are emulated with static random access memory (SRAM) cells.
  • SRAM static random access memory
  • fault detection patterns 104 a and 104 b may be translated into the example Keys-Mask pairs as illustrated in FIG. 2 , in accordance with an example TCAM model. (Note that the Keys-Mask pairs may differ for different TCAM models.)
  • the hit output array e.g., 312 of FIG. 3
  • the hit output array will be set in all the Rules of TCAM which have 1 or don't care in their i's column.
  • Lookup operation with Pattern i from the “0 Value Patterns” group 104 b will cause the hit output array to be set in all the Rules with 0 or don't care in their i's column.
  • the fault detection patterns (e.g., in Keys-Mask pairs) may be generated and stored in a table 302 . Per predefined time, all of the fault detection patterns may be generated, outputted and used as keys to perform look up operations on TCAM 102 , to generate hit output arrays 312 . In other embodiments, the generation may be performed on-the-fly when the look up operations on TCAM 102 are performed, e.g., at every checking phase.
  • the resulted hit output array 312 of each pattern may then be inputted to parity generator 304 to have its Parity signature generated.
  • Parity generator 304 may generate the Parity signature in any one of a number of known techniques. For example, Interleaving Parity may be used to spare time required to generate the parity of all the arrays and make it better protected from cases when there are soft error in two (or any other even number) of soft errors in the same column. Odd and even rules in hit output array may get their parity bits generated in parallel to each other.
  • the Parity signature of a hit output array 312 may be compared against the expected parity value to determine if the two values match, using comparator 306 . In embodiments, a True comparison result denotes successful comparison, whereas a False comparison result denotes detection of a soft error.
  • the expected parity values of the hit output arrays may be stored in a separated array 310 , and selected for comparison using multiplexor 308 . (Note that under the present disclosure, the parity is generated on the hit output array, and not on the TCAM content.)
  • a controller 320 may be provided (e.g., as part of the TCAM arrangement) to direct/control the TCAM soft error detection operations described. Controller 320 , parity generator 304 and comparator 306 , may be collectively referred to as the logic and/or circuitry for detecting soft error of a TCAM. In embodiments, controller 320 , parity generator 304 and comparator 306 may be implemented in any hardware and/or software combination. Hardware may include ASIC or programmable circuits, and software may include instructions in any one of a number of programming languages. Table 302 and array 310 may be stored in any volatile or non-volatile storage, dedicated or temporally allocated storage known in the art.
  • soft errors of a TCAM may be more efficiently detected, with the detection time only proportional to the width of the array (independent of the height of the array), which remains substantially constant.
  • controller 320 may cause all of the 2 ⁇ N W lines (both Entry0 and Entry1 of all the N W rules) of the TCAM array be written with 0s. Controller 320 may further cause the expected Hit Array Parity Signature be set to 0 as well (N W is expected to be even). This may be done only once, after reset of the device with the TCAM.
  • every rule update may require reading the previous rule, intended to be modified—Read-Modify-Write.
  • every rule update may require 2 reads (Entry 0 and Entry 1).
  • the previous rule may be compared to a new written rule and the Expected Hit Array Parity Signature may then be changed according to the Truth Table in FIG. 4 and the example scheme in FIGS. 5 and 6 , described more fully below.
  • some of the preceding described operations may be performed prior to TCAM rule update. This is, however, not expected to a big overhead, since the rule update is not performed on a very frequent basis. In embodiments, this overhead may be spared if a driver of the operating system of a host device of the TCAM holds a shadow of TCAM rules. For these embodiments, the driver may be configured to write the calculated parity bit directly, as it knows the old and the modified entries. The TCAM encoding may then be done according to a specific encoding of TCAM, and can be changed easily to any other encoding.
  • the TCAM may be encoded in accordance with the example Truth Table 400 illustrated in FIG. 4 .
  • the hit output for “Global don't care” will be “1.”
  • the hit output for “invalid” will be “0,” and so on.
  • tcam[i, 0] and tcam[i, 1] are the Entry0 and Entry1 entries that comprise rule i.
  • FIG. 5 illustrates an example mechanism of updating the Expected Hit Array Parity Signature due to the Rule Update, according to various embodiments.
  • the process may require a read of the previous rule, both the Entry0 and Entry1 ( 510 , 512 ). Then, depending on the Write Line Candidate ( 514 ), a check may be performed to determine whether the Expected Hit Array Parity Signature should be changed from its previous value. It may be done per bit in the Line, both for “0 Pattern” and “1 Pattern”: Per bit in line may include two blocks “0 Value Pattern” changed and “1 Value Pattern” changed 520 .
  • an XOR operation ( 522 ) may be performed with previous Expected Hit Array Parity Signatures per pattern and the result of the blocks, to get the new Expected Hit Array Parity Signatures per pattern ( 524 ).
  • FIG. 6 illustrates an example Truth Table of the “0 Value Pattern” changed and “1 Value Pattern” changed, according to various embodiments.
  • Table 600 of FIG. 6 a “[0]” or “[1]” entry refers to the case where the Entry0 is written to the TCAM, while a “ ⁇ 0 ⁇ or ⁇ 1 ⁇ ” entry refers to case where the Entry1 is written to the TCAM.
  • a “[0]” or “[1]” entry refers to the case where the Entry0 is written to the TCAM
  • a “ ⁇ 0 ⁇ or ⁇ 1 ⁇ ” entry refers to case where the Entry1 is written to the TCAM.
  • process 900 for detecting TCAM soft errors may include operations performed at blocks 902 - 920 .
  • the operations may be performed e.g., by the earlier described controller 320 . In alternate embodiments, some of the operations can be split, combined, or performed in different orders.
  • Process 900 may begin at block 902 .
  • block 902 on reset or before the first configuration, all TCAM lines and expected parity signatures of the hit output array may be set to “0.”
  • a determination may be on whether any of the TCAM rules are to be updated. If a result on the determination is affirmative, process 900 may continue at block 906 .
  • a read-modify-write may be performed to update a TCAM rule.
  • the expected parity signature of the hit output array corresponding to the TCAM rule being updated may be updated.
  • the operations at block 904 - 908 may initially be repeated a number of times to configure the TCAM with all the rules.
  • process 900 may continue at block 910 .
  • a determination may be made on whether it is time to check the TCAM for soft errors. If a result on the determination is negative, process 900 may return to block 904 and continue therefrom as earlier described.
  • process 900 may proceed to block 912 .
  • fault detection patterns may be generated, stored, and caused to be applied to the TCAM, to generate the hit output array.
  • parity signatures of the hit output array may be calculated.
  • the calculate parity signatures of the hit output array, and the expected parity signatures of the hit output array may be compared.
  • a determination may be made on whether there are any false comparisons. If a result of the determination indicates there are one or more false comparisons, at block 920 , detection of soft error or errors may be reported. If a result of the determination indicates there is no false comparison, process 900 may return to block 904 , and continue therefrom as earlier described.
  • Process 900 may be iterated as many times as necessary during operation, until the host device of the TCAM is powered off or enters a sleep state.
  • computing device 700 may include one or more processors 702 , TCAM 703 , and persistent memory 704 .
  • each processor may include multiple processor cores, and/or programmable circuits (such as FPGA), which may all be disposed on one die.
  • TCAM 703 may be TCAM 102 having associated logic/circuitry for detecting soft errors, described earlier with references to FIGS. 2-6 . In alternate embodiments, TCAM 703 may be part of processor 702 .
  • computing device 700 may include communication interfaces 710 , such as, Ethernet, WiFi, Bluetooth, 3G/4G and so forth, and I/O device 708 may include cameras, display devices, keyboard, cursor control and so forth.
  • the elements may be coupled to each other via system bus 706 , which may represent one or more buses. In the case of multiple buses, they may be bridged by one or more bus bridges (not shown).
  • Persistent memory 704 may be employed to store a copy of computing logic 722 implementing one or more applications, an operating system, and/or aspects of the TCAM soft error detection operations described earlier (e.g., the earlier described operating system driver associated with TCAM soft error detection).
  • Computing logic 722 may be implemented in assembler instructions supported by processor(s) 702 or high-level languages, such as, for example, C or a scripting language, which can be compiled into such instructions.
  • the programming instructions may be placed into persistent memory 704 in the factory, or in the field, through, for example, a distribution medium (not shown), such as a compact disc (CD), or through communication interface 710 (from a distribution server (not shown)).
  • a distribution medium such as a compact disc (CD)
  • CD compact disc
  • the number, capability and/or capacity of these elements 702 - 710 may vary from embodiments to embodiments and/or depending on whether computing device 700 is used as a wearable device, a mobile device (smartphone, tablet, laptop, and so forth), a desktop device (desktop computer, set-top box, game console, and so forth) or a server (standalone or part of a rack).
  • the constitutions of these elements 702 - 710 are otherwise known, and accordingly will not be further described.
  • FIG. 8 illustrates an example non-transitory computer-readable storage medium having instructions configured to practice all or selected ones of the operations associated with TCAM soft error detection, earlier described, in accordance with various embodiments.
  • non-transitory computer-readable storage medium 802 may include a number of programming instructions 804 .
  • Programming instructions 804 may be configured to enable a device, e.g., computing system 700 , in response to execution of the programming instructions, to perform various operations earlier described.
  • programming instructions 804 may be disposed on multiple non-transitory computer-readable storage media 802 instead.
  • programming instructions 804 may be encoded in transitory computer readable signals.
  • the programming instruction may also include piece of software that protects or encrypts the data in the memory, storage, data being processed, and in communication channel being exposed to the hackers.
  • processors 702 with TCAM 703 may be packaged together with a computer-readable storage medium having aspects of computing logic 722 (in lieu of storing in system memory 704 ) configured to practice all or selected aspects of TCAM soft error detection.
  • processors 702 with TCAM 703 may be packaged together with a computer-readable storage medium having aspects of computing logic 722 to form a System in Package (SiP).
  • SiP System in Package
  • processors 702 with TCAM 703 may be integrated on the same die with a computer-readable storage medium having aspects of computing logic 722 .
  • at least one of processors 702 with TCAM 703 may be packaged together with a computer-readable storage medium having aspects of computing logic 722 to form a System on Chip (SoC).
  • SoC System on Chip
  • example embodiments described may include:
  • Example 1 may be an apparatus for computing, comprising: a Ternary-Content-Addressable-Memory (TCAM); and logic or circuitry coupled to the TCAM to detect soft errors of the TCAM; wherein to detect the soft errors, the logic or circuitry is to: apply a plurality of fault detection patterns to the TCAM to generate a hit output array for the plurality of fault detection patterns, generate respective parity signatures for entries of the hit output array, and compare the generated parity signatures to corresponding expected parity signatures of the entries of the hit output array.
  • TCAM Ternary-Content-Addressable-Memory
  • Example 2 may be example 1, wherein the TCAM may comprise a 2 ⁇ N W —entry array for N W —rules, with each entry in the TCAM array being N B bits wide, and the plurality of fault detection patterns may comprise two sets of N B ⁇ N B patterns.
  • Example 3 may be example 2, wherein the two sets of N B ⁇ N B patterns may comprise a set of 1 Value Patterns, and a set of 0 Value Patterns.
  • Example 4 may be example 1, wherein each fault detection pattern may comprise a Key-Mask pair.
  • Example 5 may be example 1, wherein the logic or circuitry may comprise a storage coupled to the TCAM to store the plurality of fault detection patterns, and output the plurality of fault detection patterns to apply to the TCAM.
  • Example 6 may be example 1, wherein the logic or circuitry may generate the plurality of fault detection patterns in real time, when the plurality of fault detection patterns are needed for application to the TCAM.
  • Example 7 may be example 1, wherein the logic or circuitry may comprise a parity signature generator coupled to the TCAM to generate the parity signatures for the hit output array.
  • Example 8 may be example 7, the logic or circuitry may comprise a storage to store the expected parity signatures, and a multiplexor coupled to the storage to selectively output the expected parity signatures of the hit output array.
  • Example 9 may be example 8, wherein the logic or circuitry may further comprise a comparator coupled to parity signature generator and the multiplexor to compare the generated parity signatures with the expected parity signatures of the hit output array.
  • Example 10 may be example 9, wherein the logic or circuitry may detect a soft error on false comparison of the generated parity signature with the expected parity signature of one of the entries of the hit output array.
  • Example 11 may be example 10, wherein the logic or circuitry may comprise a controller coupled to parity signature generator, the multiplexor, and the comparator to control their operations.
  • Example 12 may be example 1, wherein the TCAM may comprise 2 ⁇ N W lines for N W rules, and the logic or circuitry is to cause all lines of the TCAM and the expected parity signatures of the hit output array to be written with or set to 0s, on reset or prior to a first configuration of the TCAM.
  • Example 13 may be example 12, wherein the logic or circuitry is to perform a Read-Modify-Write operation to update one of the N W rules.
  • Example 14 may be example 13, wherein the logic or circuitry is to further perform a check on whether one of the expected parity signatures corresponding to the rule being updated, is to be updated.
  • Example 16 may be a method for computing, comprising: applying a plurality of fault detection patterns to a Ternary-Content-Addressable-Memory (TCAM) to generate a hit output array for the plurality of fault detection patterns; generating respective parity signatures for entries of the hit output array; and comparing the generated parity signatures to expected parity signatures of the entries of the hit output array.
  • TCAM Ternary-Content-Addressable-Memory
  • Example 17 may be example 16, wherein the TCAM may comprise a 2 ⁇ N W —entry array for N W —rules, with each entry in the TCAM array being N B bits wide, and the plurality of fault detection patterns may comprise two sets of N B ⁇ N B patterns; wherein the two sets of N B ⁇ N B patterns may comprise a set of 1 Value Patterns, and a set of 0 Value Patterns; and wherein each fault detection pattern may comprise a Key-Mask pair.
  • Example 18 may be example 16, further comprising storing the plurality of fault detection patterns in a storage, and outputting the plurality of fault detection patterns to apply to the TCAM.
  • Example 19 may be example 16, further comprising generating the plurality of fault detection patterns in real time, when the plurality of fault detection patterns are needed for application to the TCAM.
  • Example 20 may be example 16, further comprising generating the parity signatures for the entries of the hit output array.
  • Example 21 may be example 20, further comprising storing the expected parity signatures in a storage, and selectively outputting the expected parity signatures of the entries of the hit output array.
  • Example 22 may be example 21, may further comprise comparing the generated parity signatures with the expected parity signatures of the entries of the hit output array; and detecting a soft error on false comparison of the generated parity signature with the expected parity signature of one of the entries of the hit output array.
  • Example 23 may be example 16, wherein the TCAM may comprise 2 ⁇ N W lines for N W rules, and the method may further comprise causing all lines of the TCAM and the expected parity signatures of the entries of the hit output array to be written with or set to 0s, on reset or prior to a first configuration of the TCAM.
  • Example 24 may be example 23, further comprising performing a Read-Modify-Write operation to update one of the N W rules.
  • Example 25 may be example 24, further comprising performing a check on whether one of the expected parity signatures corresponding to the rule being updated, is to be updated.
  • Example 27 may be at least one computer readable media (CRM) comprising a plurality of instructions configured to cause a Ternary-Content-Addressable-Memory (TCAM) arrangement, in response to execution of the instructions, to: generate parity signatures for entries of a hit output array of the TCAM, wherein the hit output array is outputted in response to application of a plurality of fault detection patterns to the TCAM; and compare the generated parity signatures to corresponding expected parity signatures of the entries of the hit output array.
  • CRM computer readable media
  • TCAM Ternary-Content-Addressable-Memory
  • Example 28 may be example 27, wherein the TCAM may comprise a 2 ⁇ N W —entry array for N W —rules, with each entry in the TCAM array being N B bits wide, and the plurality of fault detection patterns may comprise two sets of N B ⁇ N B patterns; wherein the two sets of N B ⁇ N B patterns may comprise a set of 1 Value Patterns, and a set of 0 Value Patterns; and wherein each fault detection pattern may comprise a Key-Mask pair.
  • Example 29 may be example 27, wherein the TCAM arrangement may further caused to store the plurality of fault detection patterns in a storage, and output the plurality of fault detection patterns to apply to the TCAM.
  • Example 30 may be example 27, wherein the TCAM arrangement may further caused to generate the plurality of fault detection patterns in real time, when the plurality of fault detection patterns are needed for application to the TCAM.
  • Example 31 may be example 27, wherein the TCAM arrangement may further caused to generate the parity signatures for the hit output arrays.
  • Example 32 may be example 31, wherein the TCAM arrangement may further caused to store the expected parity signatures in a storage, and selectively output the expected parity signatures.
  • Example 33 may be example 32, wherein the TCAM arrangement may further caused to compare the generated parity signatures with the expected parity signatures of the entries of the hit output array; and detect a soft error on false comparison of the generated parity signature with the expected parity signature of one of the entries of the hit output array.
  • Example 34 may be any one of examples 27, and 29-33, wherein the TCAM may comprise 2 ⁇ N W lines for N W rules, and wherein the TCAM arrangement is further caused to write into or set all lines of the TCAM and the expected parity signatures of the entries of the hit output array to 0s, on reset or prior to a first configuration of the TCAM.
  • Example 35 may be example 34, wherein the TCAM arrangement may further caused to perform a Read-Modify-Write operation to update one of the N W rules.
  • Example 36 may be example 35, wherein the TCAM arrangement may further caused to perform a check on whether one of the expected parity signatures corresponding to the rule being updated, is to be updated.
  • Example 37 may be an apparatus for computing, comprising: a Ternary-Content-Addressable-Memory (TCAM); means for applying a plurality of fault detection patterns to the TCAM to generate a hit output array for the plurality of fault detection patterns; means for generating parity signatures for entries of the hit output array; and means for comparing the generated parity signatures to corresponding expected parity signatures of the entries of the hit output array.
  • TCAM Ternary-Content-Addressable-Memory
  • Example 38 may be example 37, wherein the TCAM may comprise a 2 ⁇ N W —entry array for N W —rules, with each entry in the TCAM array being N B bits wide, and the plurality of fault detection patterns may comprise two sets of N B ⁇ N B patterns; wherein the two sets of N B ⁇ N B patterns may comprise a set of 1 Value Patterns, and a set of 0 Value Patterns; and wherein each fault detection pattern may comprise a Key-Mask pair.
  • Example 39 may be example 37, wherein means for applying may comprise means for storing the plurality of fault detection patterns in a storage, and means for outputting the plurality of fault detection patterns to apply to the TCAM.
  • Example 40 may be example 37, further comprising means for generating the plurality of fault detection patterns in real time, when the plurality of fault detection patterns are needed for application to the TCAM.
  • Example 41 may be example 37, further comprising means for generating the parity signatures for entries of the hit output array.
  • Example 42 may be example 41, further comprising means for storing the expected parity signatures in a storage, and selectively outputting the expected parity signatures.
  • Example 43 may be example 37, wherein the TCAM may comprise 2 ⁇ N W lines for N W rules, and the apparatus may further comprise means for writing or setting all lines of the TCAM and the expected parity signatures of the entries of the hit output array to 0s, on reset or prior to a first configuration of the TCAM.
  • Example 44 may be example 43, further comprising means for performing a Read-Modify-Write operation to update one of the N W rules.
  • Example 45 may be example 44, further comprising means for performing a check on whether one of the expected parity signatures corresponding to the rule being updated, is to be updated.
  • Example 47 may be one of examples 15, 26 or 46, wherein the TCAM may comprise cells emulated with static random access memory (SRAM) cells.
  • SRAM static random access memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

Apparatuses, methods and storage medium associated with techniques to detect soft errors of a TCAM are disclosed herein. In embodiments, an apparatus may include a TCAM, and logic and/or circuitry to apply a plurality of fault detection patterns to the TCAM to generate respective hit output arrays for the plurality of fault detection patterns, generate parity signatures for the hit output arrays, and compare the generated parity signatures to expected parity values. Other embodiments may be disclosed or claimed.

Description

RELATED APPLICATION
This application is a non-provisional application of provisional application 62/280,851, entitled “TCAM Soft-Error Detection Method and Apparatus,” filed on Jan. 20, 2016, and claims priority to the 62/280,851 provisional application. The Specification of provisional application 62/280,851 is hereby fully incorporated by reference.
TECHNICAL FIELD
The present disclosure relates to the fields of computing and memory. In particular, the present disclosure is related to methods and apparatuses for detecting soft errors of Ternary-Content-Addressable-Memory (TCAM).
BACKGROUND
The background description provided herein is for the purpose of generally presenting the context of the disclosure. Unless otherwise indicated herein, the materials described in this section are not prior art to the claims in this application and are not admitted to be prior art by inclusion in this section.
It is generally understood that being large and high density arrays, TCAMs can be largely affected by soft-errors. Common approaches of detecting and correcting these errors include a mechanism (hardware or software) which repeatedly reads the TCAM rules and compare them to corresponding error correction codes (ECC) stored in another memory. In general, the Reads are highly time consuming operations in TCAMs, and amount of TCAM entries can be very large. Therefore, the common process of checking the entire TCAM for soft-errors can take mass amount of time. In addition, overall failure-in-time (FIT) rate in TCAM is directly proportional to the time between the upset and its subsequent correction by the mechanism (in worst case, time needed to scan the entire array). Thus, a more efficient mechanism of checking a TCAM for soft-errors may be very helpful.
BRIEF DESCRIPTION OF THE DRAWINGS
Embodiments will be readily understood by the following detailed description in conjunction with the accompanying drawings. To facilitate this description, like reference numerals designate like structural elements. Embodiments are illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings.
FIG. 1 illustrates an overview of an example TCAM array and a couple of fault detection patterns, in accordance with various embodiments.
FIG. 2 illustrates example Keys-Mask pairs for the fault detection patterns of FIG. 1, according to some embodiments.
FIG. 3 illustrates an arrangement for checking of a TCAM for soft errors, according to some embodiments.
FIG. 4 illustrates an example Truth Table for encoding the TCAM, according to some embodiments.
FIG. 5 illustrates an example mechanism for updating the expected parity results when a TCAM rule is updated, according to some embodiments.
FIG. 6 illustrates an example Truth Table for implementing the “0 Value Pattern” changed” and “1 Value Pattern” changed” in FIG. 5, according to some embodiments.
FIG. 7 illustrates a block diagram of an example architecture of a computing device suitable for use to practice the present disclosure, in accordance with various embodiments.
FIG. 8 illustrates an example computer-readable storage medium with instructions configured to enable a computing device to practice aspects of the present disclosure, in accordance with various embodiments.
FIG. 9 illustrates an example process for detecting TCAM soft errors, in accordance with various embodiments.
DETAILED DESCRIPTION
Disclosed herein are method, apparatus and storage medium associated with checking an entire TCAM array having key and mask inputs as part of the search mechanism, in a substantially constant amount of time, independent of the height of the array (number of rules). The technology may include a set of fault detection patterns which may be compared against all entries in TCAM (regular lookup operation) one by one, to generate a hit output pattern or array. The produced hit output pattern or array may then be used to generate a parity signature and checked against an expected parity for that pattern. If these two do not match, it may mean that upset occurred, and the TCAM may be reconfigured to fix the error.
The technology makes the duration of checking the entire TCAM for soft-errors dependent only on the width of the TCAM (bits per rule), which in general is substantially smaller than the height by about 3 or more orders of magnitude. Additionally, in contrast to prior art mechanisms, which rely on TCAM read operations, the disclosed technology is based on compare operations, which may be much more ‘economical’ in clock cycles per operation. Further, the disclosed technology may be capable of detecting any amount (all) of errors in a single rule, while the prior art solutions are limited by ECC strength. Still further, the disclosed technology can be extended to detect any amount of Multi-Bit Upset (MBU) events which affect joint lines of the array. These and other aspects of the technology are described further below.
In the description to follow, reference is made to the accompanying drawings which form a part hereof wherein like numerals designate like parts throughout, and in which is shown by way of illustration embodiments that may be practiced. It is to be understood that other embodiments may be utilized and structural or logical changes may be made without departing from the scope of the present disclosure. Therefore, the following detailed description is not to be taken in a limiting sense, and the scope of embodiments is defined by the appended claims and their equivalents.
Operations of various methods may be described as multiple discrete actions or operations in turn, in a manner that is most helpful in understanding the claimed subject matter. However, the order of description should not be construed as to imply that these operations are necessarily order dependent. In particular, these operations may not be performed in the order of presentation. Operations described may be performed in a different order than the described embodiments. Various additional operations may be performed and/or described operations may be omitted, split or combined in additional embodiments.
For the purposes of the present disclosure, the phrase “A and/or B” means (A), (B), or (A and B). For the purposes of the present disclosure, the phrase “A, B, and/or C” means (A), (B), (C), (A and B), (A and C), (B and C), or (A, B and C).
The description may use the phrases “in an embodiment,” or “in embodiments,” which may each refer to one or more of the same or different embodiments. Furthermore, the terms “comprising,” “including,” “having,” and the like, as used with respect to embodiments of the present disclosure, are synonymous.
As used hereinafter, including the claims, the term “module” may refer to, be part of, or include an Application Specific Integrated Circuit (ASIC), an electronic circuit, a programmable circuit (e.g., Field Programmable Gate Array (FPGA)), a processor (shared, dedicated, or group) and/or memory (shared, dedicated, or group) that execute one or more software or firmware programs with instructions that implement the logic, a combinational logic circuit, and/or other suitable components that provide the described functionality.
Referring now to FIG. 1, wherein an example TCAM array and a couple of fault detection patterns, according to some embodiments, are shown. Illustrated is a Nwrule TCAM 102 which appears as a 2×Nw—entry array; each entry in this array is of NB bits wide. The fault detection patterns for checking soft errors of TCAM 102 may be comprised of two sets of NB×NB patterns as illustrated. The two groups of patterns, may be example “1 Value Patterns” 104 a and example “0 Value Patterns 104 b shown in FIG. 1. In alternate embodiments, other Value Patterns may be employed instead. In embodiments, TCAM 102 may comprise cells that are formed with a plurality of transistors (e.g., 10-12 transistors) to store a single bit. In other embodiments, TCAM 102 may comprise cells that are emulated with static random access memory (SRAM) cells.
In embodiments, fault detection patterns 104 a and 104 b may be translated into the example Keys-Mask pairs as illustrated in FIG. 2, in accordance with an example TCAM model. (Note that the Keys-Mask pairs may differ for different TCAM models.) When performing Lookup operation with Pattern number i from the “1 Value Patterns” group 104 a, the hit output array (e.g., 312 of FIG. 3) will be set in all the Rules of TCAM which have 1 or don't care in their i's column. Equivalently, Lookup operation with Pattern i from the “0 Value Patterns” group 104 b, will cause the hit output array to be set in all the Rules with 0 or don't care in their i's column.
Referring now to FIG. 3, wherein an arrangement for checking a TCAM for soft errors, according to various embodiments, is illustrated. As shown, for the embodiments, the fault detection patterns (e.g., in Keys-Mask pairs) may be generated and stored in a table 302. Per predefined time, all of the fault detection patterns may be generated, outputted and used as keys to perform look up operations on TCAM 102, to generate hit output arrays 312. In other embodiments, the generation may be performed on-the-fly when the look up operations on TCAM 102 are performed, e.g., at every checking phase.
The resulted hit output array 312 of each pattern may then be inputted to parity generator 304 to have its Parity signature generated. Parity generator 304 may generate the Parity signature in any one of a number of known techniques. For example, Interleaving Parity may be used to spare time required to generate the parity of all the arrays and make it better protected from cases when there are soft error in two (or any other even number) of soft errors in the same column. Odd and even rules in hit output array may get their parity bits generated in parallel to each other. On generation, the Parity signature of a hit output array 312 may be compared against the expected parity value to determine if the two values match, using comparator 306. In embodiments, a True comparison result denotes successful comparison, whereas a False comparison result denotes detection of a soft error.
In embodiments, the expected parity values of the hit output arrays may be stored in a separated array 310, and selected for comparison using multiplexor 308. (Note that under the present disclosure, the parity is generated on the hit output array, and not on the TCAM content.)
In embodiments, a controller 320 may be provided (e.g., as part of the TCAM arrangement) to direct/control the TCAM soft error detection operations described. Controller 320, parity generator 304 and comparator 306, may be collectively referred to as the logic and/or circuitry for detecting soft error of a TCAM. In embodiments, controller 320, parity generator 304 and comparator 306 may be implemented in any hardware and/or software combination. Hardware may include ASIC or programmable circuits, and software may include instructions in any one of a number of programming languages. Table 302 and array 310 may be stored in any volatile or non-volatile storage, dedicated or temporally allocated storage known in the art.
Accordingly, soft errors of a TCAM may be more efficiently detected, with the detection time only proportional to the width of the array (independent of the height of the array), which remains substantially constant.
After reset and prior to first configuration, controller 320 may cause all of the 2×NW lines (both Entry0 and Entry1 of all the NW rules) of the TCAM array be written with 0s. Controller 320 may further cause the expected Hit Array Parity Signature be set to 0 as well (NW is expected to be even). This may be done only once, after reset of the device with the TCAM.
Afterwards, every rule update may require reading the previous rule, intended to be modified—Read-Modify-Write. In other words, every rule update may require 2 reads (Entry 0 and Entry 1). Then, the previous rule may be compared to a new written rule and the Expected Hit Array Parity Signature may then be changed according to the Truth Table in FIG. 4 and the example scheme in FIGS. 5 and 6, described more fully below.
In embodiments, some of the preceding described operations may be performed prior to TCAM rule update. This is, however, not expected to a big overhead, since the rule update is not performed on a very frequent basis. In embodiments, this overhead may be spared if a driver of the operating system of a host device of the TCAM holds a shadow of TCAM rules. For these embodiments, the driver may be configured to write the calculated parity bit directly, as it knows the old and the modified entries. The TCAM encoding may then be done according to a specific encoding of TCAM, and can be changed easily to any other encoding.
In various embodiments, the TCAM may be encoded in accordance with the example Truth Table 400 illustrated in FIG. 4. For example, for the “Global don't care” situation, with Entry0 and Entry1 set to “X,” and the Key-Mask pair equals (X, 0), the hit output for “Global don't care” will be “1.” For the “invalid” situation, with Entry0 and Entry1 set to “0,” and the Key-Mask pair equals (X, 1), the hit output for “invalid” will be “0,” and so on. In general, for the embodiments, the following formula may be used to represent the Hit rules of TCAM:
Hit[i]=((˜tcam[i,0]&˜Key&Mask==0)&((˜tcam[i,1]&Key&Mask)==0)
where tcam[i, 0] and tcam[i, 1] are the Entry0 and Entry1 entries that comprise rule i.
FIG. 5 illustrates an example mechanism of updating the Expected Hit Array Parity Signature due to the Rule Update, according to various embodiments. The process may require a read of the previous rule, both the Entry0 and Entry1 (510, 512). Then, depending on the Write Line Candidate (514), a check may be performed to determine whether the Expected Hit Array Parity Signature should be changed from its previous value. It may be done per bit in the Line, both for “0 Pattern” and “1 Pattern”: Per bit in line may include two blocks “0 Value Pattern” changed and “1 Value Pattern” changed 520. During the write, an XOR operation (522) may be performed with previous Expected Hit Array Parity Signatures per pattern and the result of the blocks, to get the new Expected Hit Array Parity Signatures per pattern (524).
FIG. 6 illustrates an example Truth Table of the “0 Value Pattern” changed and “1 Value Pattern” changed, according to various embodiments. In Table 600 of FIG. 6, a “[0]” or “[1]” entry refers to the case where the Entry0 is written to the TCAM, while a “{0} or {1}” entry refers to case where the Entry1 is written to the TCAM. For example, for row 602, when Read Line Entry0 (E0) and Read Line Entry1 (E1) both have the value “0,” and Write Line Entry0 (E0) has the value 1, then “1 Value Pattern” changed and “0 Value Pattern” changed have values equal to [0] and [1]. On the other hand, for row 602, when Read Line Entry0 (E0) and Read Line Entry1 (E1) both have the value “0,” and Write Line Entry1 (E1) has the value 1, then “1 Value Pattern” changed and “0 Value Pattern” changed have values equal to {1} and {0}.
Referring now to FIG. 9, wherein a flow diagram summarizing an example process for detecting TCAM soft errors, according to various embodiments, is shown. As illustrated, process 900 for detecting TCAM soft errors may include operations performed at blocks 902-920. The operations may be performed e.g., by the earlier described controller 320. In alternate embodiments, some of the operations can be split, combined, or performed in different orders.
Process 900 may begin at block 902. At block 902, on reset or before the first configuration, all TCAM lines and expected parity signatures of the hit output array may be set to “0.” Next, a determination may be on whether any of the TCAM rules are to be updated. If a result on the determination is affirmative, process 900 may continue at block 906. At block 906, a read-modify-write may be performed to update a TCAM rule. Next, at 908, the expected parity signature of the hit output array corresponding to the TCAM rule being updated may be updated. The operations at block 904-908 may initially be repeated a number of times to configure the TCAM with all the rules.
Eventually, a result of the determination at block 904 may be negative. At that point, process 900 may continue at block 910. At block 910, a determination may be made on whether it is time to check the TCAM for soft errors. If a result on the determination is negative, process 900 may return to block 904 and continue therefrom as earlier described.
If a result on the determination at block 910 is affirmative, process 900 may proceed to block 912. At block 912, fault detection patterns may be generated, stored, and caused to be applied to the TCAM, to generate the hit output array. Next, at block 914, parity signatures of the hit output array may be calculated. At block 916, the calculate parity signatures of the hit output array, and the expected parity signatures of the hit output array may be compared.
At block 918, a determination may be made on whether there are any false comparisons. If a result of the determination indicates there are one or more false comparisons, at block 920, detection of soft error or errors may be reported. If a result of the determination indicates there is no false comparison, process 900 may return to block 904, and continue therefrom as earlier described.
Process 900 may be iterated as many times as necessary during operation, until the host device of the TCAM is powered off or enters a sleep state.
Referring now to FIG. 7, wherein a block diagram of an example architecture of a computing device suitable for use to host a TCAM of the present disclosure, in accordance with various embodiments, is illustrated. As shown, computing device 700 may include one or more processors 702, TCAM 703, and persistent memory 704. In embodiments, each processor may include multiple processor cores, and/or programmable circuits (such as FPGA), which may all be disposed on one die. TCAM 703 may be TCAM 102 having associated logic/circuitry for detecting soft errors, described earlier with references to FIGS. 2-6. In alternate embodiments, TCAM 703 may be part of processor 702. Additionally, computing device 700 may include communication interfaces 710, such as, Ethernet, WiFi, Bluetooth, 3G/4G and so forth, and I/O device 708 may include cameras, display devices, keyboard, cursor control and so forth. The elements may be coupled to each other via system bus 706, which may represent one or more buses. In the case of multiple buses, they may be bridged by one or more bus bridges (not shown).
Except for the TCAM and methods/circuitry associated with detecting soft errors of the TCAM, each of these elements may perform its conventional functions known in the art. Persistent memory 704 may be employed to store a copy of computing logic 722 implementing one or more applications, an operating system, and/or aspects of the TCAM soft error detection operations described earlier (e.g., the earlier described operating system driver associated with TCAM soft error detection). Computing logic 722 may be implemented in assembler instructions supported by processor(s) 702 or high-level languages, such as, for example, C or a scripting language, which can be compiled into such instructions. The programming instructions may be placed into persistent memory 704 in the factory, or in the field, through, for example, a distribution medium (not shown), such as a compact disc (CD), or through communication interface 710 (from a distribution server (not shown)). The number, capability and/or capacity of these elements 702-710 may vary from embodiments to embodiments and/or depending on whether computing device 700 is used as a wearable device, a mobile device (smartphone, tablet, laptop, and so forth), a desktop device (desktop computer, set-top box, game console, and so forth) or a server (standalone or part of a rack). The constitutions of these elements 702-710 are otherwise known, and accordingly will not be further described.
FIG. 8 illustrates an example non-transitory computer-readable storage medium having instructions configured to practice all or selected ones of the operations associated with TCAM soft error detection, earlier described, in accordance with various embodiments. As illustrated, non-transitory computer-readable storage medium 802 may include a number of programming instructions 804. Programming instructions 804 may be configured to enable a device, e.g., computing system 700, in response to execution of the programming instructions, to perform various operations earlier described. In alternate embodiments, programming instructions 804 may be disposed on multiple non-transitory computer-readable storage media 802 instead. In still other embodiments, programming instructions 804 may be encoded in transitory computer readable signals. The programming instruction may also include piece of software that protects or encrypts the data in the memory, storage, data being processed, and in communication channel being exposed to the hackers.
Referring back to FIG. 7, for one embodiment, at least one of processors 702 with TCAM 703 may be packaged together with a computer-readable storage medium having aspects of computing logic 722 (in lieu of storing in system memory 704) configured to practice all or selected aspects of TCAM soft error detection. For one embodiment, at least one of processors 702 with TCAM 703 may be packaged together with a computer-readable storage medium having aspects of computing logic 722 to form a System in Package (SiP). For one embodiment, at least one of processors 702 with TCAM 703 may be integrated on the same die with a computer-readable storage medium having aspects of computing logic 722. For one embodiment, at least one of processors 702 with TCAM 703 may be packaged together with a computer-readable storage medium having aspects of computing logic 722 to form a System on Chip (SoC).
Thus, example embodiments described may include:
Example 1 may be an apparatus for computing, comprising: a Ternary-Content-Addressable-Memory (TCAM); and logic or circuitry coupled to the TCAM to detect soft errors of the TCAM; wherein to detect the soft errors, the logic or circuitry is to: apply a plurality of fault detection patterns to the TCAM to generate a hit output array for the plurality of fault detection patterns, generate respective parity signatures for entries of the hit output array, and compare the generated parity signatures to corresponding expected parity signatures of the entries of the hit output array.
Example 2 may be example 1, wherein the TCAM may comprise a 2×NW—entry array for NW—rules, with each entry in the TCAM array being NB bits wide, and the plurality of fault detection patterns may comprise two sets of NB×NB patterns.
Example 3 may be example 2, wherein the two sets of NB×NB patterns may comprise a set of 1 Value Patterns, and a set of 0 Value Patterns.
Example 4 may be example 1, wherein each fault detection pattern may comprise a Key-Mask pair.
Example 5 may be example 1, wherein the logic or circuitry may comprise a storage coupled to the TCAM to store the plurality of fault detection patterns, and output the plurality of fault detection patterns to apply to the TCAM.
Example 6 may be example 1, wherein the logic or circuitry may generate the plurality of fault detection patterns in real time, when the plurality of fault detection patterns are needed for application to the TCAM.
Example 7 may be example 1, wherein the logic or circuitry may comprise a parity signature generator coupled to the TCAM to generate the parity signatures for the hit output array.
Example 8 may be example 7, the logic or circuitry may comprise a storage to store the expected parity signatures, and a multiplexor coupled to the storage to selectively output the expected parity signatures of the hit output array.
Example 9 may be example 8, wherein the logic or circuitry may further comprise a comparator coupled to parity signature generator and the multiplexor to compare the generated parity signatures with the expected parity signatures of the hit output array.
Example 10 may be example 9, wherein the logic or circuitry may detect a soft error on false comparison of the generated parity signature with the expected parity signature of one of the entries of the hit output array.
Example 11 may be example 10, wherein the logic or circuitry may comprise a controller coupled to parity signature generator, the multiplexor, and the comparator to control their operations.
Example 12 may be example 1, wherein the TCAM may comprise 2×NW lines for NW rules, and the logic or circuitry is to cause all lines of the TCAM and the expected parity signatures of the hit output array to be written with or set to 0s, on reset or prior to a first configuration of the TCAM.
Example 13 may be example 12, wherein the logic or circuitry is to perform a Read-Modify-Write operation to update one of the NW rules.
Example 14 may be example 13, wherein the logic or circuitry is to further perform a check on whether one of the expected parity signatures corresponding to the rule being updated, is to be updated.
Example 15 may be any one of examples 1-14, wherein a hit output array value for rule i is
Hit[i]=((˜tcam[i,0]&˜Key&Mask==0)&((˜tcam[i,1]&Key&Mask)==0)
where tcam[i, 0] and tcam[i, 1] are the Entry0 and Entry1 entries that comprise rule I, and Key and Mask may be parts of a fault detection pattern.
Example 16 may be a method for computing, comprising: applying a plurality of fault detection patterns to a Ternary-Content-Addressable-Memory (TCAM) to generate a hit output array for the plurality of fault detection patterns; generating respective parity signatures for entries of the hit output array; and comparing the generated parity signatures to expected parity signatures of the entries of the hit output array.
Example 17 may be example 16, wherein the TCAM may comprise a 2×NW—entry array for NW—rules, with each entry in the TCAM array being NB bits wide, and the plurality of fault detection patterns may comprise two sets of NB×NB patterns; wherein the two sets of NB×NB patterns may comprise a set of 1 Value Patterns, and a set of 0 Value Patterns; and wherein each fault detection pattern may comprise a Key-Mask pair.
Example 18 may be example 16, further comprising storing the plurality of fault detection patterns in a storage, and outputting the plurality of fault detection patterns to apply to the TCAM.
Example 19 may be example 16, further comprising generating the plurality of fault detection patterns in real time, when the plurality of fault detection patterns are needed for application to the TCAM.
Example 20 may be example 16, further comprising generating the parity signatures for the entries of the hit output array.
Example 21 may be example 20, further comprising storing the expected parity signatures in a storage, and selectively outputting the expected parity signatures of the entries of the hit output array.
Example 22 may be example 21, may further comprise comparing the generated parity signatures with the expected parity signatures of the entries of the hit output array; and detecting a soft error on false comparison of the generated parity signature with the expected parity signature of one of the entries of the hit output array.
Example 23 may be example 16, wherein the TCAM may comprise 2×NW lines for NW rules, and the method may further comprise causing all lines of the TCAM and the expected parity signatures of the entries of the hit output array to be written with or set to 0s, on reset or prior to a first configuration of the TCAM.
Example 24 may be example 23, further comprising performing a Read-Modify-Write operation to update one of the NW rules.
Example 25 may be example 24, further comprising performing a check on whether one of the expected parity signatures corresponding to the rule being updated, is to be updated.
Example 26 may be any one of examples 16-25, wherein generating the hit output array may comprise generating a hit output array value for rule i in accordance with:
Hit[i]=((˜tcam[i,0]&˜Key&Mask==0)&((˜tcam[i,1]&Key&Mask)==0)
where tcam[i, 0] and tcam[i, 1] are the Entry0 and Entry1 entries that comprise rule I, and Key and Mask are parts or a fault detection pattern.
Example 27 may be at least one computer readable media (CRM) comprising a plurality of instructions configured to cause a Ternary-Content-Addressable-Memory (TCAM) arrangement, in response to execution of the instructions, to: generate parity signatures for entries of a hit output array of the TCAM, wherein the hit output array is outputted in response to application of a plurality of fault detection patterns to the TCAM; and compare the generated parity signatures to corresponding expected parity signatures of the entries of the hit output array.
Example 28 may be example 27, wherein the TCAM may comprise a 2×NW—entry array for NW—rules, with each entry in the TCAM array being NB bits wide, and the plurality of fault detection patterns may comprise two sets of NB×NB patterns; wherein the two sets of NB×NB patterns may comprise a set of 1 Value Patterns, and a set of 0 Value Patterns; and wherein each fault detection pattern may comprise a Key-Mask pair.
Example 29 may be example 27, wherein the TCAM arrangement may further caused to store the plurality of fault detection patterns in a storage, and output the plurality of fault detection patterns to apply to the TCAM.
Example 30 may be example 27, wherein the TCAM arrangement may further caused to generate the plurality of fault detection patterns in real time, when the plurality of fault detection patterns are needed for application to the TCAM.
Example 31 may be example 27, wherein the TCAM arrangement may further caused to generate the parity signatures for the hit output arrays.
Example 32 may be example 31, wherein the TCAM arrangement may further caused to store the expected parity signatures in a storage, and selectively output the expected parity signatures.
Example 33 may be example 32, wherein the TCAM arrangement may further caused to compare the generated parity signatures with the expected parity signatures of the entries of the hit output array; and detect a soft error on false comparison of the generated parity signature with the expected parity signature of one of the entries of the hit output array.
Example 34 may be any one of examples 27, and 29-33, wherein the TCAM may comprise 2×NW lines for NW rules, and wherein the TCAM arrangement is further caused to write into or set all lines of the TCAM and the expected parity signatures of the entries of the hit output array to 0s, on reset or prior to a first configuration of the TCAM.
Example 35 may be example 34, wherein the TCAM arrangement may further caused to perform a Read-Modify-Write operation to update one of the NW rules.
Example 36 may be example 35, wherein the TCAM arrangement may further caused to perform a check on whether one of the expected parity signatures corresponding to the rule being updated, is to be updated.
Example 37 may be an apparatus for computing, comprising: a Ternary-Content-Addressable-Memory (TCAM); means for applying a plurality of fault detection patterns to the TCAM to generate a hit output array for the plurality of fault detection patterns; means for generating parity signatures for entries of the hit output array; and means for comparing the generated parity signatures to corresponding expected parity signatures of the entries of the hit output array.
Example 38 may be example 37, wherein the TCAM may comprise a 2×NW—entry array for NW—rules, with each entry in the TCAM array being NB bits wide, and the plurality of fault detection patterns may comprise two sets of NB×NB patterns; wherein the two sets of NB×NB patterns may comprise a set of 1 Value Patterns, and a set of 0 Value Patterns; and wherein each fault detection pattern may comprise a Key-Mask pair.
Example 39 may be example 37, wherein means for applying may comprise means for storing the plurality of fault detection patterns in a storage, and means for outputting the plurality of fault detection patterns to apply to the TCAM.
Example 40 may be example 37, further comprising means for generating the plurality of fault detection patterns in real time, when the plurality of fault detection patterns are needed for application to the TCAM.
Example 41 may be example 37, further comprising means for generating the parity signatures for entries of the hit output array.
Example 42 may be example 41, further comprising means for storing the expected parity signatures in a storage, and selectively outputting the expected parity signatures.
Example 43 may be example 37, wherein the TCAM may comprise 2×NW lines for NW rules, and the apparatus may further comprise means for writing or setting all lines of the TCAM and the expected parity signatures of the entries of the hit output array to 0s, on reset or prior to a first configuration of the TCAM.
Example 44 may be example 43, further comprising means for performing a Read-Modify-Write operation to update one of the NW rules.
Example 45 may be example 44, further comprising means for performing a check on whether one of the expected parity signatures corresponding to the rule being updated, is to be updated.
Example 46 may be any one of examples 27-45, wherein means for generating the hit output array may comprise means for generating a hit output array value for rule i in accordance with:
Hit[i]=((˜tcam[i,0]&˜Key&Mask==0)&((˜tcam[i,1]&Key&Mask)==0)
where tcam[i, 0] and tcam[i, 1] are the Entry0 and Entry1 entries that comprise rule I, and Key and Mask are parts of a tault detection pattern.
Example 47 may be one of examples 15, 26 or 46, wherein the TCAM may comprise cells emulated with static random access memory (SRAM) cells.
Although certain embodiments have been illustrated and described herein for purposes of description, a wide variety of alternate and/or equivalent embodiments or implementations calculated to achieve the same purposes may be substituted for the embodiments shown and described without departing from the scope of the present disclosure. This application is intended to cover any adaptations or variations of the embodiments discussed herein. Therefore, it is manifestly intended that embodiments described herein be limited only by the claims.
Where the disclosure recites “a” or “a first” element or the equivalent thereof, such disclosure includes one or more such elements, neither requiring nor excluding two or more such elements. Further, ordinal indicators (e.g., first, second or third) for identified elements are used to distinguish between the elements, and do not indicate or imply a required or limited number of such elements, nor do they indicate a particular position or order of such elements unless otherwise specifically stated.

Claims (22)

What is claimed is:
1. An apparatus for computing, comprising:
a Ternary-Content-Addressable-Memory (TCAM); and
logic or circuitry coupled to the TCAM to detect soft errors of the TCAM;
wherein to detect the soft errors, the logic or circuitry is to: apply a plurality of fault detection patterns to the TCAM to generate a hit output array for the plurality of fault detection patterns, generate respective parity signatures for entries of the hit output array, and compare the generated parity signatures to corresponding expected parity signatures of the entries of the hit output array;
wherein the TCAM comprises a 2×Nw—entry array for Nw—rules, with each entry in the TCAM array being NB bits wide, and the plurality of fault detection patterns comprise two sets of NB×NB patterns.
2. The apparatus of claim 1, wherein the two sets of NB×NB patterns comprise a set of 1 Value Patterns, and a set of 0 Value Patterns.
3. The apparatus of claim 1, wherein each fault detection pattern comprises a Key-Mask pair.
4. The apparatus of claim 1, wherein the logic or circuitry comprises a storage coupled to the TCAM to store the plurality of fault detection patterns, and output the plurality of fault detection patterns to apply to the TCAM.
5. The apparatus of claim 1, wherein the logic or circuitry is to generate the plurality of fault detection patterns in real time, when the plurality of fault detection patterns are needed for application to the TCAM.
6. An apparatus for computing, comprising:
a Ternary-Content-Addressable-Memory (TCAM); and
logic or circuitry coupled to the TCAM to detect soft errors of the TCAM; wherein to detect the soft errors, the logic or circuitry is to: apply a plurality of fault detection patterns to the TCAM to generate a hit output array for the plurality of fault detection patterns, generate respective parity signatures for entries of the hit output array, and compare the generated parity signatures to corresponding expected parity signatures of the entries of the hit output array;
wherein the logic or circuitry comprises a parity signature generator coupled to the TCAM to generate the parity signatures for the hit output array.
7. The apparatus of claim 6, wherein the logic or circuitry comprises a storage to store the expected parity signatures, and a multiplexor coupled to the storage to selectively output the expected parity signatures of the hit output array.
8. The apparatus of claim 7, wherein the logic or circuitry further comprises a comparator coupled to the parity signature generator and the multiplexor to compare the generated parity signatures with the expected parity signatures of the hit output array.
9. The apparatus of claim 8, wherein the logic or circuitry is to detect a soft error on false comparison of the generated parity signature with the expected parity signature of one of the entries of the hit output array.
10. The apparatus of claim 9, wherein the logic or circuitry comprises a controller coupled to parity signature generator, the multiplexor, and the comparator to control their operations.
11. The apparatus of claim 6, wherein the TCAM comprises 2×Nw lines for Nw rules, and the logic or circuitry is to cause all lines of the TCAM and the expected parity signatures of the hit output array to be written with or set to 0s, on reset or prior to a first configuration of the TCAM.
12. The apparatus of claim 11, wherein the logic or circuitry is to perform a Read-Modify-Write operation to update one of the Nw rules.
13. The apparatus of claim 12, wherein the logic or circuitry is to further perform a check on whether one of the expected parity signatures corresponding to the rule being updated is to be updated.
14. The apparatus of claim 6, wherein a hit output array value for rule i is

Hit[i]=((˜tcam[i,0]&˜Key&Mask==0)&((˜tcam[i,1]&Key&Mask)==0)
where tcam[i, 0] and tcam[i, 1] are Entry0 and Entry1 entries that comprise rule I, and Key and Mask are parts of a fault detection pattern.
15. A method for computing, comprising:
applying a plurality of fault detection patterns to a Ternary-Content-Addressable-Memory (TCAM) to generate a hit output array for the plurality of fault detection patterns;
generating respective parity signatures for entries of the hit output array; and
comparing the generated parity signatures to expected parity signatures of the entries of the hit output array;
wherein to generate the hit output array comprises generating a hit output array value for rule i in accordance with

Hit[i]=((˜tcam[i,0]&˜Key&Mask==0)&((˜tcam[i,1]&Key&Mask)==0)
where tcam[i, 0] and tcam[i, 1] are Entry0 and Entry1 entries that comprise rule I, and Key and Mask are parts of a fault detection pattern.
16. The method of claim 15, further comprising generating the plurality of fault detection patterns in real time, when the plurality of fault detection patterns are needed for application to the TCAM.
17. The method of claim 15, further comprising generating the parity signatures for the entries of the hit output array; storing the expected parity signatures in a storage, and selectively outputting the expected parity signatures of the entries of the hit output array; and comparing the generated parity signatures with the expected parity signatures of the entries of the hit output array; and detecting a soft error on false comparison of the generated parity signature with the expected parity signature of one of the entries of the hit output array.
18. The method of claim 15, wherein the TCAM comprises 2×Nw lines for Nw rules, and the method further comprises causing all lines of the TCAM and the expected parity signatures of the entries of the hit output array to be written with or set to 0s, on reset or prior to a first configuration of the TCAM; performing a Read-Modify-Write operation to update one of the Nw rules; and performing a check on whether one of the expected parity signatures corresponding to the rule being updated is to be updated.
19. At least one computer readable media (CRM) comprising a plurality of instructions configured to cause a Ternary-Content-Addressable-Memory (TCAM) arrangement, in response to execution of the instructions, to:
generate parity signatures for entries of a hit output array of the TCAM, wherein the hit output array is outputted in response to application of a plurality of fault detection patterns to the TCAM; and
compare the generated parity signatures to corresponding expected parity signatures of the entries of the hit output array;
wherein the TCAM arrangement is further caused to generate the parity signatures for the hit output arrays, store the expected parity signatures in a storage, and selectively output the expected parity signatures, and compare the generated parity signatures with the expected parity signatures of the entries of the hit output array; and detect a soft error on false comparison of the generated parity signature with the expected parity signature of one of the entries of the hit output array.
20. The at least one CRM of claim 19, wherein the TCAM arrangement is further caused to store the plurality of fault detection patterns in a storage, and output the plurality of fault detection patterns to apply to the TCAM, and generate the plurality of fault detection patterns in real time, when the plurality of fault detection patterns are needed for application to the TCAM.
21. The at least one CRM of claim 19, wherein the TCAM comprises 2×Nw lines for Nw rules, and wherein the TCAM arrangement is further caused to write into or set all lines of the TCAM and the expected parity signatures of the entries of the hit output array to 0s, on reset or prior to a first configuration of the TCAM.
22. The at least one CRM of claim 21, wherein the TCAM arrangement is further caused to perform a Read-Modify-Write operation to update one of the Nw rules; and perform a check on whether one of the expected parity signatures corresponding to the rule being updated is to be updated.
US15/390,465 2016-01-20 2016-12-24 TCAM soft-error detection method and apparatus Active US10261858B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US15/390,465 US10261858B2 (en) 2016-01-20 2016-12-24 TCAM soft-error detection method and apparatus

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201662280851P 2016-01-20 2016-01-20
US15/390,465 US10261858B2 (en) 2016-01-20 2016-12-24 TCAM soft-error detection method and apparatus

Publications (2)

Publication Number Publication Date
US20170206129A1 US20170206129A1 (en) 2017-07-20
US10261858B2 true US10261858B2 (en) 2019-04-16

Family

ID=59314549

Family Applications (1)

Application Number Title Priority Date Filing Date
US15/390,465 Active US10261858B2 (en) 2016-01-20 2016-12-24 TCAM soft-error detection method and apparatus

Country Status (1)

Country Link
US (1) US10261858B2 (en)

Families Citing this family (64)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9781004B2 (en) 2014-10-16 2017-10-03 Cisco Technology, Inc. Discovering and grouping application endpoints in a network environment
US10623264B2 (en) 2017-04-20 2020-04-14 Cisco Technology, Inc. Policy assurance for service chaining
US10826788B2 (en) 2017-04-20 2020-11-03 Cisco Technology, Inc. Assurance of quality-of-service configurations in a network
US10560328B2 (en) 2017-04-20 2020-02-11 Cisco Technology, Inc. Static network policy analysis for networks
US20180351788A1 (en) 2017-05-31 2018-12-06 Cisco Technology, Inc. Fault localization in large-scale network policy deployment
US10693738B2 (en) 2017-05-31 2020-06-23 Cisco Technology, Inc. Generating device-level logical models for a network
US10812318B2 (en) 2017-05-31 2020-10-20 Cisco Technology, Inc. Associating network policy objects with specific faults corresponding to fault localizations in large-scale network deployment
US10439875B2 (en) 2017-05-31 2019-10-08 Cisco Technology, Inc. Identification of conflict rules in a network intent formal equivalence failure
US10623271B2 (en) 2017-05-31 2020-04-14 Cisco Technology, Inc. Intra-priority class ordering of rules corresponding to a model of network intents
US10581694B2 (en) 2017-05-31 2020-03-03 Cisco Technology, Inc. Generation of counter examples for network intent formal equivalence failures
US10554483B2 (en) 2017-05-31 2020-02-04 Cisco Technology, Inc. Network policy analysis for networks
US10505816B2 (en) 2017-05-31 2019-12-10 Cisco Technology, Inc. Semantic analysis to detect shadowing of rules in a model of network intents
US11150973B2 (en) 2017-06-16 2021-10-19 Cisco Technology, Inc. Self diagnosing distributed appliance
US10587621B2 (en) 2017-06-16 2020-03-10 Cisco Technology, Inc. System and method for migrating to and maintaining a white-list network security model
US10498608B2 (en) 2017-06-16 2019-12-03 Cisco Technology, Inc. Topology explorer
US10574513B2 (en) 2017-06-16 2020-02-25 Cisco Technology, Inc. Handling controller and node failure scenarios during data collection
US10547715B2 (en) 2017-06-16 2020-01-28 Cisco Technology, Inc. Event generation in response to network intent formal equivalence failures
US10904101B2 (en) 2017-06-16 2021-01-26 Cisco Technology, Inc. Shim layer for extracting and prioritizing underlying rules for modeling network intents
US11645131B2 (en) 2017-06-16 2023-05-09 Cisco Technology, Inc. Distributed fault code aggregation across application centric dimensions
US11469986B2 (en) 2017-06-16 2022-10-11 Cisco Technology, Inc. Controlled micro fault injection on a distributed appliance
US10686669B2 (en) 2017-06-16 2020-06-16 Cisco Technology, Inc. Collecting network models and node information from a network
US10623259B2 (en) 2017-06-19 2020-04-14 Cisco Technology, Inc. Validation of layer 1 interface in a network
US11283680B2 (en) 2017-06-19 2022-03-22 Cisco Technology, Inc. Identifying components for removal in a network configuration
US10333787B2 (en) 2017-06-19 2019-06-25 Cisco Technology, Inc. Validation of L3OUT configuration for communications outside a network
US10411996B2 (en) 2017-06-19 2019-09-10 Cisco Technology, Inc. Validation of routing information in a network fabric
US10536337B2 (en) 2017-06-19 2020-01-14 Cisco Technology, Inc. Validation of layer 2 interface and VLAN in a networked environment
US10560355B2 (en) 2017-06-19 2020-02-11 Cisco Technology, Inc. Static endpoint validation
US10341184B2 (en) 2017-06-19 2019-07-02 Cisco Technology, Inc. Validation of layer 3 bridge domain subnets in in a network
US10567229B2 (en) 2017-06-19 2020-02-18 Cisco Technology, Inc. Validating endpoint configurations between nodes
US10505817B2 (en) 2017-06-19 2019-12-10 Cisco Technology, Inc. Automatically determining an optimal amount of time for analyzing a distributed network environment
US10673702B2 (en) 2017-06-19 2020-06-02 Cisco Technology, Inc. Validation of layer 3 using virtual routing forwarding containers in a network
US10218572B2 (en) 2017-06-19 2019-02-26 Cisco Technology, Inc. Multiprotocol border gateway protocol routing validation
US10644946B2 (en) 2017-06-19 2020-05-05 Cisco Technology, Inc. Detection of overlapping subnets in a network
US10805160B2 (en) 2017-06-19 2020-10-13 Cisco Technology, Inc. Endpoint bridge domain subnet validation
US10812336B2 (en) 2017-06-19 2020-10-20 Cisco Technology, Inc. Validation of bridge domain-L3out association for communication outside a network
US10700933B2 (en) 2017-06-19 2020-06-30 Cisco Technology, Inc. Validating tunnel endpoint addresses in a network fabric
US10567228B2 (en) 2017-06-19 2020-02-18 Cisco Technology, Inc. Validation of cross logical groups in a network
US11343150B2 (en) 2017-06-19 2022-05-24 Cisco Technology, Inc. Validation of learned routes in a network
US10528444B2 (en) 2017-06-19 2020-01-07 Cisco Technology, Inc. Event generation in response to validation between logical level and hardware level
US10554493B2 (en) 2017-06-19 2020-02-04 Cisco Technology, Inc. Identifying mismatches between a logical model and node implementation
US10348564B2 (en) 2017-06-19 2019-07-09 Cisco Technology, Inc. Validation of routing information base-forwarding information base equivalence in a network
US10652102B2 (en) 2017-06-19 2020-05-12 Cisco Technology, Inc. Network node memory utilization analysis
US10432467B2 (en) 2017-06-19 2019-10-01 Cisco Technology, Inc. Network validation between the logical level and the hardware level of a network
US10437641B2 (en) 2017-06-19 2019-10-08 Cisco Technology, Inc. On-demand processing pipeline interleaved with temporal processing pipeline
US10547509B2 (en) 2017-06-19 2020-01-28 Cisco Technology, Inc. Validation of a virtual port channel (VPC) endpoint in the network fabric
US10587484B2 (en) 2017-09-12 2020-03-10 Cisco Technology, Inc. Anomaly detection and reporting in a network assurance appliance
US10587456B2 (en) 2017-09-12 2020-03-10 Cisco Technology, Inc. Event clustering for a network assurance platform
US10554477B2 (en) 2017-09-13 2020-02-04 Cisco Technology, Inc. Network assurance event aggregator
US10333833B2 (en) 2017-09-25 2019-06-25 Cisco Technology, Inc. Endpoint path assurance
US11102053B2 (en) 2017-12-05 2021-08-24 Cisco Technology, Inc. Cross-domain assurance
US10873509B2 (en) 2018-01-17 2020-12-22 Cisco Technology, Inc. Check-pointing ACI network state and re-execution from a check-pointed state
US10572495B2 (en) 2018-02-06 2020-02-25 Cisco Technology Inc. Network assurance database version compatibility
US11467899B2 (en) * 2018-04-16 2022-10-11 Cisco Technology, Inc. Efficient content-addressable memory lookup result integrity checking and correcting operations including for protecting the accuracy of packet processing operations
US10496299B2 (en) * 2018-04-16 2019-12-03 Cisco Technology, Inc. Efficient content-addressable memory entry integrity checking including for protecting the accuracy of packet processing operations
US10812315B2 (en) 2018-06-07 2020-10-20 Cisco Technology, Inc. Cross-domain network assurance
US10911495B2 (en) 2018-06-27 2021-02-02 Cisco Technology, Inc. Assurance of security rules in a network
US10659298B1 (en) 2018-06-27 2020-05-19 Cisco Technology, Inc. Epoch comparison for network events
US11044273B2 (en) 2018-06-27 2021-06-22 Cisco Technology, Inc. Assurance of security rules in a network
US11218508B2 (en) 2018-06-27 2022-01-04 Cisco Technology, Inc. Assurance of security rules in a network
US11019027B2 (en) 2018-06-27 2021-05-25 Cisco Technology, Inc. Address translation for external network appliance
US10904070B2 (en) 2018-07-11 2021-01-26 Cisco Technology, Inc. Techniques and interfaces for troubleshooting datacenter networks
US10826770B2 (en) 2018-07-26 2020-11-03 Cisco Technology, Inc. Synthesis of models for networks using automated boolean learning
US10616072B1 (en) 2018-07-27 2020-04-07 Cisco Technology, Inc. Epoch data interface
CN109800104A (en) * 2018-12-18 2019-05-24 盛科网络(苏州)有限公司 Detection method, device, storage medium and the electronic device of data storage

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120144244A1 (en) * 2010-12-07 2012-06-07 Yie-Fong Dan Single-event-upset controller wrapper that facilitates fault injection
US20150106677A1 (en) * 2013-10-15 2015-04-16 International Business Machines Corporation Handling errors in ternary content addressable memories
WO2015167559A1 (en) * 2014-04-30 2015-11-05 Hewlett-Packard Development Company, L.P. Partitionable ternary content addressable memory (tcam) for use with a bloom filter

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120144244A1 (en) * 2010-12-07 2012-06-07 Yie-Fong Dan Single-event-upset controller wrapper that facilitates fault injection
US20150106677A1 (en) * 2013-10-15 2015-04-16 International Business Machines Corporation Handling errors in ternary content addressable memories
WO2015167559A1 (en) * 2014-04-30 2015-11-05 Hewlett-Packard Development Company, L.P. Partitionable ternary content addressable memory (tcam) for use with a bloom filter

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Abbas et al., An efficient multiple cell upsets tolerant content addressable memory, 2013, IEEE, pp. 2094-2098. *
Baet et al., Minimizing soft errors in TCAM devices: a probabilistic approach to determining scrubbing intervals, Apr. 2010, IEEE Trans on Circuits and Sys. vol. 57, No. 4, pp. 814 to 822. *
Kuang et al., Soft errors in FPGA implemented asynchronous circuits, 2011, IEEE, pp. 221-226. *
Marco Ottavi et al., Error detection in Ternary CAMs using bloom filters, 2013, IEEE, pp. 1 to 6. *

Also Published As

Publication number Publication date
US20170206129A1 (en) 2017-07-20

Similar Documents

Publication Publication Date Title
US10261858B2 (en) TCAM soft-error detection method and apparatus
US10838808B2 (en) Error-correcting code memory
US10230402B2 (en) Data processing apparatus
US8862953B2 (en) Memory testing with selective use of an error correction code decoder
US9703633B2 (en) Circuits, apparatuses, and methods for correcting data errors
JP5512892B2 (en) Method and apparatus for protecting a segment of memory
US9146809B2 (en) ECC method for double pattern flash memory
US20130139008A1 (en) Methods and apparatus for ecc memory error injection
US9535785B2 (en) ECC method for flash memory
US8918707B2 (en) Codeword error injection via checkbit modification
JP2018511888A (en) Runtime ECC error injection method for hardware verification
KR20170135691A (en) An apparatus and method for generating an error code for a block comprising a plurality of data bits and a plurality of address bits
KR102262257B1 (en) Memory module
US9369150B2 (en) Data storage device and method for protecting a data item against unauthorized access
JPS62214599A (en) Semiconductor memory device
TW201530554A (en) Method for operating memory and memory device
US9654143B2 (en) Consecutive bit error detection and correction
US10853170B2 (en) ECC protected storage
US10162728B2 (en) Method and device for monitoring the execution of a program code
US9459977B2 (en) Data processing system with debug control
US20200035319A1 (en) System and Method for Testing Processor Errors
US12066888B2 (en) Efficient security metadata encoding in error correcting code (ECC) memory without dedicated ECC bits
US20240274218A1 (en) Protecting memory controls and address
JPS61237139A (en) Malfunction detecting system of information processor

Legal Events

Date Code Title Description
AS Assignment

Owner name: INTEL CORPORATION, CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:YANKILEVICH, YEVGENY;MALCHI, GAL;REEL/FRAME:040791/0747

Effective date: 20161218

STCF Information on status: patent grant

Free format text: PATENTED CASE

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 4