FR2892576A1 - Systematic error correcting method for e.g. computer memory chip, involves decoding corrected message bit by logical calculation performed from combination of number of control bits lower than total number of bits of control syndrome - Google Patents

Systematic error correcting method for e.g. computer memory chip, involves decoding corrected message bit by logical calculation performed from combination of number of control bits lower than total number of bits of control syndrome Download PDF

Info

Publication number
FR2892576A1
FR2892576A1 FR0510849A FR0510849A FR2892576A1 FR 2892576 A1 FR2892576 A1 FR 2892576A1 FR 0510849 A FR0510849 A FR 0510849A FR 0510849 A FR0510849 A FR 0510849A FR 2892576 A1 FR2892576 A1 FR 2892576A1
Authority
FR
France
Prior art keywords
message
bits
control
word
signature
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.)
Pending
Application number
FR0510849A
Other languages
French (fr)
Inventor
Amir Kazeminejad
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Centre National de la Recherche Scientifique CNRS
Universite Paris Sud Paris 11
Original Assignee
Centre National de la Recherche Scientifique CNRS
Universite Paris Sud Paris 11
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Centre National de la Recherche Scientifique CNRS, Universite Paris Sud Paris 11 filed Critical Centre National de la Recherche Scientifique CNRS
Priority to FR0510849A priority Critical patent/FR2892576A1/en
Publication of FR2892576A1 publication Critical patent/FR2892576A1/en
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/19Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error

Abstract

The method involves decoding a bit of corrected message by a logical calculation performed from a combination of a number of control bits lower than total number of bits of control syndrome and from a combination of three bits of the control syndrome. The syndrome represents a comparison between the values calculated respectively before and after a potential error, of a set of signature bits forming a word or signature syndrome depending on the value of a message word. An independent claim is also included for a device for systematic correction of an error that occurs, within the data bits of a word of message, between an original value and a dubious value of the word of message.

Description

-1- Procédé et dispositif de correction d'erreur dans des circuits-1- Method and device for error correction in circuits

électroniques de traitement de données   electronic data processing

La présente invention concerne un procédé et un dispositif de correction systématique, à partir de bits de signature, d'une erreur pouvant survenir dans les bits de données d'un mot de message au cours d'un traitement à risque tel qu'une mémorisation ou une transmission de données. Elle s'applique plus particulièrement à des signatures de contrôle comprenant des bits de parité obtenus par des opérations de logique binaire. L'invention propose en particulier des modes de contrôle et de décodage des bits de message corrigés, les circuits réalisant ce décodage à partir des bits de parité et les modes d'obtention des combinaisons de ces modes et circuits de contrôle et de décodage.  The present invention relates to a method and a device for systematic correction, from signature bits, of an error that may occur in the data bits of a message word during a risky processing such as a memorization or a data transmission. It applies more particularly to control signatures comprising parity bits obtained by operations of binary logic. The invention proposes, in particular, modes of control and decoding of the corrected message bits, the circuits performing this decoding from the parity bits and the modes of obtaining combinations of these modes and control and decoding circuits.

Le domaine de l'invention est celui des traitements de données numériques et de leur fiabilisation, en particulier pour des données codées de façon binaire, par exemple sous forme électronique ou optique. L'invention peut être mise en oeuvre au sein de dispositifs ou systèmes réalisant un contrôle ou une correction de données par des circuits de logique câblée, c'est à dire comprenant des dispositifs ou formes réalisant toujours le même calcul. Elle peut aussi être mise en oeuvre en utilisant un dispositif de calcul programmable, comme un processeur de calcul ou des circuits reconfigurables. De tels dispositifs peuvent être en particulier des puces de mémoire informatique de différents types, incluant une correction des erreurs pouvant survenir au cours de la mémorisation des données. Il peut s'agir aussi de contrôler ou corriger des données ayant subi un quelconque traitement à risque, par exemple une transmission à distance, ou un passage en environnement hostile tel qu'une zone à interférences électromagnétiques, ou un traitement par un dispositif peu fiable ou devant être contrôlé. Il peut s'agir aussi d'une puce, d'un circuit ou d'un dispositif distinct du traitement à risque, tel qu'un circuit EDAC ( Error Detection and Correction ) recevant les données incertaines en entrée pour fournir des données corrigées en sortie. -2- Le contrôle et correction d'erreur peut se faire sur des données se présentant sous la même forme avant et après le traitement à risque, par exemple lors de l'écriture dans une puce mémoire puis lors de la lecture de cette même puce mémoire. Ces données peuvent aussi être sous des formes différentes mais liées entre elles de façon systématique, par exemple en envoi par une puce électronique et en réception dans un dispositif optique. Les procédés et dispositifs connus actuellement sont basés sur le calcul d'un ou plusieurs bits de parité, à partir des bits d'un message d'origine. Ces bits de parité sont le plus souvent transmis ou traités avec le message d'origine, mais peuvent aussi être conservés ou acheminés de façon différente. Après le traitement à risque, on calcule de la même façon un ou plusieurs bits de parité de contrôle, à partir des bits du message incertain. En comparant les bits de parité initiaux et les bits de parité de contrôle, il est possible de savoir si des erreurs sont survenues au sein des bits de message lors du traitement à risque. Selon le nombre de bits de parité et la façon dont on les combine, il est possible de détecter voire de corriger fane ou plusieurs erreurs. La méthode selon laquelle sont combinés les bits de message pour calculer les bits de parité ou les bits de contrôle et pour calculer un message corrigé est souvent représentée sous la forme d'une matrice de chiffres zéro ou un, appelée matrice de contrôle. Pour un nombre m de bits de message, associé à un nombre p de bits de parité, on parle d'un code de type (m+p, m) . Au sein d'un type donné, on parle d'un code déterminé lorsque l'on dispose d'une matrice de contrôle déterminée permettant de calculer les bits de parité et de contrôle, et possiblement de corriger les bits du message incertain. Lorsque ce code déterminé permet de détecter, ou corriger, systématiquement un nombre déterminé d'erreurs, on dira que ce code est systématique pour la détection, ou respectivement pour la correction, de ce nombre d'erreur. Une méthode appelée ECC (Error Correcting Code) ou EOS est couramment employée dans le domaine des mémoires ou de la -3- transmission de données binaire, lorsque l'on recherche une certaine fiabilité. Cette méthode utilise un code systématique pour la détection et la correction d'une erreur (SEC : Single Error Correction ), au sein d'un message constitué par les différents bits d'un bus de communication ou d'un mot de données transmis ou traité. La taille du message correspondra alors à la largeur du bus ou à la longueur du mot transmis, par exemple 8, 16, 32, ou 64 bits. Le plus souvent, de telles méthodes utilisent un code d'un type appelé code de Hamming , qui est optimisé de façon à utiliser le moins possible de bits de parité pour chaque taille de message. Ce type de code peut être élaboré, par des méthodes connues, pour des messages de différentes longueurs, et présente les caractéristiques suivantes : bits de message code de Hamming bits de parité 4 (7,4) 3 8 (12, 8) 4 16 (21, 16) 5 32 (38, 32) 6 64 (71, 64) 7 128 (136, 128) 8 256 (265, 256) 9 Pour un tel code systématique de détection et correction d'une erreur, les calculs d'encodage de bits de parité ou de contrôle sont souvent représentés par une matrice de contrôle à p lignes et m colonnes. Dans cette matrice, chaque ligne donne la valeur d'un bit de parité en combinant par des opérations logiques XOR (OU exclusif) la valeur de certains bits du messages. En faisant correspondre les positions des bits de message avec les positions dans cette ligne, le bit de parité est la combinaison de tous les bits de messages pour lesquels la position dans cette ligne comporte le chiffre un . En comparant les valeurs correspondantes de tous les bits de parité avant et après le traitement à risque, on obtient un syndrome de contrôle, c'est-à-dire une colonne de bits de contrôle valant un pour chacun des bits de parité ayant une valeur différente entre avant et après le traitement à risque. Au sein de cette matrice de contrôle, chaque colonne est alors combinée avec le syndrome de contrôle puis avec le bit correspondant du -4- message après traitement à risque. Pour chaque colonne, cette combinaison donne alors la valeur d'un bit de message corrigé, dont la position dans le message correspond à la position de la colonne dans la matrice. Dans une correction ECC avec code de Hamming, chaque bit de message corrigé est calculé de la façon suivante : a. En combinant d'abord entre eux les différents bits de contrôle selon les valeurs de la colonne correspondante, donnant un résultat représentant la présence ou non d'une erreur pour ce bit de message. Pour chaque colonne, les bits de contrôle sont combinés de façon à ce que : - si le chiffre dans la matrice est un , c'est la valeur du bit de contrôle qui est utilisée, et - si le chiffre dans la matrice est zéro , c'est l'inverse de la valeur du bit de contrôle qui est utilisée ; b. puis en comparant le résultat de cette combinaison de colonne avec le bit correspondant du message incertain. Un exemple de code de Hamming de type (38, 32) peut être représenté par la rnatric ?. suivante : M1 (38, 32) = 1 1 0 1 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0 0 0 0 0 1 0 1 1 0 1 1 0 0 1 1 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 1 0 0 1 0 1 0 0 0 0 0 1 1 1 0 0 0 1 1 1 1 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 1 1 1 0 0 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 1 Dans le cas de dispositifs de traitement électronique de données, en particulier sous forme de circuits intégrés sur des puces, ces calculs d'encodage ou de décodage peuvent être réalisés selon différentes combinaisons de composants logiques et avec différents types de composants logiques, par exemple des portes logiques à bases de transistors. Pour ce même code de Hamming (38, 32), un exemple d'implantation du circuit de décodage du syndrome de contrôle pour calculer les bits de message corrigés est présenté dans la FIGURE 14 décrite plus loin. Cet exemple utilise, pour chacun des 32 bits de message, une porte NAND6, dont les six entrées sont connectées aux six bits de contrôle. Ces -5- entrées sont connectées soit directement au bit de contrôle lorsque la position correspondant dans la colonne comporte un chiffre un , soit à travers un circuit inverseur lorsqu'il s'agit d'un chiffre zéro . Des coûts techniques selon différents critères apparaissent dans la réalisation d'un dispositif mettant en oeuvre de tels techniques de détection et correction d'erreur. Les codes de Hamming sont optimisés pour minimiser le nombre de bits de parité devant être utilisés et donc le nombre de bits total à mémoriser ou transmettre.  The field of the invention is that of digital data processing and their reliability, in particular for data coded in a binary manner, for example in electronic or optical form. The invention can be implemented within devices or systems carrying out data control or correction by wired logic circuits, that is to say comprising devices or forms always performing the same calculation. It can also be implemented using a programmable computing device, such as a calculation processor or reconfigurable circuits. Such devices may in particular be computer memory chips of different types, including correction of errors that may occur during the storage of data. It may also be to control or correct data having undergone any risky treatment, for example a remote transmission, or a passage in a hostile environment such as a zone with electromagnetic interference, or a treatment by an unreliable device or to be controlled. It may also be a chip, circuit, or device that is separate from the at-risk process, such as an Error Detection and Correction (EDAC) circuit that receives uncertain input data to provide data that is corrected in error. exit. -2- The control and error correction can be done on data in the same form before and after the risky treatment, for example when writing in a memory chip and then when reading this same chip memory. These data can also be in different forms but related to each other in a systematic way, for example by sending by an electronic chip and receiving in an optical device. Currently known methods and devices are based on calculating one or more parity bits from the bits of an original message. These parity bits are most often transmitted or processed with the original message, but can also be stored or routed differently. After the risky processing, one or more control parity bits are calculated in the same way from the bits of the uncertain message. By comparing the initial parity bits and the parity check bits, it is possible to know whether errors have occurred within the message bits during the risk processing. Depending on the number of parity bits and the way in which they are combined, it is possible to detect or even correct one or more errors. The method by which the message bits are combined to compute the parity bits or control bits and to compute a corrected message is often represented as a zero or one digit matrix, referred to as a control matrix. For a number m of message bits, associated with a number p of parity bits, we speak of a code of type (m + p, m). Within a given type, one speaks of a determined code when one has a determined control matrix making it possible to calculate the bits of parity and control, and possibly to correct the bits of the uncertain message. When this determined code makes it possible to detect, or correct, systematically a given number of errors, it will be said that this code is systematic for the detection, or respectively for the correction, of this number of errors. A method called ECC (Error Correcting Code) or EOS is commonly used in the field of memories or binary data transmission, when seeking a certain reliability. This method uses a systematic code for the detection and correction of an error (SEC: Single Error Correction) within a message constituted by the different bits of a communication bus or a data word transmitted or treaty. The size of the message will then correspond to the bus width or the length of the transmitted word, for example 8, 16, 32, or 64 bits. Most often, such methods use a code of a type called a Hamming code, which is optimized to use as few parity bits as possible for each message size. This type of code can be elaborated, by known methods, for messages of different lengths, and has the following characteristics: message bits Hamming code parity bits 4 (7.4) 3 8 (12, 8) 4 16 (21, 16) 5 32 (38, 32) 6 64 (71, 64) 7 128 (136, 128) 8 256 (265, 256) 9 For such a systematic code of detection and correction of an error, the calculations encoding parity or control bits are often represented by a control matrix with p lines and m columns. In this matrix, each line gives the value of a parity bit by combining the logical value XOR (Exclusive OR) with the value of certain bits of the messages. By matching the positions of the message bits with the positions in this line, the parity bit is the combination of all the message bits for which the position in this line has the digit one. By comparing the corresponding values of all the parity bits before and after the risky treatment, a control syndrome is obtained, i.e. a column of control bits equal to one for each of the parity bits having a value. different between before and after the treatment at risk. Within this control matrix, each column is then combined with the control syndrome and then with the corresponding bit of the message after risk treatment. For each column, this combination then gives the value of a corrected message bit whose position in the message corresponds to the position of the column in the matrix. In an ECC correction with Hamming code, each corrected message bit is calculated as follows: a. By first combining the different control bits according to the values of the corresponding column, giving a result representing the presence or absence of an error for this message bit. For each column, the control bits are combined so that: - if the digit in the matrix is one, the value of the control bit is used, and - if the number in the matrix is zero, it is the opposite of the value of the control bit which is used; b. then comparing the result of this column combination with the corresponding bit of the uncertain message. An exemplary Hamming code of type (38, 32) may be represented by the symbol. following: M1 (38, 32) = 1 1 0 1 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0 0 0 0 0 1 0 1 1 0 1 1 0 0 1 1 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 1 0 0 1 0 1 0 0 0 0 0 1 1 1 0 0 0 1 1 1 1 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 1 1 1 0 0 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 1 In the case of electronic data processing devices, in particular in the form of integrated circuits on chips, these encoding or decoding calculations can be carried out according to different combinations of logic components and with different types of logic components, for example logic gates based on transistors. For this same Hamming code (38, 32), an example of implementation of the control syndrome decoding circuit for calculating the corrected message bits is presented in FIGURE 14 described later. This example uses, for each of the 32 message bits, a NAND6 gate, whose six inputs are connected to the six control bits. These inputs are connected either directly to the control bit when the corresponding position in the column has a digit one, or through an inverter circuit when it is a zero digit. Technical costs according to different criteria appear in the realization of a device implementing such error detection and correction techniques. The Hamming codes are optimized to minimize the number of parity bits to be used and thus the total number of bits to be memorized or transmitted.

D'autres types de coûts techniques existent toutefois. Ils peuvent être importants dans la réalisation d'un composant ou d'un dispositif mettant en oeuvre une telle détection et correction d'erreur. Il s'agit en particulier de : - la complexité des circuits ou opérations, par exemple un nombre de composants logiques à créer dans le composant recherché ; la dissipation de puissance, par exemple la chaleur dégagée par ces composants ; et la durée de réalisatioi. ou de propagation, du fait des temr's de réaction de ces composants.  Other types of technical costs exist, however. They can be important in the realization of a component or a device implementing such detection and correction of error. This concerns in particular: the complexity of the circuits or operations, for example a number of logical components to be created in the sought component; the dissipation of power, for example the heat released by these components; and the duration of realization. or propagation, because of the reaction time of these components.

Or ces autres coûts techniques sont à l'origine de contraintes en particulier pour la densité et donc la miniaturisation d'un tel dispositif, son refroidissement, ses performances, sa fiabilité, sa difficulté de réalisation ou son coût économique. Un but de l'invention est de diminuer tout ou partie de ces inconvénients et d'apporter en particulier : - une diminution du nombre de composants ou de connexions ou de lignes de connexion ; - une diminution du temps de propagation ou de calcul ; - une diminution de la puissance dissipée ou consommée ; - une simplification de la conception ou de la fabrication ; - une plus grande souplesse dans le choix des composants utilisés. Par ailleurs, un article dans IEEE Electronics Letters (Vol.37, n 7, 29 mars 2001, pp.438-440), du présent inventeur, propose un code de type -6- (13, 8) optimisé en vitesse de propagation, pour la correction systématique d'une erreur dans un message de 8 bits. Lors d'une conférence The IEEE International Symposium on Defect and Fault Tolerance in VLSI Systems (24-26 octobre 2001, pp.308-313, San Francisco, USA), le présent inventeur et Eric BELHAIRE proposent des codes de types (8, 4) et (41, 32) optimisés en vitesse de propagation, pour la correction systématique d'une erreur dans un message de 4 et respectivement 32 bits. Dans ces documents, ces codes optimisés en propagation sont appelés Ultimate Fast . Cette optimisation est obtenue en construisant les matrices de contrôle qui les déterminent de façon à ce que chacune de leur colonnes ait un poids de Hamming égal au maximum à deux, c'est-à-dire qu'elle ne comporte au maximum que deux fois le chiffre un . Ces enseignements divulguent des codes nécessitant un plus grand nombre de bits de parité que les codes de type Hamming. Pour chaque longueur de message, on dira alors que ces codes présentent une pénalité en nombre de bits de parité, par rapport au nombre de bits de parité iécessaire à un code de Hamming correspondant cette taille Les codes proposés présentent les caractéristiques suivantes : bits de message type de code bits de bits parité pénalité code parité Hamminq /Hamming 4 (8, 4) 4 3 1 Ultimate Fast 8 (13, 8) 5 4 1 Ultimate Fast 32 (41, 32) 9 6 3 Ultimate Fast On voit que ce type de code nécessite de prévoir et d'implanter un nombre de bits de parité plus important que pour des codes de type Hamming. L'augmentation du nombre de bits de parité peut représenter un inconvénient important, entre autres parce qu'il oblige à traiter plus de bits au total, par exemple en mémorisation ou en transmission. De plus, la gestion et l'utilisation de ces bits supplémentaires peuvent aussi aggraver les autres coûts techniques. Un autre but de l'invention est ainsi d'améliorer certains coûts techniques tout en minimisant la pénalité en bits de parité entraînée par 30 rapport aux codes de Hamming. -7- L'invention propose un procédé de correction systématique d'une erreur pouvant survenir au sein des bits de données d'un mot de message, entre une valeur d'origine et une valeur incertaine dudit mot de message, de façon à ce que cette correction d'erreur fournisse une valeur corrigée dudit mot message en réalisant un calcul logique, dit décodage, à partir, d'une part, de la valeur incertaine du mot message et, d'autre part, d'un nombre déterminé de bits de contrôle formant un ensemble dit syndrome de contrôle. Plus précisément, ledit syndrome de contrôle représente une comparaison entre les valeurs calculées respectivement avant et après l'erreur potentielle, d'un ensemble de bits de signature formant un mot ou syndrome de signature dépendant de la valeur du mot message. Pour le décodage des bits de message corrigés, l'invention propose un procédé dans lequel : - d'une part, au moins un bit du message corrigé est décodé par un calcul logique réalisé à partir d'un nombre de bits de contrôle strictement inférieur au nombre total de bits du syndrome de contrôle, et - d'autre part, au moins un bit du message corrigé est décodé par un calcul logique réalisé à partir d'au moins trois bits du syndrome de contrôle.  However, these other technical costs are at the origin of constraints in particular for the density and thus the miniaturization of such a device, its cooling, its performance, its reliability, its difficulty of realization or its economic cost. An object of the invention is to reduce all or part of these disadvantages and to provide in particular: a decrease in the number of components or connections or connection lines; - a decrease in the propagation or calculation time; a decrease in the power dissipated or consumed; - simplification of design or manufacture; - greater flexibility in the choice of components used. Moreover, an article in IEEE Electronics Letters (Vol.37, No. 7, March 29, 2001, pp.438-440), of the present inventor, proposes a code of type -6- (13, 8) optimized in propagation speed. , for the systematic correction of an error in an 8-bit message. In a lecture entitled The IEEE International Symposium on Defect and Fault Tolerance in VLSI Systems (October 24-26, 2001, pp.308-313, San Francisco, USA), the present inventor and Eric BELHAIRE propose type codes (8, 4) and (41, 32) optimized in propagation speed, for the systematic correction of an error in a message of 4 and 32 bits, respectively. In these documents, these codes optimized for propagation are called Ultimate Fast. This optimization is obtained by constructing the control matrices which determine them so that each of their columns has a maximum Hamming weight of two, that is to say that it has a maximum of only twice the number one. These teachings disclose codes requiring a larger number of parity bits than Hamming type codes. For each message length, it will be said that these codes have a penalty in number of parity bits, relative to the number of parity bits necessary to a Hamming code corresponding to this size. The proposed codes have the following characteristics: message bits type of code bit bits parity penalty parity code Hamminq / Hamming 4 (8, 4) 4 3 1 Ultimate Fast 8 (13, 8) 5 4 1 Ultimate Fast 32 (41, 32) 9 6 3 Ultimate Fast We see that this type of code requires planning and implementing a larger number of parity bits than for Hamming type codes. The increase in the number of parity bits may represent a significant drawback, inter alia because it requires processing more bits in total, for example in storage or transmission. In addition, the management and use of these additional bits can also aggravate other technical costs. Another object of the invention is thus to improve certain technical costs while minimizing the penalty in parity bits caused by the Hamming codes. The invention proposes a method of systematic correction of an error that may occur within the data bits of a message word, between an original value and an uncertain value of said message word, so that that this error correction provides a corrected value of said message word by performing a logical calculation, called decoding, starting, on the one hand, from the uncertain value of the message word and, on the other hand, from a determined number of control bits forming a set called control syndrome. More specifically, said control syndrome represents a comparison between the values calculated respectively before and after the potential error, of a set of signature bits forming a word or signature syndrome depending on the value of the message word. For the decoding of the corrected message bits, the invention proposes a method in which: on the one hand, at least one bit of the corrected message is decoded by a logical calculation made from a strictly lower number of control bits; to the total number of bits of the control syndrome, and - on the other hand, at least one bit of the corrected message is decoded by a logical calculation made from at least three bits of the control syndrome.

Plus particulièrement, le procédé selon l'invention utilise un ou plusieurs bits de signature constitués de bits de parité obtenus par un calcul logique de type XOR à partir de combinaisons, dite d'encodage, de bits de message extraits du mot message à signer. Le fait de ne pas utiliser tous les bits de contrôle pour décoder un ou plusieurs bits de message corrigés permet de diminuer le nombre de raccordements entre les circuits portant l'état des bits de contrôles et les circuits logiques calculant ce bit corrigé. Dans ce cadre, le fait d'utiliser plus de deux bits de contrôles permet une meilleure efficacité combinatoire et nécessite ainsi moins de bits de signature ou de parité, par exemple par rapport aux codes Ultimate Fast cités précédemment. La combinaison de décodage de chaque bit de message corrigé peut être représentée sous la forme d'une colonne de matrice où les bits de contrôle utilisés sont représentés par un chiffre un et les bits de contrôle -8- non utilisés par un chiffre zéro, et où chaque ligne de cette colonne représentant toujours le même bit de contrôle d'une colonne à l'autre. Selon l'invention, l'ensemble des combinaisons de décodage du message corrigé forme alors une matrice dite de contrôle, dont les lignes représentent les combinaisons d'encodage de l'ensemble des bits de parité du syndrome de signature. Pour réaliser cet encodage, les positions des chiffres un au sein d'une de ces lignes représentent les positions des bits de message devant être combinés entre eux pour donner le bit de parité correspondant à ladite ligne.  More particularly, the method according to the invention uses one or more signature bits consisting of parity bits obtained by XOR logic calculation from combinations, called encoding, of message bits extracted from the message word to be signed. The fact of not using all the control bits to decode one or more corrected message bits makes it possible to reduce the number of connections between the circuits bearing the state of the control bits and the logic circuits calculating this corrected bit. In this context, the fact of using more than two control bits allows a better combinatorial efficiency and thus requires less signature bits or parity, for example compared to the Ultimate Fast codes mentioned above. The decoding combination of each corrected message bit may be represented as a matrix column where the control bits used are represented by a digit one and the control bits -8- not used by a zero digit, and where each row in this column always represents the same control bit from one column to another. According to the invention, the set of decoding combinations of the corrected message then forms a so-called control matrix, the lines of which represent the encoding combinations of the set of parity bits of the signature syndrome. To perform this encoding, the positions of the digits one within one of these lines represent the positions of the message bits to be combined with each other to give the parity bit corresponding to said line.

Les valeurs des bits de parité avant et après le traitement à risque peuvent aussi être comparées pour détecter d'éventuelles erreurs, lorsque ces bits de parité subissent aussi le traitement à risque. Dans ce cas, la matrice de contrôle se voit adjoindre une matrice identité d'un nombre de lignes et colonnes égal aux nombre de bits de parité. Cet ensemble peut aussi être qualifié de matrice de contrôle , ou matrice de contrôle complète . La matrice de contrôle simple peut aussi être appelée matrice de codage, car elle suffit à déterminer le codage des bits de parité à partir des bits du message. C tte matrice de codage constitue alors une sous-matrice de la matrice complète .  The values of the parity bits before and after the risky processing can also be compared to detect possible errors, when these parity bits also undergo risky processing. In this case, the control matrix is added an identity matrix of a number of rows and columns equal to the number of parity bits. This set can also be called a control matrix, or complete control matrix. The simple control matrix may also be called an encoding matrix because it is sufficient to determine the encoding of the parity bits from the bits of the message. This coding matrix then constitutes a sub-matrix of the complete matrix.

L'invention propose ainsi un procédé de correction utilisant un code dont la matrice de contrôle, parmi les colonnes de bits de message dites colonnes d'informations, présente : - au moins une colonne dont le poids de Hamming est strictement inférieur au nombre de bits de parité ; et au moins une colonne dont le poids de Hamming est strictement supérieur à deux. Cette amélioration est particulièrement efficace en décodant un ou plusieurs bits de message corrigé par un calcul logique réalisé à partir de trois bits de contrôle.  The invention thus proposes a correction method using a code whose control matrix, among the columns of message bits called information columns, presents: at least one column whose Hamming weight is strictly less than the number of bits parity; and at least one column whose Hamming weight is strictly greater than two. This improvement is particularly effective by decoding one or more message bits corrected by a logic calculation made from three control bits.

La matrice de contrôle présente alors une ou plusieurs colonnes d'un poids de Hamming égal à trois. Avantageusement, les combinaisons de décodage des bits du message corrigé sont toutes différentes entre elles et forment une matrice -9- de contrôle dont les colonnes présentent toutes un poids de Hamming inférieur ou égal à trois. Selon l'invention, pour signer un mot message d'une longueur déterminée égale à deux à la puissance n , le nombre de bits de parité utilisés est alors inférieur ou égal à 2n-2 . En particulier, le procédé selon l'invention utilise : - 7 (sept) bits de parité pour corriger un mot message de 32 bits, ou - 9 (neuf) bits de parité pour corriger un mot message de 64 bits, ou - 11 (onze) bits de parité pour corriger un mot message de 128 bits, ou - 13 (treize) bits de parité pour corriger un mot message de 256 bits. Pour ces longueurs de message, le tableau suivant présente, par rapport aux codes de Hamming, les nombres comparés de bits de parité utilisés selon l'invention : bits de type de code bits de bits parité pénalité message parité Hamming /Hamminq 32 (39, 32) 7 6 1 64 (73, 64) 9 7 2 128 (139, 128) 11 8 3 256 (269, 256) 1: 9 4 Par rapport au code Ultimate Fast (41, 32) cité plus haut, on voit 15 que l'invention apporte un gain de deux bits de parité pour un message de 32 bits. Selon un type de mode de réalisation, dit à poids 3, les combinaisons de décodage sont toutes calculées à partir de trois bits de contrôle. Selon un autre type de mode de réalisation, dit à poids 3 et 2, au 20 moins un bit de message corrigé est décodé par un calcul logique réalisé à partir de deux bits de contrôle. Les combinaisons de décodage peuvent alors être représentées en une matrice de contrôle où certaines colonnes ont un poids de Hamming égal à trois, et d'autres colonnes ont un poids de Hamming égal à deux. 25 Plus particulièrement, l'invention propose que l'opération de décodage de chacun des bits de message corrigés s'effectue à partir d'une combinaison de trois ou deux bits de contrôle au sein du syndrome de contrôle. - 10 L'invention propose ainsi un procédé utilisant des combinaisons de décodage à trois bits de contrôle (poids de Hamming à 3), différentes entre elles et en nombre suffisant pour minimiser la pénalité en bits de parité par rapport au code de Hamming. Au delà de ces combinaisons de trois bits de contrôles, les combinaisons de décodage restantes sont établies de manière à être différentes entre elles et à n'utiliser que deux bits de contrôle (poids de Hamming à 2). Pour ces combinaisons restantes, la diminution du nombre de bits de contrôle permet alors de minimiser encore les coûts techniques engendrés par leur calcul, par exemple le nombre de connexions, de lignes de raccordement, ou le nombre d'entrées des composants de calcul. Plus particulièrement, l'invention propose aussi une méthode permettant de construire différents modes de réalisation applicables à une même taille de mot message, ainsi que des modes de réalisation applicables à différentes tailles de mots messages. D'autres particularités et avantages de l'invention ressortiront de la description détaillée d'un mode de mise en oeuvre nullement limitatif, et des dessins annexés sur lesquels : la FIGURE 1 illustre selon l'invention la construction d'une matrice de contrôle avec toutes ses colonnes d'information de poids 3 ; -la FIGURE 2 illustre selon l'invention la construction d'une matrice de contrôle comprenant une sous matrice avec colonnes de poids 3 et une sous matrice avec colonnes de poids 2 ; - la FIGURE 3 illustre selon l'invention la construction d'une matrice de contrôle avec toutes ses colonnes d'information de poids 3, pour la détection de double erreur ; la FIGURE 4 représente trois exemples d'utilisation d'un procédé de correction d'erreur pour corriger un mot message après avoir subi un traitement à risque ; la FIGURE 5 est un schéma du fonctionnement d'un procédé de correction d'erreur au sein d'une puce mémoire ; les FIGURE 6 à FIGURE 9 illustrent l'utilisation de la matrice de contrôle pour différents calculs, dans un procédé de correction d'erreur appliqué à un mot message de 32 bits : - 11 - o en FIGURE 6 : pour le calcul des bits de parité signant le message d'origine ; o en FIGURE 7 : pour le calcul des bits de contrôle du syndrome de contrôle après le traitement à risque ; o en FIGURE 8 : pour le décodage du syndrome de contrôle et la correction des bits du message incertain ; o en FIGURE 9 : pour décoder le message incertain et générer en outre la détection d'erreurs dans le message incertain ; les FIGURE 10 à FIGURE 15 représentent des exemples schématiques de circuits logiques réalisant différentes étapes d'une correction systématique d'erreur simple sur un message de 32 bits : o en FIGURE 10 : circuits logiques d'encodage d'un bit de parité avec un code de Hamming selon l'art antérieur ; o en FIGURE 11 : circuits logiques d'encodage d'un bit de parité 15 par un procédé de correction selon l'invention ; o en FIGURE 12 : circuits logiques de génération du syndrome de contrôle avec un code de Hamming selon l'art antérieur ; o en FIGURE 13 : circuits logiques de génération du syndrome de contrôle par un procédé de correction selon l'invention ; 20 o en FIGURE 14 : circuits logiques de décodage des bits de message corrigé par un code de Hamming selon l'art antérieur ; o en FIGURE 15 : circuits logiques de décodage des bits de message corrigé par un procédé de correction selon l'invention, 25 et représentation sous la forme de colonnes dans la matrice de contrôle.  The control matrix then has one or more columns of a Hamming weight equal to three. Advantageously, the decoding combinations of the bits of the corrected message are all different from each other and form a control matrix whose columns all have a Hamming weight of less than or equal to three. According to the invention, to sign a message word of a given length equal to two to the power n, the number of parity bits used is then less than or equal to 2n-2. In particular, the method according to the invention uses: - 7 (seven) parity bits to correct a 32-bit message word, or - 9 (nine) parity bits to correct a 64-bit message word, or - 11 ( eleven) parity bits to correct a 128-bit message word, or - 13 (thirteen) parity bits to correct a 256-bit message word. For these message lengths, the following table shows, with respect to the Hamming codes, the comparative numbers of parity bits used according to the invention: bits of bit code type bits parity message penalty Hammin / Hamminq parity 32 (39, 32) 7 6 1 64 (73, 64) 9 7 2 128 (139, 128) 11 8 3 256 (269, 256) 1: 9 4 Compared with the Ultimate Fast code (41, 32) cited above, we see That the invention provides a gain of two parity bits for a 32-bit message. According to one type of embodiment, said to weight 3, the decoding combinations are all calculated from three control bits. According to another type of embodiment, said weight 3 and 2, at least one corrected message bit is decoded by a logic calculation made from two control bits. The decoding combinations can then be represented in a control matrix where some columns have a Hamming weight equal to three, and other columns have a Hamming weight of two. More particularly, the invention proposes that the decoding operation of each of the corrected message bits is performed from a combination of three or two control bits within the control syndrome. The invention thus proposes a method using decoder combinations with three control bits (Hamming weight at 3), different from each other and in sufficient number to minimize the penalty in parity bits with respect to the Hamming code. Beyond these combinations of three control bits, the remaining decoding combinations are set to be different from each other and to use only two control bits (Hamming weight at 2). For these remaining combinations, the reduction in the number of control bits then makes it possible to further minimize the technical costs generated by their calculation, for example the number of connections, connection lines, or the number of inputs of the calculation components. More particularly, the invention also proposes a method for constructing different embodiments applicable to the same message word size, as well as embodiments applicable to different sizes of message words. Other features and advantages of the invention will emerge from the detailed description of an embodiment which is in no way limitative, and the attached drawings in which: FIG. 1 illustrates, according to the invention, the construction of a control matrix with all of its weight information columns 3; FIG. 2 illustrates, according to the invention, the construction of a control matrix comprising a sub-matrix with columns of weight 3 and a sub-matrix with columns of weight 2; FIG. 3 illustrates, according to the invention, the construction of a control matrix with all its information columns of weight 3, for the detection of double error; FIGURE 4 illustrates three examples of using an error correction method to correct a message word after undergoing risky processing; FIGURE 5 is a diagram of the operation of an error correction method within a memory chip; FIG. 6 to FIG. 9 illustrates the use of the control matrix for different calculations, in an error correction method applied to a 32-bit message word: FIG. 6: for the calculation of the parity signing the original message; o in FIGURE 7: for the calculation of control syndrome control bits after the risk treatment; o in FIGURE 8: for the decoding of the syndrome of control and the correction of the bits of the uncertain message; o in FIGURE 9: to decode the uncertain message and further generate the detection of errors in the uncertain message; FIG. 10 to FIG. 15 represent schematic examples of logic circuits carrying out different steps of a simple error systematic correction on a 32-bit message: FIG. 10: logic circuits for encoding a parity bit with a Hamming code according to the prior art; FIG. 11: logic circuits for encoding a parity bit by a correction method according to the invention; in FIG. 12: logic circuits for generating the control syndrome with a Hamming code according to the prior art; in FIG. 13: logic circuits for generating the control syndrome by a correction method according to the invention; FIG. 14: logic circuits for decoding message bits corrected by a Hamming code according to the prior art; in FIG. 15: logic circuits for decoding message bits corrected by a correction method according to the invention, and representation in the form of columns in the control matrix.

Pour chaque taille de mot message, les différents modes de réalisation sont définis par les combinaisons d'encodage et de décodage, qui 30 peuvent être représentés la matrice de contrôle. La FIGURE 1 présente l'obtention d'un mode de réalisation à poids 3, en remplissant sa matrice de codage par une succession de colonnes toutes différentes et d'un poids de Hamming valant toujours trois. - 12 - Cette matrice de codage présente un nombre p de lignes, où p est le nombre de bits de parité, et un nombre m de colonnes, où m est le nombre de bits du mot message à traiter. La matrice de contrôle complète de ce mode de réalisation est alors obtenue à partir de cette matrice de codage en lui accolant simplement une matrice identité à p lignes et p colonnes, c'est à dire avec uniquement la première diagonale remplie de chiffres un . Dans un mode de réalisation de type poids 3 et 2, l'invention propose aussi une méthode de construction des combinaisons de décodages, qui peuvent alors être représentées sous la forme d'une matrice de contrôle comprenant : - d'une part un premier groupe de colonnes présentant un poids de Hamming égal ou supérieur à trois, ce premier groupe étant constitué de la totalité des différentes combinaisons de décodage possibles présentant un chiffre zéro dans une même position, et - d'autre part un deuxième groupe de colonnes présentant un poids de Hamming égal à deux, ce deuxième groupe de colonnes étant constitué de combinaisons de décodages différentes entre elles et présentant chacune un chiffre un à ladite position.  For each message word size, the different embodiments are defined by the encoding and decoding combinations, which may be represented by the control matrix. FIG. 1 shows obtaining an embodiment with a weight of 3, by filling its coding matrix with a succession of all different columns and a Hamming weight always equal to three. This coding matrix has a number p of lines, where p is the number of parity bits, and a number m of columns, where m is the number of bits of the message word to be processed. The complete control matrix of this embodiment is then obtained from this coding matrix by simply attaching to it an identity matrix with p lines and p columns, ie with only the first diagonal filled with one digits. In one embodiment of weight type 3 and 2, the invention also proposes a method for constructing combinations of decodings, which can then be represented in the form of a control matrix comprising: on the one hand a first group of columns having a Hamming weight equal to or greater than three, this first group consisting of all the different possible decoding combinations having a zero digit in the same position, and - secondly a second group of columns having a weight Hamming equal to two, this second group of columns consisting of combinations of decodings different from each other and each having a digit one to said position.

Il est à noter que les positions des colonnes de ces premier et deuxième groupes de colonnes sont parfaitement interchangeables entre elles. Les différentes colonnes peuvent en effet être intercalées ou interverties entre elles sans sortir de l'esprit de l'invention. Plus particulièrement, le nombre des bits de message corrigé qui sont décodés à partir de trois bits de contrôle vaut au moins C[p-1,3], c'est à dire le nombre possible de combinaison de 3 éléments pris au sein de (p-1). soit : fact(p-1)/[fact(3)xfact(p-1-3)] soit (p-1)x(p-2)x(p-3)/6 où p est le nombre de bits de parité.  It should be noted that the positions of the columns of these first and second groups of columns are perfectly interchangeable with each other. The different columns can indeed be inserted or interchanged between them without departing from the spirit of the invention. More particularly, the number of corrected message bits that are decoded from three control bits is at least C [p-1.3], that is to say the possible number of combinations of 3 elements taken within ( p-1). either: fact (p-1) / [fact (3) xfact (p-1-3)] or (p-1) x (p-2) x (p-3) / 6 where p is the number of bits of parity.

Avantageusement, le nombre de colonnes avec un poids de Hamming de 3 sera exactement égal à C[p-1, 3]. Ainsi qu'illustré en FIGURE 2, la matrice de codage est constituée de deux sous matrices MS3 et MS2, ici représentées accolées mais dont les colonnes peuvent aussi être intercalées entre elles. La première sous- - 13 - matrice MS3 comprend des colonnes S1 à Sa qui sont toutes d'un poids de Hamming valant 3, et la deuxième sous matrice MS2 comprend des colonnes Sa+1 à Sm, qui sont d'un poids de Hamming valant 2. Cette première sous matrice MS3 est construite en choisissant systématiquement la valeur zéro pour toutes les positions bpl à bpa de l'une de ses lignes, par exemple la ligne numérotée Lp . Les autres lignes L1 à Lp-1 de cette première sous matrice MS3 sont alors remplies avec des combinaisons toutes différentes comprenant chacune exactement trois positions à la valeur un et toutes les autres à la valeur zéro, donnant ainsi un poids de Hamming PH égal à 3. La deuxième sous matrice MS2 est construite en choisissant systématiquement la valeur un pour toutes les positions bpa+1 à bpm de sa ligne correspondant à la ligne de valeur un de la première sous matrice MS3, ici la ligne Lp. Les autres lignes L1 à Lp-1 de cette deuxième sous matrice MS2 sont alors remplies avec des combinaisons toutes différentes comprenant chacune exactement une position à la valeur un et toutes les autres à la valeur zéro, donnant ainsi un poids dr Hamming PH égal à 2. On voit que l'invention permet ainsi d'obtenir des modes de réalisation représentés par différentes matrices de contrôle, autre que les exemples chiffrés cités ci-dessus du point de vue des combinaisons utilisées, et présentant tout ou partie des avantages énoncés ici en terme de coûts techniques. Dans un mode de réalisation illustré en FIGURE 3, le procédé selon l'invention utilise en outre un bit de parité supplémentaire pour détecter la survenue d'une deuxième erreur entre le mot incertain et le mot d'origine. La matrice de contrôle correspondant comprend alors, pour ledit bit de parité supplémentaire, une ligne composée entièrement de chiffres un. L'invention permet ainsi de réaliser une correction simple erreur associée à une détection d'erreur double, c'est à dire de type SEC/DED (Single Error Correction Double Error Detection), bénéficiant de tout ou partie des avantages énoncés pour la correction d'erreur simple (SEC). Pour un mot message de 16 bits, un mode de réalisation de l'invention propose un procédé et un dispositif dans lequel les combinaisons - 14 -  Advantageously, the number of columns with a Hamming weight of 3 will be exactly equal to C [p-1, 3]. As illustrated in FIG. 2, the coding matrix consists of two sub-matrices MS3 and MS2, here represented contiguous but whose columns can also be interposed with each other. The first sub-matrix MS3 comprises columns S1 to Sa which are all of a Hamming weight of 3, and the second sub-matrix MS2 comprises columns Sa + 1 to Sm, which are of a Hamming weight. 2. This first sub-matrix MS3 is constructed by systematically choosing the value zero for all the positions bpl to bpa of one of its lines, for example the line numbered Lp. The other lines L1 to Lp-1 of this first sub-matrix MS3 are then filled with all different combinations, each having exactly three positions at the value one and all the others at the value zero, thus giving a Hamming weight PH equal to 3. The second sub-matrix MS2 is constructed by systematically choosing the value one for all the positions bpa + 1 to bpm of its line corresponding to the value line one of the first sub-matrix MS3, here the line Lp. The other lines L1 to Lp-1 of this second sub-matrix MS2 are then filled with all-different combinations each comprising exactly one position at the value one and all the others at the value zero, thus giving a weight dr Hamming PH equal to 2 It can be seen that the invention thus makes it possible to obtain embodiments represented by different control matrices, other than the numerical examples cited above from the point of view of the combinations used, and having all or some of the advantages stated here in term of technical costs. In an embodiment illustrated in FIG. 3, the method according to the invention also uses an additional parity bit to detect the occurrence of a second error between the uncertain word and the original word. The corresponding control matrix then comprises, for said additional parity bit, a line composed entirely of digits one. The invention thus makes it possible to carry out a simple error correction associated with a double error detection, ie of the SEC / DED type (Single Error Correction Double Error Detection), benefiting from all or part of the advantages stated for the correction. simple error (SEC). For a 16-bit message word, an embodiment of the invention proposes a method and a device in which the combinations

de décodage de l'ensemble des bits de message corrigés peuvent s'écrire, directement ou en intervertissant les colonnes entre elles, sous la forme de la matrice de contrôle complète suivante : /1110110100110100100000 1101101010101010010000 1011011001011001001000 0111000111000111000100 0000111111000000000010 M3 (22, 16) _ `00000000001111 11000001 / Pour un mot message de 32 bits, un mode de réalisation de l'invention propose un procédé et un dispositif dans lequel les combinaisons de décodage de l'ensemble des bits de message corrigés peuvent s'écrire, directement ou en intervertissant les colonnes entre elles, sous la forme de la matrice de contrôle complète suivante : M4 (39, 32) = 111011010011010010001IO1001000101000000 110110101010101001001010100100010100000 101101100101100100100110010010000010000 011100011100011100010001110001000001000000011111100000011110000001111000000100 000000000011111111110000000000110000010 000000000000000000001111111111110000001 Pour un mot message de 64 bits, un mode de réalisation de l'invention propose un procédé et un dispositif dans lequel les combinaisons de décodage de l'ensemble des bits de message corrigés peuvent s'écrire, directement ou en intervertissant les colonnes entre elles, sous la forme de  for decoding all the corrected message bits can be written, directly or by interchanging the columns together, in the form of the following complete control matrix: / 1110110100110100100000 1101101010101010010000 1011011001011001001000 0111000111000111000100 0000111111000000000010 M3 (22, 16) _ ` 00000000001111 11000001 / For a 32-bit message word, an embodiment of the invention proposes a method and a device in which the decoding combinations of all the corrected message bits can be written, directly or by inverting the columns therebetween, in the form of the next full check matrix M4 (39, 32) = 111011010011010010001IO1001000101000000 110110101010101001001010100100010100000 101101100101100100100110010010000010000 011100011100011100010001110001000001000000011111100000011110000001111000000100 000000000011111111110000000000110000010 000000000000000000001111111111110000001 for a word mess A 64-bit embodiment of the invention proposes a method and a device in which the decoding combinations of the set of corrected message bits can be written directly or by inverting the columns together. made of

15 la matrice de contrôle complète suivante :  15 the following complete control matrix:

1110110100110100100011010010001000011010010001000010000010000000100000000 1101101010101010010010101001000100010101001000100001000001000000010000000 1011011001011001001001100100100010001100100100010000100000100000001000000 o 11100011100011100010001110001000100001 1100010001000010000010000000100000 M5= 0000111111000000111100000011110000100000011110000100001000001000000010000 0000000000111111111100000000001111100000000001111100000100000100000001000 00000000000000000000I11111111111111000000000000000I1111100000010000000100 0000000000000000000000000000000000011111111111111111111100000001000000010 000000000000000000000000000000000000000000000000000000001111111100000000! Pour un mot message de 128 bits, un mode de réalisation de l'invention propose un procédé et un dispositif dans lequel les combinaisons de décodage de l'ensemble des bits de message corrigés peuvent s'écrire,  1110110100110100100011010010001000011010010001000010000010000000100000000 1101101010101010010010101001000100010101001000100001000001000000010000000 1011011001011001001001100100100010001100100100010000100000100000001000000 o 11100011100011100010001110001000100001 1100010001000010000010000000100000 M5 = 0000111111000000111100000011110000100000011110000100001000001000000010000 0000000000111111111100000000001111100000000001111100000100000100000001000 00000000000000000000I11111111111111000000000000000I1111100000010000000100 0000000000000000000000000000000000011111111111111111111100000001000000010 000000000000000000000000000000000000000000000000000000001111111100000000! For a 128-bit message word, an embodiment of the invention proposes a method and a device in which the decoding combinations of all the corrected message bits can be written,

20 directement ou en intervertissant les colonnes entre elles, sous la forme de la matrice de contrôle complète suivante : M6 (139, 128) = M4=10 -15-III011010011(11111110111111010010001011(10110110)10 (1010001I11100001101001000I0000100000100000011010010001000010000011, 0110001011000101100000011,00(10000000' 110110101010l010010u10101001o001on0101oloolu11o1u 00olo0001010l001001110000l00000l00000 10l01001110010000100(1001000000l000001000o000001000000000 1011011(10111110010010o11uu100lu001 (1nolloolouluuolu000la000lloolonlouoloaooloouoolu0000lluoluol000l0000l0000 0l000000l0u000l000000000lo00o00(10 0111000111oo011I(100l(l0011I0o01o001o(1u011l000l000l0 0 0 0 1 0 1111111II I l0001oo1111/0001u0u0o100000(11110ool0001u01,0I000o0I1100o0111111101, 01011001100(111111110110110 o00ullllll00110001111000000IIil0000100I010111100oo1oouol000000011110000100 001000001000000001111000o1000u1o00o0100000010000010000000001000000 uu00000000111111111loon0000000l1111u000u(0oo1llIllo000010000 (o0uoollllluouoo1000(11000000 l0000ll11100ouoI000001000000louoo0lo00000000louo0o oo0(0000000000000000lI 111111111111l000000o000oo0o01IIIIIO (1ouoo00000u000111111oou000l0000o000o00oou01111110000u01uo0oo0u00000100ou0 000010u0o 11110000011000000000000000000000o00u0011111111111111111111100oo00000000u00 000000111111100000000000000oo0oouo111111t0o0un00oo000010000000001000 000000000uoo0oo00000000000000O000000O0000000000000000000lllllll1111IIIIIII IIIIIIIIII000uoo0001100000000000000000011111100u0uu00100o000000100 000000000000000000000000000000000000000000000000000000000000000ou00000 (1000000(100000011111111111111111111111111111111110000000001o0000000010 0000000000000000000000000000000000000o00oouut10000000000001100000000110000 0000000000110011000000000000000000000000000000000111111111 I00000000001, Pour un mot message de 256 bits, un mode de réalisation de l'invention propose un procédé et un dispositif dans lequel les combinaisons de décodage de l'ensemble des bits de message corrigés peuvent s'écrire, directement ou en intervertissant les colonnes entre elles, sous la forme de la matrice de contrôle complète suivante : M7 (269, 256) =  20 directly or by interchanging the columns together, in the form of the following complete control matrix: M6 (139, 128) = M4 = 10 -15-III011010011 (11111110111111010010001011 (10110110) 10 (1010001I11100001101001000I0000100000100000011010010001000010000011, 0110001011000101100000011.00 (10000000 ' 110110101010l010010u10101001o001on0101oloolu11o1u 00olo0001010l001001110000l00000l00000 10l01001110010000100 (1001000000l000001000o000001000000000 1,011,011 (10111110010010o11uu100lu001 (1nolloolouluuolu000la000lloolonlouoloaooloouoolu0000lluoluol000l0000l0000 0l000000l0u000l000000000lo00o00 (10 0111000111oo011I (100l (l0011I0o01o001o (1u011l000l000l0 0 0 0 1 0 I 1111111II l0001oo1111 / 0001u0u0o100000 (11110ool0001u01,0I000o0I1100o0111111101, 01,011,001,100 (111,111,110,110,110 o00ullllll00110001111000000IIil0000100I010111100oo1oouol000000011110000100 001000001000000001111000o1000u1o00o0100000010000010000000001000000 uu00000000111111111loon0000000l1111u000u (0oo1llIllo000010000 (o0uoollllluouoo1000 ( 11000000 l0000ll11100ouoI000001000000louoo0lo00000000louo0o oo0 (0000000000000000lI 111111111111l000000o000oo0o01IIIIIO (1ouoo00000u000111111oou000l0000o000o00oou01111110000u01uo0oo0u00000100ou0 000010u0o 11110000011000000000000000000000o00u0011111111111111111111100oo00000000u00 000000111111100000000000000oo0oouo111111t0o0un00oo000010000000001000 000000000uoo0oo00000000000000O000000O0000000000000000000lllllll1111IIIIIII IIIIIIIIII000uoo0001100000000000000000011111100u0uu00100o000000100 000000000000000000000000000000000000000000000000000000000000000ou00000 (1000000 (100000011111111111111111111111111111111110000000001o0000000010 0000000000000000000000000000000000000o00oouut10000000000001100000000110000 0000000000110011000000000000000000000000000000000111111111 I00000000001, For a 256 bit message word, one embodiment of the invention provides a method and a device in which combinations of decoding of the set of corrected message bits can be written, say or by swapping the columns together, in the form of the following complete control matrix: M7 (269, 256) =

11110110100.11ol00lo001101uo10ool0000 Ilol001000100001000001101ool000 100o010000010000001101001000l0000l0000010000o0100U00o011U10o1000100001 Ilollol0l0. 101010010010101001000100olololo010ool0000100001010100100010000100000100000 101010010001.0000l00000l000000l000000tololool000l0000 10110 110010110010010011001011(00010001100100111001000010000 11001001000100001000001000001)001001000100001 000001000000100000011001001000(000 01110001110001110001000111000100010000111000100.01000010 (100011100111000100001000001000000111000100010000100000100000010000000. 1110001000100 000011111100000011110000001111 10000001111000010000100000001111000010000100000100000000111100001000U10000 01000000100000U000(111000010 00000000001 11111111 10000'00001111100000000001111100000l00000000oot 111100000100000100011000000011I110000010000010000001000000000000111110 00000000000000000000111111111111111000000000000000111111000000000000000111 1110000001000000000000000111111000000100000010000000000000000I 000000000000000000000000000"" U 111111111111111111111000000000000000000000) 1111110000000000000000000001111i11000000010000000000000000 000000000000000000000011000 0000000000000000011001111III(1(11111III111 (11I1110000000000000000000000000000111111110000000000000000 0000000000000000000000000 000000000000000001,0000000000,,0000000000000000000111111111 11111111 11111111111111111110000000000000000 00000000000000000000000o 10000000000000000000000000000000000000000000000000000000000000000000000000 0000000000I1111111.11111111 '00000000000000000000000001 10000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000 0,000000000000000000000 10000000000000000000000000000000000001100000000000000000000000000000000000 000000000000000000000000000 000001110000010000000100000(1001 (0100100010000100000100000010000110010100000010000000001101001000100001000 00I000000100000001000000000000' 10000010000001000000010000000101010010001000010000010000(0 (00000001000000001000000001010100101(01000 (11110000100000010000000100000000000 010000010000001000000011000010110010010001000010000010000001000000010(1001 (01010 000(10001101)100100010000101(000(00(0001000000010000(00000 00100000100000010000000101001000011110111000100001000001000000100000001000 0000010000000001 110001000100001000001000000100000001000000000 000100000111000001000000110000'' inIII100(101(1000100000,00(100010000000(000(1(0001000000(000011( (000010000100000100Gp00(0000000100000000 00001(10000100100010000(0 II 1000. 00 10001 11111000001000001000000100011000100000000100000000000000111110000010000010 00000l000000010000000 1111100000010000 010 001100011111100000110000001000000010('0000(0)01 (0'000000000000001111110000001000000100000001000000 1000000010000000100000000100 1000000000000000000001111111000000010000000100000 101 01100000](0000000000011111111000000001000011000) 0000000000000000000000000000011111I110000000010000 .00^u00,00110p 0)0000' 0000000 III1111111100001100010000000000000000000100000000000000000000000001000 0110000000000000000000001(000000000011(1(1 (1110000000000100000000000000000000000000000000000100 111111111111 111111111111)1)1)1(1111 I11111111110000000000000000000000000000000000000000000000010 000'0] l000o00o000000000000000000oo0ouoo, 0000011111111111111111111111111i1111IIIII00000000000011 ME-000001111111000000010.1 00000000000011111) 11000 000000000u00o uoOo00011I111I11'' 11111111111111111111111111111 000000000000000000000000000, III 0000000000000000000000000, oväoo' L'invention propose de mettre en oeuvre ce procédé pour la détection et la correction d'erreurs pouvant survenir lors d'un traitement d'un mot message d'entrée, au sein d'au moins un dispositif, dit à risque, de traitement ou de mémorisation ou de transmission de données numériques fournissant un mot message de sortie correspondant au mot message d'entrée. Le procédé comprend alors en outre les étapes suivantes : calcul, à partir d'un mot message d'entrée, d'une combinaison de bits de parité formant une signature d'entrée ; - entrée dans le dispositif à risque, de façon associée, du mot message 20 écrit et de la signature d'entrée ; - restitution en sortie du dispositif à risque, de façon associée, d'un mot message restitué issu du mot message d'entrée et d'une signature restituée issue de la signature d'entrée ; - calcul, à partir du mot message restitué, d'une combinaison de bits 25 de parité formant une signature de contrôle ; puis -16- calcul, à partir du mot message restitué et d'une comparaison entre la signature restituée et la signature de contrôle, d'un mot message corrigé constituant un mot message de sortie et correspondant au mot d'entrée tel qu'il avait été pris en compte.  11110110100.11ol00lo001101uo10ool0000 Ilol001000100001000001101ool000 100o010000010000001101001000l0000l0000010000o0100U00o011U10o1000100001 Ilollol0l0. 101010010010101001000100olololo010ool0000100001010100100010000100000100000 101010010001.0000l00000l000000l000000tololool000l0000 10110 110010110010010011001011 (00010001100100111001000010000 11001001000100001000001000001) 001001000100001 000001000000100000011001001000 (000 01110001110001110001000111000100010000111000100.01000010 (100011100111000100001000001000000111000100010000100000100000010000000. 1110001000100 000011111100000011110000001111 10000001111000010000100000001111000010000100000100000000111100001000U10000 01000000100000U000 (111,000,010 00,000,000,001 11111111 10000'00001111100000000001111100000l00000000oot 111100000100000100011000000011I110000010000010000001000000000000111110 00000000000000000000111111111111111000000000000000111111000000000000000111 1110000001000000000000000111111000000100000010000000000000000I 000000000000000000000000000 "" U 111111111111111111111000000000000000000000) 1111110000000000000000000001111i11000000010000000000000000 000000000000000000000011000 0000000000 000000011001111III (1 (11111III111 (11I1110000000000000000000000000000111111110000000000000000 0000000000000000000000000 000000000000000001.0000000000,, 0000000000000000000111111111 11111111 11111111111111111110000000000000000 00000000000000000000000o 10000000000000000000000000000000000000000000000000000000000000000000000000 0000000000I1111111.11111111 '00000000000000000000000001 10000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000 0.000000000000000000000 10000000000000000000000000000000000001100000000000000000000000000000000000 000000000000000000000000000 000001110000010000000100000 (1001 (0100100010000100000100000010000110010100000010000000001101001000100001000 00I000000100000001000000000000' 10000010000001000000010000000101010010001000010000010000 (0 (00000001000000001000000001010100101 (01000 (11110000100000010000000100000000000 010000010000001000000011000010110010010001000010000010000001000000010 (1001 ( 01010 000 (10001101) 100100010000101 (0 00 (00 (0001000000010000 (00000 00100000100000010000000101001000011110111000100001000001000000100000001000 0000010000000001 110001000100001000001000000100000001000000000 000100000111000001000000110000 '' inIII100 (101 (1000100000.00 (100010000000 (000 (1 (0001000000 (000011 ((000010000100000100Gp00 (0000000100000000 00001 (10000100100010000 (0 II 1,000 00 10 001 11111000001000001000000100011000100000000100000000000000111110000010000010 00000l000000010000000 1111100000010000 010 001100011111100000110000001000000010 (0000 (0) 01 (0'000000000000001111110000001000000100000001000000 1000000000000000000001111111000000010000000100000 101 1000000010000000100000000100 01100000] (0000000000011111111000000001000011000) 0000000000000000000000000000011111I110000000010000 .00 ^ u00,00110p 0) 0000 0000000 III1111111100001100010000000000000000000100000000000000000000000001000 0110000000000000000000001 (000000000011 (1 (1 (1110000000000100000000000000000000000000000000000100 111111111111 111111111111) 1) 1) 1 ( 1111 I111111111100 00000000000000000000000000000000000000000000010 000'0] l000o00o000000000000000000oo0ouoo, 0000011111111111111111111111111i1111IIIII00000000000011 ME-000001111111000000010.1 00000000000011111) 11000 000000000u00o uoOo00011I111I11 '' 000000000000000000000000000 11111111111111111111111111111, III 0000000000000000000000000, oväoo The invention proposes to implement this method for detecting and correcting errors that may occur during a processing of an input message word, within at least one device, said to risk, processing or storing or transmitting digital data providing an output message word corresponding to the input message word. The method then further comprises the steps of: calculating, from an input message word, a combination of parity bits forming an input signature; input to the risk device, in associated manner, of the word written message and the input signature; - Output output of the device at risk, associated manner, a message word returned from the input message word and a restituted signature resulting from the input signature; calculating, from the restored message word, a combination of parity bits forming a control signature; then calculating, from the word restored message and a comparison between the returned signature and the control signature, a corrected message word constituting a message output message and corresponding to the input word as it had been taken into account.

Dans le même esprit, l'invention propose aussi un dispositif de correction systématique d'une erreur pouvant survenir, au sein des bits de données d'un mot de message, entre une valeur d'origine et une valeur incertaine dudit mot message, ce dispositif de correction d'erreur fournissant une valeur corrigée dudit mot message en réalisant un calcul logique, dit décodage, à partir, d'une part, de la valeur incertaine du mot de message et, d'autre part, d'un nombre déterminé de bits de contrôle formant un ensemble dit syndrome de contrôle, ledit syndrome de contrôle représentant une comparaison entre les valeurs, calculées avant et après l'erreur potentielle, d'un ensemble de bits de signature formant un syndrome de signature dépendant de la valeur du mot message, caractérisé en ce qu'il comprend d'une part, des moyens de décodage dont les entrées sont connectées à un nombre strictement inférieur au nombre de bits du syndrome de contrôle, pour décoder au moins un bit du message corrigé, et d'autre part, des moyens de décodage dont les entrées sont connectées à au moins trois bits du syndrome de contrôle, pour décoder au moins un bit du message corrigé. Plus particulièrement, les moyens de décodage peuvent être agencés de sorte qu'au moins un bit de message corrigé est décodé par un circuit logique de décodage dont les entrées sont connectées à exactement 3 bits de contrôle. Par ailleurs, le fait de décoder les bits de message corrigé à partir de peu de bits de contrôle permet une plus grande souplesse dans le choix des composants logiques utilisés pour réaliser le dispositif de décodage. En effet les différentes technologies de circuits logiques ne permettent pas toujours de réaliser les mêmes types de composants logiques. Par exemple, les portes NAND6, c'est à dire réalisant un ET logique sur 6 entrées suivi d'une fonction NON ou inverseur, ne sont actuellement pas réalisables en technologie CMOS. - 17 - Or les portes NAND6 sont typiquement utilisées pour réaliser le plus simplement possible le décodage d'un message corrigé de 32 bits à partir d'un syndrome de contrôle à six bits de parité, ainsi qu'illustré en FIGURE 14 Pour réaliser un décodage sur 6 bits de contrôle CMOS, on utilise alors des portes NOR6 qui sont beaucoup plus lentes que les portes NOR. Pour réaliser un décodage sur 6 bits de contrôle en technologie CMOS selon l'art antérieur, on est alors obligé de réaliser des circuits équivalents, qui sont souvent plus complexes, par exemple à partir de plusieurs portes NOR ( ou inclusif avec inverseur), ou beaucoup plus lents par exemple à partir d'une porte NOR6 (NOR à six entrées). L'invention propose ainsi un dispositif dans lequel les moyens de décodage sont agencés de sorte qu'au moins un bit de message corrigé est décodé par un circuit logique de décodage comprenant une porte logique de type AND ou NAND dont les entrées dépendent de l'état des différents bits de contrôle utilisés pour le décodage dudit bit de message corrigé. Un tel dispositif permet de se passer de portes NAND6, et d'utiliser par exemple des NAND3, ce qui peut permettre d'utiliser une technologie CMOS. Dans le cas d'utilisation de portes de type NOR, il est aussi possible de diminuer la complexité en utilisant des NOR3 ou des NOR en nombre plus réduit qu'avec l'art antérieur. L'invention permet en particulier de réaliser un dispositif dont les moyens de décodage sont agencés de sorte qu'au moins un bit de message corrigé est décodé par un circuit logique de décodage comprenant une porte logique de type AND ou NAND ou OR ou NOR et dont les entrées sont connectées de façon à recevoir l'état de tous les bits de contrôle utilisés pour le décodage dudit bit de message corrigé. Il est ainsi possible de se passer de certains circuits inverseurs actuellement utilisés pour le décodage du message corrigé, comme détaillé plus loin.  In the same spirit, the invention also proposes a device for systematically correcting an error that may occur, within the data bits of a message word, between an original value and an uncertain value of said message word. error correction device providing a corrected value of said message word by performing a logic calculation, called decoding, from, on the one hand, the uncertain value of the message word and, on the other hand, a determined number control bits forming a so-called control syndrome set, said control syndrome representing a comparison between the values, calculated before and after the potential error, of a set of signature bits forming a signature syndrome depending on the value of the control. message word, characterized in that it comprises, on the one hand, decoding means whose inputs are connected to a number strictly smaller than the number of bits of the control syndrome, for decoding at least one b it of the corrected message, and secondly, decoding means whose inputs are connected to at least three bits of the control syndrome, for decoding at least one bit of the corrected message. More particularly, the decoding means may be arranged such that at least one corrected message bit is decoded by a decoding logic circuit whose inputs are connected to exactly 3 control bits. Furthermore, decoding the corrected message bits from a few control bits allows greater flexibility in the choice of logic components used to realize the decoding device. Indeed, the different logic circuit technologies do not always make it possible to produce the same types of logic components. For example, the NAND6 gates, that is to say carrying out a logic AND on 6 inputs followed by a NO or inverter function, are not currently feasible in CMOS technology. However, the NAND6 gates are typically used to achieve the simplest possible decoding of a 32-bit corrected message from a six-bit parity control syndrome, as illustrated in FIG. 6-bit CMOS control decoding, NOR6 gates are used which are much slower than the NOR gates. To achieve a decoding on 6 control bits in CMOS technology according to the prior art, it is then necessary to make equivalent circuits, which are often more complex, for example from several NOR gates (or inclusive with inverter), or much slower for example from a NOR6 gate (NOR with six inputs). The invention thus proposes a device in which the decoding means are arranged such that at least one corrected message bit is decoded by a decoding logic circuit comprising a logic gate of the AND or NAND type whose inputs depend on the state of the different control bits used for the decoding of said corrected message bit. Such a device makes it possible to dispense with NAND6 gates, and to use, for example, NAND3s, which can make it possible to use a CMOS technology. In the case of using doors of NOR type, it is also possible to reduce the complexity by using NOR3 or NOR in a smaller number than with the prior art. The invention makes it possible in particular to provide a device whose decoding means are arranged so that at least one corrected message bit is decoded by a decoding logic circuit comprising a logic gate of the AND or NAND type or OR or NOR and whose inputs are connected to receive the status of all the control bits used for decoding said corrected message bit. It is thus possible to dispense with certain inverter circuits currently used for decoding the corrected message, as detailed below.

Dans un mode de réalisation, le dispositif est agencé pour recevoir des données d'entrée sous la forme d'un mot message écrit et fournir, sous la forme d'un mot message lu, des données de sortie correspondant aux - 18 -données d'entrée. Ce dispositif réalise une mémorisation avec correction d'erreur et comprend : - des premiers moyens de codage agencés pour calculer, à partir d'un mot message écrit, une combinaison de bits de parité formant une 5 signature écrite ; - des moyens de mémorisation agencés pour mémoriser le mot message écrit ainsi que la signature écrite, de façon à les restituer ultérieurement ; des deuxièmes moyens de codage agencés pour calculer, à partir 10 d'un mot message écrit restitué par le circuit de mémorisation, une combinaison de bits de parité formant une signature de contrôle ; et - des moyens de décodage agencés pour calculer, à partir du mot message écrit restitué et d'une comparaison entre la signature écrite restituée et la signature de contrôle, un mot message corrigé 15 constituant un mot message lu et correspondant au mot écrit tel qu'il avait été mémorisé. Dans un autre mode de réalisation, le dispositif coopère avec un dis; ositir de communication et est agencé pour corriger des données d'entrée comprenant un mot message reçu associé à une signature reçue. 20 Ces données d'entrées proviennent d'une transmission ou d'un traitement à risque portant sur un mot message envoyé associé à une signature envoyée. Le dispositif est agencé pour fournir, sous la forme d'un mot message corrigé, des données de sortie correspondant au mot message reçu tel qu'il était avant la transmission ou le traitement à risque, ce 25 dispositif réalisant une détection et correction d'erreur. Le dispositif comprend alors : - des moyens de codage agencés pour calculer, à partir d'un mot message reçu, une combinaison de bits de parité formant une signature de contrôle et correspondant à la signature envoyée ; et 30 - des moyens de décodage agencés pour calculer, à partir du mot message reçu ainsi que de la signature reçue et de la signature de contrôle, un mot message corrigé correspondant au mot message envoyé. - 19 - Ainsi, comme illustré en FIGURE 4, l'invention peut être utilisée pour obtenir un message corrigé MC à partir d'un message d'origine M soumis à un traitement à risque 11. Ce traitement à risque peut être une mémorisation, conservation puis lecture de données au sein d'une puce mémoire 12, par exemple une puce ECC. Ce traitement à risque peut aussi être n'importe quel type de transmission de données 14, entre des moyens d'émission 13 et des moyens de réception 15. Les données reçues MR peuvent alors être traitées indépendamment des moyens de réception ou d'émission, dans une puce de correction 16, par exemple une puce de type EDAC. La FIGURE 5 illustre plus particulièrement un mode de réalisation par implémentation au sein d'une puce mémoire, par exemple une puce mémoire de type ECC. La puce mémoire 12 reçoit des données d'entrée DI devant être écrites en mémoire, sous la forme de mots messages de mêmes longueurs. Chacun de ces mots messages constitue un mot message d'origine M qui sert de base à un encodage ENC1 donnant des bits de parité formant un mot signature F Chaque mot message d'origine M est stocké avec sa signature P dans des moyens de mémorisation 121 de la puce 12.  In one embodiment, the device is arranged to receive input data in the form of a written message word and provide, in the form of a read message word, output data corresponding to the 'Entrance. This device performs an error correction storage and comprises: first coding means arranged for calculating, from a written message word, a combination of parity bits forming a written signature; storage means arranged to memorize the written message word as well as the written signature, so as to restore them later; second encoding means arranged to calculate, from a written message word outputted by the storage circuit, a combination of parity bits forming a control signature; and decoding means arranged to calculate, from the restored written message word and from a comparison between the returned written signature and the control signature, a corrected message word constituting a read message word corresponding to the written word such as he had been memorized. In another embodiment, the device cooperates with a dis; communication and is arranged to correct input data comprising a received message word associated with a received signature. These input data come from a risk transmission or processing relating to a sent message word associated with a sent signature. The device is arranged to supply, in the form of a corrected message word, output data corresponding to the received message word as it was before the transmission or the risky processing, this device realizing detection and correction of error. The device then comprises: encoding means arranged to calculate, from a received message word, a combination of parity bits forming a control signature and corresponding to the sent signature; and decoding means arranged to calculate, from the received message word as well as from the received signature and the control signature, a corrected message word corresponding to the sent message word. Thus, as illustrated in FIG. 4, the invention can be used to obtain a corrected message MC from a message of origin M subjected to a risk treatment 11. This risk treatment can be a storage, conservation and reading data in a memory chip 12, for example an ECC chip. This risk treatment can also be any type of data transmission 14, between transmission means 13 and reception means 15. The received data MR can then be processed independently of the reception or transmission means, in a correction chip 16, for example an EDAC type chip. FIG. 5 more particularly illustrates an embodiment by implementation within a memory chip, for example an ECC memory chip. The memory chip 12 receives input data DI to be written in memory, in the form of message words of the same length. Each of these message words constitutes an original message word M which serves as a basis for an encoding ENC1 giving parity bits forming a signature word F Each original message word M is stored with its signature P in storage means 121 of the chip 12.

Ultérieurement, les données de ce mot message et de sa signature sont restituées par les moyens de mémorisation sous la forme d'un mot message incertain MR accompagné d'une signature restituée PR. La valeur du mot message incertain MR est alors utilisée pour réaliser un encodage de contrôle ENC2, donnant des bits de parité formant un nouveau mot signature P'. Ce nouveau mot signature P' est alors comparé bit à bit avec le mot signature restitué PR et génère un mot ou syndrome de contrôle C. Pour chaque position de ce syndrome de contrôle C, le bit de contrôle vaut zéro lorsque les deux signatures PR et P' à cette même position présentent des bits de même valeur, et vaut un lorsque ces valeurs diffèrent. Les bits du syndrome de contrôle C et du mot message incertain MR sont alors combinés selon un décodage DEC qui fournit un mot message corrigé, dont les bits sont de valeur identique à ceux du mot message d'origine. Ce mot message corrigé est alors fournit en tant que mot - 20 - message lu par la puce mémoire 12, et forme une partie des données de sortie DO issues de cette même puce.  Subsequently, the data of this message word and its signature are restored by the storage means in the form of an uncertain message word MR accompanied by a restored signature PR. The value of the word uncertain message MR is then used to perform an ENC2 control encoding, giving parity bits forming a new signature word P '. This new signature word P 'is then compared bit by bit with the restored word PR and generates a control word or syndrome C. For each position of this control syndrome C, the control bit is zero when the two signatures PR and P 'at this same position have bits of the same value, and is one when these values differ. The bits of control syndrome C and the message word uncertain MR are then combined according to a decoding DEC which provides a corrected message word, whose bits are of identical value to those of the original message word. This corrected message word is then supplied as a word read by the memory chip 12, and forms part of the output data DO from this same chip.

Les figures suivantes présentent le mode de fonctionnement de l'invention selon un exemple d'implémentation correspondant à un exemple de combinaison d'encodage et de décodage représenté par la matrice M4 citée plus haut. Les FIGURE 6 à FIGURE 9 illustrent une façon de combiner les différents bits de données pour mettre en oeuvre le procédé selon l'invention pour un mot message de 32 bits, selon une notation sous la forme d'une matrice de contrôle. Ce procédé réalise un code systématique de correction simple erreur de type (39, 32). Dans un exemple de réalisation de type (39, 32), l'invention utilise la matrice de contrôle complète M4 suivante, dont la sous matrice de codage sera notée M4s : -------------------------------------------------------------- M4s L ; f11101101001101001000110100100010;1000000 il 10110101010l0100100101010010001;0100000 1011o11o01o11001oo1oo11001001o00;0010000 01110001110001110001000111000100;0001000 00001111110000001111000000111100;0000100 00000000001111111111000000000011;0000010 00000000000000000000111111111111;00000011 En FIGURE 6, à partir des bits message ml à m32 du mot message d'origine M, des bits de parité p1 à p7 sont le résultat d'un encodage ENC1.  The following figures show the mode of operation of the invention according to an exemplary implementation corresponding to an exemplary combination of encoding and decoding represented by the matrix M4 mentioned above. FIG. 6 to FIG. 9 illustrates a way of combining the different data bits to implement the method according to the invention for a 32-bit message word, according to a notation in the form of a control matrix. This method realizes a systematic code of simple error correction type (39, 32). In an exemplary embodiment of the type (39, 32), the invention uses the following complete control matrix M4, the coding sub-matrix of which will be denoted M4s: --------------- ----------------------------------------------- M4s L; f11101101001101001000110100100010; it 10110101010l0100100101010010001 1000000; 0100000 1011o11o01o11001oo1oo11001001o00; 01110001110001110001000111000100 0010000; 0001000 00001111110000001111000000111100; 00000000001111111111000000000011 0000100; 0000010 00000000000000000000111111111111; 00000011 In FIGURE 6, from message bits m32 ml of the original message word M, the p7 p1 parity bits are the result of an ENC1 encoding.

Cet encodage ENC1 est réalisé avant le traitement à risque et fournit les bits de parités pi à p7 du mot signature P. Chaque ligne de la matrice de contrôle est utilisée pour fournir un bit de parité, par combinaison avec les différents bits de message du mot M à encoder. Chaque position dans cette ligne correspond à la position d'un bit de message du mot message. Pour chaque ligne, chaque bit de message est multiplié par la valeur du chiffre lui correspondant dans la ligne, par M4= - 21 - exemple par une porte logique AND. Les résultats de toutes les multiplications de la ligne sont alors additionnés entre eux en binaire, par exemple par une combinaison par une cascade de portes XOR. Pour la matrice M1 citée plus haut, réalisant un code de Hamming (38, 32), les valeurs des bits de parité pi à p6 seront alors obtenues par association d'opérateurs XOR en une combinaison basée sur les chiffres de la première ligne de la matrice de codage. Pour le bit de parité pl par la matrice M1, on obtient donc les formules suivantes: P1=mlem2em48m50+m7em90+m118m128m14em16em188m20em22em24e m26em27em290+m31 P2=m1em3+Om4$m60m70+m10emllem13em14em17+Om 18em21em22em25+0 m260+m288m298m32 P3=m2em30+m40+m8em9em10emllem15emlem170+m180+m23em24em250+ m268m300+m31em32 P4=m58m68m78m88m98m 10+Om 118m 19em20em21em228m230+m248m250+ m26 P5=m12em13+em14+Om150+m16em17em18em190+m20em21em22em23em24e m258m26 P6=m278m288m298m30em31e m32 Les autres bits de parité p2 à p6 sont obtenus de la même façon à partir des bits du message d'origine et des lignes suivantes de la matrice M1. Pour la matrice M4 citée plus haut, réalisant un code (39, 32), les 25 valeurs des bits de parité pl à p7 seront alors obtenus par association d'opérateurs XOR en une combinaison basée sur la première ligne de la matrice de codage M4s. Pour le bit de parité pl par la matrice M4s, on obtient donc les formules suivantes: p1=m1em2em3em50+m68m8em11em12em148m178m21em22em24em27e m31 p2=m18m28m4em58m78m9em11em13em15em188m218m238m258m28e m32 p3=m1em3em48m60+m7em10em12em13em16em19em228m238m268 m29 p4=m2em3em4em88m9+em108m148m15em16em20em248m25em26e m30 p5=m5em6em7em8em9+Om108m17em180+m19em208m27em28em29e m30 p6=m118m128m13em14em15em16em178m18em19+Om200+m318 m32 p7=m21em22em238m248m25em260+m27+Om28+em29em308m310+ m32 Les autres bits de parité p2 à p7 sont obtenus de la même façon à 40 partir des bits du message d'origine et des lignes suivantes de la matrice M4s. 15 20 30 35 -22 - Ainsi qu'illustré en FIGURE 7, le message d'origine M et sa signature P obtenue par encodage ENC1 prennent une valeur incertaine après le traitement à risque 11. Par exemple dans le cas d'une transmission de données, cette valeur incertaine comprend alors un message reçu MR, de bits mr1 à mr32, et une signature reçue PR, de bits prl à pr32. A partir des bits du message reçu MR, la même matrice de codage M4s fournit ENC21 une signature de contrôle P' par les mêmes formules qu'avant le traitement à risque 11. Les bits p'1 à p'7 de cette signature de contrôle P' sont alors comparés un à un, par opérateur XOR, avec ceux avec la signature reçue PR. Cette comparaison génère ENC22 alors le mot ou syndrome de contrôle C représentant les erreurs survenues au cours du traitement à risque 11. Comme illustré en FIGURE 8, ce syndrome de contrôle C est alors décodé DEC1 par la même matrice de codage M4s pour générer un mot des erreurs ME comprenant autant de bits d'erreurs mel à me32 qu'il y a de bits reçus mr1 à mr32. Chacun de ces bits d'erreur vaut alors un si le bit reçu correspondant est différent du bit d'origine correspondant, indiquant une erreur survenue entre ces deux valeurs. Ces bits d'erreurs sont alors comparés un à un par un opérateur XOR avec les bits reçus, fournissant DEC2 ainsi des bits corrigés mcl à me32. Ces bits corrigé forment alors un mot message corrigé MC qui est bien identique au mot message d'origine M. La FIGURE 9 illustre une possibilité supplémentaire, permettant de fournir une information indiquant la survenue d'une telle erreur, en plus de la valeur corrigée du mot message MC. Pour cela, tous les bits d'erreur mel à me32 sont associés en une combinaison logique fournissant une valeur logique DE prenant une valeur différente dès qu'un seul d'entre eux présente la valeur un, par exemple une somme d'opérateur OR. En utilisant la matrice de contrôle complète pour décoder DEC1 à la fois le message reçu MR et la signature reçue PR, il est aussi possible de détecter une erreur portant sur les bits de parité d'origine p1 à p7. Dans un dispositif mettant en oeuvre l'invention, ces formules d'encodage sont implémentées par des moyens de calcul, par exemple des portes logiques au sein d'un circuit électronique. Il est à noter toutefois que ces calculs peuvent aussi être réalisés par d'autres types de moyens de - 23 - calcul, par exemple des circuits reconfigurables ou à base de processeur de calcul. La FIGURE 10 représente un exemple de circuit logique fournissant le bit de parité p1 en fonction des bits de message d'origine ml à m32, en utilisant un code de type Hamming (38, 32) selon la matrice M1 citée plus haut. Selon l'invention, la FIGURE 11 représente un exemple d'implantation de l'encodage ENC1 avant traitement à risque, en un circuit logique fournissant le bit de parité pl en fonction des bits de message d'origine ml à m32, dans un exemple utilisant la matrice de codage M4s citée plus haut, soit un code de type (39, 32). Pour une implantation de ce type, le nombre de portes logiques nécessaires à l'encodage ENC1 est comparé dans la table suivante, entre un circuit à code de Hamming classique selon la matrice M1 et un circuit selon l'invention basé sur la matrice M4s. Cette comparaison est présentée selon différents critères qui sont : - la complexité du circuit, exprimée à travers le nombre et le type de portes logiques nécessaire ; - la puissance dissipée, exprimée de la même façon ; et - le retard de propagation ou temps de calcul, exprimé à travers le nombre et le type de portes logique impliquées successivement dans le chemin de calcul d'un bit de parité. ENC1 Hamming M4s (38, 32, 3) (39, 32, 3) complexité 70 XOR2 70 XOR2 dissipation 70 XOR2 70 XOR2 de puissance retard de 5 XOR2 4 XOR2 propagation (gain : 1) Pour les circuits réalisant l'encodage ENC1, on voit que l'invention permet de gagner sur le temps de calcul, en utilisant quatre portes XOR2 au 25 lieu de cinq, soit près de 20% de gain. La FIGURE 12 représente un exemple de circuit logique fournissant les bits de contrôle Cl à C6 en fonction des bits de message reçu mrl à mr32, en utilisant un code de type Hamming (38, 32) selon la matrice M1 citée plus haut. - 24 - Selon l'invention, la FIGURE 13 représente un exemple d'implantation de l'encodage ENC2 après traitement à risque dans un exemple utilisant la matrice de codage M4s citée plus haut, soit un code de type (39, 32). Cette implantation utilise un circuit logique fournissant ENC21 les bits de parité de contrôle p'1 à p'7 en fonction des bits de message mrl à mr32, seul le calcul de p'1 étant détaillé sur la figure. Tous les bits de parité de contrôle p'1 à p'7 sont alors comparés aux bits de parité d'origine p1 à p7 par des portes XOR2, pour générer ENC22 les bits de contrôle Cl à C7 du syndrome de contrôle C.  This encoding ENC1 is carried out before the risky processing and provides the parity bits pi to p7 of the signature word P. Each row of the control matrix is used to provide a parity bit, by combination with the different message bits of the word M to encode. Each position in this line corresponds to the position of a message bit of the message word. For each line, each message bit is multiplied by the value of the corresponding digit in the line, for example by M4 = by an AND logic gate. The results of all the multiplications of the line are then added together in binary, for example by a combination of a cascade of XOR gates. For the matrix M1 mentioned above, realizing a Hamming code (38, 32), the values of the parity bits pi to p6 will then be obtained by association of XOR operators in a combination based on the digits of the first line of the coding matrix. For the parity bit pl by the matrix M1, we thus obtain the following formulas: P1 = mlm2em48m50 + m7em90 + m118m128m14em16em188m20em22em24e m26em27em290 + m31 P2 = m1em3 + Om4 $ m60m70 + m10emllem13em14em17 + Om 18m21em22em25 + 0 m260 + m288m298m32 P3 = m2em30 + m40 + m8em9em10emllem15emlem170 + m180 + m23em24em250 + m268m300 + m31em32 P4 = m58m68m78m88m98m 10 + Om 118m 19em20em21em228m230 + m248m250 + m26 P5 = m12em13 + EM14 + Om150 + m16em17em18em190 + m20em21em22em23em24e m258m26 P6 = m278m288m298m30em31e m32 other p6 p2 parity bits are obtained in the same way from the bits of the original message and subsequent lines of the matrix M1. For the matrix M4 mentioned above, realizing a code (39, 32), the 25 values of the parity bits p1 to p7 will then be obtained by association of XOR operators in a combination based on the first line of the coding matrix M4s. . For the parity bit pl by M4S matrix, we obtain the following equations: p1 = m1em2em3em50 + m68m8em11em12em148m178m21em22em24em27e m31 p2 = m18m28m4em58m78m9em11em13em15em188m218m238m258m28e m32 p3 = m1em3em48m60 + m7em10em12em13em16em19em228m238m268 m29 p4 = m2em3em4em88m9 + em108m148m15em16em20em248m25em26e m30 p5 = m5em6em7em8em9 + Om108m17em180 + m19em208m27em28em29e m30 p6 = The other parity bits p2 to p7 are obtained in the same way from the bits of the original message and subsequent lines of the matrix M4s. As illustrated in FIG. 7, the original message M and its signature P obtained by encoding ENC1 take on an uncertain value after the risk treatment 11. For example in the case of a transmission of data, this uncertain value then comprises a received message MR, bits mr1 to mr32, and a received signature PR, bits prl to pr32. From the bits of the received message MR, the same coding matrix M4s provides ENC21 a control signature P 'by the same formulas as before the risk processing 11. The bits p'1 to p'7 of this control signature P 'are then compared one by one, by XOR operator, with those with the received signature PR. This comparison generates ENC22 while the control word or syndrome C represents the errors that occurred during the risk treatment 11. As illustrated in FIG. 8, this control syndrome C is then decoded DEC1 by the same coding matrix M4s to generate a word ME errors comprising as many error bits mel to me32 as there are received bits mr1 to mr32. Each of these error bits is then one if the corresponding received bit is different from the corresponding original bit, indicating an error occurring between these two values. These error bits are then compared one by one by an XOR operator with the received bits, providing DEC2 and corrected bits mc1 to me32. These corrected bits then form a corrected message word MC which is very identical to the original message word M. FIG. 9 illustrates an additional possibility, making it possible to supply information indicating the occurrence of such an error, in addition to the corrected value. the word message MC. For this, all the error bits mel to me32 are associated in a logical combination providing a logical value DE taking a different value as soon as only one of them has the value one, for example a sum of operator OR. By using the complete control matrix to decode DEC1 both the received message MR and the received signature PR, it is also possible to detect an error relating to the original parity bits p1 to p7. In a device embodying the invention, these encoding formulas are implemented by calculation means, for example logic gates within an electronic circuit. It should be noted, however, that these calculations can also be carried out by other types of calculation means, for example reconfigurable or calculation processor-based circuits. FIG. 10 represents an example of a logic circuit providing the parity bit p1 as a function of the original message bits ml to m32, by using a Hamming type code (38, 32) according to the matrix M1 mentioned above. According to the invention, FIG. 11 represents an example of implementation of the ENC1 encoding before risky processing, in a logic circuit providing the parity bit pl as a function of the original message bits ml to m32, in an example using the encoding matrix M4s mentioned above, a type code (39, 32). For an implementation of this type, the number of logic gates required for encoding ENC1 is compared in the following table, between a conventional Hamming code circuit according to the matrix M1 and a circuit according to the invention based on the matrix M4s. This comparison is presented according to various criteria which are: - the complexity of the circuit, expressed through the number and type of logic gates required; - the dissipated power, expressed in the same way; and the propagation delay or calculation time, expressed through the number and type of logic gates successively involved in the calculation path of a parity bit. ENC1 Hamming M4s (38, 32, 3) (39, 32, 3) complexity 70 XOR2 70 XOR2 dissipation 70 XOR2 70 XOR2 power delay of 5 XOR2 4 XOR2 propagation (gain: 1) For circuits performing encoding ENC1, it can be seen that the invention makes it possible to save on the calculation time, by using four XOR2 gates instead of five, ie almost 20% gain. FIG. 12 represents an example of a logic circuit supplying the control bits C1 to C6 as a function of the received message bits mrl at mr32, by using a Hamming type code (38, 32) according to the matrix M1 mentioned above. According to the invention, FIG. 13 represents an exemplary implementation of the ENC2 encoding after risky processing in an example using the M4s coding matrix mentioned above, ie a type code (39, 32). This implementation uses a logic circuit providing ENC21 the control parity bits p'1 to p'7 as a function of the message bits mrl to mr32, only the calculation of p'1 being detailed in the figure. All control parity bits p'1 to p'7 are then compared to the original parity bits p1 to p7 by XOR2 gates, to generate ENC22 control bits C1 to C7 of control syndrome C.

La FIGURE 14 représente un exemple de circuit logique fournissant les bits de message corrigé mcl à mc32 en fonction des bits de message reçu mrl à mr32 et des bits de contrôle Cl à C6, en utilisant un code de type Hamming (38, 32) selon la matrice M1 citée plus haut. On voit que cette implantation classique utilise des portes logiques NAND6, dont les six entrées sont systématiquement raccordées à chacun des bits de contrôle Cl à C6. De plus, pour chaque bit de message corrigé, certaines entrées de cette porte NAND6 sont raccordées à un bit de contrôl par l'intermédiaire d'un inverseur logique Il à I6, lorsque le chiffre correspondant au sein de la colonne correspondant de la matrice M1 présente la valeur zéro. Pour chacun de ces bits de contrôle, il est donc nécessaire de prévoir des lignes de raccordement supplémentaires LNC1 à LNC6, amenant sa valeur inversée aux portes NAND6 qui en ont besoin. Selon l'invention, la FIGURE 15 représente un exemple d'implantation fournissant les bits de message corrigé mcl à mc32 en fonction des bits de message reçu mrl à mr32 et des bits de contrôle Cl à C7, dans un exemple utilisant la matrice de codage M4s citée plus haut, soit un code de type (39, 32). On voit que cette implantation utilise des portes logiques NAND3, dont les trois entrées ne sont raccordées qu'à certains des bits de contrôle Cl à C6. Ainsi qu'illustré sur la figure, à chaque bit de message corrigé mcl à mc32 correspond une colonne coll à co132 de la matrice de décodage M4s. Pour chacun de ces bits de message corrigé, la porte NAND3 - 25 - n'est raccordé à un bit de contrôle que lorsque cette colonne comprend un chiffre un à la ligne correspondant à ce bit de contrôle. Ainsi, la colonne coll du bit de message corrigé mcl ne comprend le chiffre un qu'aux trois premières positions. Les trois entrées de la porte NAND3 correspondante ne sont donc raccordées qu'aux trois bits de contrôle Cl, C2 et C3. Pour chacun des bits de contrôle, il n'est donc pas nécessaire de prévoir les inverseurs présents dans la FIGURE 14, ni les lignes de raccordement supplémentaires correspondantes. Il s'agit là d'une économie intéressante, en particulier en matière de dissipation de puissance et complexité de fabrication, qui conditionnent largement la fiabilité ou les possibilités de miniaturisation. Pour une implantation de ce type, le nombre de portes logiques nécessaires à l'encodage de contrôle ENC2 et au décodage DEC du message corrigé est comparé dans la table suivante, entre un circuit à code de Hamming classique selon la matrice M1 et un circuit selon l'invention basé sur la matrice M4s. Cette compE -aisoti est présentée selon les mêmes critères que ce'le de l'encodage d'origine ENC1. Pour les besoins de la comparaison, les équivalences suivantes ont été utilisées. En matière de complexité d'une part, une porte NAND6 est considérée comme valant deux portes NAND3. En matière de retard d'autrepart : - une porte NXOR2 (NOR exclusif à deux entrées) est équivalente à une porte XOR2 ; - une NAND3 est équivalente à la moitié d'une porte XOR2 ; un inverseur est équivalent à la moitié d'une porte XOR2. ENC2 + DEC Hamming M4s (38, 32, 3) (39, 32, 3) complexité 108 XOR2 109 XOR2 +64 NAND3+ + 32 NAND3 6 inverseurs (gain) dissipation 108 XOR2 109 XOR2 de puissance +32 NAND6+ + 32 NAND3 6 inverseurs (gain) retard de 8 lh XOR2 61/2 XOR2 - 26 - propagation (gain) Pour les circuits réalisant le décodage complet, c'est à dire l'encodage de contrôle ENC2 et le décodage DEC du message corrigé proprement dit, on voit que l'invention permet des avantages notables sur plusieurs critères. En complexité pour un message de 32 bits, on constate un gain de : - une porte XOR2, - l'équivalent de 32 portes NAND3, - 6 inverseurs. En dissipation de puissance pour un message de 32 bits, on constate un gain de : - une porte XOR2, - la différence entre 32 portes NAND6 et 32 portes NAND3, 6 inverseurs. En retard de propagation pour un message de 32 bits, on constate un gain de 2 portes XOR2, soit environ 24%.  FIG. 14 shows an example of a logic circuit providing the corrected message bits mc1 to mc32 as a function of the received message bits mr1 to mr32 and control bits C1 to C6, using a Hamming type code (38, 32) according to the matrix M1 mentioned above. We see that this conventional implementation uses NAND6 logic gates, whose six inputs are systematically connected to each of the control bits C1 to C6. Moreover, for each corrected message bit, some inputs of this NAND6 gate are connected to a control bit via a logic inverter 11 to I6, when the corresponding digit in the corresponding column of the matrix M1 presents the value zero. For each of these control bits, it is therefore necessary to provide additional connection lines LNC1 to LNC6, bringing its inverted value to the NAND6 gates that need them. According to the invention, FIGURE 15 shows an exemplary implementation providing the corrected message bits mc1 to mc32 as a function of the received message bits mr1 to mr32 and control bits C1 to C7, in an example using the coding matrix M4s mentioned above, a type code (39, 32). It can be seen that this implementation uses NAND3 logic gates, the three inputs of which are connected only to some of the control bits C1 to C6. As illustrated in the figure, each corrected message bit mc1 to mc32 corresponds to a col column at co132 of the decoding matrix M4s. For each of these corrected message bits, the NAND3 gate is connected to a control bit only when this column comprises a digit one in the line corresponding to this control bit. Thus, the column coll of the corrected message bit mcl includes the digit one only in the first three positions. The three inputs of the corresponding NAND3 gate are therefore connected only to the three control bits C1, C2 and C3. For each of the control bits, it is therefore not necessary to provide the inverters present in FIG. 14, nor the corresponding additional connection lines. This is an interesting economy, especially in terms of power dissipation and manufacturing complexity, which largely determine the reliability or possibilities of miniaturization. For an implementation of this type, the number of logic gates required for the ENC2 control encoding and decoding DEC of the corrected message is compared in the following table, between a conventional Hamming code circuit according to the matrix M1 and a circuit according to the invention based on the matrix M4s. This compu -aisoti is presented according to the same criteria as that of the original encoding ENC1. For purposes of comparison, the following equivalences were used. In terms of complexity, on the one hand, a NAND6 gate is considered to be worth two NAND3 gates. In terms of delay on the other hand: - an NXOR2 gate (NOR exclusive to two inputs) is equivalent to an XOR2 gate; a NAND3 is equivalent to half of an XOR2 gate; an inverter is equivalent to half of an XOR2 gate. ENC2 + DEC Hamming M4s (38, 32, 3) (39, 32, 3) complexity 108 XOR2 109 XOR2 +64 NAND3 + + 32 NAND3 6 inverters (gain) dissipation 108 XOR2 109 XOR2 power +32 NAND6 + + 32 NAND3 6 inverters (gain) delay of 8 lh XOR2 61/2 XOR2 - 26 - propagation (gain) For the circuits carrying out the complete decoding, ie the encoding of control ENC2 and the decoding DEC of the corrected message proper, one sees that the invention allows significant advantages over several criteria. In complexity for a 32-bit message, there is a gain of: - a gate XOR2, - the equivalent of 32 NAND3 gates, - 6 inverters. In power dissipation for a 32-bit message, there is a gain of: - an XOR2 gate, - the difference between 32 NAND6 gates and 32 NAND3 gates, 6 inverters. Delayed propagation for a 32-bit message, there is a gain of 2 XOR2 gates, about 24%.

Par rapport à la technologie de type Hamming, on constate que l'invention permet des gains significatifs sur ces différents critères, même si cela impose d'accepter une pénalité en terme d'architecture, c'est à dire de gérer un nombre plus important de bits de parité, par exemple un bit de pénalité dans le cas d'un message de 32 bits.  Compared to the Hamming type of technology, it can be seen that the invention allows significant gains on these various criteria, even if this requires accepting a penalty in terms of architecture, ie managing a larger number parity bits, for example a penalty bit in the case of a 32-bit message.

La technologie basée sur un poids de Hamming à deux, citée plus haut, permettrait certes des gains plus importants par rapport à une technologie Hamming, mais impose des pénalités plus importantes que l'invention en terme de nombre de bits de parité. Cette technologie n'est d'ailleurs pas ou peu utilisée actuellement.  The technology based on a Hamming weight of two, cited above, certainly allow greater gains compared to a Hamming technology, but imposes penalties greater than the invention in terms of number of parity bits. This technology is not currently used very much.

L'invention peut ainsi apporter une amélioration sensible par rapport aux technologies actuelles d'ECC, tout en limitant les pénalités encourues. Bien sûr, l'invention n'est pas limitée aux exemples qui viennent d'être décrits et de nombreux aménagements peuvent être apportés à ces exemples sans sortir du cadre de l'invention.  The invention can thus provide a significant improvement over current ECC technologies, while limiting the penalties incurred. Of course, the invention is not limited to the examples that have just been described and many adjustments can be made to these examples without departing from the scope of the invention.

Claims (14)

REVENDICATIONS 1. Procédé de correction systématique d'une erreur pouvant survenir, au sein des bits de données d'un mot de message, entre une valeur d'origine et une valeur incertaine dudit mot de message, cette correction d'erreur fournissant une valeur corrigée dudit mot message en réalisant un calcul logique, dit décodage, à partir, d'une part, de la valeur incertaine du mot message et, d'autre part, d'un nombre déterminé de bits de contrôle formant un ensemble dit syndrome de contrôle, ledit syndrome de contrôle représentant une comparaison entre les valeurs, calculées respectivement avant et après l'erreur potentielle, d'un ensemble de bits de signature formant un mot ou syndrome de signature dépendant de la valeur du mot message, caractérisé en ce que d'une part, au moins un bit du message corrigé est décodé par un calcul logique réalisé à partir d'une combinaison d'un nombre de bits de contrôle strictement inférieur au nombre total de bits du syndrome de contrôle, et - d'autre part, au moins un bit du message corrigé est décodé par un calcul logique réalisé à partir d'une combinaison d'au moins trois bits du syndrome de contrôle.  A method of systematically correcting an error that may occur within the data bits of a message word between an original value and an uncertain value of said message word, this error correction providing a corrected value said message word by performing a logic calculation, said decoding, from, on the one hand, the uncertain value of the message word and, on the other hand, a determined number of control bits forming a set said control syndrome , said control syndrome representing a comparison between the values, respectively calculated before and after the potential error, of a set of signature bits forming a word or signature syndrome depending on the value of the message word, characterized in that d on the one hand, at least one bit of the corrected message is decoded by a logic calculation made from a combination of a number of control bits strictly less than the total number of control syndrome bits, and on the other hand, at least one bit of the corrected message is decoded by a logic calculation made from a combination of at least three bits of the control syndrome. 2. Procédé selon la revendication 1, caractérisé en ce qu'au moins un bit de signature constitue un bit de parité obtenu par un calcul logique de type XOR à partir d'une combinaison, dite d'encodage, de bits de message extraits du mot message à signer.  2. Method according to claim 1, characterized in that at least one signature bit constitutes a parity bit obtained by a logical calculation of XOR type from a combination, called encoding, of message bits extracted from the message word to sign. 3. Procédé selon la revendication 2, caractérisé en ce que l'opération de décodage de chacun des bits de message corrigés s'effectue à partir d'une combinaison, dite de décodage, de trois ou deux bits de contrôle au sein du syndrome de contrôle.  3. Method according to claim 2, characterized in that the decoding operation of each of the corrected message bits is performed from a combination, called decoding, of three or two control bits within the syndrome of control. 4. Procédé selon l'une des revendications 2 à 3, caractérisé en ce que chacun des bits de message corrigé est décodé selon une combinaison de- 28 - décodage unique, le nombre des bits de message corrigé qui sont décodés à partir de trois bits de contrôle valant au moins C[p-1,3] soit : fact(p-1)/[fact(3)xfact(p-1-3)] soit (p-1)x(p-2)x(p-3)/6 où p est le nombre de bits de parité.  4. Method according to one of claims 2 to 3, characterized in that each of the corrected message bits is decoded according to a single decoding combination, the number of corrected message bits which are decoded from three bits. at least C [p-1.3] is: fact (p-1) / [fact (3) xfact (p-1-3)] or (p-1) x (p-2) x ( p-3) / 6 where p is the number of parity bits. 5. Procédé selon l'une des revendications 2 à 4, caractérisé en ce qu'il utilise 7 (sept) bits de parité pour signer ou corriger un mot message de 32 bits, ou neuf bits de parité pour signer ou corriger un mot message de 64 bits, ou onze bits de parité pour signer ou corriger un mot message de 128 bits, ou treize bits de parité pour signer ou corriger un mot message de 256 bits, ou un nombre de bits de parité inférieur ou égal à 2n-2 pour signer ou corriger un mot message d'une longueur déterminée égale à deux à la puissance n .  5. Method according to one of claims 2 to 4, characterized in that it uses 7 (seven) parity bits to sign or correct a 32-bit message word, or nine parity bits to sign or correct a message word 64-bit, or eleven parity bits to sign or correct a 128-bit message word, or thirteen parity bits to sign or correct a 256-bit message word, or a number of parity bits less than or equal to 2n-2 to sign or correct a message word of a given length equal to two to the power n. 6. Procédé selon l'une des revendications 2 à 5, caractérisé en ce que, lorsque I~ combinaison de décodage de chaque bit de message corrigé est représentée sous la forme d'une colonne de matrice où, chaque ligne de cette colonne représentant toujours le même bit de contrôle d'une colonne à l'autre, les bits de contrôle utilisés sont représentés par un chiffre un et les bits de contrôle non utilisés par un chiffre zéro, l'ensemble des combinaisons de décodage du message corrigé forme une matrice dite de contrôle, dont les lignes représentent les combinaisons d'encodage de l'ensemble des bits de parité du syndrome de signature, les positions des chiffres un au sein d'une de ces lignes représentant les positions des bits de message devant être combinés entre eux pour donner le bit de parité correspondant.  6. Method according to one of claims 2 to 5, characterized in that, when I'~ decoding combination of each corrected message bit is represented in the form of a matrix column where, each row of this column still representing the same control bit from one column to another, the control bits used are represented by a digit one and the control bits not used by a zero digit, the set of decoding combinations of the corrected message forms a matrix so-called control line, whose lines represent the encoding combinations of the set of parity bits of the signature syndrome, the positions of the digits one within one of these lines representing the positions of the message bits to be combined between them to give the corresponding parity bit. 7. Procédé selon la revendication 6, caractérisé en ce que les combinaisons de décodages peuvent être représentées sous la forme d'une matrice de contrôle qui comprend d'une part un premier groupe de colonnes présentant un poids de Hamming égal ou supérieur à trois, ce premier groupe étant constitué de la totalité- 29 - des différentes combinaisons de décodage possibles présentant un chiffre zéro dans une même position, et d'autre part un deuxième groupe de colonnes présentant un poids de Hamming égal à deux, ce deuxième groupe de colonnes étant constitué de combinaisons de décodages différentes entre elles et présentant chacune un chiffre un à ladite position.  7. Method according to claim 6, characterized in that the combinations of decodings can be represented in the form of a control matrix which comprises on the one hand a first group of columns having a Hamming weight equal to or greater than three, this first group consisting of the totality of the various possible decoding combinations having a zero digit in the same position, and secondly a second group of columns having a Hamming weight equal to two, this second group of columns being composed of combinations of decodings different from each other and each having a digit one at said position. 8. Procédé selon l'une des revendications 2 à 7, mis en oeuvre pour la détection et la correction d'erreurs pouvant survenir lors d'un traitement d'un mot message d'entrée, au sein d'au moins un dispositif, dit à risque, de traitement ou de mémorisation ou de transmission de données numériques fournissant un mot message de sortie correspondant au mot message d'entrée, caractérisé en ce qu'il comprend en outre les étapes suivantes : - calcul, à partir d'un mot message d'entrée, d'une combinaison de bits de parité formant une signature d'entrée ; - entrée dans le dispositif à risque, de façon associée, du mot message écrit et de la signature d'entrée ; - restitution en sortie du dispositif à risque, de façon associée, d'un mot message restitué issu du mot message d'entrée et d'une signature restituée issue de la signature d'entrée ; - calcul, à partir du mot message restitué, d'une combinaison de bits de parité formant une signature de contrôle ; puis - calcul, à partir du mot message restitué et d'une comparaison entre la signature restituée et la signature de contrôle, d'un mot message corrigé constituant un mot message de sortie et correspondant au mot d'entrée tel qu'il avait été pris en compte.  8. Method according to one of claims 2 to 7, implemented for detecting and correcting errors that may occur during a processing of an input message word, within at least one device, said at risk, processing or storing or transmitting digital data providing an output message word corresponding to the word input message, characterized in that it further comprises the following steps: - calculation, from a input message word, a combination of parity bits forming an input signature; - entry into the device at risk, associated manner, the word written message and the entry signature; - Output output of the device at risk, associated manner, a message word returned from the input message word and a restituted signature resulting from the input signature; calculating, from the restored message word, a combination of parity bits forming a control signature; then - calculating, from the word restored message and a comparison between the returned signature and the control signature, a corrected message word constituting a message output message and corresponding to the input word as it had been taken into account. 9. Procédé selon l'une des revendications 6 à 8, caractérisé en ce que qu'il utilise en outre un bit de parité supplémentaire pour détecter la survenue d'une deuxième erreur entre le mot incertain et le mot d'origine, la matrice de contrôle correspondant comprenant alors, pour ledit bit de parité supplémentaire, une ligne composée entièrement de chiffres un.-  9. Method according to one of claims 6 to 8, characterized in that it further uses an additional parity bit to detect the occurrence of a second error between the uncertain word and the original word, the matrix corresponding control then comprising, for said additional parity bit, a line composed entirely of digits a.- 10. Dispositif de correction systématique d'une erreur pouvant survenir, au sein des bits de données d'un mot de message, entre une valeur d'origine et une valeur incertaine dudit mot message, ce dispositif de correction d'erreur fournissant une valeur corrigée dudit mot message en réalisant un calcul logique, dit décodage, à partir, d'une part, de la valeur incertaine du mot de message et, d'autre part, d'un nombre déterminé de bits de contrôle formant un ensemble dit syndrome de contrôle, ledit syndrome de contrôle représentant une comparaison entre les valeurs, calculées avant et après l'erreur potentielle, d'un ensemble de bits de signature formant un syndrome de signature dépendant de la valeur du mot message, caractérisé en ce qu'il comprend d'une part, des premiers moyens de décodage dont les entrées sont connectées à un nombre de bits de contrôle strictement inférieur au nombre de bits du syndrome de contrôle, pour décoder au moins un bit du message corrigé, et d'autre part, des deuxièmes moyens de décodage dont les entrées sont connectées à au moins Lois bits du syndrome de contrôle, pour décoder au moins un bit du message corrigé.  10. Device for systematically correcting an error that may occur, within the data bits of a message word, between an original value and an uncertain value of said message word, this error correction device providing a value corrected said message word by performing a logic calculation, said decoding, from, on the one hand, the uncertain value of the message word and, on the other hand, a determined number of control bits forming a set said syndrome control syndrome representing a comparison between the values, calculated before and after the potential error, of a set of signature bits forming a signature syndrome dependent on the value of the message word, characterized in that comprises on the one hand, first decoding means whose inputs are connected to a number of control bits strictly less than the number of bits of the control syndrome, for decoding at least one bit of the message cor rigé, and secondly, second decoding means whose inputs are connected to at least Lois bits syndrome control, to decode at least one bit of the corrected message. 11. Dispositif selon la revendication 10, caractérisé en ce que les moyens de décodage sont agencés de sorte qu'au moins un bit de message corrigé est décodé par un circuit logique de décodage comprenant une porte logique de type AND ou NAND ou OR ou NOR et dont les entrées sont connectées de façon à recevoir l'état de tous les bits de contrôle utilisés pour le décodage dudit bit de message corrigé.  11. Device according to claim 10, characterized in that the decoding means are arranged such that at least one corrected message bit is decoded by a decoding logic circuit comprising a logic gate of the type AND or NAND or OR or NOR and whose inputs are connected to receive the status of all the control bits used for decoding said corrected message bit. 12. Dispositif selon l'une des revendications 10 à 11, caractérisé en ce que les moyens de décodage sont agencés de sorte qu'au moins un bit de message corrigé est décodé par un circuit logique de décodage comprenant une porte logique de type AND ou NAND dont les entrées dépendent de l'état des différents bits de contrôle utilisés pour le décodage dudit bit de message corrigé.- 31 -  12. Device according to one of claims 10 to 11, characterized in that the decoding means are arranged such that at least one corrected message bit is decoded by a decoding logic circuit comprising a logic gate of the type AND NAND whose inputs depend on the state of the different control bits used for the decoding of said corrected message bit. 13. Dispositif selon l'une des revendications 10 à 12, caractérisé en ce qu'il est agencé pour recevoir des données d'entrée sous la forme d'un mot message écrit et fournir, sous la forme d'un mot message lu, des données de sortie correspondant aux données d'entrée, ce dispositif réalisant une mémorisation avec correction d'erreur et comprenant : - des premiers moyens de codage agencés pour calculer, à partir d'un mot message écrit, une combinaison de bits de parité formant une signature écrite ; - des moyens de mémorisation agencés pour mémoriser le mot message écrit ainsi que la signature écrite, de façon à les restituer ultérieurement ; - des deuxièmes moyens de codage agencés pour calculer, à partir d'un mot message écrit restitué par le circuit de mémorisation, une combinaison de bits de parité formant une signature de contrôle ; et des moyens de décodage agencés pour calculer, à partir du mot message écrit restitué et d'une comparaison entre la signature écrite restituée et la signature de contrôle, un mot message corrigé constituant un mot message lu et correspondant au mot écrit tel qu'il avait été mémorisé.  13. Device according to one of claims 10 to 12, characterized in that it is arranged to receive input data in the form of a written message word and provide, in the form of a read message word, output data corresponding to the input data, this device performing an error correction storage and comprising: - first coding means arranged for calculating, from a written message word, a combination of parity bits forming a written signature; storage means arranged to memorize the written message word as well as the written signature, so as to restore them later; second coding means arranged to calculate, from a written message word restored by the storage circuit, a combination of parity bits forming a control signature; and decoding means arranged to calculate, from the restored written message word and a comparison between the returned written signature and the control signature, a corrected message word constituting a read message word and corresponding to the written word as it had been memorized. 14. Dispositif selon l'une des revendications 10 à 13, caractérisé en ce qu'il coopère avec un dispositif de communication et est agencé pour corriger des données d'entrée comprenant un mot message reçu associé à une signature reçue et provenant d'une transmission ou d'un traitement à risque portant sur un mot message envoyé associé à une signature envoyée, et pour fournir, sous la forme d'un mot message corrigé, des données de sortie correspondant au mot message reçu tel qu'il était avant la transmission ou le traitement à risque, ce dispositif réalisant une détection et correction d'erreur et comprenant : - des moyens de codage agencés pour calculer, à partir d'un mot message reçu, une combinaison de bits de parité formant une signature de contrôle et correspondant à la signature envoyée ; et - des moyens de décodage agencés pour calculer, à partir du mot message reçu ainsi que de la signature reçue et de la signature de- 32 - contrôle, un mot message corrigé correspondant au mot message envoyé.  14. Device according to one of claims 10 to 13, characterized in that it cooperates with a communication device and is arranged to correct input data comprising a received message word associated with a received signature and from a transmission or risk processing involving a sent message word associated with a sent signature, and to provide, in the form of a corrected message word, output data corresponding to the received message word as it was before transmission or risky processing, this device performing an error detection and correction and comprising: encoding means arranged for calculating, from a received message word, a combination of parity bits forming a control signature and corresponding to the signature sent; and decoding means arranged to calculate, from the received message word as well as the received signature and the control signature, a corrected message word corresponding to the sent message word.
FR0510849A 2005-10-25 2005-10-25 Systematic error correcting method for e.g. computer memory chip, involves decoding corrected message bit by logical calculation performed from combination of number of control bits lower than total number of bits of control syndrome Pending FR2892576A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR0510849A FR2892576A1 (en) 2005-10-25 2005-10-25 Systematic error correcting method for e.g. computer memory chip, involves decoding corrected message bit by logical calculation performed from combination of number of control bits lower than total number of bits of control syndrome

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0510849A FR2892576A1 (en) 2005-10-25 2005-10-25 Systematic error correcting method for e.g. computer memory chip, involves decoding corrected message bit by logical calculation performed from combination of number of control bits lower than total number of bits of control syndrome

Publications (1)

Publication Number Publication Date
FR2892576A1 true FR2892576A1 (en) 2007-04-27

Family

ID=37057408

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0510849A Pending FR2892576A1 (en) 2005-10-25 2005-10-25 Systematic error correcting method for e.g. computer memory chip, involves decoding corrected message bit by logical calculation performed from combination of number of control bits lower than total number of bits of control syndrome

Country Status (1)

Country Link
FR (1) FR2892576A1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5383205A (en) * 1991-06-24 1995-01-17 Mitsubishi Denki Kabushiki Kaisha Semiconductor memory device having an error correction circuit and an error correction method of data in a semiconductor memory device
EP0310220B1 (en) * 1987-09-29 1995-05-03 Hewlett-Packard Company An apparatus useful for correction of single bit errors and detection of double bit errors in the transmission of data
US20020184592A1 (en) * 2001-06-04 2002-12-05 Mitsuhiro Koga Semiconductor memory device
US20030046635A1 (en) * 2001-04-03 2003-03-06 Stmicroelectronics S.A. High-efficiency error detection and/or correction code

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0310220B1 (en) * 1987-09-29 1995-05-03 Hewlett-Packard Company An apparatus useful for correction of single bit errors and detection of double bit errors in the transmission of data
US5383205A (en) * 1991-06-24 1995-01-17 Mitsubishi Denki Kabushiki Kaisha Semiconductor memory device having an error correction circuit and an error correction method of data in a semiconductor memory device
US20030046635A1 (en) * 2001-04-03 2003-03-06 Stmicroelectronics S.A. High-efficiency error detection and/or correction code
US20020184592A1 (en) * 2001-06-04 2002-12-05 Mitsuhiro Koga Semiconductor memory device

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
A. KAZEMINEJAD, E BELHAIRE: "Fast, minimal decoding complexity, system level, binary systematic (41,32) single-error-correcting codes for on-chip DRAM applications", PROCEEDINGS OF THE 2001 IEEE INTERNATIONAL SYMPOSIUM ON DEFECT AND FAULT TOLERANCE IN VSLI SYSTEMS, 24 October 2001 (2001-10-24), San Francisco, USA, pages 308 - 313, XP002402585 *
A. KAZEMINEJAD: "Fast, minimal decoding complexity, systematic (13,8) single-error-correcting codes for on-chip DRAM applications", IEEE ELECTRONIC LETTERS, vol. 37, no. 7, 29 March 2001 (2001-03-29), pages 438 - 440, XP002402584 *

Similar Documents

Publication Publication Date Title
EP0995272B1 (en) Product code iterative decoding
EP0735696B1 (en) Iterative decoding method, decoding module and decoder therefor
EP0484259B1 (en) Binary coding method with uniform switching rate of the binary elements and incrementation/decrementation method therefor
FR2686990A1 (en) ARITHMETIC UNIT HAVING AN ACCUMULATION OPERATION.
WO2009095574A2 (en) Method and entity for probabilistic symmetrical encryption
EP0108655A1 (en) System for the detection and correction of transmission errors in a binary message using an error detecting and correcting interleaved Reed-Solomon cyclic code
FR3004036A1 (en) DEVICE AND METHOD FOR PROCESSING DATA
FR2981472A1 (en) DEVICE AND METHOD FOR PRODUCING A BIT SEQUENCE
FR2900294A1 (en) Low density parity check decoder`s input/channel memory loading method for set top box, involves carrying out memory accesses in page mode for writing binary word streams in respective zones of input/channel memory by controlling module
WO2014131546A1 (en) Method for encoding data on a chip card by means of constant-weight codes
FR2831971A1 (en) METHOD FOR MEMORIZING DATA WITH ERROR CORRECTION
EP0204612B1 (en) Method for transmitting data with a possibility for packet error correction, and coding and decoding apparatus for carrying out said method
FR2871976A1 (en) LDPC DECODER
FR2866966A1 (en) Decryption circuit for integrated circuit, has signals delivering unit to deliver decrypted signals on data lines, and initial clock signal inserting unit to insert respective initial state on lines between respective states of signals
EP1766785A1 (en) Method for iteratively decoding block codes and decoding device therefor
FR2866998A1 (en) Algebraic geometry code decoding method for encoded digital signal receiving apparatus, involves implementing errors correction algorithm adapted to Reed-Solomon code in order to calculate errors on components of Reed-Solomon code word
FR2891419A1 (en) Block decoder e.g. channel decoder, for digital satellite television receiver, has decoding unit processing data blocks stored in input memory, and control unit multiplexing blocks as input to decoding unit by recording and reading blocks
BE898544R (en) Associative calculator allowing rapid multiplication.
EP1071008B1 (en) Method for performing multiplication with accumulation in a Galois field
FR2892576A1 (en) Systematic error correcting method for e.g. computer memory chip, involves decoding corrected message bit by logical calculation performed from combination of number of control bits lower than total number of bits of control syndrome
FR2834146A1 (en) A compact turbo-decoder having high efficiency, comprises two sets of processors for computing in parallel the syndromes and for updating in parallel the block, respectively
EP0341097B1 (en) Recursive adder to calculate the sum of two operands
EP2786497B1 (en) Method for maximising the decoding capacity of an error correcting code using supplementary syndromes
EP1300952A1 (en) High efficiency error detection and/or correction code
FR2880218A1 (en) DECODING METHOD FOR ALGEBRATIC GEOMETRY CODES AND DEVICE THEREOF