FR2823035A1 - Code de detection et/ou de correction d'erreurs a haute efficacite - Google Patents

Code de detection et/ou de correction d'erreurs a haute efficacite Download PDF

Info

Publication number
FR2823035A1
FR2823035A1 FR0104508A FR0104508A FR2823035A1 FR 2823035 A1 FR2823035 A1 FR 2823035A1 FR 0104508 A FR0104508 A FR 0104508A FR 0104508 A FR0104508 A FR 0104508A FR 2823035 A1 FR2823035 A1 FR 2823035A1
Authority
FR
France
Prior art keywords
matrix
sub
bits
columns
matrices
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.)
Granted
Application number
FR0104508A
Other languages
English (en)
Other versions
FR2823035B1 (fr
Inventor
Laurent Murillo
Francois Ricodeau
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.)
STMicroelectronics SA
Original Assignee
STMicroelectronics SA
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 STMicroelectronics SA filed Critical STMicroelectronics SA
Priority to FR0104508A priority Critical patent/FR2823035B1/fr
Priority to US10/115,577 priority patent/US7203896B2/en
Publication of FR2823035A1 publication Critical patent/FR2823035A1/fr
Application granted granted Critical
Publication of FR2823035B1 publication Critical patent/FR2823035B1/fr
Anticipated expiration legal-status Critical
Expired - Fee Related 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

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)

Abstract

La présente invention concerne un procédé pour déterminer r bits de détection d'erreur pouvant être associés à un mot de m bits à coder, comprenant l'étape consistant à faire le produit d'un vecteur à m composantes représentatif du mot de m bits à coder et d'une matrice de contrôle de parité (M) de dimension r x m. La matrice de contrôle de parité est telle que chaque colonne de ladite matrice comporte un nombre impair de " 1 " supérieur ou égal à trois. L'invention concerne aussi un procédé pour déterminer un syndrome.

Description

<Desc/Clms Page number 1>
CODE DE DÉTECTION ET/OU DE CORRECTION D'ERREURS À HAUTE
Figure img00010001

EFFICACITÉ
Figure img00010002

La présente invention concerne les codes de détection et/ou de correction d'erreurs, et en particulier les codes linéaires de type Hamming.
Le code de Hamming est un code de détection et de correction d'erreurs utilisé dans de nombreux domaines, par exemple en stockage ou en transmission de données. On va décrire son utilisation en stockage de données dans une mémoire, dans le cas où les données à mémoriser sont sous forme de mots de 16 bits.
Soit X le mot à stocker. X peut être représenté par un vecteur Xe, dont les 16 composantes Xo à X15 correspondent aux 16 bits du mot à stocker. Cinq bits de détection d'erreur Ci (Co à C4) sont obtenus en multipliant une matrice de contrôle de parité H, dite matrice de Hamming, de dimension 5 x 16 par le vecteur Xe, sous forme de vecteur colonne.
La figure 1A illustre la matrice de Hamming H pour 16 bits et la figure 1B le mode d'obtention des bits de détection.
Si l'on appelle hij les éléments de la matrice H, les bits de détection d'erreur Ci sont donnés par :
<Desc/Clms Page number 2>
Figure img00020001

Xj étant la jième composante du vecteur Xe.
En écriture, on inscrit dans la mémoire des mots de 21 bits, formés des 16 bits de données Xj et des 5 bits de détection Ci. En lecture, le mot lu comprend 16 bits Xr correspondant aux bits de données et 5 bits Cr correspondant aux bits de détection.
Figure img00020002

xr et Cr peuvent ne pas être égaux à Xj et Ci si des erreurs ont eu lieu entre les opérations d'écriture et de lecture.
Pour détecter et/ou corriger des erreurs éventuelles sur les bits lus, un syndrome S à cinq composantes So à S4 est calculé en multipliant une matrice déterminée H'de dimension 5 x 21 par un vecteur colonne à 21 composantes, comprenant les 16 bits xr et les 5 bits Cr reçus.
La figure 2A illustre la matrice H'. Les 16 premières colonnes de la matrice H'correspondent aux 16 colonnes de la matrice H. Les 5 colonnes suivantes comprennent chacune un seul
Figure img00020003

r. La 17ème colonne a son s sur la première ligne, la 18ème colonne a son"1"sur la deuxième ligne, et ainsi de suite jus- qu'à la 21ème colonne, qui a son ! sur la cinquième ligne. Les cinq dernières colonnes de la matrice H'servent à déterminer des erreurs éventuelles dans les bits de détection.
La figure 2B illustre le calcul du syndrome S.
Si le syndrome S a toutes ses composantes égales à 0, le stockage a eu lieu sans erreur et tous les bits du mot lu, bits de données ou bits de détection, sont corrects.
Si S est différent de 0, le mot lu comporte une ou plusieurs erreurs. Si un seul bit du mot lu est erroné, le syndrome obtenu permet de corriger l'erreur. En effet, le syndrome correspond dans ce cas à la colonne dont les éléments ont été multipliés par le bit erroné. Ainsi, si le syndrome calculé est égal à :
<Desc/Clms Page number 3>
Figure img00030001

les composantes (00011) du syndrome correspondent aux éléments de la première colonne de la matrice de Hamming et cela signifie que le premier bit, Xi, est erroné.
De même, si le syndrome calculé est égal à
Figure img00030002

et qu'il n'y a qu'une seule erreur dans le mot lu, cela signifie que c'est le premier bit de détection Co qui est erroné.
Un inconvénient du code de Hamming ci-dessus est qu'il ne peut pas détecter deux erreurs. Par exemple, si une erreur s'est produite sur les bits X, et X2, le syndrome obtenu est égal à la somme modulo 2 des syndromes correspondant à des erreurs sur Xl et X2, c'est-à-dire à : S'''= (00101) + (00110) = (00011). Le syndrome obtenu indique une erreur sur le bit Xi, ce qui est faux.
En effet, on sait que le code de Hamming ci-dessus a une distance minimale de code d = 3 et qu'un code linéaire comme le code de Hamming est capable de corriger L erreurs et de détecter L+l erreurs si sa distance minimale de code d est strictement supérieure à 2L+1.
Pour améliorer le code ci-dessus et en faire un code ayant une distance minimale de code égale à 4, il est connu d'adjoindre au mot à stocker un bit de parité totale P.
Le bit de parité totale P est calculé en faisant la somme module 2 de tous les bits de données et de tous les bits de détection. Le bit de parité est ajouté au mot à stocker, et l'ensemble constitué
<Desc/Clms Page number 4>
Figure img00040001

par le mot à stocker, les bits de détection et le bit de parité totale est mémorisée.
En lecture, le mot lu est multiplié par la matrice de contrôle de parité H" représentée en figure 3A. La matrice H"a une ligne et une colonne de plus que la matrice HI. La matrice H" comporte, en haut et à gauche, c'est-à-dire sur les cinq premières lignes et les 21 premières colonnes, un bloc identique à la matrice H'. La dernière ligne D de la matrice Ht ne comporte que des "1", et la dernière colonne de la matrice H" ne comporte que des"0", à l'exception de la dernière ligne.
Le syndrome obtenu S'est illustré en figure 3B. Le syndrome S'comporte six composantes SO à S5, et est obtenu en multipliant la matrice H"par un vecteur colonne comportant les 22 bits du mot lu, composé des 16 bits de données lus, suivis des cinq bits de détection lus et du bit de parité totale lu.
Le code ainsi obtenu est un code dit"SEC-DED" ("Single Error Correction"-"Double Error Détection"), signifiant"Correction d'une erreur-Détection de deux erreurs". Ce code peut détecter deux erreurs dans tous les cas, deux erreurs étant indiquées par le fait que la dernière composante du syndrome, S5, est nulle alors que le syndrome est différent du vecteur nul. Cependant, le code ci-dessus présente l'inconvénient de nécessiter le calcul du bit de parité totale P. Ce calcul est long, car il nécessite l'addition module 2 de chacun des bits de données et des bits de détection. Le calcul du bit de parité totale ne peut pas être effectué en parallèle avec les bits de détection, car son calcul nécessite la connaissance préalable des bits de détection. Par conséquent, il faut attendre que tous les bits de détection aient été calculés pour effectuer le calcul du bit de parité totale P. Il en résulte une perte de temps, ainsi qu'un nombre élevé d'additionneurs module 2.
Un autre inconvénient du code de Hamming décrit ci-dessus est que la matrice de Hamming n'est ni symétrique, ni régulière. Si l'on considère que les éléments d'une colonne correspondent à la représentation binaire d'un nombre, la variation de ce nombre n'est pas régulière et connaît des sauts. Ces sauts rendent
<Desc/Clms Page number 5>
difficiles la réalisation d'un circuit mettant en oeuvre le code de Hamming ainsi que le décodage du syndrome, c'est-à-dire la détermination du bit erroné.
Un objet de la présente invention est de prévoir un code de détection et/ou de correction d'erreurs de type SEC-DED, à savoir permettant la correction d'une erreur et la détection de deux erreurs qui est plus simple que le code de Hamming correspondant.
Un autre objet de la présente invention est de prévoir un procédé pour mettre en oeuvre un tel code de détection et/ou de correction d'erreurs.
Un autre objet de la présente invention est de prévoir un procédé pour mettre en oeuvre un tel code de détection et/ou de correction d'erreurs qui puisse être mis en oeuvre de façon simple par un circuit intégré.
Un autre objet de la présente invention est de prévoir un procédé pour mettre en oeuvre un tel code de détection et/ou de correction d'erreurs permettant un décodage facile.
Pour atteindre ces objets, la présente invention prévoit un procédé pour déterminer r bits de détection d'erreur pouvant être associés à un mot de m bits à coder, comprenant l'étape consistant à faire le produit d'un vecteur à m composantes représentatif du mot de m bits à coder et d'une matrice de contrôle de parité de dimension r x m. La matrice de contrôle de parité est telle que chaque colonne de ladite matrice comporte un nombre impair de"1"supérieur ou égal à trois.
Selon un mode de réalisation de la présente invention, les r-3 derniers éléments de chaque colonne de ladite matrice font partie d'une première sous-matrice de rang i, la représentation binaire desdits r-3 éléments indiquant le rang i de la première sous-matrice.
Selon un mode de réalisation de la présente invention, les premières sous-matrices comprennent des sous-matrices de dimension (r-3) xl et des sous-matrices de dimension (r-3) x3.
<Desc/Clms Page number 6>
Selon un mode de réalisation de la présente invention, les trois premières lignes de la matrice de contrôle de parité comprennent des secondes sous-matrices, dans lequel les secondes sous-matrices comprennent des sous-matrices de dimension 3xl et des sous-matrices de dimension 3x3, les secondes sous-matrices de dimension 3x1 ne comportant que des"0"ou que des"1", et les secondes sous-matrices de dimension 3x3 étant soit la matrice identité, soit son inverse.
Selon un mode de réalisation de la présente invention, la première seconde sous-matrice est une sous-matrice de dimension 3x1 ne comportant que des"1", et dans lequel les autres premières sous-matrices de dimension 3xl ne comportent que des"0".
Selon un mode de réalisation de la présente invention, la seconde sous-matrice de rang i a un nombre de colonnes égal au nombre de colonnes de la première sous-matrice de même rang.
Selon un mode de réalisation de la présente invention, deux ou plusieurs lignes et/ou colonnes de la matrice de contrôle de parité sont permutées.
Selon un mode de réalisation de la présente invention, le nombre r des bits de détection d'erreurs est égal à n+2, n étant tel que le nombre de bits du mot à coder peut être représenté par n bits.
La présente invention concerne aussi un procédé de détermination d'un syndrome représentatif d'erreurs éventuelles survenues, au cours d'un traitement, à un mot de m+r bits, les m+r bits correspondant, avant traitement, à m bits d'un mot à coder et r bits de détection d'erreurs obtenus par un procédé selon une des revendications précédentes appliqué au mot de m bits à coder, le syndrome étant obtenu au cours d'une étape consistant à multiplier une matrice particulière de dimension r x (m+r) par un vecteur à m+r composantes représentatives dudit mot de m+r bits. Ladite matrice particulière comporte :
<Desc/Clms Page number 7>
a) pour les m premières colonnes, un bloc de dimension r x m correspondant à la matrice de contrôle de parité utilisée au codage, et b) pour les r dernières colonnes, un bloc de dimension r x r en forme de matrice diagonale, ne comportant que des"1" sur sa diagonale principale et des"0"partout ailleurs.
Ces objets, caractéristiques et avantages, ainsi que d'autres de la présente invention seront exposés en détail dans la description suivante de modes de réalisation particuliers faite à titre non-limitatif en relation avec les figures jointes parmi lesquelles : les figures lA et lB, précédemment décrites, représentent respectivement une matrice de Hamming H et le mode d'obtention de bits de détection pour coder un mot de 16 bits ; les figures 2A et 2B, précédemment décrites, représentent respectivement une matrice de Hamming H'pour calculer un syndrome et le mode de calcul du syndrome pour un mot de 16 bits ; les figures 3A et 3B, précédemment décrites, représentent respectivement une matrice de Hamming H utilisé dans un code permettant de détecter deux erreurs pour des mots de 16 bits et le mode de calcul du syndrome correspondant ; la figure 4A représente une matrice de contrôle de parité M selon la présente invention pour coder un mot de 16 bits ;
La figure 4B représente une matrice M'selon la présente invention pour décoder un mot de 16 bits ; la figure 4C représente schématiquement un circuit pour décoder un mot codé à l'aide de la matrice M ; la figure 4D représente un élément du circuit de la figure 4C ; les figures SA et SB représentent respectivement une matrice de contrôle de parité M2 selon la présente invention pour coder un mot de 32 bits et une matrice M'2 pour décoder un mot codé à l'aide de la matrice M2 ;
<Desc/Clms Page number 8>
la figure 6A représente une matrice de contrôle de parité M3 selon la présente invention pour coder un mot de 64 bits ; et la figure 6B représente une variante de la matrice M3.
La figure 4A représente une matrice de contrôle de parité M permettant de coder des mots de 16 bits. La matrice M est une matrice de dimension 6 x 16.
Les trois premières lignes de la matrice M sont constituées par six sous-matrices Ai, i représentant la position de la sous-matrice et allant de 0 à 5. La sous-matrice AO comporte une seule colonne qui ne comprend que des 9. Les sousmatrices suivantes sont des matrices carrées de dimension 3x3.
Les sous-matrices Al, A2 et A4 sont identiques. Elles comportent des 0 sur leur diagonale principale et des 1 partout ailleurs.
Les sous-matrices A3 et A5 sont identiques. Elles comportent des 1 sur leur diagonale principale et des 0 partout ailleurs. Les sous-matrices A3 et AS correspondent à la matrice identité I et les sous-matrices Al, A2 et A4 à l'inverse de la matrice identité, I.
Les trois dernières lignes de la matrice M sont constituées par six sous-matrices Bi, i représentant la position de la sous-matrice et allant de 0 à 5. Chaque sous-matrice Bi est située sous la matrice Ai de même rang et a le même nombre de
Figure img00080001

colonnes que celle-ci. Toutes les colonnes d'une matrice Bi sont identiques. La représentation binaire des éléments d'une colonne de la sous-matrice Bi indiquent le rang i de la sous-matrice.
Ainsi par exemple, la sous-matrice BO ne comprend qu'une colonne formée des éléments"000"et chacune des trois colonnes de la sous-matrice B4 est constituée des éléments"100", représentation binaire du nombre 4.
Chaque colonne de la matrice M est différente des autres colonnes de la matrice M. Les colonnes de la matrice M sont deux à deux linéairement indépendantes, c'est-à-dire que la somme module 2 de deux colonnes quelconques de la matrice M ne
<Desc/Clms Page number 9>
redonne pas une colonne de la matrice M. En outre, chacune des colonnes de la matrice M ne comporte que trois t
Pour coder un mot de 16 bits, on détermine d'abord 6 bits de détection C0 à C5 en multipliant la matrice M par un vecteur colonne ayant pour composantes les bits du mot à coder. Ensuite, on affecte les 6 bits de détection aux 16 bits du mot à coder et on mémorise le tout.
La figure 4B représente la matrice M'utilisée pour décoder des mots codés à l'aide de la matrice M. Au décodage, le mot lu est un mot de 22 bits, constitué de 16 bits de données et 6 bits de détection.
La matrice M'est une matrice de dimension 6 x 22. La matrice M'est constituée de deux blocs. Un premier bloc, à gauche, formant les 16 premières colonnes de la matrice M', est identique à la matrice M. Un deuxième bloc C, à droite, représentant les 6 dernières colonnes de la matrice M', est une matrice diagonale carrée de dimension 6 x 6 qui ne comporte que des t sur sa diagonale principale et des"0"partout ailleurs.
Toutes les colonnes de la matrice M'sont différentes les unes des autres et deux à deux linéairement indépendantes.
Le code réalisé à l'aide des matrices M et M'est un code de type SEC-DED, c'est-à-dire permettant la correction d'une erreur et la détection de deux erreurs. Au décodage, on multiplie la matrice M'par un vecteur colonne ayant pour composantes les bits de données et de détection du mot lu. Le résultat de cette multiplication est un syndrome se présentant sous la forme d'un vecteur colonne de six composantes, SO à S5.
Si le syndrome obtenu est le vecteur nul (toutes ses composantes sont égales à zéro), il n'y a pas d'erreur, ni sur les bits de données, ni sur les bits de détection. Si le syndrome obtenu n'est pas le vecteur nul et la parité du syndrome est
Figure img00090001

impaire (SO OS1 0 S2 < 3 S3 (D S4 ? S5 = 1), il y a une seule erreur. Cette erreur peut être corrigée, les composantes du syndrome correspondant à la colonne de la matrice M'qui a été multipliée par le bit erroné. On remarquera que, comme la
<Desc/Clms Page number 10>
représentation binaire des éléments d'une sous-matrice Bi correspond au rang de la sous-matrice, la recherche du bit erroné est très simplifiée par rapport à l'art antérieur. Si le syndrome obtenu n'est pas le vecteur nul et la parité du syndrome est paire, deux erreurs se sont produites et sont détectées.
La figure 4C représente schématiquement un circuit 1 pour calculer le syndrome précédent. Sur 22 entrées EO à E21, le
Figure img00100001

circuit reçoit les 16 bits de données lus XO à X15 et les 6 bits de détection lus C0 à C5. Le circuit comporte 6 sorties SO à S5 fournissant les six composantes du syndrome. Chaque entrée Ei est reliée à une colonne de rang i du circuit. Chaque sortie Sj est reliée à une colonne de rang j. A l'intersection de la colonne i et de la ligne j peut se trouver un additionneur modulo 2 Gi, j indiqué par un cercle marqué d'une croix. Les additionneurs sont par exemple réalisés par des portes OU-Exclusif.
Comme cela est représenté en figure 4D, l'additionneur Gi, j comporte deux entrées ei et ej. L'entrée ei est reliée à l'entrée Ei et l'entrée ej reçoit le signal présent sur la ligne j à gauche de l'addi tionneur Gi, j. L'additionneur Gij comporte aussi une sortie s située sur la ligne j à droite de l'additionneur Gi-j.
Lorsqu'il n'y a pas d'additionneur à l'intersection de la colonne i et de la ligne j, cela signifie que la colonne i et la ligne j se croisent sans influence l'une sur l'autre. Cela signifie que le bit fourni à l'entrée concernée n'est pas utilisé pour le calcul de la composante Sj du syndrome. Une colonne supplémentaire, a, située à gauche de la colonne 0 relie l'entrée ej de chaque premier additionneur d'une colonne à la masse (GND).
Le fonctionnement du circuit de décodage va être expliqué pour le calcul de la composante S3 du syndrome, correspondant à la ligne de rang 3. En partant de la gauche, le premier additionneur rencontré est l'additionneur Glo, 3. L'entrée e3 de l'additionneur G, 3 est reliée à la masse et son entrée elO reçoit le bit de données X10 par l'intermédiaire de l'entrée
Figure img00100002

E10 du circuit. En sortie de l'additionneur G10, 3, on a
<Desc/Clms Page number 11>
Figure img00110001

s = 0 E X10, c'est-à-dire X10. Le signal fourni par l'additionneur G10, 3 attaque l'entrée ell de l'additionneur Gll, 3, qui effectue le calcul X10 ? Xll. Le calcul se poursuit ainsi jusqu'à l'additionneur Gl9 3, qui réalise l'addition modulo 2 du résultat fourni par l'additionneur G, 3 et du bit de détection C3. Ainsi, on a : S3 = X10 E Xll E X12 ? X13 ? X14 E X15 (D C3, ce qui correspond bien à la multiplication de la quatrième ligne de la matrice M'par un vecteur ayant pour composantes les bits du mot lu. De façon générale, le circuit de décodage de la figure 4C reprend la structure de la matrice M', les lignes et les colonnes du circuit correspondant aux lignes et aux colonnes de la matrice M', un additionneur modulo 2 étant situé là où la matrice M'comporte un 1.
Dans le code décrit en relation avec les figures 4A à 4D, il est inutile de calculer un bit de parité totale pour pouvoir détecter deux erreurs, contrairement à l'art antérieur. Toutes les composantes du syndrome peuvent être calculées en parallèle, d'où un gain de temps. Le motif formé par les additionneurs est assez répétitif, ce qui favorise la réalisation du circuit. Le circuit utilisé pour le codage n'a pas été représenté. Il correspond au circuit de décodage, à l'exception des six dernières colonnes, qui sont supprimées. Les sorties du circuit de codage fournissent les bits de détection.
Bien entendu, il est possible de généraliser le codage et décodage de la présente invention à des mots de plus de 16 bits.
La figure 5A illustre une matrice de contrôle de parité M2 pour coder des mots de 32 bits. Lors de la description de la formation de la matrice M2, on s'attachera à énoncer les principes généraux servant à réaliser les matrices de contrôle de parité selon la présente invention.
De façon générale, dans le code selon la présente invention, chaque colonne de la matrice de contrôle de parité comporte un nombre impair de"1"supérieur ou égal à 3. De façon
<Desc/Clms Page number 12>
générale également, on s'attachera, bien que cela ne soit pas nécessaire, à former d'abord toutes les combinaisons de colonne possibles comportant trois"1", puis les combinaisons comportant cinq"1", et ainsi de suite si besoin est.
Pour former une matrice de contrôle de parité selon la présente invention, on commence par déterminer le nombre de bits de détection nécessaires, qui détermine la dimension de la matrice de contrôle de parité. De façon générale, le nombre de bits de détection utilisés dans le présent code est égal à n + 2, 2n représentant un nombre supérieur ou égal au nombre de bits du mot à coder. Ainsi, dans l'exemple précédent pour 16 bits, nous avions 16 = 24, ce qui faisait un nombre de bits de détection égal à 4 + 2 = 6. Dans l'exemple présent, 32 est égal à 25. Il y a donc 7 bits de détection et la matrice de contrôle de parité M2 est de dimension 7 x 32.
Ensuite, on isole un bloc L de la matrice formé des trois premières lignes. Le bloc L va être découpé en sousmatrices Ai. Selon ce qui convient, les sous-matrices Ai sont des sous-matrices colonne formées des éléments"111"ou"000"ou des sous-matrices carrées de dimension 3x3 correspondant à la matrice identité I ou à son inverse 1. Si besoin est, la dernière sousmatrice du bloc L est incomplète.
Sous le bloc L, se trouvent n-l lignes, dont les éléments constituent les colonnes de sous-matrices Bi. Les éléments d'une colonne d'une sous-matrice Bi quelconque sont identiques aux éléments des autres colonnes de la sous-matrice Bi, si elles existent, et leur représentation binaire indique le rang i de la sous-matrice. Les sous-matrices Ai et Bi de même rang sont situées l'une au-dessus de l'autre et ont un même nombre de colonnes.
On va maintenant détailler la formation de la matrice M2 de la figure 5A, en insistant sur le choix entre une et trois colonnes pour les sous-matrices Bi. En figure SA, lorsqu'une sous-matrice Bi comporte trois colonnes, une seule colonne est représentée, par souci de clarté.
<Desc/Clms Page number 13>
La première sous-matrice Bi est la sous-matrice BO de rang 0. la sous-matrice BO est une sous-matrice colonne et tous ses éléments sont nuls. Comme on veut obtenir trois"1"au minimum par colonne, on doit placer au-dessus de la sous-matrice BO une sous-matrice colonne AO de type"111". La sous-matrice BO ne comporte nécessairement qu'une seule colonne car il est impossible d'avoir une configuration comportant trois"1"et se terminant par"0000"autre que la configuration"1110000".
Ensuite, on détermine les sous-matrices Bl et Al, de rang 1. Les éléments d'une colonne de la sous-matrice Bl devant représenter le rang de la sous-matrice, une colonne de la sousmatrice Bl est formée des éléments"0001". Comme on souhaite trois"1"pour chaque colonne de la matrice M2, une colonne de la sous-matrice Bl doit être surmontée par trois éléments dont deux
Figure img00130001

sont des"1"et un est un"O". Cela correspond à trois combinaisons possibles et la sous-matrice Bl va comporter trois colonnes. La sous-matrice Bl est surmontée par la sous-matrice Al, de dimension 3x3. Chaque colonne de la sous-matrice Al doit comporter deux"1"par colonne. Toutes les colonnes de la sousmatrice Al doivent par ailleurs être différentes et deux à deux linéairement indépendantes. Les colonnes de la matrice inverse de la matrice identité répondant à ces critères, c'est elle qui va être choisie comme matrice Al.
Ensuite, la sous-matrice B2 a trois colonnes identiques formées des éléments"0010", dont la représentation binaire est le nombre 2. Au-dessus des trois colonnes de la matrice B2, on place une matrice A2 qui est à nouveau l'inverse de la matrice identité, 1, car cette matrice comporte deux"1"à chaque colonne.
Les trois colonnes de la sous-matrice B3 sont formées des éléments"0011". Chaque colonne de la sous-matrice B3 comportant ici deux"1", on place au-dessus de la sous-matrice B3 une sous-matrice A3 comportant un seul"1"à chaque colonne, les colonnes de la sous-matrice A3 étant différentes et deux à deux
<Desc/Clms Page number 14>
linéairement indépendantes. Pour sous-matrice A3, on choisit la matrice identité I, correspondant à ces critères.
Bien entendu, on pourrait, en restant dans le cadre de la présente invention, intervertir deux colonnes quelconques des sous-matrices Al, A2 ou A3. De façon générale d'ailleurs, toute permutation de deux ou plusieurs lignes ou colonnes d'une matrice de contrôle de parité selon la présente invention procure un code ayant les mêmes effets et avantages que ceux qui sont décrits.
Les sous-matrices B4, B5 et B6 sont formées selon les principes précédents. Elles possèdent chacune trois colonnes, comprenant respectivement les éléments"0100","0101"et"0110".
Les sous-matrices A4, AS et A6 correspondantes sont constituées respectivement par les matrices l, I et 1. Les 19 premières colonnes de la matrice M2 sont ainsi définies.
La sous-matrice suivante, B7, a une colonne seulement.
En effet, la représentation binaire du nombre 7 est"0111". Cette représentation binaire comporte déjà trois "1". Comme on veut que les colonnes de la matrice M2 comportent d'abord toutes les combinaisons possibles ayant trois"1"seulement, la sous-matrice B7 aura une colonne seulement et on choisira les éléments de la sous-matrice A7 égaux à"000".
Les sous-matrice B8, B9 et B10 ont chacune trois colonnes d'éléments respectifs"1000", 1001","1010"et les sousmatrices A8, A9 et A10 correspondantes sont respectivement les matrices I, 1 et I.
La représentation binaire du nombre 11 est"1011".
Cette représentation binaire comportant déjà trois"1", la sousmatrice Bll n'a qu'une seule colonne. La sous-matrice colonne All correspondante a pour éléments "000", car on souhaite épuiser d'abord toutes les combinaisons possibles de trois"1"pour les colonnes de la matrice M2.
Trente colonnes de la matrice M2 sont déjà codées. Il ne reste plus que deux colonnes à déterminer. Ces deux colonnes correspondant à une sous-matrice B12 dont chaque colonne a l'expression"1100". Au-dessus, on va placer une sous-matrice A12
<Desc/Clms Page number 15>
formée d'une partie seulement de la matrice identité I. En figure 5A, on a pris les deux premières colonnes de la matrice identité I, mais bien entendu on pourrait prendre deux quelconques colonnes de la matrice identité I sans que cela sorte du domaine de la présente invention.
La matrice M2 est désormais entièrement formée. Toutes ses colonnes sont distinctes les unes des autres, deux à deux linéairement indépendantes et possèdent trois"1"exactement chacune.
La figure 5B représente une matrice M'2 servant au décodage des mots codés à l'aide de la matrice M2. La matrice M'2 est formée de deux blocs, un premier bloc de dimension 7x32, à gauche et correspondant à la matrice M2, suivi d'un deuxième bloc C"de dimension 7x7, correspondant à une matrice diagonale avec
Figure img00150001

des"1"sur la diagonale principale et des"0"partout ailleurs.
Comme dans le cas précédent, le code obtenu par utilisation des matrices M2 et M'2 est un code de type SEC-DED, permettant la correction d'une erreur et la détection de deux erreurs. Si le syndrome obtenu en multipliant la matrice M'2 par le mot lu est le vecteur nul, il n'y a pas d'erreur. Si le syndrome obtenu n'est pas le vecteur nul et la parité du syndrome est impaire, il y a une seule erreur pouvant être corrigée, les composantes du syndrome correspondant à la colonne de la matrice M'2 qui a été multipliée par le bit erroné. Si le syndrome obtenu n'est pas le vecteur nul et la parité du syndrome est paire, deux erreurs se sont produites et sont détectées.
Jusqu'à présent, on a formé que des matrices de contrôle de parité qui comprennent trois"1"exactement par colonne. Cependant, si l'on cherche à coder des mots plus longs, toutes les combinaisons à trois bits peuvent être épuisées, et des combinaisons comprenant cinq"1"par colonne seront alors utilisées.
Le tableau 1 ci-après indique le nombre de bits de détection utilisés en fonction du nombre de bits du mot à coder, la dimension de la matrice de contrôle de parité utilisée au
<Desc/Clms Page number 16>
codage, le nombre de possibilités de colonnes à trois"1", ainsi que le nombre de colonnes devant comporter cinq"1". TABLEAU 1
Figure img00160001
<tb>
<tb> Nombre <SEP> de <SEP> Nombre <SEP> de <SEP> Dimension <SEP> Nombre <SEP> de <SEP> Nombre <SEP> de
<tb> bits <SEP> du <SEP> mot <SEP> bits <SEP> de <SEP> de <SEP> la <SEP> possibilités <SEP> à <SEP> colonnes
<tb> à <SEP> coder <SEP> détection <SEP> matrice <SEP> trois"1"par <SEP> comportant
<tb> (2n) <SEP> (n+2) <SEP> colonne <SEP> cinq"1"
<tb> 16 <SEP> = <SEP> 24 <SEP> 6 <SEP> 6x16 <SEP> 6x5x4/3'=2 <SEP> 0 > 16 <SEP> 0
<tb> 32 <SEP> = <SEP> 25 <SEP> 7 <SEP> 7x32 <SEP> 7x6x5/3 <SEP> ! <SEP> =35 > 32 <SEP> 0
<tb> 64 <SEP> = <SEP> 26 <SEP> 8 <SEP> 8x64 <SEP> 8x7x6/3 <SEP> ! <SEP> =56 <SEP> 8
<tb> 128 <SEP> = <SEP> 27 <SEP> 9 <SEP> 9x128 <SEP> 9x8x7/3 <SEP> ! <SEP> =84 <SEP> 44
<tb>
Figure img00160002

Le nombre de possibilités de colonnes à trois"1"est donné par la formule : (n-2) (n-l) n/3 !, avec 3 ! = 3 x 2 = 6. Dans le tableau 1, on voit que pour 16 et 32 bits, les possibilités de colonnes comportant trois"1"sont supérieures au nombre de colonnes de la matrice de contrôle de parité. Par conséquent, il est inutile d'utiliser des colonnes comportant cinq"1"pour construire ces matrices. Pour des mots à coder de 64 bits, il faut 8 bits de détection et chaque colonne de la matrice de contrôle de parité a 8 éléments. Le nombre total de colonnes à trois"1"est égal à 56. Par conséquent, on utilisera les 56 possibilités offertes pour des colonnes à trois"1"et on complétera par 64-56 = 8 colonnes comportant cinq"1". Pour des mots de 128 bits, on utilise 9 bits de détection. La matrice de contrôle de parité est de dimension 9 x 128. Le nombre total de colonnes différentes comportant trois"1"est égal à 84 et il faudra compléter la matrice de contrôle de parité avec 44 colonnes comportant cinq s A titre d'exemple, pour illustrer comment ces colonnes comportant cinq"1"sont introduites, on va expliquer la formation de la matrice de contrôle de parité selon la présente invention pour des mots de 64 bits. On notera que, si l'on souhaitait coder des mots comportant un très grand nombre de
<Desc/Clms Page number 17>
Figure img00170001

bits, il est possible, après épuisement des combinaisons de colonnes à cinq 11111, de créer des colonnes comportant sept"1" etc., l'invention n'étant pas limitée à des colonnes comportant trois ou cinq"1".
La figure 6A représente une matrice de contrôle de parité M3 selon la présente invention destinée à coder des mots de 64 bits. Le nombre de bits de détection est égal à 8 et la matrice M3 est de dimension 8x64. Les 32 premières colonnes de la matrice M3 correspondent aux colonnes de la matrice M2, à l'exception près que chacune des 32 premières colonnes de la matrice M3 comporte 8 éléments au lieu de 7, le quatrième élément de chaque colonne étant un élément supplémentaire égal à 0. En figure 6A, les 30 premières colonnes de la matrice M3 n'ont pas été représentées en détail. Elles comprennent, sur les trois premières lignes, les sous-matrices AO,... All de la matrice M2.
Ensuite, toujours en ne considérant que les trente premières colonnes, se trouve une quatrième ligne ne comportant que des 11011. En dessous, les quatre dernières lignes comprennent les sous-matrices BO à Bll de la matrice M2.
Les deux colonnes suivantes, à savoir les colonnes de rang 30 et 31, correspondent aux deux dernières colonnes de la matrice M2. Ici cependant, la sous-matrice B12 est une sousmatrice de dimension 5x3, dont les éléments d'une colonne sont "01100". La sous-matrice B12 est surmontée par la matrice identité I de dimension 3x3, afin que chacune des colonnes 31,32
Figure img00170002

et 33 de la matrice M3 comporte trois 11111. La suite de la matrice M3 est formée selon les principes décrits en relation avec les exemples précédents.
Ainsi, la sous-matrice B13 ne possède qu'une seule colonne d'éléments "01101", surmontée par trois "0", puisqu'il y a déjà trois"1"dans l'expression binaire du nombre 14. Ensuite, vient la sous-matrice colonne B14 d'éléments"01110", également surmontée de trois"0".
Pour former la sous-matrice B15, on exprime d'abord le nombre 15 en binaire, ce qui donne 01111. Pour la première fois,
<Desc/Clms Page number 18>
Figure img00180001

quatre"1"sont présents dans une colonne d'une sous-matrice Bi. Comme on souhaite avoir un nombre impair de"1 ! par colonne, on placera, au-dessus de la matrice B15, une sous-matrice A15 égale à la matrice identité I.
Ensuite, vient la sous-matrice B16, dont la colonne a pour expression un"10000", surmontée par la matrice I, afin de disposer de trois"1"par colonne. Les sous-matrices B17, B18 et B20 comprennent deux"1"par colonne. Les sous-matrices B17, B18 et B20 ont trois colonnes chacune et sont surmontées par des sous-matrices Ai correspondantes égales à la matrice identité I. Les sous-matrices B19, B21 et B22 ont des colonnes comprenant trois"l". Les sous-matrices B19, B21 et B22 n'ont qu'une colonne chacune, surmontée par une sous-matrice Ai de forme "000".
La sous-matrice suivante, B23, a trois colonnes d'expression "10111", qui comportent quatre "1", comme la sousmatrice B15. Pour que les colonnes correspondantes de la matrice
Figure img00180002

M3 comportent cinq"1", une sous-matrice A23 égale à la matrice identité I est placée sur la sous-matrice B23. La matrice M3 comporte désormais six colonnes qui possèdent cinq"1". En figure 6A, les références des sous-matrices Bi entourées par un cercle sont celles qui correspondent à des colonnes de la matrice M3 comportant cinq "1".
La sous-matrice suivante B24 a trois colonnes d'expression"11000". Elle est surmontée par la matrice identité I. La sous-matrice suivante B25 a une seule colonne d'expression "11001". Elle est surmontée par trois "0". La sous-matrice suivante B26 a une seule colonne d'expression"11010". Elle est
Figure img00180003

surmontée par une sous-matrice colonne A26 de la forme 11000".
La sous-matrice suivante B27 a des colonnes dont l'expression,"1101l", comporte quatre"l". Comme on a vu, en relation avec le tableau 1, qu'il fallait 8 huit colonnes possédant cinq"1", et que 6 colonnes à cinq"1"sont déjà présentes, la sous-matrice B27 sera incomplète et ne comportera que deux colonnes. Elles seront surmontées par deux colonnes quelconques de la matrice identité I. Par exemple, en figure 6A,
<Desc/Clms Page number 19>
on a pris les deux premières colonnes de la matrice identité, à savoir"100"et"010".
La sous-matrice B27 est suivie de la sous-matrice B28 comportant une seule colonne d'expression"11100", surmontée par "000". Les 64 colonnes de la matrice M3 sont désormais formées.
Les colonnes de la matrice M3 sont toutes différentes, linéairement indépendantes deux à deux, et comportent soit trois "1", soit cinq"1". Toutes les combinaisons de colonnes à trois "1" ont été utilisées.
En formant la matrice M3 de la figure 6A, il a fallu se souvenir, pour être certain d'utiliser toutes les combinaisons
Figure img00190001

possibles de colonnes à trois"1"seulement, du nombre total de colonnes à cinq"l"à utiliser. Ainsi, la sous-matrice B27 a été incomplète et n'a compris que deux colonnes, pour permettre à la dernière possibilité à trois"1" ("00011100") d'être présente dans la matrice M3. Cependant, le code selon la présente invention aurait très bien pu utiliser une matrice B27 complète, surmontée par la matrice identité I, et ne pas utiliser la dernière possibilité offerte par les combinaisons à trois"1". Un tel code fait encore partie de la présente invention.
Si l'on souhaite éviter de garder présent à l'esprit le nombre de possibilités à cinq éléments nécessaires, on forme, toujours pour coder des mots de 64 bits, une matrice M4 comme cela est décrit en relation avec la figure 6B.
En figure 6B, de mêmes références désignent de mêmes éléments qu'en figure 6A. La matrice M4 reprend les 35 premières colonnes de la matrice M3, c'est-à-dire les colonnes comprenant les sous-matrices BO à B14. La sous matrice B15 est identique à celle de la figure 6A, mais on ne la place pas à la suite de la
Figure img00190002

sous-matrice B14 car elle comporte quatre"l". La sous-matrice B15 est mise en réserve et sera placée après épuisement de toutes les combinaisons à trois"1". Ainsi, la sous-matrice qui suit la sous-matrice B14 est la sous-matrice B16. Les sous-matrices suivantes sont les sous-matrices B17, B18, B19, B20, B21 et B22.
La sous-matrice Bi qui suit la sous-matrice B22 est la sous-
<Desc/Clms Page number 20>
matrice B24, car la sous-matrice B23 comporte quatre"1"et est temporairement mise en réserve. La sous-matrice B24 est suivie des sous-matrices B25, B26 et B28, la sous-matrice B27 étant gardée en réserve. Avec la sous-matrice colonne B28, toutes les possibilités de colonnes comportant trois"1"ont été épuisées.
Cela représente 56 colonnes, comme cela apparaît dans le tableau 1. On place alors les sous-matrices Bi mises temporairement en réserve, de façon à former les colonnes restantes de la matrice M4. On place ainsi les trois colonnes de la sous-matrice B15, les trois colonnes de la sous-matrice B23 et deux colonnes de la sous-matrice B27, afin de former les 64 colonnes de la matrice M4. En procédant ainsi, c'est la dernière sous-matrice formée qui, le cas échéant, est incomplète et il est inutile de garder à l'esprit le nombre de colonnes comportant cinq | pour utiliser toutes les possibilités de colonnes à trois"1".
On notera que, dans chacun des codes de la présente invention, il est inutile de calculer un bit de parité total, et que les matrices formées présentent des motifs répétitifs, favorisant l'implémentation des circuits de codage et de décodage.
Bien entendu, la présente invention est susceptible de diverses variantes et modifications qui apparaîtront à l'homme de l'art. En particulier, toute permutation de deux ou plusieurs colonnes et/ou lignes d'une matrice de contrôle de parité selon la présente invention conduit à un code équivalent faisant partie du domaine de la présente invention.
Le nombre de bits du mot à coder n'est pas nécessairement un multiple de deux. Il peut être aussi inférieur à 16. Par exemple, le mot à coder peut être un mot de 7 bits.
On notera que, au-dessus d'une matrice Bi incomplète, on peut utiliser une ou deux quelconques colonnes de la matrice identité I ou de son inverse I, selon le cas. Ainsi, si la matrice Bi incomplète ne comporte qu'une seule colonne, une colonne quelconque des sous-matrices I ou I pourra être retenue. Si la sous-matrice Bi incomplète comporte deux colonnes, on
<Desc/Clms Page number 21>
pourra retenir au choix deux colonnes quelconques des sousmatrices I ou I.
On notera aussi qu'il est possible d'utiliser d'autres combinaisons de colonnes à trois ou cinq"1"que celles décrites en relation avec les figures 4A à 6B. Ainsi, on peut choisir 16 possibilités quelconques parmi les 20 possibilités de colonnes à trois"1"pour coder des mots de 16 bits, sans nécessairement utiliser le choix effectué en relation avec la figure 4A.
On notera aussi que le code de la présente invention s'applique à tout domaine dans lequel les codes de correction et/ou détection d'erreur sont utilisés, par exemple en transmission.

Claims (9)

REVENDICATIONS
1. Procédé pour déterminer r bits de détection d'erreur (CO à Cor-1) pouvant être associés à un mot de m bits à coder, comprenant l'étape consistant à faire le produit d'un vecteur à m composantes représentatif du mot de m bits à coder et d'une matrice de contrôle de parité (M, M2, M3, M4) de dimension r x m, caractérisé en ce que la matrice de contrôle de parité est telle que chaque colonne de ladite matrice comporte un nombre impair de"1"supérieur ou égal à trois.
2. Procédé selon la revendication 1, dans lequel les r-3 derniers éléments de chaque colonne de ladite matrice font partie d'une première sous-matrice (Bi) de rang i, la représentation binaire desdits r-3 éléments indiquant le rang i de la première sous-matrice.
3. Procédé selon la revendication 2, dans lequel les premières sous-matrices (Bi) comprennent des sous-matrices de dimension (r-3) xl et des sous-matrices de dimension (r-3) x3.
4. Procédé selon une des revendications précédentes, dans lequel les trois premières lignes de la matrice de contrôle de parité comprennent des secondes sous-matrices (Ai), dans lequel les secondes sous-matrices comprennent des sous-matrices de dimension 3xl et des sous-matrices de dimension 3x3, les secondes sous-matrices de dimension 3xl ne comportant que des"0" ou que des"1", et les secondes sous-matrices de dimension 3x3 étant soit la matrice identité, soit son inverse.
5. Procédé selon la revendication 4, dans lequel la première seconde sous-matrice (AO) est une sous-matrice de dimension 3x1 ne comportant que des"1", et dans lequel les autres premières sous-matrices de dimension 3xl ne comportent que des"0".
6. Procédé selon la revendication 4 ou 5, dans lequel la seconde sous-matrice (Ai) de rang i a un nombre de colonnes égal au nombre de colonnes de la première sous-matrice (Bi) de même rang.
<Desc/Clms Page number 23>
7. Procédé selon une des revendications précédentes, dans lequel deux ou plusieurs lignes et/ou colonnes de la matrice de contrôle de parité sont permutées.
8. Procédé selon une des revendications précédentes, dans lequel le nombre r des bits de détection d'erreurs est égal à n+2, n étant tel que le nombre de bits du mot à coder peut être représenté par n bits.
9. Procédé de détermination d'un syndrome représentatif d'erreurs éventuelles survenues, au cours d'un traitement, à un mot de m+r bits, les m+r bits correspondant, avant traitement, à m bits d'un mot à coder et r bits de détection d'erreurs obtenus par un procédé selon une des revendications précédentes appliqué au mot de m bits à coder, le syndrome étant obtenu au cours d'une étape consistant à multiplier une matrice particulière (M, M',
Figure img00230001
M") de dimension r x (m+r) par un vecteur à m+r composantes représentatives dudit mot de m+r bits, caractérisé en ce que ladite matrice particulière comporte : a) pour les m premières colonnes, un bloc de dimension r x m correspondant à la matrice de contrôle de parité utilisée au codage, et b) pour les r dernières colonnes, un bloc de dimension
Figure img00230002
r x r en forme de matrice diagonale, ne comportant que des"1" sur sa diagonale principale et des"0"partout ailleurs.
FR0104508A 2001-04-03 2001-04-03 Code de detection et/ou de correction d'erreurs a haute efficacite Expired - Fee Related FR2823035B1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
FR0104508A FR2823035B1 (fr) 2001-04-03 2001-04-03 Code de detection et/ou de correction d'erreurs a haute efficacite
US10/115,577 US7203896B2 (en) 2001-04-03 2002-04-02 High-efficiency error detection and/or correction code

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0104508A FR2823035B1 (fr) 2001-04-03 2001-04-03 Code de detection et/ou de correction d'erreurs a haute efficacite

Publications (2)

Publication Number Publication Date
FR2823035A1 true FR2823035A1 (fr) 2002-10-04
FR2823035B1 FR2823035B1 (fr) 2003-07-11

Family

ID=8861878

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0104508A Expired - Fee Related FR2823035B1 (fr) 2001-04-03 2001-04-03 Code de detection et/ou de correction d'erreurs a haute efficacite

Country Status (2)

Country Link
US (1) US7203896B2 (fr)
FR (1) FR2823035B1 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2941806A1 (fr) * 2009-02-03 2010-08-06 Commissariat Energie Atomique Procede de codage correcteur d'erreurs avec bits de parite totale et procede de detection d'erreurs multiples

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6968491B1 (en) * 2002-04-08 2005-11-22 Sanera Systems Inc. Generating a check matrix for error correction
US6920601B1 (en) 2002-04-08 2005-07-19 Sanera Systems Inc. Error correction for data communication
EP1403870A1 (fr) * 2002-09-27 2004-03-31 Deutsche Thomson-Brandt Gmbh Procédé et dispositif pour l'enregistrement d'un flux de données dans une support d'enregistrement
FR2892576A1 (fr) * 2005-10-25 2007-04-27 Univ Paris Sud Procede et dispositif de correction d'erreur dans des circuits electroniques de traitement de donnees.
US10621044B2 (en) 2012-04-25 2020-04-14 Pure Storage, Inc. Mapping slice groupings in a dispersed storage network
US9380032B2 (en) * 2012-04-25 2016-06-28 International Business Machines Corporation Encrypting data for storage in a dispersed storage network
US10795766B2 (en) 2012-04-25 2020-10-06 Pure Storage, Inc. Mapping slice groupings in a dispersed storage network
US20150055405A1 (en) * 2013-08-23 2015-02-26 Kabushiki Kaisha Toshiba Memory device and memory system with sensor
DE112015001607T5 (de) * 2014-04-01 2017-01-05 Lattice Semiconductor Corporation Orthogonale Datenorganisation für Fehlerdetektion und -korrektur in seriellen Videoschnittstellen

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3623155A (en) * 1969-12-24 1971-11-23 Ibm Optimum apparatus and method for check bit generation and error detection, location and correction
EP0310220A2 (fr) * 1987-09-29 1989-04-05 Hewlett-Packard Company Appareil pour la correction d'erreurs d'un bit et la détection d'erreurs de deux bits dans une transmission de données
US4862463A (en) * 1987-07-20 1989-08-29 International Business Machines Corp. Error correcting code for 8-bit-per-chip memory with reduced redundancy
US4888774A (en) * 1986-12-18 1989-12-19 Hitachi, Ltd. Error detection system
US5774481A (en) * 1995-03-31 1998-06-30 International Business Machines Corporation Reduced gate error detection and correction circuit

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3623155A (en) * 1969-12-24 1971-11-23 Ibm Optimum apparatus and method for check bit generation and error detection, location and correction
US4888774A (en) * 1986-12-18 1989-12-19 Hitachi, Ltd. Error detection system
US4862463A (en) * 1987-07-20 1989-08-29 International Business Machines Corp. Error correcting code for 8-bit-per-chip memory with reduced redundancy
EP0310220A2 (fr) * 1987-09-29 1989-04-05 Hewlett-Packard Company Appareil pour la correction d'erreurs d'un bit et la détection d'erreurs de deux bits dans une transmission de données
US5774481A (en) * 1995-03-31 1998-06-30 International Business Machines Corporation Reduced gate error detection and correction circuit

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ANONYMOUS: "Single error correction, double error detection code utilizing minimum circuitry", IBM TECHNICAL DIUSCLOSURE BULLETIN, vol. 15, no. 1, June 1972 (1972-06-01), NY, pages 130 - 034, XP002186242 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2941806A1 (fr) * 2009-02-03 2010-08-06 Commissariat Energie Atomique Procede de codage correcteur d'erreurs avec bits de parite totale et procede de detection d'erreurs multiples
WO2010089282A1 (fr) * 2009-02-03 2010-08-12 Commissariat A L'energie Atomique Et Aux Energies Alternatives Procede de codage correcteur d'erreurs avec bits de parite totale et procede de detection d'erreurs multiples
US8566679B2 (en) 2009-02-03 2013-10-22 Commissariat A L'energie Atomique Et Aux Energies Alternatives Error-correcting encoding method with total parity bits, and method for detecting multiple errors

Also Published As

Publication number Publication date
FR2823035B1 (fr) 2003-07-11
US7203896B2 (en) 2007-04-10
US20030046635A1 (en) 2003-03-06

Similar Documents

Publication Publication Date Title
FR2512568A1 (fr) Systeme pour transferer des donnees binaires par une pluralite de canaux au moyen d&#39;un codeur operant par convolution
FR2823035A1 (fr) Code de detection et/ou de correction d&#39;erreurs a haute efficacite
FR2533091A1 (fr) Systeme de detection et de correction d&#39;erreurs de transmission d&#39;un message binaire utilisant un code cyclique detecteur et correcteur d&#39;erreurs de type reed-solomon entrelace
EP2394366B1 (fr) Procede de codage correcteur d&#39;erreurs avec bits de parite totale
JP4982580B2 (ja) メモリシステム及びメモリシステムのデータ書き込み・読み出し方法
FR2860360A1 (fr) Dispositif de codage /decodage utilisant un codeur/decodeur de reed-solomon
EP0329533B1 (fr) Procédé de codage et procédé de décodage à longueur variable, dispositif de codage et dispositif de décodage pour la mise en oeuvre de ce procédé
FR2981472A1 (fr) Dispositif et procede de production d&#39;une sequence de bits
WO2007093730A2 (fr) Codage/decodage perfectionnes de signaux numeriques, en particulier en quantification vectorielle avec codes a permutation
FR2885708A1 (fr) Dispositif et procede pour determiner une position d&#39;une erreur de bit dans une sequence de bits
EP1905157B1 (fr) Procede et systeme d&#39;encodage d&#39;une sequence de donnees
FR2594976A1 (fr) Systeme de memoire a trois modules construit a l&#39;aide de puces de memoire d&#39;une largeur d&#39;un symbole et presentant une caracteristique de protection entre les erreurs, chaque symbole etant constitue de 2i + 1 bits
EP3512153B1 (fr) Fonction cryptographique et authentification de composant remplaçable pour imprimante
US8201060B2 (en) Methods and systems for rapid error correction of Reed-Solomon codes
FR2814612A1 (fr) Code de detection et/ou de correction d&#39;erreurs a haute efficacite
EP1300952A1 (fr) Code de détection et/ou de correction d&#39;erreurs à haute efficacité
US7865807B2 (en) Multi-valued check symbol calculation in error detection and correction
FR2830637A1 (fr) Code de detection et/ou de correction d&#39;erreurs a haute efficacite
EP2786497B1 (fr) Procede de maximisation de la capacité de correction d&#39;un code correcteur d&#39;erreurs mettant en oeuvre des syndromes supplémentaires
FR2858141A1 (fr) Codage d&#39;informations par codes de reed-solomon raccourcis
FR2834146A1 (fr) Turbo-decodeur compact a haute efficacite
US20110276854A1 (en) Methods and Systems for Rapid Error Correction by Forward and Reverse Determination of Coding States
WO2018109346A1 (fr) Codage et décodage correcteur d&#39;erreurs par matrice génératrice avec multiplications simplifiées dans coprs de galois
CN111628783A (zh) 一种eg-ldpc译码器
FR3061393B1 (fr) Procedes de codage et de decodage de paquets de donnees dans un corps de galois

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20111230