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 PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/45—Soft decoding, i.e. using symbol reliability information
- H03M13/451—Soft decoding, i.e. using symbol reliability information using a set of candidate code words, e.g. ordered statistics decoding [OSD]
- H03M13/453—Soft 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/29—Coding, 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/2906—Coding, 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/159—Remainder 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 acode word 101, termed theinitial word 101, at the input of the device according to the invention. In the examples developed, theinitial word 101 and theconfidence word 102 comprise the same number of bits and certain bits in theinitial word 101 may be erroneous. Without affecting the generality of the invention, it is also considered subsequently that in theconfidence word 102, a bit with the logic-1 value signals that the corresponding bit in theinitial 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 afirst input 100 a aninitial word 101 and on asecond input 100 b aconfidence word 102 comprising the binary information relating to the confidence level of each bit in theinitial word 101. Thisconfidence 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. Thedevice 100 delivers acorrected word 104 asoutput 100 c. - The device according to the
invention 100 comprises a syndrome generatingmodule 110 fed with theinitial word 101, a singleerror selecting module 140, a doubleerror selecting module 130, a module forcorrecting errors 150, as well as atest 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 theinitial word 101 and generates a syndrome on the basis of the bits of theinitial 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 theinitial word 101 belongs and V is theinitial word 101. The implementation of the calculation of this matrix product is carried out according to known techniques. When theinitial word 101 does not contain any error, the syndrome generatingmodule 110 produces asyndrome 103 which is a zero vector; on the other hand, when theinitial word 101 contains an error in at least 1 bit, then thesyndrome 103 is a non-zero vector. If the minimum Hamming distance of the code that served for the generation of theinitial 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 theinitial 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 theconfidence indicator word 102 and for producing a binary signal as output. In the example, thetest module 120 indicates via the output signal whether thisword 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 theinitial 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 anydistinct test module 120, the test being performed by the doubleerror selecting module 130. - The double
error selecting module 130 is configured to receive theconfidence indicator word 102, thesyndrome 103 produced by themodule 110 described above and the binary output of themodule 120. When thesyndrome 103 produced by themodule 110 is different from all the syndromes produced by a single error and when the number, indicated by theword 102, of bits of low confidence is greater than 0, themodule 130 makes it possible, by utilizing the information item contained in theconfidence indicator word 102, to determine which one out of the double errors possibly contained in theinitial word 101 has occurred. An exemplary method implemented by the doubleerror selecting module 130 is described further on with regard toFIG. 2 . - The single
error selecting module 140, linked at output of thesyndrome generating module 110, makes it possible to identify a single error in the case where the syndrome calculated by themodule 110 corresponds to such an error. Themodule 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 amodule 140 is known to the person skilled in the art. - The
error correcting module 150, receiving thecode word 101 and fed by the singleerror selecting module 140 and by the doubleerror selecting module 130, allows the correction of single or double errors affecting theinitial word 101 by using the information items provided by one of these twomodules error selecting module 140 indicates that the bit of order n is false, theerror 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 thecode word 101, of this “false” bit. Thus, if this “false” bit is 1, it is toggled to the value 0. The implementation of such amodule 150 is known to the person skilled in the art. The correctingmodule 150 delivers the correctedword 104 as output. - The assembly formed by the
syndrome generating module 110, the singleerror selecting module 140 and the singleerror 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 ofFIG. 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 themodule 130 for selecting a double error of the bits to be inverted, with the aid of thetest module 120, these modules being presented above with regard toFIG. 1 . This method is necessary only if thesame 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 theinitial word 101 from among several double errors generating thesame syndrome 103. - In a
first step 210, a double error is not selected if thesyndrome 103 does not correspond to a detectable double error or if there is no bit with a low confidence level in thecode 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 thesyndrome 103 generated by themodule 110 correspond to a detectable double error and is there at least one bit with a low confidence level according to the datum indicative ofconfidence 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 themodules FIG. 1 . Thefirst step 210 also indicates that only double errors which correspond to thesyndrome 103 are considered. When the test of thefirst step 210 is positive, we proceed to asecond 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 theinitial word 101. In the case where thissecond test step 220 indicates that theinitial word 101 does not contain more than one bit with a low confidence level, we proceed to athird step 240 performing the following test: does there exist a double error corresponding to thesyndrome 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 thesyndrome 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 theinitial word 101? - In the case where the
second test step 220 indicates that theinitial word 101 contains more than one bit suffering a low confidence level, it is followed by a thirdalternative 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 theinitial word 101? Stated otherwise, does there exist a pair {code word, double error}, for which the code word affected by this double error generates thesyndrome 103, and for which the two bits affected by the error correspond to bits whose confidence level is signaled as low in theinitial 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 thesyndrome 103 arising from theinitial 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 - 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 .
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)
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)
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)
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)
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 |
-
2012
- 2012-06-26 FR FR1256029A patent/FR2992504A1/en active Pending
- 2012-08-10 FR FR1202226A patent/FR2992444B1/en active Active
- 2012-08-10 FR FR1202225A patent/FR2992503A1/en active Pending
-
2013
- 2013-06-26 WO PCT/EP2013/063405 patent/WO2014001395A1/en active Application Filing
- 2013-06-26 EP EP13735227.4A patent/EP2865100B1/en not_active Not-in-force
- 2013-06-26 US US14/411,067 patent/US20150341055A1/en not_active Abandoned
- 2013-06-26 EP EP13733265.6A patent/EP2865099B1/en not_active Not-in-force
- 2013-06-26 US US14/411,081 patent/US9515682B2/en not_active Expired - Fee Related
- 2013-06-26 WO PCT/EP2013/063407 patent/WO2014001397A1/en active Application Filing
Patent Citations (10)
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)
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 |