US20150341055A1 - Double bit error correction in a code word with a hamming distance of three or four - Google Patents

Double bit error correction in a code word with a hamming distance of three or four Download PDF

Info

Publication number
US20150341055A1
US20150341055A1 US14/411,067 US201314411067A US2015341055A1 US 20150341055 A1 US20150341055 A1 US 20150341055A1 US 201314411067 A US201314411067 A US 201314411067A US 2015341055 A1 US2015341055 A1 US 2015341055A1
Authority
US
United States
Prior art keywords
bits
word
syndrome
error
initial word
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
US14/411,067
Inventor
Samuel Evain
Valentin Gherman
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.)
Commissariat a lEnergie Atomique et aux Energies Alternatives CEA
Original Assignee
Commissariat a lEnergie Atomique et aux Energies Alternatives CEA
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 Commissariat a lEnergie Atomique et aux Energies Alternatives CEA filed Critical Commissariat a lEnergie Atomique et aux Energies Alternatives CEA
Assigned to COMMISSARIAT A L'ENERGIE ATOMIQUE ET AUX ENERGIES ALTERNATIVES reassignment COMMISSARIAT A L'ENERGIE ATOMIQUE ET AUX ENERGIES ALTERNATIVES ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: EVAIN, SAMUEL, GHERMAN, VALENTIN
Publication of US20150341055A1 publication Critical patent/US20150341055A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/45Soft decoding, i.e. using symbol reliability information
    • H03M13/451Soft decoding, i.e. using symbol reliability information using a set of candidate code words, e.g. ordered statistics decoding [OSD]
    • H03M13/453Soft decoding, i.e. using symbol reliability information using a set of candidate code words, e.g. ordered statistics decoding [OSD] wherein the candidate code words are obtained by an algebraic decoder, e.g. Chase decoding
    • 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • 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
    • 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/159Remainder calculation, e.g. for encoding and syndrome calculation

Definitions

  • the subject of the invention is a method and a device for determining and correcting double bit errors in a code word provided with a minimum Hamming distance equal to only 3 or 4.
  • the invention proposes a device judiciously utilizing confidence information about the bits of a code word affected by an error in one or two bits so as to correct this error.
  • the invention applies notably to the fields of error correcting codes and nanometric technologies.
  • the data are customarily stored and/or transmitted in the form of binary values called bits. These data may be affected by faults which may give rise to operating errors and ultimately the failure of the system in the absence of any correction mechanism or masking.
  • ECC Error Correcting Codes
  • these code words In order to allow the correction of errors which affect up to n bits in the words of an ECC code, these code words must be separated by a minimum Hamming distance of 2n+1. To also allow the detection of errors which affect n ⁇ 1 bits, apart from the correction of the errors affecting up to n bits, in the code words of an ECC, these code words must be separated by a minimum Hamming distance of 2n+2.
  • the code words of a linear corrector code are defined with the aid of a control matrix H.
  • a binary vector V is a code word only if its product with the matrix H generates a zero vector.
  • a code word V of a linear corrector code is checked by evaluating the matrix product H•V. The result of this operation is a vector called a syndrome. If the syndrome is a zero vector, the code word V is considered to be correct.
  • a non-zero syndrome indicates the presence of at least one error. If the syndrome makes it possible to identify the positions of the affected bits, the errors affecting the code word can be corrected.
  • Various linear ECC codes exist with different error detection and correction capabilities.
  • a Hamming code makes it possible to correct a single error, that is to say an error which affects a single bit.
  • This correction capability is dubbed SEC, the acronym standing for the expression “Single Error Correction”.
  • SEC Single Error Correction
  • the words of an SEC code are separated by a minimum Hamming distance of 3.
  • ECC code Another example of ECC code is the DEC code, the acronym standing for the expression “Double Error Correction”, which allows the correction of double errors, that is to say of errors affecting two bits in a code word. Quite obviously, the codes of this family are also capable of correcting all single errors.
  • the words of a DEC code are separated by a minimum Hamming distance of 5.
  • This difference between the correction capability of an SEC code and that of a DEC code is due to an increase in the number of check bits in the case of a DEC code. For example, for eight data bits an SEC code needs four check bits while a DEC code needs eight check bits. Such a 100% increase in the number of check bits may be prohibitive because of the impact on the area of the components, their efficiency, their consumption and ultimately their cost.
  • MRAMs Magnetic Random Access Memory
  • SEC codes the acronym standing for the expression “Magnetic Random Access Memory”
  • DEC codes the acronym standing for the expression “Magnetic Random Access Memory”
  • An aim of the invention is notably to propose a scheme for determining the erroneous bits of a double error, that is to say an error in two bits, in a code word whose minimum Hamming distance is less than 5.
  • the subject of the invention is a method for determining the erroneous bits in an initial binary word affected by a double error and arising from a code endowed with a minimum Hamming distance equal to 3 or 4, comprising the reception of a datum indicative of a binary level of confidence, low or high, assigned to each of the bits of at least one part of the initial word, the method comprising a step of generating the syndrome on the basis of the initial word and a step of determining whether said syndrome is that of a code word affected by a double error, characterized in that if it identifies, on the basis of the syndrome, a double error in the initial word whose two affected bits correspond to bits of low confidence in the initial word, said two erroneous bits are selected so as to be corrected and in that if no
  • the method thus makes it possible to correct double errors for a code provided with a minimum Hamming distance of 3 or 4 by identifying, out of all the possible errors producing the initial word, a double error whose affected bits both correspond to bits of low confidence.
  • This second step makes it possible to discriminate the errors when the most favorable case is not realized, stated otherwise if, out of all the double errors producing the initial word, no error contains two bits of low confidence. In this case, the method searches for a double error, one of whose two bits suffers a low confidence level.
  • the method comprises a step of determining whether the number of bits of low confidence is strictly greater than 1;
  • the subject of the invention is also a method for correcting a double error in an initial binary word comprising the steps of the determining method such as is described above, and a step of inverting the erroneous bit or bits determined by said determining method.
  • the subject of the invention is also a method for correcting the erroneous bits in an initial binary word affected by a single error or by a double error and arising from a code endowed with a minimum Hamming distance equal to 3 or 4, in which, when the syndrome arising from the initial word corresponds to a double error, the method for correcting a double error such as presented above is executed, and in which, when said syndrome corresponds to a single error, a correction of single error in the initial word is executed.
  • the subject of the invention is also a device for correcting the erroneous bits in a binary initial word affected by a double or single error and arising from a code endowed with a minimum Hamming distance equal to 3 or 4, the device being able to receive a datum indicative of a binary level of confidence, low or high, assigned to each of the bits of at least one part of the initial word, the device comprising a syndrome generator fed with the initial word and means for selectively correcting bits of the initial word, characterized in that the means for selectively correcting bits are fed by a module for selecting the bits to be inverted which is able to select the two bits affected by a double error in the initial word as a function of said datum indicative of confidence, of the response of a module indicating whether there is more than only one bit of low confidence level in the binary initial word and of the syndrome arising from said syndrome generator, said selecting module being able to identify a double error in the initial word at least one of whose two affected bits correspond to bits of low confidence in the initial word, the means
  • the subject of the invention is also a memory module comprising a correcting device such as described above.
  • FIG. 1 is an exemplary device according to the invention allowing notably the correction of single and double errors in a word of a code characterized by a minimum Hamming distance equal to 3 or 4;
  • FIG. 2 is an exemplary method according to the invention for selecting a double error from among several double errors producing one and the same syndrome.
  • FIG. 1 presents an exemplary device according to the invention allowing notably the correction of single and double errors in a word of a code provided with a minimum Hamming distance equal to 3 or 4—stated otherwise, the smallest Hamming distance separating two words of this code is equal to 3 or 4.
  • a datum indicative of confidence in the example in the form of a word 102 , is used to indicate a binary level of confidence of each bit in a code word 101 , termed the initial word 101 , at the input of the device according to the invention.
  • the initial word 101 and the confidence word 102 comprise the same number of bits and certain bits in the initial word 101 may be erroneous.
  • a bit with the logic-1 value signals that the corresponding bit in the initial word 101 has a low confidence level, a bit with the logic-0 value signaling a bit with a high confidence level.
  • the binary initial word may be affected by a double or single error.
  • the device 100 receives on a first input 100 a an initial word 101 and on a second input 100 b a confidence word 102 comprising the binary information relating to the confidence level of each bit in the initial word 101 .
  • This confidence word 102 is used to allow the correction of double errors which generate a different syndrome to all the syndromes produced by a single error.
  • the device 100 delivers a corrected word 104 as output 100 c.
  • the device according to the invention 100 comprises a syndrome generating module 110 fed with the initial word 101 , a single error selecting module 140 , a double error selecting module 130 , a module for correcting errors 150 , as well as a test module 120 able to determine whether the number of bits of low confidence in the initial word is greater than or equal to 1.
  • the syndrome generating module 110 receives as input the initial word 101 and generates a syndrome on the basis of the bits of the initial word 101 .
  • this module performs the matrix product H•V, where H is the parity matrix characterizing the code to which the initial word 101 belongs and V is the initial word 101 .
  • the implementation of the calculation of this matrix product is carried out according to known techniques.
  • the syndrome generating module 110 produces a syndrome 103 which is a zero vector; on the other hand, when the initial word 101 contains an error in at least 1 bit, then the syndrome 103 is a non-zero vector.
  • the minimum Hamming distance of the code that served for the generation of the initial word 101 is equal to 4, then all the double errors produce different syndromes to the syndromes produced by the single errors. If the code to which the initial word 101 belongs is imperfect and characterized by a minimum Hamming distance equal to 3, then a non-zero fraction of the double errors produces different syndromes to the syndromes produced by single errors.
  • the test module 120 is suitable for receiving the confidence indicator word 102 and for producing a binary signal as output.
  • the test module 120 indicates via the output signal whether this word 102 contains more than one bit equal to a logic-1, thereby signaling the presence of more than one bit with a low confidence level in the initial word 101 .
  • a person skilled in the art can choose from among several possible implementations of such a module.
  • the device does not comprise any distinct test module 120 , the test being performed by the double error selecting module 130 .
  • the double error selecting module 130 is configured to receive the confidence indicator word 102 , the syndrome 103 produced by the module 110 described above and the binary output of the module 120 .
  • the module 130 makes it possible, by utilizing the information item contained in the confidence indicator word 102 , to determine which one out of the double errors possibly contained in the initial word 101 has occurred.
  • An exemplary method implemented by the double error selecting module 130 is described further on with regard to FIG. 2 .
  • the single error selecting module 140 linked at output of the syndrome generating module 110 , makes it possible to identify a single error in the case where the syndrome calculated by the module 110 corresponds to such an error.
  • the module 140 is suitable for selecting the bit affected by a single error in the initial word as a function of the syndrome arising from said syndrome generator.
  • the implementation of such a module 140 is known to the person skilled in the art.
  • the error correcting module 150 receiving the code word 101 and fed by the single error selecting module 140 and by the double error selecting module 130 , allows the correction of single or double errors affecting the initial word 101 by using the information items provided by one of these two modules 130 , 140 indicating the position of the erroneous bits. For example, if the error selecting module 140 indicates that the bit of order n is false, the error correcting module 150 performs the correction by inverting the value of this bit of order n, toggling it from 0 to 1 or from 1 to 0 as a function of the value, provided as input by the code word 101 , of this “false” bit. Thus, if this “false” bit is 1, it is toggled to the value 0. The implementation of such a module 150 is known to the person skilled in the art.
  • the correcting module 150 delivers the corrected word 104 as output.
  • the assembly formed by the syndrome generating module 110 , the single error selecting module 140 and the single error correcting module 150 is likened to the functions fulfilled by a module of SEC (“Single Error Correction”) type, known elsewhere.
  • SEC Single Error Correction
  • the device of FIG. 1 allows the correction of all the double errors.
  • FIG. 2 presents an exemplary method according to the invention for selecting a double error from among several double errors producing one and the same syndrome.
  • this method can be executed by the module 130 for selecting a double error of the bits to be inverted, with the aid of the test module 120 , these modules being presented above with regard to FIG. 1 .
  • This method is necessary only if the same syndrome 103 can be generated by several different double errors, this generally being the case when the minimum Hamming distance between the words of the code is less than 5.
  • the method utilizes the confidence indicator word 102 and the number of bits which suffer a low confidence level so as to select a double error in the initial word 101 from among several double errors generating the same syndrome 103 .
  • a double error is not selected if the syndrome 103 does not correspond to a detectable double error or if there is no bit with a low confidence level in the code word 101 .
  • a double error is considered to be detectable if it generates a different syndrome to all the syndromes produced by a single error.
  • this first step performs the following test: does the syndrome 103 generated by the module 110 correspond to a detectable double error and is there at least one bit with a low confidence level according to the datum indicative of confidence 102 ? It should be noted that the test determining whether there is at least one bit of low confidence in the initial word can be executed by the modules 120 or 130 illustrated in FIG. 1 .
  • the first step 210 also indicates that only double errors which correspond to the syndrome 103 are considered. When the test of the first step 210 is positive, we proceed to a second step 220 . In the converse case, no double error is indicated 260 .
  • the second step 220 performs a test on the number of bits with a low confidence level in the initial word 101 .
  • this second test step 220 indicates that the initial word 101 does not contain more than one bit with a low confidence level
  • we proceed to a third step 240 performing the following test: does there exist a double error corresponding to the syndrome 103 and one of whose two bits has a low confidence level? Stated otherwise, does there exist a pair ⁇ code word, double error ⁇ , for which the code word affected by this double error generates the syndrome 103 , and for which one bit out of the two bits affected by the error corresponds to the bit whose confidence level is signaled as low in the initial word 101 ?
  • the second test step 220 indicates that the initial word 101 contains more than one bit suffering a low confidence level
  • a third alternative test step 230 making it possible to choose a double error if the two bits that it affects have a low confidence level.
  • the test performed is the following: does there exist a double error whose two bits correspond to bits of low confidence in the initial word 101 ? Stated otherwise, does there exist a pair ⁇ code word, double error ⁇ , for which the code word affected by this double error generates the syndrome 103 , and for which the two bits affected by the error correspond to bits whose confidence level is signaled as low in the initial word 101 ?
  • This case corresponds to the most favorable case for choosing a double error, since there is agreement between two bits of low confidence and at least one of the double errors from which the syndrome 103 arising from the initial word 101 could originate.
  • an initial word equal to “00110101” and a confidence indicator word equal to “01100010”
  • this code word is considered to be the error-free word from which the initial word originates.
  • “00 0 101 1 1” is a code word
  • the two erroneous bits which differ with respect to the initial word are considered to be the erroneous bits and are therefore selected.

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • Algebra (AREA)
  • Pure & Applied Mathematics (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

A method for determining the erroneous bits in an initial binary word affected by a double error and arising from a code endowed with a minimum Hamming distance equal to 3 or 4 comprises reception of a datum indicative of a binary level of confidence, low or high, assigned to each of the bits of at least one part of the initial word, a step of generating the syndrome on the basis of the initial word and a step of determining whether the syndrome is that of a code word affected by a double error, in which if it identifies, on the basis of the syndrome, an error in the initial word whose two affected bits correspond to bits of low confidence in the initial word, the two erroneous bits are selected to be corrected. The method applies notably to the fields of error correcting codes and nanometric technologies.

Description

  • The subject of the invention is a method and a device for determining and correcting double bit errors in a code word provided with a minimum Hamming distance equal to only 3 or 4. The invention proposes a device judiciously utilizing confidence information about the bits of a code word affected by an error in one or two bits so as to correct this error. The invention applies notably to the fields of error correcting codes and nanometric technologies.
  • In a digital system, the data are customarily stored and/or transmitted in the form of binary values called bits. These data may be affected by faults which may give rise to operating errors and ultimately the failure of the system in the absence of any correction mechanism or masking.
  • In order to guarantee an acceptable level of integrity for the data stored or transmitted, certain electronic systems use codes, customarily designated by the acronym ECC standing for the expression “Error Correcting Codes”. For this purpose, the data are encoded during the writing of said data to a storage system or during the transmission of said data through a system of interconnections. During the encoding of the data with an ECC code, check bits are added to the data bits so as to form code words.
  • In order to allow the correction of errors which affect up to n bits in the words of an ECC code, these code words must be separated by a minimum Hamming distance of 2n+1. To also allow the detection of errors which affect n−1 bits, apart from the correction of the errors affecting up to n bits, in the code words of an ECC, these code words must be separated by a minimum Hamming distance of 2n+2.
  • The code words of a linear corrector code are defined with the aid of a control matrix H. A binary vector V is a code word only if its product with the matrix H generates a zero vector. A code word V of a linear corrector code is checked by evaluating the matrix product H•V. The result of this operation is a vector called a syndrome. If the syndrome is a zero vector, the code word V is considered to be correct. A non-zero syndrome indicates the presence of at least one error. If the syndrome makes it possible to identify the positions of the affected bits, the errors affecting the code word can be corrected.
  • Various linear ECC codes exist with different error detection and correction capabilities. By way of example, a Hamming code makes it possible to correct a single error, that is to say an error which affects a single bit. This correction capability is dubbed SEC, the acronym standing for the expression “Single Error Correction”. The words of an SEC code are separated by a minimum Hamming distance of 3.
  • Another example of ECC code is the DEC code, the acronym standing for the expression “Double Error Correction”, which allows the correction of double errors, that is to say of errors affecting two bits in a code word. Quite obviously, the codes of this family are also capable of correcting all single errors. The words of a DEC code are separated by a minimum Hamming distance of 5.
  • This difference between the correction capability of an SEC code and that of a DEC code is due to an increase in the number of check bits in the case of a DEC code. For example, for eight data bits an SEC code needs four check bits while a DEC code needs eight check bits. Such a 100% increase in the number of check bits may be prohibitive because of the impact on the area of the components, their efficiency, their consumption and ultimately their cost.
  • Now, memories manufactured with the aid of emerging technologies, such as MRAMs, the acronym standing for the expression “Magnetic Random Access Memory”, may be affected by a significant rate of transient and/or permanent errors. For these types of memories, the correction capability of SEC codes is too low and DEC codes remain too expensive. In such situations, innovative masking solutions and/or corrections are necessary.
  • An aim of the invention is notably to propose a scheme for determining the erroneous bits of a double error, that is to say an error in two bits, in a code word whose minimum Hamming distance is less than 5. For this purpose, the subject of the invention is a method for determining the erroneous bits in an initial binary word affected by a double error and arising from a code endowed with a minimum Hamming distance equal to 3 or 4, comprising the reception of a datum indicative of a binary level of confidence, low or high, assigned to each of the bits of at least one part of the initial word, the method comprising a step of generating the syndrome on the basis of the initial word and a step of determining whether said syndrome is that of a code word affected by a double error, characterized in that if it identifies, on the basis of the syndrome, a double error in the initial word whose two affected bits correspond to bits of low confidence in the initial word, said two erroneous bits are selected so as to be corrected and in that if no double error generating said syndrome affects two bits of low confidence in the initial word, then a double error, for which one of the two bits affected is a bit of low confidence in the initial word, is identified.
  • The method thus makes it possible to correct double errors for a code provided with a minimum Hamming distance of 3 or 4 by identifying, out of all the possible errors producing the initial word, a double error whose affected bits both correspond to bits of low confidence. This second step makes it possible to discriminate the errors when the most favorable case is not realized, stated otherwise if, out of all the double errors producing the initial word, no error contains two bits of low confidence. In this case, the method searches for a double error, one of whose two bits suffers a low confidence level.
  • Advantageously, the method comprises a step of determining whether the number of bits of low confidence is strictly greater than 1;
      • in the case where this number is strictly greater than 1, a double error generating said syndrome and affecting two bits of low confidence in the initial word is sought;
      • in the case where this number is equal to 1, a double error generating said syndrome and affecting the bit of low confidence in the initial word is sought;
        if such an error is found, the two bits affected by this error are selected so as to correct them.
  • The subject of the invention is also a method for correcting a double error in an initial binary word comprising the steps of the determining method such as is described above, and a step of inverting the erroneous bit or bits determined by said determining method.
  • The subject of the invention is also a method for correcting the erroneous bits in an initial binary word affected by a single error or by a double error and arising from a code endowed with a minimum Hamming distance equal to 3 or 4, in which, when the syndrome arising from the initial word corresponds to a double error, the method for correcting a double error such as presented above is executed, and in which, when said syndrome corresponds to a single error, a correction of single error in the initial word is executed.
  • The subject of the invention is also a device for correcting the erroneous bits in a binary initial word affected by a double or single error and arising from a code endowed with a minimum Hamming distance equal to 3 or 4, the device being able to receive a datum indicative of a binary level of confidence, low or high, assigned to each of the bits of at least one part of the initial word, the device comprising a syndrome generator fed with the initial word and means for selectively correcting bits of the initial word, characterized in that the means for selectively correcting bits are fed by a module for selecting the bits to be inverted which is able to select the two bits affected by a double error in the initial word as a function of said datum indicative of confidence, of the response of a module indicating whether there is more than only one bit of low confidence level in the binary initial word and of the syndrome arising from said syndrome generator, said selecting module being able to identify a double error in the initial word at least one of whose two affected bits correspond to bits of low confidence in the initial word, the means for selectively correcting bits are fed by a module for selecting the bits to be inverted, suitable for selecting the bit affected by a single error in the initial word as a function of the syndrome arising from the syndrome generator.
  • The subject of the invention is also a memory module comprising a correcting device such as described above.
  • Other characteristics and advantages of the invention will become apparent with the aid of the description which follows, given by way of nonlimiting illustration and with regard to the appended drawings among which:
  • FIG. 1 is an exemplary device according to the invention allowing notably the correction of single and double errors in a word of a code characterized by a minimum Hamming distance equal to 3 or 4;
  • FIG. 2 is an exemplary method according to the invention for selecting a double error from among several double errors producing one and the same syndrome.
  • FIG. 1 presents an exemplary device according to the invention allowing notably the correction of single and double errors in a word of a code provided with a minimum Hamming distance equal to 3 or 4—stated otherwise, the smallest Hamming distance separating two words of this code is equal to 3 or 4.
  • Hereinafter, it is considered that a datum indicative of confidence, in the example in the form of a word 102, is used to indicate a binary level of confidence of each bit in a code word 101, termed the initial word 101, at the input of the device according to the invention. In the examples developed, the initial word 101 and the confidence word 102 comprise the same number of bits and certain bits in the initial word 101 may be erroneous. Without affecting the generality of the invention, it is also considered subsequently that in the confidence word 102, a bit with the logic-1 value signals that the corresponding bit in the initial word 101 has a low confidence level, a bit with the logic-0 value signaling a bit with a high confidence level. The binary initial word may be affected by a double or single error.
  • The device 100 receives on a first input 100 a an initial word 101 and on a second input 100 b a confidence word 102 comprising the binary information relating to the confidence level of each bit in the initial word 101. This confidence word 102 is used to allow the correction of double errors which generate a different syndrome to all the syndromes produced by a single error. The device 100 delivers a corrected word 104 as output 100 c.
  • The device according to the invention 100 comprises a syndrome generating module 110 fed with the initial word 101, a single error selecting module 140, a double error selecting module 130, a module for correcting errors 150, as well as a test module 120 able to determine whether the number of bits of low confidence in the initial word is greater than or equal to 1.
  • The syndrome generating module 110 receives as input the initial word 101 and generates a syndrome on the basis of the bits of the initial word 101. In the case where a linear ECC is used, this module performs the matrix product H•V, where H is the parity matrix characterizing the code to which the initial word 101 belongs and V is the initial word 101. The implementation of the calculation of this matrix product is carried out according to known techniques. When the initial word 101 does not contain any error, the syndrome generating module 110 produces a syndrome 103 which is a zero vector; on the other hand, when the initial word 101 contains an error in at least 1 bit, then the syndrome 103 is a non-zero vector. If the minimum Hamming distance of the code that served for the generation of the initial word 101 is equal to 4, then all the double errors produce different syndromes to the syndromes produced by the single errors. If the code to which the initial word 101 belongs is imperfect and characterized by a minimum Hamming distance equal to 3, then a non-zero fraction of the double errors produces different syndromes to the syndromes produced by single errors.
  • The test module 120 is suitable for receiving the confidence indicator word 102 and for producing a binary signal as output. In the example, the test module 120 indicates via the output signal whether this word 102 contains more than one bit equal to a logic-1, thereby signaling the presence of more than one bit with a low confidence level in the initial word 101. A person skilled in the art can choose from among several possible implementations of such a module. According to another embodiment of the device according to the invention, the device does not comprise any distinct test module 120, the test being performed by the double error selecting module 130.
  • The double error selecting module 130 is configured to receive the confidence indicator word 102, the syndrome 103 produced by the module 110 described above and the binary output of the module 120. When the syndrome 103 produced by the module 110 is different from all the syndromes produced by a single error and when the number, indicated by the word 102, of bits of low confidence is greater than 0, the module 130 makes it possible, by utilizing the information item contained in the confidence indicator word 102, to determine which one out of the double errors possibly contained in the initial word 101 has occurred. An exemplary method implemented by the double error selecting module 130 is described further on with regard to FIG. 2.
  • The single error selecting module 140, linked at output of the syndrome generating module 110, makes it possible to identify a single error in the case where the syndrome calculated by the module 110 corresponds to such an error. The module 140 is suitable for selecting the bit affected by a single error in the initial word as a function of the syndrome arising from said syndrome generator. The implementation of such a module 140 is known to the person skilled in the art.
  • The error correcting module 150, receiving the code word 101 and fed by the single error selecting module 140 and by the double error selecting module 130, allows the correction of single or double errors affecting the initial word 101 by using the information items provided by one of these two modules 130, 140 indicating the position of the erroneous bits. For example, if the error selecting module 140 indicates that the bit of order n is false, the error correcting module 150 performs the correction by inverting the value of this bit of order n, toggling it from 0 to 1 or from 1 to 0 as a function of the value, provided as input by the code word 101, of this “false” bit. Thus, if this “false” bit is 1, it is toggled to the value 0. The implementation of such a module 150 is known to the person skilled in the art. The correcting module 150 delivers the corrected word 104 as output.
  • The assembly formed by the syndrome generating module 110, the single error selecting module 140 and the single error correcting module 150 is likened to the functions fulfilled by a module of SEC (“Single Error Correction”) type, known elsewhere.
  • In the case where the minimum Hamming distance of the code to which the word 101 belongs is equal to 4 and all the double errors produce different syndromes to the syndromes produced by single errors, the device of FIG. 1 allows the correction of all the double errors.
  • FIG. 2 presents an exemplary method according to the invention for selecting a double error from among several double errors producing one and the same syndrome. For example, this method can be executed by the module 130 for selecting a double error of the bits to be inverted, with the aid of the test module 120, these modules being presented above with regard to FIG. 1. This method is necessary only if the same syndrome 103 can be generated by several different double errors, this generally being the case when the minimum Hamming distance between the words of the code is less than 5.
  • The method utilizes the confidence indicator word 102 and the number of bits which suffer a low confidence level so as to select a double error in the initial word 101 from among several double errors generating the same syndrome 103.
  • In a first step 210, a double error is not selected if the syndrome 103 does not correspond to a detectable double error or if there is no bit with a low confidence level in the code word 101. A double error is considered to be detectable if it generates a different syndrome to all the syndromes produced by a single error. In the example, this first step performs the following test: does the syndrome 103 generated by the module 110 correspond to a detectable double error and is there at least one bit with a low confidence level according to the datum indicative of confidence 102? It should be noted that the test determining whether there is at least one bit of low confidence in the initial word can be executed by the modules 120 or 130 illustrated in FIG. 1. The first step 210 also indicates that only double errors which correspond to the syndrome 103 are considered. When the test of the first step 210 is positive, we proceed to a second step 220. In the converse case, no double error is indicated 260.
  • The second step 220 performs a test on the number of bits with a low confidence level in the initial word 101. In the case where this second test step 220 indicates that the initial word 101 does not contain more than one bit with a low confidence level, we proceed to a third step 240 performing the following test: does there exist a double error corresponding to the syndrome 103 and one of whose two bits has a low confidence level? Stated otherwise, does there exist a pair {code word, double error}, for which the code word affected by this double error generates the syndrome 103, and for which one bit out of the two bits affected by the error corresponds to the bit whose confidence level is signaled as low in the initial word 101?
  • In the case where the second test step 220 indicates that the initial word 101 contains more than one bit suffering a low confidence level, it is followed by a third alternative test step 230 making it possible to choose a double error if the two bits that it affects have a low confidence level. The test performed is the following: does there exist a double error whose two bits correspond to bits of low confidence in the initial word 101? Stated otherwise, does there exist a pair {code word, double error}, for which the code word affected by this double error generates the syndrome 103, and for which the two bits affected by the error correspond to bits whose confidence level is signaled as low in the initial word 101? This case corresponds to the most favorable case for choosing a double error, since there is agreement between two bits of low confidence and at least one of the double errors from which the syndrome 103 arising from the initial word 101 could originate. For example, for an initial word equal to “00110101” and a confidence indicator word equal to “01100010”, if there exists a word of the code from among the following words: “01010101”, “01110111”, “00010111”, then this code word is considered to be the error-free word from which the initial word originates. In the example, if “00010111” is a code word, the two erroneous bits which differ with respect to the initial word are considered to be the erroneous bits and are therefore selected.
  • For these two third steps 230, 240, when the result of the test is positive, the double error is indicated 250. When the result is negative, no double error is indicated 260.
  • In a hardware implementation, all these steps which follow one another sequentially or subsets formed by some of these steps may be executed concurrently.

Claims (7)

1. A method for determining the erroneous bits in an initial binary word affected by a double error and arising from a code endowed with a minimum Hamming distance equal to 3 or 4, comprising the reception of a datum indicative of a binary level of confidence, low or high, assigned to each of the bits of at least one part of the initial word, the method comprising a step of generating the syndrome on the basis of the initial word and a step of determining whether said syndrome is that of a code word affected by a double error, comprising at least the following steps:
a test step on the number of bits with a low confidence level in the initial word
if the test indicates that said initial word contains more than one bit suffering a low confidence level, then a third step is executed,
does there exist a pair {code word, double error}, for which the code word affected by this double error generates said syndrome, and for which the two bits affected by the error correspond to bits whose confidence level is signaled as low in said initial word, if yes then a double error in said initial word whose two affected bits correspond to bits of low confidence in said initial word is chosen on the basis of said syndrome, said two erroneous bits are selected so as to be corrected,
if the test indicates that said initial word does not contain more than one bit with a low confidence level, a step is executed which performs the following test: does there exist a pair {code word, double error}, for which the code word affected by this double error generates said syndrome, and for which one bit out of the two bits affected by the error corresponds to the bit whose confidence level is signaled as low in said initial word, if no double error generating said syndrome affects two bits of low confidence in said initial word, then a double error, for which one of the two bits affected is a bit of low confidence in said initial word, is identified.
2. The method as claimed in claim 1, in which the method comprises a step for determining whether the number of bits of low confidence is strictly greater than 1;
in the case where this number is strictly greater than 1, a double error generating said syndrome and affecting two bits of low confidence in the initial word is sought;
in the case where this number is equal to 1, a double error generating said syndrome affecting the bit of low confidence in the initial word is sought;
if a double error generates a different syndrome to all the syndromes produced by a single error, the two bits affected by this error are selected so as to correct them.
3. The method as claimed in claim 1, in which the method comprises a prior test step where it is checked whether said syndrome arising from the initial word corresponds to that of a double error generating a different syndrome to all the syndromes produced by a single error and whether at least one bit of the initial word suffers a low confidence level; if the test is negative, no erroneous bit is indicated.
4. A method for correcting a double error in an initial binary word (101) comprising the steps of the determining method as claimed in claim 1, and a step of inverting the selected erroneous bit or bits.
5. A method for correcting the erroneous bits in an initial binary word affected by a single error or by a double error and arising from a code endowed with a minimum Hamming distance equal to 3 or 4, in which when the syndrome arising from the initial word corresponds to a double error, the method for correcting a double error as claimed in claim 4 is executed, and in which when said syndrome corresponds to a single error, a correction of single error in the initial word is executed.
6. A device for correcting the erroneous bits in a binary initial word affected by a double or single error and arising from a code endowed with a minimum Hamming distance equal to 3 or 4, the device being able to execute the steps of the method as claimed in claim 1 and to receive a datum indicative of a binary level of confidence, low or high, assigned to each of the bits of at least one part of the initial word, the device comprising a syndrome generator fed with the initial word and means for selectively correcting bits of the initial word, comprising:
said means for selectively correcting bits are fed by a module for selecting the bits to be inverted which is able to select the two bits affected by a double error in the initial word as a function of said datum indicative of confidence, of the response of a module indicating whether there is more than only one bit of low confidence level in the word and of the syndrome arising from said syndrome generator,
said selecting module being able to identify a double error in the initial word at least one of whose two affected bits correspond to bits of low confidence in the initial word, and if no double error generating said syndrome affects two bits of low confidence in the initial word, then the selecting module identifies a double error, for which one of the two bits affected is a bit of low confidence in the initial word,
the means for selectively correcting bits are fed by a module for selecting the bits to be inverted which is suitable for selecting the bit affected by a single error in the initial word as a function of the syndrome arising from said syndrome generator.
7. A memory module comprising a correcting device as claimed in claim 6.
US14/411,067 2012-06-26 2013-06-26 Double bit error correction in a code word with a hamming distance of three or four Abandoned US20150341055A1 (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
FR1256029 2012-06-26
FR1256029A FR2992504A1 (en) 2012-06-26 2012-06-26 DEVICE AND METHOD FOR CORRECTING ERRORS IN A CODEWORD
FR1202226 2012-08-10
FR1202226A FR2992444B1 (en) 2012-06-26 2012-08-10 METHOD FOR DETERMINING AND CORRECTING DOUBLE-BIT ERRORS IN A CODEWORD PROVIDED WITH A MINIMUM HAMMING DISTANCE OF 3 OR 4
PCT/EP2013/063405 WO2014001395A1 (en) 2012-06-26 2013-06-26 Double bit error correction in a code word with a hamming distance of three or four

Publications (1)

Publication Number Publication Date
US20150341055A1 true US20150341055A1 (en) 2015-11-26

Family

ID=47424928

Family Applications (2)

Application Number Title Priority Date Filing Date
US14/411,067 Abandoned US20150341055A1 (en) 2012-06-26 2013-06-26 Double bit error correction in a code word with a hamming distance of three or four
US14/411,081 Expired - Fee Related US9515682B2 (en) 2012-06-26 2013-06-26 Device for correcting two errors with a code of hamming distance three or four

Family Applications After (1)

Application Number Title Priority Date Filing Date
US14/411,081 Expired - Fee Related US9515682B2 (en) 2012-06-26 2013-06-26 Device for correcting two errors with a code of hamming distance three or four

Country Status (4)

Country Link
US (2) US20150341055A1 (en)
EP (2) EP2865100B1 (en)
FR (3) FR2992504A1 (en)
WO (2) WO2014001395A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190094497A (en) * 2018-02-05 2019-08-14 삼성전자주식회사 Semiconductor memory devices, memory systems including the same and method of operating semiconductor memory devices

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8458536B2 (en) 2008-07-17 2013-06-04 Marvell World Trade Ltd. Data recovery in solid state memory devices
US10396826B2 (en) * 2016-10-26 2019-08-27 Huawei Technologies Co., Ltd. Software defined network with selectable low latency or high throughput mode

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4646304A (en) * 1984-05-26 1987-02-24 Honeywell Information Systems Italia Single error correction circuit for system memory
US5241540A (en) * 1991-07-31 1993-08-31 International Business Machines Corporation Reverse ordered control information transmission
EP0506680B1 (en) * 1989-10-11 1997-12-29 Cias Inc. Optimal error-detecting and error-correcting code and apparatus
US6792569B2 (en) * 2001-04-24 2004-09-14 International Business Machines Corporation Root solver and associated method for solving finite field polynomial equations
US7426678B1 (en) * 2004-07-20 2008-09-16 Xilinx, Inc. Error checking parity and syndrome of a block of data with relocated parity bits
US20080235560A1 (en) * 2005-07-15 2008-09-25 Gs Ip Limited Liability Company Flash Error Correction
US20100199149A1 (en) * 2007-12-05 2010-08-05 Hanan Weingarten Flash memory apparatus and methods using a plurality of decoding stages including optional use of concatenated bch codes and/or designation of "first below" cells
US20100218068A1 (en) * 2009-02-23 2010-08-26 International Business Machines Corporation Multi-bit error correction method and apparatus based on a bch code and memory system
US20100287436A1 (en) * 2008-01-31 2010-11-11 International Business Machines Corporation System for Error Decoding with Retries and Associated Methods
US9432298B1 (en) * 2011-12-09 2016-08-30 P4tents1, LLC System, method, and computer program product for improving memory systems

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3839215B2 (en) * 2000-03-14 2006-11-01 株式会社日立製作所 Error detection / correction method, main storage controller for computer system, and computer system
US7577899B2 (en) * 2006-02-13 2009-08-18 Harris Corporation Cyclic redundancy check (CRC) based error correction method and device
US7533327B2 (en) * 2006-03-07 2009-05-12 Broadcom Corporation Method and system for bluetooth decoding
US8458536B2 (en) * 2008-07-17 2013-06-04 Marvell World Trade Ltd. Data recovery in solid state memory devices

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4646304A (en) * 1984-05-26 1987-02-24 Honeywell Information Systems Italia Single error correction circuit for system memory
EP0506680B1 (en) * 1989-10-11 1997-12-29 Cias Inc. Optimal error-detecting and error-correcting code and apparatus
US5241540A (en) * 1991-07-31 1993-08-31 International Business Machines Corporation Reverse ordered control information transmission
US6792569B2 (en) * 2001-04-24 2004-09-14 International Business Machines Corporation Root solver and associated method for solving finite field polynomial equations
US7426678B1 (en) * 2004-07-20 2008-09-16 Xilinx, Inc. Error checking parity and syndrome of a block of data with relocated parity bits
US20080235560A1 (en) * 2005-07-15 2008-09-25 Gs Ip Limited Liability Company Flash Error Correction
US20100199149A1 (en) * 2007-12-05 2010-08-05 Hanan Weingarten Flash memory apparatus and methods using a plurality of decoding stages including optional use of concatenated bch codes and/or designation of "first below" cells
US20100287436A1 (en) * 2008-01-31 2010-11-11 International Business Machines Corporation System for Error Decoding with Retries and Associated Methods
US20100218068A1 (en) * 2009-02-23 2010-08-26 International Business Machines Corporation Multi-bit error correction method and apparatus based on a bch code and memory system
US9432298B1 (en) * 2011-12-09 2016-08-30 P4tents1, LLC System, method, and computer program product for improving memory systems

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190094497A (en) * 2018-02-05 2019-08-14 삼성전자주식회사 Semiconductor memory devices, memory systems including the same and method of operating semiconductor memory devices
KR102410566B1 (en) 2018-02-05 2022-06-17 삼성전자주식회사 Semiconductor memory devices, memory systems including the same and method of operating semiconductor memory devices

Also Published As

Publication number Publication date
EP2865100B1 (en) 2016-10-12
FR2992504A1 (en) 2013-12-27
FR2992444A1 (en) 2013-12-27
EP2865099A1 (en) 2015-04-29
WO2014001395A1 (en) 2014-01-03
EP2865099B1 (en) 2016-08-31
US9515682B2 (en) 2016-12-06
WO2014001397A1 (en) 2014-01-03
US20150341056A1 (en) 2015-11-26
FR2992444B1 (en) 2017-01-06
EP2865100A1 (en) 2015-04-29
FR2992503A1 (en) 2013-12-27

Similar Documents

Publication Publication Date Title
US11734106B2 (en) Memory repair method and apparatus based on error code tracking
US7149947B1 (en) Method of and system for validating an error correction code and parity information associated with a data word
US9772900B2 (en) Tiered ECC single-chip and double-chip Chipkill scheme
US8127213B2 (en) Method, system, and apparatus for adjacent-symbol error correction and detection code
US9141473B2 (en) Parallel memory error detection and correction
US10382060B2 (en) On-line self-checking hamming encoder, decoder and associated method
US5757823A (en) Error detection and correction for four-bit-per-chip memory system
CN102546095B (en) For detecting equipment and the method for the mistake in coding binary word
US6519736B1 (en) Generating special uncorrectable error codes for failure isolation
US20150341055A1 (en) Double bit error correction in a code word with a hamming distance of three or four
US6463563B1 (en) Single symbol correction double symbol detection code employing a modular H-matrix
US8856629B2 (en) Device and method for testing a circuit to be tested
CN102487312A (en) Apparatus and Method for Detecting an Error Within a Plurality of Coded Binary Words Coded by an Error Correction Code
US20230368860A1 (en) Memory and operation method of memory
US8631308B2 (en) Apparatus and method for determination of a position of a 1 bit error in a coded bit sequence, apparatus and method for correction of a 1-bit error in a coded bit sequence and decoder and method for decoding an incorrect, coded bit sequence
US9520899B2 (en) Method for generating a maximized linear correcting code, method and device for decoding such a code
CN117413252A (en) Error rate of memory with built-in error correction and detection
US11556412B2 (en) Processing of data
US20140189462A1 (en) Error correcting device, method for monitoring an error correcting device and data processing system
US11742050B2 (en) Error detection
US20240202086A1 (en) Circuits, systems, and methods for ecc fault detection
Flayyih et al. Improved undetected error probability model for JTEC and JTEC-SQED coding schemes
US9904593B2 (en) Memory device and correction method
CN117938307A (en) Gray code-based power grid communication node disaster recovery self-repairing method, device and medium

Legal Events

Date Code Title Description
AS Assignment

Owner name: COMMISSARIAT A L'ENERGIE ATOMIQUE ET AUX ENERGIES

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:EVAIN, SAMUEL;GHERMAN, VALENTIN;REEL/FRAME:034581/0172

Effective date: 20141023

STCB Information on status: application discontinuation

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