US20160364280A1 - Circuitry and method for testing an error-correction capability - Google Patents

Circuitry and method for testing an error-correction capability Download PDF

Info

Publication number
US20160364280A1
US20160364280A1 US15/176,679 US201615176679A US2016364280A1 US 20160364280 A1 US20160364280 A1 US 20160364280A1 US 201615176679 A US201615176679 A US 201615176679A US 2016364280 A1 US2016364280 A1 US 2016364280A1
Authority
US
United States
Prior art keywords
error
data word
correction
bit
bits
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.)
Abandoned
Application number
US15/176,679
Other languages
English (en)
Inventor
Martin Perner
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.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
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 Infineon Technologies AG filed Critical Infineon Technologies AG
Assigned to INFINEON TECHNOLOGIES reassignment INFINEON TECHNOLOGIES ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: PERNER, MARTIN
Publication of US20160364280A1 publication Critical patent/US20160364280A1/en
Abandoned legal-status Critical Current

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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • 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/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2215Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test error correction or detection circuits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/01Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/015Simulation or testing of codes, e.g. bit error rate [BER] measurements
    • 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
    • G11C2029/0409Online test

Definitions

  • the present invention provides concepts for testing an error-correction-code-circuitry of a memory during operation without the need for error-free test data.
  • a respective memory portion must be tested in advance to confirm that it is error-free.
  • Memory portions which are assumed to be inherently error-free cannot be used for the test code, as the exact knowledge of single-bit-errors and double-bit-errors that are expected can otherwise not be used for assessing the error correction code functioning.
  • test code is unintentionally disturbed. If the test software does not handle the disturbed test code in an error-tolerant way, the component creates an unintended error signal.
  • the user is not provided with means for programming data and error correction code separately in a concrete erroneous way.
  • the test code exhibiting a single-bit-error or a double-bit-error is instead only programmable in user mode.
  • the component is programmed twice in user mode and by this, the error correction codes are associated as if an OR operation would be conducted (double programming without prior deletion). As such a proceeding is not allowed by the component, it has not been tested, whether such an operation is working properly.
  • volatile memories it is also not possible to configure within one ECC word the ECC content independent from the data content without allowing modifying the ECC.
  • a dedicated memory portion is programmed and then a second suitable code is double-programmed.
  • the data is selected such that a double programming does not modify the error-correction-code content in an undesired way and, except from the intended bit deviations, the result is equal to the initial programming.
  • the multi-programming of the error-correction test code may be complicated by address error correction code employment.
  • address error correction code in addition to the data, the address of the data is also used for the error correction code calculation. It is thus possible to detect an erroneously addressed but correct error-correction-code memory content.
  • the address-independent error correction test code is dependent on the memory portion and no longer flexibly useable.
  • test code is preset by the manufacturer.
  • the user is not provided with means to select the error correction code words by himself.
  • Auxiliary means or the possibility to determine a user data word for an error correction code word (user data and error-correction-code byte) for an error correction code word and for a predefined error correction code data word are not provided.
  • a circuitry for error-correcting data and for checking a correctness of an error-correction capability of an error-correction component of the circuitry comprises an input interface for receiving an input data word. Moreover, the circuitry comprises a data manipulator for manipulating one or more bits of a test data word to obtain a modified data word, wherein said test data word is said input data word or is derived from said input data word. Furthermore, the circuitry comprises said error-correction component for processing the modified data word. Moreover, the circuitry comprises an evaluation component for evaluating the correctness of the error-correction capability of the error-correction component depending on the processing of the modified data word by the error-correction component.
  • a method for error-correcting data and for checking a correctness of an error-correction capability of an error-correction component comprises receiving by an input interface an input data word, manipulating by a data manipulator one or more bits of a test data word to obtain a modified data word, wherein said test data word is said input data word or is derived from said input data word, processing the modified data word by said error-correction component. and:evaluating by an evaluation component the correctness of the error-correction capability of the error-correction component depending on the processing of the modified data word by the error-correction component.
  • a computer program for implementing the above-described method when being executed on a computer or signal processor is provided.
  • a non-transitory digital storage medium comprising the computer program for implementing the above-described method when being executed on a computer or processor is provided.
  • FIG. 1 illustrates a circuitry for error-correcting data and for checking a correctness of an error-correction capability of an error-correction component of the circuitry according to an embodiment
  • FIG. 2 illustrates a circuitry according to an embodiment, wherein the error-correction component is arranged to receive the input data word from the input interface;
  • FIG. 3 illustrates a circuitry according to an embodiment, wherein the circuitry furthermore comprises a mode switcher for activating a normal operation mode;
  • FIG. 4 illustrates a circuitry according to an embodiment, wherein the circuitry, in addition to the components of FIGS. 1 to 3 , furthermore comprises a user interface;
  • FIG. 5 illustrates a circuitry according to an embodiment, wherein the test data word may comprises the user data bits, the error-correction bits and address bits for specifying a location of the user data bits within a memory;
  • FIG. 6 illustrates a circuitry according to an embodiment, wherein the circuitry itself furthermore comprises a memory
  • FIG. 7 illustrates a circuitry according to a particular embodiment, wherein the circuitry comprises the memory and a user interface for specifying one or more addressable bits indicated by an address within the memory that shall be modified.
  • the address is explicitly applied or implicitly referenced;
  • FIG. 8 illustrates a data manipulator according to an embodiment, wherein the data manipulator comprises an circuit element, a further circuit element, and a bit register.
  • the data manipulator in FIG. 8 has a one-stage XOR. Single bit modifications like shift or rotate can be applied before in a separate stage. According to some embodiments, both bit manipulation steps may, e.g., be included in a two stage manipulation, as depicted in FIGS. 18, 19 and 20 ;
  • FIG. 9 illustrates an error correction code memory according to embodiments with random access by a read path and a write path
  • FIG. 10 illustrates an error correction code circuitry realized in a data path between a CPU and a memory. Moreover, the address registers employed are depicted.
  • FIG. 11 illustrates a small register set extension for supporting the circuitry correction check during operation
  • FIG. 12 illustrates a flow diagram for initializing, operating and evaluating the functioning of the error correction capability for an intentionally double-programmed flash memory exhibiting error correction code capability
  • FIG. 13 illustrates a flow diagram for manually checking an error-correction-code functioning
  • FIG. 14 illustrates a flow diagram for semi-automatically checking an error-correction-code functioning
  • FIG. 15 illustrates a flow diagram for continuously checking a functioning of the error correction code completely automatically
  • FIG. 16 illustrates a register set for continuously checking an error-correction-code functioning completely automatically
  • FIG. 17 illustrates an error-correction-code functionality check
  • FIG. 18 illustrates a hardware implementation according to an embodiment
  • FIG. 19 illustrates tree procedures of configuration (intialization, activation, autonomous monitoring) of an error-correction-code test finite state machine according to an embodiment
  • FIG. 20 illustrates an example depicting forcing and counting single bit errors and double bit errors according to an embodiment.
  • FIG. 1 illustrates a circuitry 100 for error-correcting data and for checking a correctness of an error-correction capability of an error-correction component 130 of the circuitry 100 according to an embodiment.
  • the circuitry 100 comprises an input interface 110 for receiving an input data word.
  • the circuitry 100 comprises a data manipulator 120 for manipulating one or more bits of a test data word to obtain a modified data word, wherein said test data word is said input data word or is derived from said input data word.
  • circuitry 100 comprises said error-correction component 130 for processing the modified data word.
  • the circuitry 100 comprises an evaluation component 140 for evaluating the correctness of the error-correction capability of the error-correction component 130 depending on the processing of the modified data word by the error-correction component 130 .
  • a purpose of the data manipulator 120 is that specific errors can be purposely created in the modified data word. Assuming that the test data word is error-free, modifying one bit of the test data word creates a modified data word that exhibits exactly a single-bit-error. It can then be evaluated by the evaluation component 140 whether the error-correction code correctly processes the modified data word.
  • the evaluation unit 140 may, e.g., be configured to deactivate the circuitry 100 or to output an alarm or alarm message, if the evaluation component 140 has detected that the error-correction of the error-correction component 130 is incorrect.
  • the evaluation component 140 considers a processing of the error-correction component as correct, if the error-correction component correctly detects that a modified data word exhibits an error, and if the error-correction component correctly corrects that error of that data word.
  • Such an embodiment has the advantage that not only error-detection but also error-correction of the error-correction component is checked.
  • the evaluation component 140 considers a processing of the error-correction component as correct, if the error-correction component correctly detects that a modified data word exhibits an error, and does not test whether a correction of the modified data word would be successful. In some of such embodiments, the error-correction circuit does not correct the modified data word, but does only determine, whether a correction of the modified data word is necessary.
  • Such an embodiment has the advantage that processing time is saved that would be necessary for correcting the modified data word. Inter alia, this allows that a large number of modified data words exhibiting different modifications can be tested for correct error-detection in shorter time compared to embodiments, where also the correct error-correction is tested.
  • An underlying assumption of such embodiments is that error-correction will be correctly conducted by the error-correction component 130 as long as all errors that shall be detected are really detected.
  • a single bit error indicator or a double bit error indicator may, for example, be set.
  • the error-correction component 130 may, for example, be configured to check whether the modified data word is erroneous. If the error-correction component 130 has determined that the modified data word is erroneous, the error-correction component 130 may, e.g., be configured to correct the modified data word to obtain a corrected data word comprising user data bits and error-correction bits.
  • the evaluation component 140 may, e.g., be configured to determine depending on the user data bits of the corrected data word and depending on the error-correction bits of the corrected data word, whether the corrected data word is erroneous. If the corrected data word is erroneous, the evaluation component 140 is configured to determine that the error-correction capability of the error-correction component 130 is incorrect.
  • Modifying a bit of a test data word may, e.g., be conducted by inverting the test data word, for example, by changing a bit value from “0” to “1” or by changing a bit value from “ ⁇ 1” to “0”.
  • the error-correction component 130 may, e.g., be configured to check (and may, for example, be configured to indicate by flagging) whether the modified data word is erroneous.
  • the evaluation component 140 may, e.g., be configured to evaluate the correctness of the error-correction capability (e.g., error flagging and/or applied data correction) of the error-correction component 130 depending on the outcome of the check, conducted by the error-correction component 130 , whether the modified data word is erroneous.
  • the error-correction component 130 may, e.g., be configured to check whether the modified data word is erroneous. In such an embodiment, if the error-correction component 130 has determined that the modified data word is erroneous, the error-correction component 130 may, e.g., be configured to correct the modified data word to obtain a corrected data word. Moreover, in such an embodiment, the evaluation component 140 may, e.g., be configured to determine, whether the corrected data word is equal to an expected data word. Furthermore, in such an embodiment, if the corrected data word is different from the expected data word, the evaluation component 140 may, e.g., be configured to determine that the error-correction capability of the error-correction component 130 is incorrect.
  • the test data word itself, may be fed into the error-correction component 130 without modification.
  • the evaluation component 140 may consider the error-correction component 130 to be erroneous, if the error-correction component 130 considers the test data word erroneous, while in fact, the test data word is error-free.
  • an error-free data word may, e.g., be fed into the error-correction component 130 .
  • the evaluation component 140 may consider the error-correction component 130 to be erroneous, if the error-correction component 130 considers the error-free data word as erroneous.
  • FIG. 2 illustrates a circuitry 100 according to an embodiment, wherein the error-correction component 130 is arranged to receive the input data word from the input interface 110 .
  • the error-correction component 130 may, e.g., be configured to check, whether the input data word is erroneous.
  • the error-correction component 130 may, e.g., be configured to correct the input data word to obtain a precorrected data word and may, e.g., be configured to feed the precorrected data word as said test data word into the data manipulator 120 .
  • the error-correction component 130 may, e.g., be configured to feed the input data word as said test data word into the data manipulator 120 .
  • the embodiment of FIG. 2 has inter alia the advantage, that, after the correctness of the input data has been checked by the error-correction component 130 , and after possibly, correction of the input data word has been conducted, the likelihood increases that the test data word that is fed into the data manipulator is error-free.
  • FIG. 2 directly feeds the input data word from the input interface 110 into the data manipulator 130 .
  • Such an embodiment has inter alia the advantage that no processing time is spent on checking and possibly correcting the input data word.
  • FIG. 3 illustrates a circuitry according to an embodiment, wherein the circuitry 100 furthermore comprises a mode switcher 150 for activating a normal operation mode.
  • the mode switcher 150 is configured to deactivate the data manipulator 120 and the evaluator, so that, when the normal operation mode is activated, the data manipulator 120 may, e.g., be configured to not manipulate said one or more bits of said test data word, and so that, when the normal operation mode is activated, said evaluation component 140 may, e.g., be configured to not evaluate the correctness of the error-correction capability of the error-correction component 130 .
  • FIG. 3 illustrates a normal operation mode, indicated by “1” and a test mode, indicated by “2”.
  • the normal operation mode an input data word is fed from the input interface 110 to the error-correction component 130 , where the input data word is checked for correctness and corrected, if necessary. The (possibly corrected) data word is then output by the error-correction component 130 .
  • test mode indicated by “2” in FIG. 3 , the circuitry 100 operates as described with reference to FIGS. 1 and 2 .
  • Test mode is only activated, at times where the error-correction component or a processor is not processing data.
  • FIG. 4 illustrates a circuitry 100 according to an embodiment, wherein the circuitry 100 , in addition to the components of FIGS. 1 to 3 , furthermore comprises a user interface 160 being configured to enable a user to specify one or more bits of the test data word that shall be manipulated.
  • the data manipulator 120 may, e.g., be configured to manipulate said one or more bits of the test data word that have been specified by the user via the user interface 160 .
  • the user does not have to rely on predetermined test procedures, but can himself specify how to modify the test data word to create specific bit errors that he wants to test. An individualization of the test to the specific requirements of the user becomes possible.
  • the test data word may, e.g., comprise user data bits and error-correction bits for error-correction.
  • the data manipulator 120 may, e.g., be configured to manipulate at least one bit of the error-correction bits of the test data word.
  • the circuitry 100 the user interface 160 may, e.g., be configured to enable a user to specify said at least one bit of the error-correction bits of the test data word.
  • the data manipulator 120 may, e.g., be configured to manipulate said at least one bit of the error-correction bits of the test data word that has been specified by the user via the user interface 160 .
  • FIG. 5 illustrates a circuitry 100 according to an embodiment, wherein the test data word may, e.g., comprise the user data bits, the error-correction bits and address bits for specifying a location of the user data bits within a memory 200 .
  • the data manipulator 120 may, e.g., be configured to manipulate at least one bit of the address bits of the test data word.
  • the user interface 160 may, e.g., be configured to enable a user to specify said at least one bit of the address bits of the test data word.
  • the data manipulator 120 may, e.g., be configured to manipulate said at least one bit of the address bits of the test data word that has been specified by the user via the user interface 160 .
  • FIG. 6 illustrates a circuitry 100 according to an embodiment, wherein the circuitry 100 itself furthermore comprises a memory 170 .
  • the input interface 110 may, e.g., be configured to load the input data word from the memory 170 .
  • said memory 170 may, e.g., be a flash memory or any other kind of non-volatile memories.
  • the bits of the flash memory can only be changed from a specific first bit value to a specific second bit value, but not from the specific second bit value to the specific first bit value.
  • the bit value “0” is changeable to the bit value “1” during program operation, but the bit value “1” is not changeable to the bit value “0” without erase operation.
  • Embodiments do not change the flash value itself but generate one or more modified data words outside the flash memory. Therefore, arbitrary changes of the bits values from “0” to “1” and also from “1” to “0” are possible.
  • the test data word may, e.g., comprise the user data bits and the error-correction bits, and address bits for specifying a location of the user data bits within the memory 170 of the circuitry 100 as described above for the memory 200 .
  • the data manipulator 120 may, e.g., be configured to manipulate at least one bit of the address bits of the test data word.
  • FIG. 7 illustrates a circuitry 100 according to a particular embodiment, wherein the circuitry 100 comprises the memory 170 and the user interface 160 for specifying one or more address bits indicating an address within the memory 170 of the circuitry 100 that shall be modified.
  • the data manipulator 120 may, e.g., be configured generate two or more modified data words, said modified data word being one of the two or more data words, so that each modified data word of the two or more modified data words is different from each other modified data word of the two or more modified data words.
  • the data manipulator 120 may, e.g., be configured to generate each of the two or more modified data words by modifying at least one bit of the test data word.
  • the error-correction component 130 may, e.g., be configured check whether said modified data word is erroneous.
  • the evaluation component 140 may, e.g., be configured to evaluate the correctness of the error-correction capability of the error-correction component 130 depending on the outcome of the checking of the two or more modified data words.
  • the evaluation component 140 may, e.g., be configured to determine an erroneous words number indicating how many modified data words of the two or more modified data words the error-correction component 130 assesses to be erroneous. In such an embodiment, the evaluation component 140 may, e.g., be configured to determine whether said erroneous words number is equal to an expected error number indicating how many of the two or more modified data words are actually erroneous.
  • the data manipulator 120 may, e.g., be configured to generate each of the two or more modified data words by modifying exactly one bit of the test data word.
  • Such an embodiment tests modified data words with exactly one-bit error (single bit error), under the assumption that the test data word is error-free.
  • the data manipulator 120 may, e.g., be configured to generate each of the two or more modified data words by modifying exactly two bits of the test data word.
  • Such an embodiment tests modified data words with exactly two-bit errors (double bit errors), under the assumption that the test data word is error-free.
  • FIG. 8 illustrates the data manipulator 120 according to an embodiment, wherein the data manipulator comprises an XOR circuit element 122 , a further circuit element 124 , and a bit register 126 .
  • the bit register 126 may, e.g., comprise a bit for each bit position of the test data word. Moreover, in such an embodiment, the bit register 126 may, e.g., be configured, so that each bit in the bit register 126 , being assigned to a bit position of the test data word, that is to be inverted to generate a first modified data word of the two or more modified data words, exhibits a first bit value in the bit register 126 .
  • the bit register may, e.g., be configured, so that each bit in the bit register, being assigned to a bit position of the test data word that is not to be inverted to generate the first modified data word, exhibits a second bit value in the bit register 126 , said second bit value being different from the first bit value.
  • the XOR circuit element 122 may, e.g., be arranged to receive the test data word as a first input.
  • the XOR circuit element 126 may, e.g., be arranged to receive the bit values of the bits in the bit register 126 as an initial second input to generate the first modified data word of the two or more modified data words.
  • the further circuit element 124 may, e.g., be configured to shift or rotate the bit values of the bits within the bit register 126 by one bit position after the first modified data word has been generated to obtain updated bit values of the bits within the bit register 126 .
  • the XOR circuit element 122 may, e.g., be arranged to receive the updated bit values of the bits within the bit register 126 as an updated second input to generate a second modified data word of the two or more modified data words.
  • Such an embodiment is particularly suitable, for testing a plurality erroneous modified data words, by efficiently generating the plurality of modified data words.
  • one or more user registers are provided for the user which allow the user to determine after reading out the test data, at which bit positions the error correction corrupts (inverts) the read result.
  • an error correction test code is only programmed once error-free or at least error-correction-code correctable.
  • the bit-wise modifiability of a possibly corrected, read test word could be conducted directly after reading the erroneous cell field without error correction code-correction as well as after a correction.
  • corrupting the read data is preferably conducted circuitry-based immediately before the error-correction-code calculation of the read test data. In which way and at which bit positions the test data is modified is determined by a register set which is initialized before the testing of the error-correction-code calculation.
  • the purpose of using the error correction code test word is to selectively test the error-correction-code generation path after inserting a selective error in the error-correction-code logic on erroneously interpreted 0- or 1-bits.
  • the one or more bit switching means are generated in a controlled manner in a second stage, and afterwards the actively-started error correction code reaction is evaluated.
  • checking the error-correction-code capability may, for example, be conducted in four steps.
  • the error-correction-code test reading is initialized, for example, by determining in which way which bit of the test reading shall be inverted and, possibly, to which memory address the data is related to, in case of address error correction code.
  • a bit switching is conducted in the correctable error correction code word and the error-correction-code calculation is conducted for the just provoked correction step without again loading the data from the cell field.
  • the reaction of the error correction on the previously loaded and bit-wise modified data is conducted in a last step with the usual registers and flags which are known by the user.
  • a register set is provided which is assigned to an error correction code circuitry of a data bus to check an expected functioning of the error correction code circuitry.
  • the error correction circuitry may be assigned to a volatile or non-volatile memory.
  • loading from a programmable register set is conducted, and it is determined which of the bits of the user data, of the read address and of the error-correction-code data of the loaded error-correction-code data shall be modified.
  • modification of the bits to be modified may be conducted by setting one or more bits, deleting one or more bits, and/or inverting one or more bits.
  • bit setting may be indicated which indicates that for a memory read access the test data and the read address have already been determined and that the next read access will not access said particular cell field.
  • the occurrence of an error signature may be accumulated in an (e.g., initializable) counter register.
  • the error-correction-code functionality check and the evaluation of the error signature compared to an expected behavior may be conducted step-wise, semi-automatically and/or continually (possibly, e.g. by employing one or more interrupts).
  • Embodiments exhibit one, some or all of the following advantages: according to embodiments, the error-correction-code functionality of also non-volatile memories can be tested during operation, as an erroneous double-programming is not mandatory.
  • Each error-correction-code unit can conduct a self-test, where the unit tests itself.
  • the first reading may, e.g., be conducted with error-correction-code correction to conduct the memory error correction independent from the cell error correction possibility in an exact way even if additional cell errors occur.
  • the second error-correction-code test read-out may be conducted with specific bit manipulation without additional latency (wait states).
  • the error-correction-code test read-out may be conducted with the same circuitry as the usual first readout. This results in a saving of space in the layout of the test circuitry, and also, the testing capability of the circuitry for error-correction-code test read-out itself does not require additional space.
  • Optional further embodiments may, for example, conduct the error-correction-code test program controlled or automatically. If automatically conducting the functionality check, this could be conducted steered semi-automatically or continuously.
  • FIG. 9 illustrates an error correction code memory according to an embodiment with random access by a read path and a write path.
  • FIG. 10 illustrates an error correction code circuitry realized in a data path between a CPU and a memory.
  • FIG. 11 a small register set extension for supporting the circuitry correction check during operation according to an embodiment is depicted.
  • Address XOR may, e.g., be a 32 bit register for address bit inversion.
  • ECCR XOR may, e.g., be an 8 bit register for ECC read inversion (ECCR inversion).
  • Data XOR may, e.g., be a 64 bit register for data inversion.
  • FSR flash status register
  • FIG. 12 illustrates a flow diagram for initializing, operating and evaluating the functioning of the error correction capability for an intentionally double-programmed flash memory exhibiting error correction code capability.
  • FIG. 12 illustrates a usual double programming method.
  • FIG. 13 a flow diagram for manually checking an error-correction-code functioning according to an embodiment is depicted.
  • FIG. 13 illustrates a manual single-bit response test (Status “CleaN” or “CleaR”?).
  • FIG. 14 illustrates a flow diagram for semi-automatically checking an error-correction-code functioning according to an embodiment.
  • FIG. 14 illustrates a complete, single semi-automatic error-correction-code response test.
  • FIG. 15 a flow diagram for continuously checking a functioning of the error correction code completely automatically is depicted.
  • FIG. 15 illustrates an interrupt-steered continuous error-correction-code test routine.
  • FIG. 16 illustrates a register set for continuously checking an error-correction-code functioning completely automatically according to an embodiment.
  • an error-correction-code test is accomplished by processing specific, intentionally corrupted error-correction-code words.
  • Said error-correction code words may have been derived from input data words that have been loaded from a memory, for example, from a flash memory.
  • An error-correction-code fail-signature change may occur.
  • FIG. 18 illustrates a hardware solution according to an embodiment.
  • a register set is provided to a customer to control the forced fail signature of an error-correction-code consistent data set (address/data/error correction code) obtained via the memory read path or by direct register setting.
  • any unpredicted correctable bit errors are error-correction-code-consistently-eliminated in the data set.
  • the error-correction conducted may, e.g., be customer-specific.
  • the data set is used as a test pattern on which a bit-flip pattern can be applied in a single error-correction-code calculation step.
  • bit-flip sequence can be iterated/automatized by a simplified state machine controlling the bit-flip pattern rotation and recording the bit error/double bit error events.
  • the state machine is controlled by register set.
  • FIG. 19 illustrates another example according to an embodiment. Three steps of configuration may, for example, be possible: Initialization, activation, monitoring.
  • FIG. 20 illustrates a still further example according to another embodiment.
  • FSM Finite State Machine
  • Embodiments are applicable to all error-correction-code correctable memories (not restricted to flash).
  • error-correction-code unit testing is possible on the same path and with the same logic as at memory read-out.
  • Non-volatile memories for example, flash
  • Flash memory may be suitable for double-programming.
  • error-correction-code for example 64 user data bits may be accompanied by 8 correction data bits.
  • the first programming and the second programming result may be connected by a logical bit-wise OR.
  • the CPU tests whether the error correction code (ECC) works. S-runs may, for example, be tested. For example, airbag applications are of particular interest. It has to be found out whether an error-correction-code unit is erroneous. The error correction code may deteriorate over time. Tests may for example either be initialized by a user or automatically started.
  • ECC error correction code
  • a memory may have a single error-correction-code unit for testing the memory.
  • Tests may usually only be conducted during idle times.
  • An initialization of the address starter and of the error correction code may be necessary.
  • Pseudorandom tests may be conducted.
  • application fields may, for example, be the automotive industry.
  • error correction is conducted by determining whether a flag indicates whether error correction was conducted.
  • the number of flags may be counted, wherein the number of flags indicates the number of error corrections that have been conducted. Then it is tested whether the number of conducted error corrections is equal to the number of expected error corrections.
  • aspects have been described in the context of an apparatus, it is clear that these aspects also represent a description of the corresponding method, where a block or device corresponds to a method step or a feature of a method step. Analogously, aspects described in the context of a method step also represent a description of a corresponding block or item or feature of a corresponding apparatus.
  • Some or all of the method steps may be executed by (or using) a hardware apparatus, like for example, a microprocessor, a programmable computer or an electronic circuit. In some embodiments, one or more of the most important method steps may be executed by such an apparatus.
  • embodiments of the invention can be implemented in hardware or in software or at least partially in hardware or at least partially in software.
  • the implementation can be performed using a digital storage medium, for example a floppy disk, a DVD, a Blu-Ray, a CD, a ROM, a PROM, an EPROM, an EEPROM or a FLASH memory, having electronically readable control signals stored thereon, which cooperate (or are capable of cooperating) with a programmable computer system such that the respective method is performed. Therefore, the digital storage medium may be computer readable.
  • Some embodiments according to the invention comprise a data carrier having electronically readable control signals, which are capable of cooperating with a programmable computer system, such that one of the methods described herein is performed.
  • embodiments of the present invention can be implemented as a computer program product with a program code, the program code being operative for performing one of the methods when the computer program product runs on a computer.
  • the program code may for example be stored on a machine readable carrier.
  • inventions comprise the computer program for performing one of the methods described herein, stored on a machine readable carrier.
  • an embodiment of the inventive method is, therefore, a computer program having a program code for performing one of the methods described herein, when the computer program runs on a computer.
  • a further embodiment of the inventive methods is, therefore, a data carrier (or a digital storage medium, or a computer-readable medium) comprising, recorded thereon, the computer program for performing one of the methods described herein.
  • the data carrier, the digital storage medium or the recorded medium are typically tangible and/or non-transitory.
  • a further embodiment of the inventive method is, therefore, a data stream or a sequence of signals representing the computer program for performing one of the methods described herein.
  • the data stream or the sequence of signals may for example be configured to be transferred via a data communication connection, for example via the Internet.
  • a further embodiment comprises a processing means, for example a computer, or a programmable logic device, configured to or adapted to perform one of the methods described herein.
  • a processing means for example a computer, or a programmable logic device, configured to or adapted to perform one of the methods described herein.
  • a further embodiment comprises a computer having installed thereon the computer program for performing one of the methods described herein.
  • a further embodiment according to the invention comprises an apparatus or a system configured to transfer (for example, electronically or optically) a computer program for performing one of the methods described herein to a receiver.
  • the receiver may, for example, be a computer, a mobile device, a memory device or the like.
  • the apparatus or system may, for example, comprise a file server for transferring the computer program to the receiver.
  • a programmable logic device for example a field programmable gate array
  • a field programmable gate array may cooperate with a microprocessor in order to perform one of the methods described herein.
  • the methods are preferably performed by any hardware apparatus.
  • the apparatus described herein may be implemented using a hardware apparatus, or using a computer, or using a combination of a hardware apparatus and a computer.
  • the methods described herein may be performed using a hardware apparatus, or using a computer, or using a combination of a hardware apparatus and a computer.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
US15/176,679 2015-06-10 2016-06-08 Circuitry and method for testing an error-correction capability Abandoned US20160364280A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102015210651.9 2015-06-10
DE102015210651.9A DE102015210651B4 (de) 2015-06-10 2015-06-10 Schaltung und Verfahren zum Testen einer Fehlerkorrektur-Fähigkeit

Publications (1)

Publication Number Publication Date
US20160364280A1 true US20160364280A1 (en) 2016-12-15

Family

ID=57395064

Family Applications (1)

Application Number Title Priority Date Filing Date
US15/176,679 Abandoned US20160364280A1 (en) 2015-06-10 2016-06-08 Circuitry and method for testing an error-correction capability

Country Status (4)

Country Link
US (1) US20160364280A1 (ko)
JP (1) JP6290303B2 (ko)
KR (1) KR101852919B1 (ko)
DE (1) DE102015210651B4 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170286197A1 (en) * 2016-04-01 2017-10-05 Intel Corporation Validation of memory on-die error correction code
KR20190033410A (ko) * 2017-09-21 2019-03-29 삼성전자주식회사 오류 정정 코드를 지원하는 장치 및 그것의 테스트 방법
EP4120083A1 (en) * 2021-07-13 2023-01-18 STMicroelectronics Application GmbH Processing system, related integrated circuit, device and method

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11048602B2 (en) 2017-10-17 2021-06-29 SK Hynix Inc. Electronic devices
KR20190043043A (ko) 2017-10-17 2019-04-25 에스케이하이닉스 주식회사 전자장치
DE102019132153B3 (de) * 2019-11-27 2021-02-18 Infineon Technologies Ag Integrierte schaltung

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020157044A1 (en) * 2001-04-24 2002-10-24 Byrd James M. System and method for verifying error detection/correction logic
US20100174954A1 (en) * 2008-12-31 2010-07-08 Stmicroelectronics, Inc. Non-polynomial processing unit for soft-decision error correction coding
US20150377967A1 (en) * 2014-06-30 2015-12-31 Bharani Thiruvengadam Duty cycle based timing margining for i/o ac timing

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5362936A (en) * 1976-11-17 1978-06-05 Toshiba Corp Memory control device
JPS59200349A (ja) * 1983-04-27 1984-11-13 Nec Corp 誤り訂正回路用診断回路
JPS62226353A (ja) * 1986-03-28 1987-10-05 Mitsubishi Electric Corp Ras回路付記憶装置
US4794597A (en) * 1986-03-28 1988-12-27 Mitsubishi Denki Kabushiki Kaisha Memory device equipped with a RAS circuit
JPH01140356A (ja) * 1987-11-27 1989-06-01 Fujitsu Ltd Ecc回路チェック方式
JPH02166700A (ja) * 1988-12-15 1990-06-27 Samsung Electron Co Ltd エラー検査及び訂正装置を内蔵した不揮発性半導体メモリ装置
JPH0346047A (ja) * 1989-07-14 1991-02-27 Nec Corp 検査回路
JP2806856B2 (ja) * 1996-01-29 1998-09-30 甲府日本電気株式会社 誤り検出訂正回路の診断装置
JPH10228388A (ja) * 1997-02-13 1998-08-25 Nec Eng Ltd データ誤り検出回路
JP2000242515A (ja) * 1999-02-19 2000-09-08 Nec Eng Ltd Ecc機能検証回路及びecc機能検証方法
JP2003529998A (ja) 2000-03-31 2003-10-07 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ エラー訂正集積回路および方法
US6799287B1 (en) * 2000-05-01 2004-09-28 Hewlett-Packard Development Company, L.P. Method and apparatus for verifying error correcting codes
JP2003007085A (ja) * 2001-06-19 2003-01-10 Nec Microsystems Ltd エラー訂正機能付きメモリ
US7149945B2 (en) 2003-05-09 2006-12-12 Hewlett-Packard Development Company, L.P. Systems and methods for providing error correction code testing functionality
US7373583B2 (en) 2005-05-19 2008-05-13 Infineon Technologies North America Corp. ECC flag for testing on-chip error correction circuit
JP4834721B2 (ja) * 2006-02-24 2011-12-14 富士通株式会社 メモリ制御装置およびメモリ制御方法
US8281219B2 (en) 2007-08-16 2012-10-02 Invensas Corporation Error correction code (ECC) circuit test mode
DE102008026568A1 (de) * 2008-06-03 2010-04-08 Qimonda Ag Halbleiterbauelement, Speichermodul und Verfahren zum Testen einer Fehlerkorrektur-Funktionalität beim Zugriff auf ein Speicherbauelement
US8707104B1 (en) * 2011-09-06 2014-04-22 Western Digital Technologies, Inc. Systems and methods for error injection in data storage systems

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020157044A1 (en) * 2001-04-24 2002-10-24 Byrd James M. System and method for verifying error detection/correction logic
US20100174954A1 (en) * 2008-12-31 2010-07-08 Stmicroelectronics, Inc. Non-polynomial processing unit for soft-decision error correction coding
US20150377967A1 (en) * 2014-06-30 2015-12-31 Bharani Thiruvengadam Duty cycle based timing margining for i/o ac timing

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170286197A1 (en) * 2016-04-01 2017-10-05 Intel Corporation Validation of memory on-die error correction code
US10108512B2 (en) * 2016-04-01 2018-10-23 Intel Corporation Validation of memory on-die error correction code
KR20190033410A (ko) * 2017-09-21 2019-03-29 삼성전자주식회사 오류 정정 코드를 지원하는 장치 및 그것의 테스트 방법
KR102661931B1 (ko) * 2017-09-21 2024-05-02 삼성전자주식회사 오류 정정 코드를 지원하는 장치 및 그것의 테스트 방법
EP4120083A1 (en) * 2021-07-13 2023-01-18 STMicroelectronics Application GmbH Processing system, related integrated circuit, device and method
US11764807B2 (en) 2021-07-13 2023-09-19 Stmicroelectronics Application Gmbh Processing system, related integrated circuit, device and method

Also Published As

Publication number Publication date
KR20160145503A (ko) 2016-12-20
KR101852919B1 (ko) 2018-04-30
JP6290303B2 (ja) 2018-03-07
DE102015210651B4 (de) 2022-10-27
JP2017004588A (ja) 2017-01-05
DE102015210651A1 (de) 2016-12-15

Similar Documents

Publication Publication Date Title
US20160364280A1 (en) Circuitry and method for testing an error-correction capability
US8255773B2 (en) System and method of tracking error data within a storage device
US9818492B2 (en) Method for testing a memory and memory system
US8504884B2 (en) Threshold voltage techniques for detecting an imminent read failure in a memory array
JP4998681B2 (ja) 情報処理装置、情報処理装置の動作方法およびプログラム
JP5780174B2 (ja) 不良ビットエラーを処理するシステムおよび方法
US8095836B2 (en) Time-based techniques for detecting an imminent read failure in a memory array
US20070170268A1 (en) Memory cards, nonvolatile memories and methods for copy-back operations thereof
JP6070374B2 (ja) 情報処理装置、メモリ試験プログラムおよびメモリ試験方法
KR20130031888A (ko) 데이터 메모리의 모니터링 방법
US20080270842A1 (en) Computer operating system handling of severe hardware errors
JP6080180B2 (ja) 不揮発性メモリでのマーカプログラミング
US20230385145A1 (en) Memory address protection circuit and method of operating same
CN111221675B (zh) 用于ram错误检测逻辑的自诊断的方法和装置
JP6341795B2 (ja) マイクロコンピュータ及びマイクロコンピュータシステム
KR101497545B1 (ko) 프리 페이지 검출 방법 및 장치와 이를 이용한 에러 정정 코드 디코딩 방법 및 장치
US10885195B2 (en) Process for loading a secure memory image for a microcontroller and assembly including a microcontroller
CN106067326B (zh) 错误校正电路及包括其的半导体存储器件
TWI816418B (zh) 半導體儲存裝置及其操作方法
JP7379932B2 (ja) 制御装置、ユーザプログラムの実行制御方法、およびシステムプログラム
TWI594126B (zh) 資料儲存裝置與資料儲存方法
US11200925B2 (en) Read only memory (ROM)-emulated memory (REM) profile mode of memory device
EP3364301B1 (en) Apparatus and associated method
TW202209118A (zh) 晶片及其設計方法與故障分析方法
CN117234789A (zh) 校验纠错方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
AS Assignment

Owner name: INFINEON TECHNOLOGIES, GERMANY

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:PERNER, MARTIN;REEL/FRAME:038844/0600

Effective date: 20160606

STPP Information on status: patent application and granting procedure in general

Free format text: NON FINAL ACTION MAILED

STPP Information on status: patent application and granting procedure in general

Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER

STPP Information on status: patent application and granting procedure in general

Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS

STPP Information on status: patent application and granting procedure in general

Free format text: AWAITING TC RESP., ISSUE FEE NOT PAID

STPP Information on status: patent application and granting procedure in general

Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO PAY ISSUE FEE