Brevet FR2892576A1 — publié le 20070427

-1- Procédé et dispositif de correction d'erreur dans des circuits électroniques de traitement de données 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. 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. 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. 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. 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. 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 . 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. 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. 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. 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é. 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 - 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 15 la matrice de contrôle complète suivante : 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, 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) = 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. 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. 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. 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. 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. 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. 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%. 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. 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. 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. 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. 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. 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. 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é. 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 . 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. 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. 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. 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.- 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é. 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é. 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 - 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é. 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é.