WO2014001395A1 - 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
- WO2014001395A1 WO2014001395A1 PCT/EP2013/063405 EP2013063405W WO2014001395A1 WO 2014001395 A1 WO2014001395 A1 WO 2014001395A1 EP 2013063405 W EP2013063405 W EP 2013063405W WO 2014001395 A1 WO2014001395 A1 WO 2014001395A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- bits
- word
- error
- syndrome
- initial word
- Prior art date
Links
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/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
-
- 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
-
- 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 codeword provided with a minimum Hamming distance equal to only 3 or 4.
- the invention proposes a device that makes judicious use of bit confidence information of a code word assigned a one or two bit error to correct this error.
- the invention applies in particular to the fields of error correcting codes and nanoscale technologies.
- data is usually stored and / or transmitted as binary values called bits. This data may be affected by faults that may cause operational errors and ultimately system failure in the absence of a correction or masking mechanism.
- ECC Error Correcting Codes
- these code words In order to allow correction of errors that 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 allow also the detection of errors that affect n + 1 bits, apart from the correction of 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 correction code are defined using a control matrix H.
- a binary vector V is a codeword only if its product with the matrix H generates a null vector.
- a code word V of a linear correction code is verified by evaluating the matrix product H V. The result of this operation is a vector called syndrome. If the syndrome is a null vector, the code word V is considered correct. A non-zero syndrome indicates the presence of at least one error. If the syndrome identifies the positions of the affected bits, the errors affecting the codeword can be corrected.
- a Hamming code makes it possible to correct a simple error, that is to say an error that affects a single bit.
- This correction capacity is called SEC, an acronym from the English expression "Single Error Correction”.
- SEC Single Error Correction
- ECC code is the code DEC, an acronym derived from the English expression “Double Error Correction”, which allows the correction of double errors, that is to say errors affecting two bits in a code word.
- DEC code
- the codes of this family are also capable of correcting all simple errors.
- the words of a DEC code are separated by a minimum Hamming distance of 5.
- This difference between the correction capacity of a SEC code and that of a DEC code is due to an increase in the number of verification bits in the case of a DEC code. For example, for eight bits of data an SEC code needs four bits of checks while a DEC code requires eight verification bits. Such a 100% increase in the number of verification bits can be prohibitive due to the impact on the surface of the components, their efficiency, their consumption and ultimately their cost.
- memories manufactured using emerging technologies such as MRAMs, an acronym from the Magnetic Random Access Memory, may be affected by a high rate of transient and / or permanent errors.
- MRAMs an acronym from the Magnetic Random Access Memory
- the correction capacity of the SEC codes is too low and the DEC codes remain too expensive. In such situations, innovative masking and / or correction solutions are required.
- An object of the invention is notably to propose a method for determining the erroneous bits of a double error, that is to say a two-bit error, 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 assigned a double error and issued from a code provided with a minimum Hamming distance equal to 3 or 4, comprising receiving a data indicative of a confidence level, weak or strong, assigned to each of the bits of at least a portion of the initial word, the method comprising a step of generating the syndrome from the initial word and a step to determine if said syndrome is that of a code word affected by a double error, characterized in that if it identifies, from the syndrome, a double error in the initial word whose two bits affected correspond to bits of weak trust in the initial word, said two erroneous bits are selected in order to be corrected and in that if no double error generating said syndrome affects two bits of low
- 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, among all the possible errors producing the initial word, a double error whose assigned bits both correspond to bits of low confidence.
- This second step makes it possible to discriminate errors when the most favorable case does not occur, that is to say if among all the double errors producing the initial word, no error contains two bits of low confidence. In this case, the method looks for a double error of which one of the two bits is assigned a low level of confidence.
- the method comprises a step for determining whether the number of low confidence bits 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 determination method as described above, and a step of inversion of the erroneous bit or bits determined by said method of determination.
- the invention also relates to a method for correcting the erroneous bits in an initial binary word assigned a simple error or a double error and issued from a code provided with a minimum Hamming distance equal to 3 or 4 in which when the syndrome originating from the initial word corresponds to a double error, the method for correcting a double error as presented above is performed, and in which when said syndrome corresponds to a simple error, a correction of simple error on the initial word.
- Another subject of the invention is a device for correcting erroneous bits in an initial binary word assigned a double or single error and issuing from a code provided with a minimum Hamming distance equal to 3 or 4, the device being adapted to receive a datum indicative of a confidence level, weak or strong, assigned to each of the bits of at least part of the initial word, the device comprising a syndrome generator fed by the initial word and correction means selective bit of the original word, characterized in that the means for selectively correcting bits are fed by a bit selection module to be reversed able to select the two bits affected by a double error in the initial word according to said data indicative of confidence, the response of a module indicating whether there is more than one bit of low confidence level in the initial binary word and the syndrome from said syndrome generator, led it selection module being able to identify, a double error in the initial word of which at least one of the two bits assigned correspond to low confidence bits in the initial word, the means of selective correction of bits are fed by a selection module , bits to invert adapted to select
- the invention also relates to a memory module comprising a correction device as described above.
- FIG. 1 an example of a device according to the invention notably enabling 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 an exemplary method according to the invention for selecting a double error among several double errors producing the same syndrome.
- FIG. 1 shows an example of a device according to the invention notably enabling the correction of single and double errors in a word of a code provided with a minimum Hamming distance equal to 3 or 4 - in other words, the smallest distance of Hamming separating two words from this code is equal to 3 or 4.
- indicative confidence data in the example in the form of a word 102, is used to indicate a confidence bit level of each bit in a codeword 101, said initial word 101, at the entrance of the device according to the invention.
- the initial word 101 and the confidence word 102 comprise the same number of bits and some bits in the initial word 101 may be erroneous.
- a bit with the value 1 -logic indicates that the corresponding bit in the initial word 101 has a low level of confidence, a bit with the 0-logic value signaling a bit with a high level of confidence.
- the initial binary word can be assigned a double or single error.
- the device 100 receives on a first input 100a an initial word 101 and on a second input 100b 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 enable the correction of double errors that generate a syndrome different from all the syndromes produced by a single error.
- the device 100 outputs 100c a corrected word 104.
- the device according to the invention 100 comprises a syndrome generation module 10 fed by the initial word 101, a simple error selection module 140, a double error selection module 130, a error correction module 150, and a test module 120 able to determine if the number of low confidence bits in the initial word is greater than or equal to 1.
- the syndrome generation module 1 10 receives as input the initial word 101 and generates a syndrome from the bits of the initial word 101.
- this module makes 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 generation module 1 produces a syndrome 103 which is a null vector; on the other hand, when the initial word 101 contains an error on at least 1 bit, then the syndrome 103 is a non-zero vector. If the minimum Hamming distance of the code used to generate the initial word 101 is 4, then all the double errors produce syndromes different from the syndromes produced by the simple 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 syndromes different from the syndromes produced by the simple errors.
- the test module 120 is adapted to receive the word 102 confidence indicator and to output a binary signal.
- the test module 120 indicates via the output signal if this word 102 contains more than one bit equal to a logical 1, which indicates the presence of more than one bit with a low level of confidence in the initial word 101.
- the device does not comprise a separate test module 120, the test being performed by the double error selection module 130.
- the double error selection module 130 is configured to receive the confidence indicator word 102, the syndrome 103 produced by the module 1 10 described above and the binary output of the module 120. syndrome 103 produced by the module 1 10 is different from all the syndromes produced by a simple error and the number of low confidence bits indicated by the word 102 is greater than 0, the module 130 allows, by exploiting the information contained in the confidence indicator word 102, to determine among the double errors possibly contained in the initial word 101, which occurred.
- An example of a method implemented by the double error selection module 130 is described below with reference to FIG.
- the simple error selection module 140 connected at the output of the syndrome generation module 1 10, makes it possible to identify a simple error in the case where the syndrome calculated by the module 1 10 corresponds to such an error.
- the module 140 is adapted to select the bit affected by a simple error in the initial word according to the syndrome from said syndrome generator.
- the implementation of such a module 140 is known to those skilled in the art.
- the error correction module 150 receiving the code word 101 and supplied by the simple error selection module 140 and the double error selection module 130, allows the correction of single or double errors affecting the word initial 101 using the information provided by one of these two modules 130, 140 indicating the position of the erroneous bits. For example, if the error selection module 140 indicates that the bit of order n is false, the error correction module 150 performs the correction by inverting the value of this bit of order n, passing it from 0 at 1 or from 1 to 0 depending on the value of this "false" bit provided by the input code word 101. Thus, if this "false" bit is 1, it is set to 0. The implementation of such a module 150 is known to those skilled in the art. The correction module 150 outputs the corrected word 104.
- the assembly formed by the syndrome generation modules 1 10, simple error selection module 140 and simple error correction module 150 is similar to the functions performed by a module of the type SEC ("Single Error Correction"), known otherwise.
- SEC Single Error Correction
- the device of FIG. 1 allows the correction of all the errors. doubles.
- FIG. 2 shows an exemplary method according to the invention for selecting a double error among several double errors producing the same syndrome.
- this method can be executed by the module 130 for selecting double error of the bits to be inverted, using the test module 120, modules presented above with regard to FIG.
- This method is necessary only if the same syndrome 103 can be generated by several different double errors, which is generally the case when the minimum Hamming distance between the code words is less than 5.
- the method exploits the confidence indicator word 102 and the number of bits that are assigned a low confidence level to select a double error in the initial word 101 among several double errors generating the same syndrome 103.
- a double error is not selected if the syndrome 103 does not correspond to a double detectable error or if there is no bit with a low level of confidence in the codeword 101.
- a double error is considered detectable if it generates a syndrome different from all the syndromes produced by a single error.
- this first step performs the following test: the syndrome 103 generated by the module 1 10 corresponds to a double detectable error and is there at least one bit with a low level of confidence according to the indicative data 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.
- the first step 210 also indicates that only the double errors that correspond to the syndrome 103 are considered. When the test of the first step 210 is positive, proceed to a second step 220. In the opposite case, no double error is indicated 260.
- the second step 220 performs a test on the number of bits with a low level of confidence 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 level of confidence
- we proceed to a third step 240 performing the following test: is there an error? double corresponding to syndrome 103 and one of the two bits has a low level of confidence?
- is there a pair ⁇ code word, double error ⁇ for which the code word affected by this double error generates the syndrome 103, and for which one of the two bits affected by the error corresponds to the bit whose confidence level is reported as low in the initial word 101?
- the second test step 220 indicates that the initial word 101 contains more than one bit assigned a low level of confidence
- a third alternative test step 230 to choose a double error if the two bits it affects have a low level of confidence.
- the test performed is as follows: is there a double error whose two bits correspond to bits of low confidence in the initial word 101? In other words, is there a pair ⁇ code word, double error ⁇ , for which the code word affected by this double error generates syndrome 103, and for which the two bits affected by the error correspond to bits? whose confidence level is reported as low in the original 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 which can be at the origin of the syndrome 103 resulting from the initial word 101.
- an initial word equal to "001 10101” and a confidence word equal to "01 100010”
- this code word is considered as the error-free word at the origin of the initial word.
- "00010111” is a codeword
- the two bits errors that differ from the original word are considered as 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)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (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
The method for determining the erroneous bits in an initial binary word (101) affected by a double error and coming from a code with a minimum Hamming distance equal to 3 or 4 comprises receiving a piece of data (102) indicative of a low or high bit confidence level allocated to each of the bits of at least a portion of the initial word (101), the method comprising a step of generating the syndrome (103) from the initial word (101) and a step of determining if said syndrome (103) is that of a code word affected by a double error, in which if an error is identified (230), from the syndrome (103), in the initial word (101) of which the two affected bits correspond to low-confidence bits in the initial word (101), said two erroneous bits are selected in order to be corrected. The method applies in particular to the fields of error-correcting codes and nanometer technologies.
Description
CORRECTION D'ERREURS DOUBLES DE BITS DANS UN MOT DE CODE AVEC DISTANCE DE HAMMING TROIS OU QUATRE CORRECTION OF DOUBLE BIT ERRORS IN A CODEWORD WITH HAMMING DISTANCE THREE OR FOUR
L'invention a pour objet un procédé et un dispositif de détermination et de correction d'erreurs doubles bits dans un mot de code pourvu d'une distance minimale de Hamming égale seulement à 3 ou 4. L'invention propose un dispositif exploitant judicieusement des informations de confiance sur les bits d'un mot de code affecté d'une erreur sur un ou deux bits afin de corriger cette erreur. L'invention s'applique notamment aux domaines des codes correcteurs d'erreurs et des technologies nanométriques. Dans un système numérique, les données sont habituellement stockées et/ou transmises sous forme de valeurs binaires appelées bits. Ces données peuvent être affectées par des fautes qui peuvent engendrer des erreurs de fonctionnement et finalement la défaillance du système en l'absence de mécanisme de correction ou masquage. The subject of the invention is a method and a device for determining and correcting double-bit errors in a codeword provided with a minimum Hamming distance equal to only 3 or 4. The invention proposes a device that makes judicious use of bit confidence information of a code word assigned a one or two bit error to correct this error. The invention applies in particular to the fields of error correcting codes and nanoscale technologies. In a digital system, data is usually stored and / or transmitted as binary values called bits. This data may be affected by faults that may cause operational errors and ultimately system failure in the absence of a correction or masking mechanism.
Afin de garantir un niveau d'intégrité acceptable pour les données mémorisées ou transmises, certains systèmes électroniques utilisent des codes, désignés habituellement par l'acronyme ECC venant de l'expression anglo-saxonne « Error Correcting Codes». A cet effet, les données sont encodées lors de l'écriture desdites données dans un système de stockage ou lors de la transmission desdites données à travers un système d'interconnexions. Lors de l'encodage des données avec un code ECC, des bits de vérification sont ajoutés aux bits de données afin de former des mots de code. In order to guarantee an acceptable level of integrity for the data stored or transmitted, certain electronic systems use codes, usually designated by the acronym ECC coming from the English expression "Error Correcting Codes". For this purpose, the data is encoded when writing said data in a storage system or when transmitting said data through an interconnection system. When encoding data with an ECC code, check bits are added to the data bits to form code words.
Afin de permettre la correction des erreurs qui affectent jusqu'à n bits dans les mots d'un code ECC, ces mots de code doivent être séparés par une distance minimale de Hamming de 2n+1 . Pour permettre également
la détection des erreurs qui affectent n+1 bits, en dehors de la correction des erreurs affectant jusqu'à n bits, dans les mots de code d'un ECC, ces mots de code doivent être séparés par une distance minimale de Hamming de 2n+2. In order to allow correction of errors that 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 allow also the detection of errors that affect n + 1 bits, apart from the correction of 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.
Les mots de code d'un code correcteur linéaire sont définis à l'aide d'une matrice de contrôle H. Un vecteur binaire V est un mot de code seulement si son produit avec la matrice H génère un vecteur nul. Un mot de code V d'un code correcteur linéaire est vérifié en évaluant le produit matriciel H V. Le résultat de cette opération est un vecteur appelé syndrome. Si le syndrome est un vecteur nul, le mot de code V est considéré comme correct. Un syndrome non-nul indique la présence d'au moins une erreur. Si le syndrome permet d'identifier les positions des bits affectés, les erreurs affectant le mot de code peuvent être corrigées. The code words of a linear correction code are defined using a control matrix H. A binary vector V is a codeword only if its product with the matrix H generates a null vector. A code word V of a linear correction code is verified by evaluating the matrix product H V. The result of this operation is a vector called syndrome. If the syndrome is a null vector, the code word V is considered correct. A non-zero syndrome indicates the presence of at least one error. If the syndrome identifies the positions of the affected bits, the errors affecting the codeword can be corrected.
Différents codes ECC linéaires existent avec des capacités de détection et de correction d'erreurs différentes. A titre d'exemple, un code de Hamming permet de corriger une erreur simple, c'est-à-dire une erreur qui affecte un seul bit. Cette capacité de correction est qualifiée de SEC, acronyme venant de l'expression anglo-saxonne «Single Error Correction». Les mots d'un code SEC sont séparés par une distance minimale de Hamming de 3. Different linear ECC codes exist with different error detection and correction capabilities. By way of example, a Hamming code makes it possible to correct a simple error, that is to say an error that affects a single bit. This correction capacity is called SEC, an acronym from the English expression "Single Error Correction". The words of a SEC code are separated by a minimum Hamming distance of 3.
Un autre exemple de code ECC est le code DEC, acronyme venant de l'expression anglo-saxonne «Double Error Correction», qui permet la correction d'erreurs doubles, c'est-à-dire d'erreurs affectant deux bits dans un mot de code. Bien évidemment, les codes de cette famille sont aussi capables de corriger toutes les erreurs simples. Les mots d'un code DEC sont séparés par une distance minimale de Hamming de 5. Another example of ECC code is the code DEC, an acronym derived from the English expression "Double Error Correction", which allows the correction of double errors, that is to say errors affecting two bits in a code word. Of course, the codes of this family are also capable of correcting all simple errors. The words of a DEC code are separated by a minimum Hamming distance of 5.
Cette différence entre la capacité de correction d'un code SEC et celle d'un code DEC est due à une augmentation du nombre de bits de vérification dans le cas d'un code DEC. Par exemple, pour huit bits de données un code SEC a besoin de quatre bits de vérifications tandis qu'un
code DEC a besoin de huit bits de vérification. Une telle augmentation de 100% du nombre de bits de vérification peut être prohibitive en raison de l'impact sur la surface des composants, leur rendement, leur consommation et finalement leur coût. This difference between the correction capacity of a SEC code and that of a DEC code is due to an increase in the number of verification bits in the case of a DEC code. For example, for eight bits of data an SEC code needs four bits of checks while a DEC code requires eight verification bits. Such a 100% increase in the number of verification bits can be prohibitive due to the impact on the surface of the components, their efficiency, their consumption and ultimately their cost.
Or, les mémoires manufacturées à l'aide des technologies émergentes, comme les MRAMs, acronyme venant de l'expression anglo- saxonne «Magnetic Random Access Mémory», peuvent être affectées par un taux important d'erreurs transitoires et/ou permanentes. Pour ces types de mémoires, la capacité de correction des codes SEC est trop faible et les codes DEC restent trop chers. Dans de telles situations, des solutions innovantes de masquage et/ou corrections sont nécessaires. However, memories manufactured using emerging technologies, such as MRAMs, an acronym from the Magnetic Random Access Memory, may be affected by a high rate of transient and / or permanent errors. For these types of memories, the correction capacity of the SEC codes is too low and the DEC codes remain too expensive. In such situations, innovative masking and / or correction solutions are required.
Un but de l'invention est notamment de proposer une méthode pour déterminer les bits erronés d'une erreur double, c'est-à-dire une erreur sur deux bits, dans un mot de code dont la distance minimale de Hamming est inférieure à 5. A cet effet, l'invention a pour objet un procédé de détermination des bits erronés dans un mot binaire initial affecté d'une erreur double et issu d'un code muni d'une distance minimale de Hamming égale à 3 ou 4, comprenant la réception d'une donnée indicative d'un niveau binaire de confiance, faible ou fort, attribué à chacun des bits d'au moins une partie du mot initial, le procédé comprenant une étape de génération du syndrome à partir du mot initial et une étape pour déterminer si ledit syndrome est celui d'un mot de code affecté par une erreur double, caractérisé en ce que s'il identifie, à partir du syndrome, une erreur double dans le mot initial dont les deux bits affectés correspondent à des bits de confiance faible dans le mot initial, lesdits deux bits erronés sont sélectionnés afin d'être corrigés et en ce que si aucune erreur double générant ledit syndrome n'affecte deux bits de faible confiance dans le mot initial, alors on identifie une erreur double, pour laquelle l'un des deux bits affecté est un bit de faible confiance dans le mot initial. An object of the invention is notably to propose a method for determining the erroneous bits of a double error, that is to say a two-bit error, 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 assigned a double error and issued from a code provided with a minimum Hamming distance equal to 3 or 4, comprising receiving a data indicative of a confidence level, weak or strong, assigned to each of the bits of at least a portion of the initial word, the method comprising a step of generating the syndrome from the initial word and a step to determine if said syndrome is that of a code word affected by a double error, characterized in that if it identifies, from the syndrome, a double error in the initial word whose two bits affected correspond to bits of weak trust in the initial word, said two erroneous bits are selected in order 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 is identified, for which the one of the two bits assigned is a bit of low confidence in the initial word.
Le procédé permet ainsi de corriger des erreurs double pour un code pourvu d'une distance minimale de Hamming de 3 ou 4 en identifiant,
parmi toutes les erreurs possibles produisant le mot initial, une erreur double dont les bits affectés correspondent tous les deux à des bits de faible confiance. Cette deuxième étape permet de discriminer les erreurs lorsque le cas le plus favorable ne se réalise pas, autrement dit si parmi toutes les erreurs double produisant le mot initial, aucune erreur ne contient deux bits de faible confiance. Dans ce cas, le procédé recherche une erreur double dont l'un des deux bits est affecté d'un faible niveau de confiance. 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, among all the possible errors producing the initial word, a double error whose assigned bits both correspond to bits of low confidence. This second step makes it possible to discriminate errors when the most favorable case does not occur, that is to say if among all the double errors producing the initial word, no error contains two bits of low confidence. In this case, the method looks for a double error of which one of the two bits is assigned a low level of confidence.
Avantageusement, le procédé comprend une étape pour déterminer si le nombre de bits de faible confiance est strictement supérieur à 1 ; Advantageously, the method comprises a step for determining whether the number of low confidence bits is strictly greater than 1;
■ dans le cas où ce nombre est strictement supérieur à 1 , on cherche une erreur double générant ledit syndrome et affectant deux bits de faible confiance dans le mot initial ; ■ if the number is strictly greater than 1, one seeks a double error generating said syndrome and affecting two bits of low confidence in the initial word;
■ dans le cas où ce nombre est égal à 1 , on cherche une erreur double générant ledit syndrome et affectant le bit de faible confiance dans le mot initial ; ■ in the case where this number is equal to 1, we seek a double error generating said syndrome and affecting the low confidence bit in the initial word;
si une telle erreur est trouvée, ou sélectionne les deux bits affectés par cette erreur afin de les corriger. if such an error is found, or select the two bits affected by this error in order to correct them.
L'invention a également pour objet un procédé de correction d'une erreur double dans un mot binaire initial comprenant les étapes du procédé de détermination tel que décrit plus haut, et une étape d'inversion du ou des bits erronés déterminés par ledit procédé de détermination. The subject of the invention is also a method for correcting a double error in an initial binary word comprising the steps of the determination method as described above, and a step of inversion of the erroneous bit or bits determined by said method of determination.
L'invention a également pour objet un procédé de correction des bits erronés dans un mot binaire initial affecté d'une erreur simple ou d'une erreur double et issu d'un code muni d'une distance minimale de Hamming égale à 3 ou 4, dans lequel lorsque le syndrome issu du mot initial correspond à une erreur double, on exécute le procédé de correction d'une erreur double tel que présenté plus haut, et dans lequel lorsque ledit syndrome correspond à une erreur simple, on exécute une correction d'erreur simple sur le mot initial.
L'invention a également pour objet un dispositif de correction des bits erronés dans un mot initial binaire affecté d'une erreur double ou simple et issu d'un code muni d'une distance minimale de Hamming égale à 3 ou 4, le dispositif étant apte à recevoir une donnée indicative d'un niveau binaire de confiance, faible ou fort, attribué à chacun des bits d'au moins une partie du mot initial, le dispositif comprenant un générateur de syndrome alimenté par le mot initial et des moyens de correction sélective de bits du mot initial, caractérisé en ce que les moyens de correction sélective de bits sont alimentés par un module de sélection des bits à inverser apte à sélectionner les deux bits affectés d'une erreur double dans le mot initial en fonction de ladite donnée indicative de confiance, de la réponse d'un module indiquant s'il y a plus d'un seul bit de faible niveau de confiance dans le mot initial binaire et du syndrome issu dudit générateur de syndrome, ledit module de sélection étant apte à identifier, une erreur double dans le mot initial dont au moins un des deux bits affectés correspondent à des bits de confiance faible dans le mot initial, les moyens de correction sélective de bits sont alimentés par un module de sélection, des bits à inverser adapté à sélectionner le bit affecté par une erreur simple dans le mot initial en fonction du syndrome issu de générateur de syndrome. The invention also relates to a method for correcting the erroneous bits in an initial binary word assigned a simple error or a double error and issued from a code provided with a minimum Hamming distance equal to 3 or 4 in which when the syndrome originating from the initial word corresponds to a double error, the method for correcting a double error as presented above is performed, and in which when said syndrome corresponds to a simple error, a correction of simple error on the initial word. Another subject of the invention is a device for correcting erroneous bits in an initial binary word assigned a double or single error and issuing from a code provided with a minimum Hamming distance equal to 3 or 4, the device being adapted to receive a datum indicative of a confidence level, weak or strong, assigned to each of the bits of at least part of the initial word, the device comprising a syndrome generator fed by the initial word and correction means selective bit of the original word, characterized in that the means for selectively correcting bits are fed by a bit selection module to be reversed able to select the two bits affected by a double error in the initial word according to said data indicative of confidence, the response of a module indicating whether there is more than one bit of low confidence level in the initial binary word and the syndrome from said syndrome generator, led it selection module being able to identify, a double error in the initial word of which at least one of the two bits assigned correspond to low confidence bits in the initial word, the means of selective correction of bits are fed by a selection module , bits to invert adapted to select the bit affected by a simple error in the initial word according to the Syndrome syndrome syndrome.
L'invention a également pour objet un module mémoire comprenant un dispositif de correction tel que décrit plus haut. The invention also relates to a memory module comprising a correction device as described above.
D'autres caractéristiques et avantages de l'invention apparaîtront à l'aide de la description qui suit, donnée à titre illustratif et non limitatif et faite en regard des dessins annexés parmi lesquels : Other features and advantages of the invention will become apparent with the aid of the description which follows, given by way of illustration and without limitation and made with reference to the appended drawings among which:
- la figure 1 , un exemple de dispositif selon l'invention permettant notamment la correction des erreurs simples et doubles dans un mot d'un code caractérisé par une distance minimale de Hamming égale à 3 ou 4 ;
- la figure 2, un exemple de procédé selon l'invention pour sélectionner une erreur double parmi plusieurs erreurs doubles produisant un même syndrome. La figure 1 présente un exemple de dispositif selon l'invention permettant notamment la correction des erreurs simples et doubles dans un mot d'un code pourvu d'une distance minimale de Hamming égale à 3 ou 4 — autrement dit, la plus petite distance de Hamming séparant deux mots de ce code est égale à 3 ou 4. FIG. 1, an example of a device according to the invention notably enabling 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, an exemplary method according to the invention for selecting a double error among several double errors producing the same syndrome. FIG. 1 shows an example of a device according to the invention notably enabling the correction of single and double errors in a word of a code provided with a minimum Hamming distance equal to 3 or 4 - in other words, the smallest distance of Hamming separating two words from this code is equal to 3 or 4.
Dans la suite, il est considéré qu'une donnée indicative de confiance, dans l'exemple sous la forme d'un mot 102, est utilisée pour indiquer un niveau binaire de confiance de chaque bit dans un mot de code 101 , dit mot initial 101 , à l'entrée du dispositif selon l'invention. Dans les exemples développés, le mot initial 101 et le mot de confiance 102 comprennent le même nombre de bits et certains bits dans le mot initial 101 peuvent être erronés. Sans affecter la généralité de l'invention, il est également considéré par la suite que dans le mot de confiance 102, un bit avec la valeur 1 -logique signale que le bit correspondant dans le mot initial 101 a un faible niveau de confiance, un bit avec la valeur 0-logique signalant un bit avec un fort niveau de confiance. Le mot initial binaire peut être affecté d'une erreur double ou simple. In the following, it is considered that indicative confidence data, in the example in the form of a word 102, is used to indicate a confidence bit level of each bit in a codeword 101, said initial word 101, at the entrance 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 some bits in the initial word 101 may be erroneous. Without affecting the generality of the invention, it is also subsequently considered that in the confidence word 102, a bit with the value 1 -logic indicates that the corresponding bit in the initial word 101 has a low level of confidence, a bit with the 0-logic value signaling a bit with a high level of confidence. The initial binary word can be assigned a double or single error.
Le dispositif 100 reçoit sur une première entrée 100a un mot initial 101 et sur une deuxième entrée 100b un mot de confiance 102 comprenant l'information binaire relative au niveau de confiance de chaque bit dans le mot initial 101 . Ce mot de confiance 102 est utilisé pour permettre la correction des erreurs doubles qui génèrent un syndrome différent de tous les syndromes produits par une erreur simple. Le dispositif 100 délivre en sortie 100c un mot corrigé 104. The device 100 receives on a first input 100a an initial word 101 and on a second input 100b 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 enable the correction of double errors that generate a syndrome different from all the syndromes produced by a single error. The device 100 outputs 100c a corrected word 104.
Le dispositif selon l'invention 100 comprend un module de génération de syndrome 1 10 alimenté par le mot initial 101 , un module de sélection d'erreur simple 140, un module de sélection d'erreur double 130, un
module de correction d'erreurs 150, ainsi qu'un module de test 120 apte à déterminer si le nombre de bits de faible confiance dans le mot initial est supérieur ou égal à 1 . The device according to the invention 100 comprises a syndrome generation module 10 fed by the initial word 101, a simple error selection module 140, a double error selection module 130, a error correction module 150, and a test module 120 able to determine if the number of low confidence bits in the initial word is greater than or equal to 1.
Le module de génération de syndrome 1 10 reçoit en entrée le mot initial 101 et génère un syndrome à partir des bits du mot initial 101 . Dans le cas où un ECC linaire est utilisé, ce module effectue le produit matriciel H V, où H est la matrice de parité caractérisant le code auquel appartient le mot initial 101 et V c'est le mot initial 101 . L'implémentation du calcul de ce produit matriciel est réalisée selon des techniques connues. Lorsque le mot initial 101 ne contient aucune erreur, le module de génération de syndrome 1 10 produit un syndrome 103 qui est un vecteur nul ; par contre, lorsque le mot initial 101 contient une erreur sur au moins 1 bit, alors le syndrome 103 est un vecteur non nul. Si la distance minimale de Hamming du code ayant servi à la génération du mot initial 101 est égale à 4, alors toutes les erreurs doubles produisent des syndromes différents des syndromes produits par les erreurs simples. Si le code auquel appartient le mot initial 101 est imparfait et caractérisé par une distance minimale de Hamming égale à 3, alors une fraction non nulle des erreurs doubles produit des syndromes différents des syndromes produits par les erreurs simples.. The syndrome generation module 1 10 receives as input the initial word 101 and generates a syndrome from the bits of the initial word 101. In the case where a linear ECC is used, this module makes 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 contains no errors, the syndrome generation module 1 produces a syndrome 103 which is a null vector; on the other hand, when the initial word 101 contains an error on at least 1 bit, then the syndrome 103 is a non-zero vector. If the minimum Hamming distance of the code used to generate the initial word 101 is 4, then all the double errors produce syndromes different from the syndromes produced by the simple 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 syndromes different from the syndromes produced by the simple errors.
Le module de test 120 est adapté à recevoir le mot 102 indicateur de confiance et à produire en sortie un signal binaire. Dans l'exemple, le module de test 120 indique via le signal de sortie si ce mot 102 contient plus d'un bit égal à un 1 -logique, ce qui signale la présence de plus d'un bit avec un faible niveau de confiance dans le mot initial 101 . Un homme du métier peut choisir parmi plusieurs mises en œuvre possibles d'un tel module. Selon un autre mode de réalisation du dispositif selon l'invention, le dispositif ne comprend pas de module de test 120 distinct, le test étant effectué par le module de sélection d'erreur double 130. The test module 120 is adapted to receive the word 102 confidence indicator and to output a binary signal. In the example, the test module 120 indicates via the output signal if this word 102 contains more than one bit equal to a logical 1, which indicates the presence of more than one bit with a low level of confidence in the initial word 101. A person skilled in the art can choose from several possible implementations of such a module. According to another embodiment of the device according to the invention, the device does not comprise a separate test module 120, the test being performed by the double error selection module 130.
Le module de sélection d'erreur double 130 est configuré pour recevoir le mot indicateur de confiance 102, le syndrome 103 produit par le module 1 10 décrit plus haut et la sortie binaire du module 120. Lorsque le
syndrome 103 produit par le module 1 10 est différent de tous les syndromes produits par une erreur simple et que le nombre de bits de faible confiance indiqué par le mot 102 est supérieur à 0, le module 130 permet, en exploitant l'information contenue dans le mot indicateur de confiance 102, de déterminer parmi les erreurs doubles possiblement contenues dans le mot initial 101 , laquelle s'est produite. Un exemple de procédé mis en œuvre par le module de sélection d'erreur double 130 est décrit plus loin en regard de la figure 2. The double error selection module 130 is configured to receive the confidence indicator word 102, the syndrome 103 produced by the module 1 10 described above and the binary output of the module 120. syndrome 103 produced by the module 1 10 is different from all the syndromes produced by a simple error and the number of low confidence bits indicated by the word 102 is greater than 0, the module 130 allows, by exploiting the information contained in the confidence indicator word 102, to determine among the double errors possibly contained in the initial word 101, which occurred. An example of a method implemented by the double error selection module 130 is described below with reference to FIG.
Le module de sélection d'erreur simple 140, relié en sortie du module de génération de syndrome 1 10, permet d'identifier une erreur simple dans le cas où le syndrome calculé par le module 1 10 correspond à une telle erreur. Le module 140 est adapté à sélectionner le bit affecté par une erreur simple dans le mot initial en fonction du syndrome issu dudit générateur de syndrome. La mise en œuvre d'un tel module 140 est connue de l'homme du métier. The simple error selection module 140, connected at the output of the syndrome generation module 1 10, makes it possible to identify a simple error in the case where the syndrome calculated by the module 1 10 corresponds to such an error. The module 140 is adapted to select the bit affected by a simple error in the initial word according to the syndrome from said syndrome generator. The implementation of such a module 140 is known to those skilled in the art.
Le module de correction d'erreur 150, recevant le mot de code 101 et alimenté par le module de sélection d'erreur simple 140 et par le module de sélection d'erreur double 130, permet la correction des erreurs simples ou doubles affectant le mot initial 101 en utilisant les informations fournies par l'un de ces deux modules 130, 140 indiquant la position des bits erronés. Par exemple, si le module de sélection d'erreur 140 indique que le bit d'ordre n est faux, le module de correction d'erreur 150 effectue la correction en inversant la valeur de ce bit d'ordre n, le passant de 0 à 1 ou de 1 à 0 en fonction de la valeur de ce bit « faux » fournie par le mot de code 101 en entrée. Ainsi, si ce bit « faux » est à 1 , on le passe à la valeur 0. L'implémentation d'un tel module 150 est connue de l'homme de l'art. Le module de correction 150 délivre en sortie le mot corrigé 104. The error correction module 150, receiving the code word 101 and supplied by the simple error selection module 140 and the double error selection module 130, allows the correction of single or double errors affecting the word initial 101 using the information provided by one of these two modules 130, 140 indicating the position of the erroneous bits. For example, if the error selection module 140 indicates that the bit of order n is false, the error correction module 150 performs the correction by inverting the value of this bit of order n, passing it from 0 at 1 or from 1 to 0 depending on the value of this "false" bit provided by the input code word 101. Thus, if this "false" bit is 1, it is set to 0. The implementation of such a module 150 is known to those skilled in the art. The correction module 150 outputs the corrected word 104.
L'ensemble formé par les modules de génération de syndrome 1 10, de sélection d'erreur simple 140 et de correction d'erreur simple 150 s'apparente aux fonctions remplies par un module de type SEC (« Single Error Correction »), connu par ailleurs.
Dans le cas où la distance minimale de Hamming du code auquel appartient le mot 101 est égale à 4 et toutes les erreurs doubles produisent des syndromes différents des syndromes produits par les erreurs simples, le dispositif de la figure 1 permet la correction de toutes les erreurs doubles. The assembly formed by the syndrome generation modules 1 10, simple error selection module 140 and simple error correction module 150 is similar to the functions performed by a module of the type SEC ("Single Error Correction"), known otherwise. 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 syndromes different from the syndromes produced by the simple errors, the device of FIG. 1 allows the correction of all the errors. doubles.
La figure 2 présente un exemple de procédé selon l'invention pour sélectionner une erreur double parmi plusieurs erreurs doubles produisant un même syndrome. Par exemple, ce procédé peut être exécuté par le module 130 de sélection d'erreur double des bits à inverser, à l'aide du module de test 120, modules présentés plus haut en regard de la figure 1 . Ce procédé est nécessaire seulement si le même syndrome 103 peut être généré par plusieurs erreurs doubles différentes, ce qui est généralement le cas lorsque la distance minimale de Hamming entre les mots du code est inférieure à 5. FIG. 2 shows an exemplary method according to the invention for selecting a double error among several double errors producing the same syndrome. For example, this method can be executed by the module 130 for selecting double error of the bits to be inverted, using the test module 120, modules presented above with regard to FIG. This method is necessary only if the same syndrome 103 can be generated by several different double errors, which is generally the case when the minimum Hamming distance between the code words is less than 5.
Le procédé exploite le mot indicateur de confiance 102 et le nombre de bits qui sont affectés d'un faible niveau de confiance pour sélectionner une erreur double dans le mot initial 101 parmi plusieurs erreurs doubles générant le même syndrome 103. The method exploits the confidence indicator word 102 and the number of bits that are assigned a low confidence level to select a double error in the initial word 101 among several double errors generating the same syndrome 103.
Dans une première étape 210, on ne sélectionne pas une erreur double si le syndrome 103 ne correspond pas à une erreur double détectable ou s'il n'y a aucun bit avec un faible niveau de confiance dans le mot de code 101 . Une erreur double est considérée comme détectable si elle génère un syndrome différent de tous les syndromes produits par une erreur simple. Dans l'exemple, cette première étape effectue le test suivant : le syndrome 103 généré par le module 1 10 correspond-il à une erreur double détectable et y a t-il au moins un bit avec un faible niveau de confiance selon la donnée indicative de confiance 102 ? Il est à noter que le test déterminant s'il y a au moins un bit de faible confiance dans le mot initial peut être exécuté par les modules 120 ou 130 illustrés en figure 1 . La première étape 210 indique également que seules les erreurs doubles qui correspondent au syndrome 103 sont considérées. Lorsque le test de la première étape 210 est positif, on
passe à une deuxième étape 220. Dans le cas contraire, aucune erreur double n'est indiquée 260. In a first step 210, a double error is not selected if the syndrome 103 does not correspond to a double detectable error or if there is no bit with a low level of confidence in the codeword 101. A double error is considered detectable if it generates a syndrome different from all the syndromes produced by a single error. In the example, this first step performs the following test: the syndrome 103 generated by the module 1 10 corresponds to a double detectable error and is there at least one bit with a low level of confidence according to the indicative data 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. The first step 210 also indicates that only the double errors that correspond to the syndrome 103 are considered. When the test of the first step 210 is positive, proceed to a second step 220. In the opposite case, no double error is indicated 260.
La deuxième étape 220 effectue un test sur le nombre de bits avec un faible niveau de confiance dans le mot initial 101 . Dans le cas où cette deuxième étape 220 de test indique que le mot initial 101 ne contient pas plus d'un bit avec un faible niveau de confiance, on passe à une troisième étape 240 effectuant le test suivant : existe-t-il une erreur double correspondant au syndrome 103 et dont un des deux bits a un faible niveau de confiance ? Autrement dit, existe-t-il un couple {mot de code, erreur double }, pour lequel le mot de code affecté par cette erreur double génère le syndrome 103, et pour lequel un bit parmi les deux bits affectés par l'erreur correspond au bit dont le niveau de confiance est signalé comme faible dans le mot initial 101 ? The second step 220 performs a test on the number of bits with a low level of confidence 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 level of confidence, we proceed to a third step 240 performing the following test: is there an error? double corresponding to syndrome 103 and one of the two bits has a low level of confidence? In other words, is there a pair {code word, double error}, for which the code word affected by this double error generates the syndrome 103, and for which one of the two bits affected by the error corresponds to the bit whose confidence level is reported as low in the initial word 101?
Dans le cas où la deuxième étape de test 220 indique que le mot initial 101 contient plus d'un bit affecté d'un faible niveau de confiance, elle est suivie d'une troisième étape de test alternative 230 permettant de choisir une erreur double si les deux bits qu'elle affecte ont un faible niveau de confiance. Le test effectué est le suivant : existe t-il une erreur double dont les deux bits correspondent à des bits de faible confiance dans le mot initial 101 ? Autrement dit, existe-t-il un couple {mot de code, erreur double }, pour lequel le mot de code affecté par cette erreur double génère le syndrome 103, et pour lequel les deux bits affectés par l'erreur correspondent à des bits dont le niveau de confiance est signalé comme faible dans le mot initial 101 ? Ce cas correspond au cas le plus favorable pour choisir une erreur double, puisqu'il y a concordance entre deux bits de faible confiance et au moins l'une des erreurs double pouvant être à l'origine du syndrome 103 issu du mot initial 101 . Par exemple, pour un mot initial égal à « 001 10101 » et un mot indicateur de confiance égal à « 01 100010 », s'il existe un mot du code parmi les mots suivants : « 01010101 », « 011 10111 », « 00010111 », alors ce mot de code est considéré comme le mot sans erreur à l'origine du mot initial. Dans l'exemple, si « 00010111 » est un mot de code, les deux bits
erronés qui diffèrent par rapport au mot initial sont considérés comme les bits erronés et sont donc sélectionnés. In the case where the second test step 220 indicates that the initial word 101 contains more than one bit assigned a low level of confidence, it is followed by a third alternative test step 230 to choose a double error if the two bits it affects have a low level of confidence. The test performed is as follows: is there a double error whose two bits correspond to bits of low confidence in the initial word 101? In other words, is there a pair {code word, double error}, for which the code word affected by this double error generates syndrome 103, and for which the two bits affected by the error correspond to bits? whose confidence level is reported as low in the original 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 which can be at the origin of the syndrome 103 resulting from the initial word 101. For example, for an initial word equal to "001 10101" and a confidence word equal to "01 100010", if there is a code word among the following words: "01010101", "011 10111", "00010111 ", Then this code word is considered as the error-free word at the origin of the initial word. In the example, if "00010111" is a codeword, the two bits errors that differ from the original word are considered as erroneous bits and are therefore selected.
Pour ces deux troisièmes étapes 230, 240, lorsque le résultat du test est positif, l'erreur double est indiquée 250. Lorsque le résultat est négatif, aucune erreur double n'est indiquée 260. 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.
Dans une implémentation matérielle, toutes ces étapes qui se succèdent séquentiellement ou des sous-ensembles formés par certaines de ces étapes peuvent être exécutés de manière concurrente.
In a hardware implementation, all of these sequentially succeeding steps or subsets formed by some of these steps can be performed concurrently.
Claims
1. Procédé de détermination des bits erronés dans un mot binaire Initial (101) affecté d'une erreur double et issu d'un code muni d'une distance minimale de Hamming égale à 3 ou 4, comprenant la réception d'une donnée indicative (102) d'un niveau binaire de confiance, faible ou fort, attribué à chacun des bits d'au moins une partie du mot initial (101 ), le procédé comprenant une étape de génération du syndrome (103) à partir du mot initial (101) et une étape pour déterminer si ledit syndrome (103) est celui d'un mot de code affecté par une erreur double, caractérisé en ce que : 1. Method for determining the erroneous bits in an initial binary word (101) assigned a double error and issued from a code provided with a minimum Hamming distance equal to 3 or 4, comprising the reception of an indicative data item (102) a bit confidence level, weak or strong, assigned to each of the bits of at least part of the initial word (101), the method comprising a step of generating the syndrome (103) from the initial word (101) and a step for determining whether said syndrome (103) is that of a code word affected by a double error, characterized in that:
• s'il identifie (230), à partir du syndrome (103), une erreur double dans le mot initial (101) dont les deux bits affectés correspondent à des bits de confiance faible dans le mot initial (101), lesdits deux bits erronés sont sélectionnés afin d'être corrigés, If it identifies (230), from the syndrome (103), a double error in the initial word (101) whose two assigned bits correspond to low confidence bits in the initial word (101), said two bits erroneous are selected for correction,
• si aucune erreur double générant ledit syndrome (103) n'affecte deux bits de faible confiance dans le mot initial (101), alors on identifie (240) une erreur double, pour laquelle l'un des deux bits affecté est un bit de faible confiance dans le mot initial ( 01). If no double error generating said syndrome (103) affects two bits of low confidence in the initial word (101), then one identifies (240) a double error, for which one of the two bits affected is a bit of low confidence in the initial word (01).
2. Procédé selon la revendication 1 , dans lequel le procédé comprend une étape (220) pour déterminer si le nombre de bits de faible confiance est strictement supérieur à 1 ; The method of claim 1, wherein the method comprises a step (220) of determining whether the number of low confidence bits is strictly greater than 1;
■ dans le cas où ce nombre est strictement supérieur à 1, on cherche une erreur double générant ledit syndrome ( 03) et affectant deux bits de faible confiance dans le mot initial (101) ; ■ in the case where this number is strictly greater than 1, we seek a double error generating said syndrome (03) and affecting two bits of low confidence in the initial word (101);
■ dans le cas où ce nombre est égal à 1 , on cherche une erreur double générant ledit syndrome (103) affectant le bit de faible confiance dans le mot initial (101) ; ■ in the case where this number is equal to 1, a double error is sought which generates said syndrome (103) affecting the low confidence bit in the initial word (101);
FEUILLE RECTIFIÉE (RÈGLE 91) ISA/ EP
si une erreur double est trouvée, sélectionner les deux bits affectés par cette erreur afin de les corriger. RECTIFIED SHEET (RULE 91) ISA / EP if a double error is found, select the two bits affected by this error in order to correct them.
3. Procédé selon l'une quelconque des revendications précédentes, dans lequel le procédé comprend une étape préalable de test (210) apte à déterminer si le syndrome (103) issu du mot initial (101) correspond à celui d'une erreur double détectable et si au moins un bit du mot initial (101) est affecté d'un faible niveau de confiance ; si le test est négatif, aucun bit erroné n'est indiqué. 3. Method according to any one of the preceding claims, wherein the method comprises a preliminary test step (210) capable of determining whether the syndrome (103) from the initial word (101) corresponds to that of a double detectable error. and if at least one bit of the initial word (101) is assigned a low level of confidence; if the test is negative, no erroneous bit is indicated.
4. Procédé de correction d'une erreur double dans un mot binaire initial (101) comprenant les étapes du procédé de détermination selon l'une quelconque des revendications précédentes, et une étape d'inversion (150) du ou des bits erronés sélectionnés. 4. A method of correcting a double error in an initial binary word (101) comprising the steps of the determination method according to any one of the preceding claims, and a step of inverting (150) the selected errored bit (s).
5. Procédé de correction des bits erronés dans un mot binaire initial affecté d'une erreur simple ou d'une erreur double et issu d'un code muni d'une distance minimale de Hamming égale à 3 ou 4, dans lequel lorsque le syndrome (103) issu du mot initial (101) correspond à une erreur double, on exécute le procédé de correction d'une erreur double selon la revendication 5, et dans lequel lorsque ledit syndrome (103) correspond à une erreur simple, on exécute une correction d'erreur simple sur le mot initial (101). 5. A method of correcting the erroneous bits in an initial binary word assigned a simple error or a double error and issued from a code provided with a minimum Hamming distance equal to 3 or 4, in which when the syndrome (103) from the initial word (101) corresponds to a double error, the double error correction method according to claim 5 is executed, and wherein when said syndrome (103) corresponds to a simple error, a simple error correction on the initial word (101).
6. Dispositif de correction des bits erronés dans un mot initial binaire (101) affecté d'une erreur double ou simple et issu d'un code muni d'une distance minimale de Hamming égale à 3 ou 4, le dispositif étant apte à recevoir une donnée indicative (102) d'un niveau binaire de confiance, faible ou fort, attribué à chacun des bits d'au moins une partie du mot initial (101), le dispositif comprenant un générateur de syndrome (110) 6. Device for correcting erroneous bits in a binary initial word (101) assigned a double or single error and issued from a code provided with a minimum Hamming distance equal to 3 or 4, the device being able to receive an indicative datum (102) of a confidence level, weak or strong, assigned to each of the bits of at least part of the initial word (101), the device comprising a syndrome generator (110)
FEUILLE RECTIFIÉE (RÈGLE 91) ISA/EP
alimenté par le mot initial (101) et des moyens de correction sélective de bits (150) du mot initial (101), caractérisé en ce que : RECTIFIED SHEET (RULE 91) ISA / EP powered by the initial word (101) and bit correcting means (150) of the original word (101), characterized in that:
• les moyens de correction sélective de bits sont alimentés par un module de sélection des bits à inverser (130) apte à sélectionner les deux bits affectés par une erreur double dans le mot initial en fonction de ladite donnée indicative de confiance (102), de la réponse d'un module (120) indiquant s'il y a plus d'un seul bit de faible niveau de confiance dans le mot (101) et du syndrome issu dudit générateur de syndrome (110), The selective bit correction means are fed by a module for selecting the bits to be inverted (130) able to select the two bits affected by a double error in the initial word as a function of said indicative confidence data (102), the response of a module (120) indicating whether there is more than one low confidence bit in the word (101) and the syndrome from said syndrome generator (110),
• ledit module de sélection (130) étant apte à identifier (230), une erreur double dans le mot initial ( 01) dont au moins un des deux bits affectés correspondent à des bits de confiance faible dans le mot initial (101), Said selection module (130) being able to identify (230), a double error in the initial word (01) of which at least one of the two bits affected correspond to weak bits of confidence in the initial word (101),
• les moyens de corrections sélective de bits sont alimentés par un module de sélection (140) des bits à inverser adapté à sélectionner le bit affecté par une erreur simple dans le mot initial en fonction du syndrome issu dudit générateur de syndrome (110). The means for selectively correcting bits are fed by a selection module (140) for the bits to be inverted adapted to select the bit affected by a simple error in the initial word according to the syndrome originating from said syndrome generator (110).
Module mémoire comprenant un dispositif de correction selon la revendication 6. Memory module comprising a correction device according to claim 6.
FEUILLE RECTIFIÉE (RÈGLE 91) ISA/EP
RECTIFIED SHEET (RULE 91) ISA / EP
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/411,067 US20150341055A1 (en) | 2012-06-26 | 2013-06-26 | Double bit error correction in a code word with a hamming distance of three or four |
EP13733265.6A EP2865099B1 (en) | 2012-06-26 | 2013-06-26 | Correction of double bit errors in a code word with hamming distance three or four |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1256029A FR2992504A1 (en) | 2012-06-26 | 2012-06-26 | DEVICE AND METHOD FOR CORRECTING ERRORS IN A CODEWORD |
FR1256029 | 2012-06-26 | ||
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 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2014001395A1 true WO2014001395A1 (en) | 2014-01-03 |
Family
ID=47424928
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/EP2013/063407 WO2014001397A1 (en) | 2012-06-26 | 2013-06-26 | Device for correcting two errors with a code of hamming distance three or four |
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 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/EP2013/063407 WO2014001397A1 (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) | EP2865099B1 (en) |
FR (3) | FR2992504A1 (en) |
WO (2) | WO2014001397A1 (en) |
Families Citing this family (3)
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 |
KR102410566B1 (en) * | 2018-02-05 | 2022-06-17 | 삼성전자주식회사 | Semiconductor memory devices, memory systems including the same and method of operating semiconductor memory devices |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1819058A1 (en) * | 2006-02-13 | 2007-08-15 | Harris Corporation | Cyclic redundancy check (CRC) based error correction method and device |
US20070214402A1 (en) * | 2006-03-07 | 2007-09-13 | Arie Heiman | Method and system for bluetooth decoding |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0162936B1 (en) * | 1984-05-26 | 1988-08-10 | HONEYWELL BULL ITALIA S.p.A. | 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 |
JP3839215B2 (en) * | 2000-03-14 | 2006-11-01 | 株式会社日立製作所 | Error detection / correction method, main storage controller for computer system, and computer system |
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 |
GB2428496A (en) * | 2005-07-15 | 2007-01-31 | Global Silicon Ltd | Error correction for flash memory |
WO2009072103A2 (en) * | 2007-12-05 | 2009-06-11 | Densbits Technologies Ltd. | 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 |
US9128868B2 (en) * | 2008-01-31 | 2015-09-08 | International Business Machines Corporation | System for error decoding with retries and associated methods |
US8458536B2 (en) * | 2008-07-17 | 2013-06-04 | Marvell World Trade Ltd. | Data recovery in solid state memory devices |
CN101814922B (en) * | 2009-02-23 | 2013-06-19 | 国际商业机器公司 | Multi-bit error correcting method and device based on BCH (Broadcast Channel) code and memory system |
US9432298B1 (en) * | 2011-12-09 | 2016-08-30 | P4tents1, LLC | System, method, and computer program product for improving memory systems |
-
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/063407 patent/WO2014001397A1/en active Application Filing
- 2013-06-26 WO PCT/EP2013/063405 patent/WO2014001395A1/en active Application Filing
- 2013-06-26 EP EP13733265.6A patent/EP2865099B1/en not_active Not-in-force
- 2013-06-26 US US14/411,067 patent/US20150341055A1/en not_active Abandoned
- 2013-06-26 EP EP13735227.4A patent/EP2865100B1/en not_active Not-in-force
- 2013-06-26 US US14/411,081 patent/US9515682B2/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1819058A1 (en) * | 2006-02-13 | 2007-08-15 | Harris Corporation | Cyclic redundancy check (CRC) based error correction method and device |
US20070214402A1 (en) * | 2006-03-07 | 2007-09-13 | Arie Heiman | Method and system for bluetooth decoding |
Non-Patent Citations (2)
Title |
---|
BACCARINI L ET AL: "Error-correction techniques and adaptive linearization in SDH radio", EUROPEAN CONFERENCE ON RADIO RELAY SYSTEMS. EDINBURGH, OCT. 11 - 14, 1993; LONDON, IEE, GB, vol. CONF. 4, October 1993 (1993-10-01), pages 238 - 243, XP006513627, ISBN: 978-0-85296-594-8 * |
G. C. JR CLARK, J. BIBB CAIN: "Error-Correction Coding for Digital Communications", 30 June 1981, SPRINGER, ISBN: 0306406152, article "4.4 The Chase Algorithm", pages: 167 - 172, XP009168642 * |
Also Published As
Publication number | Publication date |
---|---|
FR2992503A1 (en) | 2013-12-27 |
EP2865099A1 (en) | 2015-04-29 |
FR2992504A1 (en) | 2013-12-27 |
US9515682B2 (en) | 2016-12-06 |
EP2865100A1 (en) | 2015-04-29 |
WO2014001397A1 (en) | 2014-01-03 |
FR2992444A1 (en) | 2013-12-27 |
US20150341056A1 (en) | 2015-11-26 |
EP2865100B1 (en) | 2016-10-12 |
EP2865099B1 (en) | 2016-08-31 |
FR2992444B1 (en) | 2017-01-06 |
US20150341055A1 (en) | 2015-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2235632B1 (en) | Secured system for data transmission | |
US20030126400A1 (en) | Data integrity check method using cumulative hash function | |
EP2394366A1 (en) | Error-correcting encoding method with total parity bits, and method for detecting multiple errors | |
WO2014001395A1 (en) | Double bit error correction in a code word with a hamming distance of three or four | |
FR2594976A1 (en) | THREE-MODULE MEMORY SYSTEM CONSTRUCTED USING MEMORY CHIPS WITH A WIDTH OF A SYMBOL AND HAVING A PROTECTIVE CHARACTERISTIC BETWEEN THE ERRORS, EACH SYMBOL CONSISTING OF 2I + 1 BIT | |
WO2011157568A1 (en) | Method of protecting a configurable memory against permanent and transient errors and related device | |
EP1989807B1 (en) | Method and system for transmitting a message expressed by means of a polynomial | |
WO2009010651A1 (en) | Method and device for determining a consolidated position of a travelling object, particularly an aircraft | |
US20110138249A1 (en) | Apparatus and Method for Detecting an Error Within a Plurality of Coded Binary Words Coded by an Error Correction Code | |
CN106301589A (en) | A kind of phase ambiguity processing method and processing device of quadrature amplitude modulation signal | |
FR2995162A1 (en) | METHOD OF OPTIMIZING THE SPECTRAL EFFICIENCY OF A DATA TRANSMISSION AND DEVICE USING THE METHOD | |
EP2786497B1 (en) | Method for maximising the decoding capacity of an error correcting code using supplementary syndromes | |
FR3100347A1 (en) | Error detection | |
US9246512B2 (en) | Error correcting device, method for monitoring an error correcting device and data processing system | |
EP1089175B1 (en) | Secured computer system | |
EP1300952A1 (en) | High efficiency error detection and/or correction code | |
Hemida et al. | Block-DCT based alterable-coding restorable fragile watermarking scheme with superior localization | |
EP1300953A1 (en) | Highly efficient error correction and/or error detection code | |
EP3893117B1 (en) | Circuit for checking the contents of records | |
WO2010128068A1 (en) | Method for protecting electronic circuits, and device and system implementing the method | |
RU2681704C1 (en) | Block code encoding and decoding method | |
EP4099229A1 (en) | Systolic accelerator for neural network and associated electronic system and test method | |
FR3098611A1 (en) | Error detection device | |
FR2992091A1 (en) | DATA RECORDING METHOD, METHOD FOR DETECTING MEMORY ACCESS ERRORS, AND ASSOCIATED DEVICE | |
FR3118749A1 (en) | Device and method for calculating driving parameters |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 13733265 Country of ref document: EP Kind code of ref document: A1 |
|
REEP | Request for entry into the european phase |
Ref document number: 2013733265 Country of ref document: EP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 14411067 Country of ref document: US Ref document number: 2013733265 Country of ref document: EP |
|
NENP | Non-entry into the national phase |
Ref country code: DE |