FR2673341A1 - Agencement de circuit pour detecter et corriger des defauts dans des mots de donnees. - Google Patents
Agencement de circuit pour detecter et corriger des defauts dans des mots de donnees. Download PDFInfo
- Publication number
- FR2673341A1 FR2673341A1 FR9201750A FR9201750A FR2673341A1 FR 2673341 A1 FR2673341 A1 FR 2673341A1 FR 9201750 A FR9201750 A FR 9201750A FR 9201750 A FR9201750 A FR 9201750A FR 2673341 A1 FR2673341 A1 FR 2673341A1
- Authority
- FR
- France
- Prior art keywords
- values
- value
- block
- data
- counter
- 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
Links
- 230000015654 memory Effects 0.000 claims abstract description 28
- 230000000750 progressive effect Effects 0.000 claims abstract description 10
- 230000007547 defect Effects 0.000 claims description 26
- 208000011580 syndromic disease Diseases 0.000 claims description 20
- 238000004422 calculation algorithm Methods 0.000 claims description 10
- 230000006870 function Effects 0.000 claims description 10
- 238000012217 deletion Methods 0.000 claims description 6
- 230000037430 deletion Effects 0.000 claims description 6
- 238000009795 derivation Methods 0.000 claims description 2
- 238000010606 normalization Methods 0.000 claims description 2
- 230000003247 decreasing effect Effects 0.000 abstract description 5
- 238000012937 correction Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 7
- 238000000034 method Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 125000004122 cyclic group Chemical group 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000003111 delayed effect Effects 0.000 description 3
- 230000002950 deficient Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000007935 neutral effect Effects 0.000 description 2
- 208000012747 Cardiospondylocarpofacial syndrome Diseases 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000004886 process control Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000001373 regressive effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/1545—Determination of error locations, e.g. Chien search or other methods or arrangements for the determination of the roots of the error locator polynomial
Landscapes
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Algebra (AREA)
- General Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
a) Agencement de circuit pour détecter et corriger des défauts dans des mots de données, b) agencement caractérisé en ce qu'il comporte un compteur progressif (22, 23, 24) pour le comptage progressif des mots de données se trouvant dans un bloc de données et pour délivrer une valeur de cible (X) lors de la détermination d'une mise à zéro selon Chien, - une première mémoire à empilage (25) dans laquelle sont susceptibles d'être inscrites les valeurs de comptage (X) délivrées par le compteur progressif (22, 23, 24), - une troisième mémoire à empilage (26), - un compteur dégressif pour des comptages dégressifs débutant avec la valeur d'une longueur de bloc. c) L'invention se rapporte aux agencements de circuits pour détecter et corriger des défauts dans des mots de données.
Description
"Agencement de circuit pour détecter et corriger des défauts dans des mots
de données " L'invention part d'un agencement de circuit pour détecter et corriger des défauts dans des mots de données de blocs de données codées Reed-Solomon-(RS), avec: un dispositif pour la formation de syndromes dans le flux de données des blocs codés RS, un dispositif pour déterminer des effacements dans les syndromes ainsi formés, un dispositif pour l'application d'un algorithme euclidien dans lequel: T (x) = (Q (x))TS (x) + Ts-2 (x), s Qs-i)s-i Ts-215 Rs (x) (Qs 1 (x))R _ 1 (x) + Rs-2 (x)et Qs-1 (x) = Rs_ 2 (x)/Rs-1 (x) ist Ts(x) étant un polynôme d'emplacement de défaut, Rs(x) un polynôme de valeur de défaut et Qs-1 (x) un polynôme de valeur intermédiaire, et une normalisation de Rs(x) et Ts(x) peut s'effectuer avec un très bas coefficient25 Ts( 0) = 6, de sorte que l'on a: R(x) = R 5 (x)/ 6, T(x) = T (x)/d un dispositif pour déterminer des emplacements de défauts Xk et des valeurs de défauts Yk par une recherche de mise à zéro selon Chien avec la relation: R(Xk) Yk b r X k T'(Xk) dans laquelle, T'(Xk) est la première dérivée à un emplacement Xk un dispositif pour corriger des mots de données adaptés à des durées de signaux à l'intérieur d'un bloc de données codées RS adjacent à l'aide des emplacements de défauts Xk et des valeurs de défauts Yk ainsi déterminés, Un code RS est un bloc de code systématique de longueur n, dans lequel sont ajoutées à k symbole d'informations (n k) = p mots de contrôle Les symboles d'informations ne sont pas modifiés par un processus de codage Le code RS a une distance de Hamming minimale d = p + 1, qui lors d'un décodage peut être mis en oeuvre en étant librement choisi pour la détection de défauts ou pour la correction de défauts. Lors d'un décodage, il n'est pas fait de différenciation entre les mots de données et les mots de contrôle Un bloc de code RS est constitué de n symboles, tout nombre de chiffres binaires supérieur ou égal à 1 étant possible pour un symbole On part habituellement d'une étendue de symboles de 8 chiffres binaires Pour chaque défaut de symboles t, 2 t mots de contrôle sont utilisés pour une correction, afin de calculer un emplacement de défaut Xi et une valeur de défaut Yi Si le symbole défectueux est repéré en tant
qu'effacement, l'emplacement de défaut Xi est connu.
Dans ce cas, un mot de contrôle unique est seulement utilisé pour le calcul de la valeur de défaut Yi Pour le code RS, on a la relation 2 t + e < p = N k = d -
1, le nombre des effacements étant désigné par i.
D'autres particularités concernant le code RS peuvent être relevées dans le périodique 'IBM-Journal RES DEVELOP': "on-the-fly décoder for multiple byte
errors" Vol 30, NO 3, Mai 1986, pages 259 à 269.
Par le rapport de réunion scientifique 'IEEE 1990 Custom Integrated Circuits Conference': "A 40 M Hz Endoder/Decoder Chip generated by a Reed-Solomon Code
Compiler", pages 13 5 1 et 13 5 4, CH 2860-5/90/0000-
0065, on connaît déjà un agencement de circuit pour le décodage de données codées RS Dans ce cas, sont tout d'abord calculés, dans un premier étage, des syndromes
de mots de données reçus d'une ligne de transmission.
Dans un second étage branché à la suite, des polynômes d'emplacements de défauts et de valeurs de défauts, sont calculés selon un algorithme euclidien à partir des syndromes ainsi calculés, et ils sont ensuite soumis dans un troisième étage à une recherche de mise à zéro selon Chien Avec les emplacements et les valeurs de défauts déterminés de cette façon, la correction proprement dite des données adjacentes est effectuée dans un quatrième étage par une combinaison EXOR. La présente invention a pour but de proposer un agencement de circuit du type initialement mentionné, qui corrige en temps réel des données d'un flux de données continu, comportant un débit de
données élevé, par exemple supérieur à 40 M Bit/s.
Ce but est atteint, conformément à l'invention, par un agencement de circuit caractérisé en ce qu'il comporte: un compteur progressif pour le comptage progressif des mots de données se trouvant dans un bloc de données, et pour délivrer une valeur de cible lors de la détermination d'une mise à zéro selon Chien, une première mémoire à empilage dans laquelle sont susceptibles d'être inscrites les valeurs de comptage délivrées par le compteur progressif et qui sont susceptibles d'être lues à la fin de chaque bloc de données pour inscription dans une seconde mémoire à empilage qui est susceptible d'être commandée par un signal de commande, une troisième mémoire à empilage dans laquelle sont susceptibles d'être inscrites les valeurs de défauts simultanément avec l'inscription correspondante des valeurs de comptage dans la première mémoire à empilage et qui sont susceptibles d'être lues à la fin d'un bloc de données pour inscription dans une quatrième mémoire à empilage qui est susceptible d'être commandée par un signal de commande, un compteur dégressif pour des comptages dégressifs débutant avec la valeur d'une longueur de bloc, un dispositif pour comparer la valeur de comptage présente à un emplacement le plus élevé dans la seconde mémoire à empilage avec les valeurs de comptage délivrées par le compteur dégressif pour permettre la dérivation du signal de commande en cas d'identité des valeurs de comptage, un étage EXOR à l'une des entrées duquel est appliquée en fonction du signal de commande, la valeur de défaut présente à un emplacement le plus élevé dans la quatrième mémoire à empilage, à l'autre entrée duquel s'appliquent les mots de données adaptés à la durée du signal, et à la sortie duquel peuvent être prélevés les mots de données
corrigés des défauts.
L'agencement de circuit selon l'invention avec les caractéristiques indiquées ci-dessus, présente l'avantage que grâce à cet agencement et à l'exploitation spéciale de plusieurs mémoires à empilage, des opérations de correction peuvent être effectuées en temps réel pour un nombre quelconque de défauts Il est particulièrement avantageux dans ce cas, que les opérations de correction puissent s'effectuer sous la forme d'une "commande automatique". Grâce à d'autres dispositions de l'invention, des compléments avantageux et des
améliorations de l'agencement de circuit indiqué ci-
dessus, sont possibles.
Suivant une autre caractéristique de l'invention le compteur progressif comporte un premier étage multiplexeur avec un premier registre branché à la suite, dans lequel au début du bloc est appliquée, à une entrée de l'étage multiplexeur, la valeur a O = 1 et dans lequel pendant le reste du temps, se trouvent à une autre entrée de l'étage multiplexeur, des valeurs, multipliées par une valeur a' des valeurs de
sortie délivrées par le registre.
Suivant une autre caractéristique de l'invention, le compteur dégressif comporte un second étage multiplexeur avec un second registre branché à la suite, dans lequel au début du bloc la valeur d'une longueur de bloc est appliquée à une entrée du second étage multiplexeur et dans lequel, pendant le reste du temps, se trouvent à une autre entrée du second étage multiplexeur, des valeurs de sortie délivrées par le
second registre.
Un exemple de réalisation de l'invention est représenté aux dessins ci-joints et va être exposé
plus en détail à la description ci-après.
la figure 1 est un schéma par blocs
sommaire d'un décodeur RS connu.
la figure 2 est un schéma par blocs détaillé de l'étage de recherche Chien conforme à l'invention et indiqué à la figure 1, la figure 3 est un schéma par blocs détaillé de l'étage de correction selon l'invention
indiqué sur la figure 1.
Conformément à la définition, chaque symbole, avec m chiffres binaires dans le code RS est l'élément d'un champ de Galois (GF( 2 m) La séquence des 2 m symboles, en tant que base de l'arithmétique de champ fini, est définie par le polynôme générateur de champ p(x) L'étendue des symboles limite la longueur maximale du bloc d'un code RS de 2 m-1, car les éléments du champ sont utilisés comme nombres de positions univoques dans le bloc Dans ce cas, un zéro est un élément neutre en ce qui concerne l'addition et une expression a O = 1 est un élément neutre d'une multiplication Un champ est ainsi défini par l'intermédiaire d'un polynôme générateur de champ irréductible Si un élément primitif a du nombre d'emplacements m est défini, tous les éléments
suivants peuvent être exprimés en puissance de a.
Comme a est une racine de p (x) et, comme en outre, seulement m racine différente de zéro existe, p(x) = O est valable pour tous les autres éléments Le champ de Galois peut ainsi être défini comme une série finie de 2 m-1 éléments La représentation binaire des composants permet alors une simple addition par l'intermédiaire d'une combinaison EXOR de mode binaire et une représentation exponentielle permet une multiplication simple par l'intermédiaire d'une addition des exposants modulo q = 2 m-1 Cela correspond, lors d'une transposition dans un circuit, à un totalisateur binaire dont la sortie de
transmission est reliée à une entrée de transmission.
Un code RS de distance d sur le champ obtenu par p(x) est défini par l'intermédiaire du polynôme générateur de code G(x) b+(d-2) d-1 G(x) = (x + ai) = gix 1 i = b i= O
Dans le présent exemple b est posé égal à 0.
b peut toutefois être également une constante quelconque dans le GF( 2 m) Un vecteur de code légal c(x) résulte de la division par G(x) d'un vecteur d'informations i(x)*x P décalé de p emplacements, et insertion du vecteur de parité p(x) alors obtenu dans les emplacements devenus libres du vecteur d'informations i(x) Le vecteur de code c(x) résultant est alors divisible sans reste par toutes les racines
de G(x).
Comme cela a été mentionné au début, un bloc de code c(x) transmis, codé RS, est constitué par k emplacements d'informations auxquels font suite p mots de contrôle Grâce à cette construction de code, il est garanti que c(x) est divisible sans reste par toutes les racines, par G(x), tant qu'il ne survient pas de défauts e(x) ou d'effacements u(x) Le développement d'un vecteur de réception r(x) sur les racines du polynôme générateur de code G(x) produit des valeurs qui sont dépendantes des défauts reçus, mais non pas de l'information transmise i(x) Ces valeurs sont désignées sous le nom de syndrome Les m syndromes Si (j = O d-2) sont calculés d'après l'égalité: n- 1 i*(b+j) Yxt-1 <b+) b+j i(+) Sb+j = E r (a) = E Yk(Xk)(b+ J) i= O k= O Le vecteur reçu (x) peut être décrit comme suit dans une représentation par un polynôme: n-1 n-2 1 r(x) n X rn_ 2 x + +rx +r O x désigne alors une position dans le polynôme pour chaque symbole reçu ri Le premier symbole (de données) reçu est rn_, le dernier symbole (de parité) est r O Pour la mémorisation du polynôme,
seuls les coefficients ri doivent être déposés.
Comme le développement d'un vecteur de réception sans défaut r(x) à un emplacement zéro du polynôme générateur de code, délivre la valeur zéro, il y a lieu de considérer les valeurs de syndromes en tant que sommes des défauts pondérés en position Yk aux emplacements Xk Les syndromes représentent alors des restes d'une division du flux de données r(x) par tous les facteurs (x+ai) du polynôme générateur de code, auquel cas on a: e+t-1 j S = Yk (Xk) (pour tous les syndromes 50 Sd-2 J k=O en cas de b= 0) Si, lors d'un effacement, la position d'un Xk survenant est maintenue, il peut alors être calculé avec p syndromes et p emplacements de défauts Xk jusqu'à e = p effacements, tant que l'on a 2 t + e S p,
t étant le nombre des défauts non repérés.
Les syndromes forment, d'après l'égalité précédemment mentionnée, un jeu de p égalités non linéaires, de sorte que p solutions peuvent être des coefficients d'un polynôme d'emplacements de défauts qui prend la valeur zéro aux emplacements de défauts. Un décodage de bloc de données codées RS selon l'algorithme euclidien mentionné, est indiqué dans la publication 'IEEE Proceedings': "Simplified procedure for correcting both errors and erasures of RS code using Euclid algorithm", Vol 135, Pt E, N 6,
Novembre 1988, par Truong Eastman Reed HSU.
L'algorithme euclidien peut être divisé selon les étapes suivantes: 1. calcul du syndrome Sj ainsi que du polynôme des emplacements d'effacements L(x) et pose de e=deg {L(x)}. 2 calcul du syndrome dit de Forney t(x) = S(x)L(X) mod xd-1 3. Pour e = d-1 = p il est posé T(x) = L(x) et R(x) = T(x) Autrement, T(x) et R(x) sont déterminés par application d'un algorithme euclidien Cet algorithme euclidien est constitué par les formules récursives suivantes: Ts(x) = (Q l(x))Ts-l(x)+Ts 2 (x) Rs(x) = (Qs 1 (x))R 51 (x)+R 2 (x) Qs-1 (x) = RS_ 2 (x)/R 1 (x) avec les valeurs de début:
T O (x)=L(x), T_ 1 (x)= 0, R_ 1 (x)=xd-1, R O (x) = t(x).
Ts(x) est un polynôme d'emplacement de défaut, Rs(x) est un polynôme de valeur de défaut et
Qs_ 1 (x) est un polynôme de valeur intermédiaire.
Ensuite, Rs(x) et Ts(x) peuvent être normalisés avec le coefficient le plus bas Ts( 0) = 6, auquel cas, on a R(x) = R,(x)/6 et T(x) = T,(x)/d R(x) et T(x) sont
les résultats de l'algorithme euclidien -
Les racines de T(x) sont des emplacements inverses (décomptés de façon régressive) de défauts et d'effacements Xk-1 Les différents emplacements de défauts Xk 71 sont trouvés dans le présent exemple de réalisation grâce à une recherche de mise à zéro d'après Chien Simultanément au cours de ce processus, les valeurs de défauts Yk sont déterminées au moyen de la relation R(Xk) k Xk * T'(Xk) T'(Xk) est alors la première dérivée de T à l'emplacement Xk Auquel cas, en totalisant N fois, on obtient zéro pour N pair et l'élément lui-même pour n impair Grâce à cette mesure, l'emplacement de défaut recherché et la valeur de défaut correspondante sont
ainsi déterminés.
La figure 1 montre le schéma par blocs
sommaire d'un décodeur RS Dans ce schéma, la
référence 1 désigne une liaison périphérique de données par l'intermédiaire de laquelle des mots de données Din, d'une étendue de huit chiffres binaires, des blocs de données codés RS sont amenés, d'une part, à un dispositif de temporisation 2 et, d'autre part, à un bloc fonctionnel 3 qui sert essentiellement à former des syndromes En parallèle à la liaison périphérique de données 1, un signal de défaut E Fin est amené par l'intermédiaire d'une liaison 4 au dispositif de temporisation 2 et au bloc fonctionnel 3. Dans le bloc fonctionnel 3, les syndromes sont calculés par 16 générateurs de syndromes Ces il générateurs de syndromes forment le reste d'une division c(x)/(x + ai) Les générateurs de syndromes sont initiés respectivement au début du bloc, en ce qu'une rétro-action est coupée par l'intermédiaire d'une porte ET Dans le présent cycle, les syndromes du dernier bloc sont transmis à un bloc fonctionnel 5 dans lequel sont déterminés des effacements selon l'algorithme euclidien mentionné En outre, dans le bloc fonctionnel 3, sont déterminées trois sortes d'effacements L(x) A cet effet, un générateur décompte toutes les positions dans le bloc Lors de l'apparition d'un effacement, son emplacement est mémorisé dans un registre libre Ces registres sont
également mis à la valeur zéro au début du bloc.
Lorsque plusieurs effacements interviennent, comme cela est prédéfini par une limitation de correction, L(x) est mis à zéro Dans ce cas, il peut être recherché une correction limitée des défauts Le vecteur d'effacement L(x) est inversé dans le bloc
fonctionnel 5 sur la longueur du bloc.
Le bloc fonctionnel 5 comprend plusieurs bancs de registre d'une largeur de 16 à 17 groupes de chiffres binaires (un groupe de chiffres binaires = 8 chiffres binaires) Comme la fonctionnalité du bloc fonctionnel est connue en soi, il n'est pas nécessaire de s'étendre plus longuement sur elle dans ce contexte Aux sorties du bloc fonctionnel 5, sont susceptibles d'être prélevés les polynômes d'emplacements de défauts T,(x) ainsi que les polynômes de valeurs de défauts R,(x) mentionnés au début, qui ont été déterminés par une division et
addition de polynômes.
Dans les blocs fonctionnels 6 et 7 branchés à la suite, qui sont décrits en détail en corrélation avec les figures 2 et 3, les positions zéro des polynômes Te(x) et R 3 (x) sont déterminées, et avec les valeurs de défauts Yk et les emplacements de défauts Xk ainsi obtenus, la correction des mots de données entachés d'erreurs est effectuée, ces corrections étant appliquées conjointement avec le signal de défaut en provenance de la sortie du dispositif de temporisation 2 au bloc fonctionnel 7 La commande des quatre blocs fonctionnels 3 à 7 ainsi que du dispositif de temporisation 2, est assurée par un dispositif de commande 8 A la sortie du bloc fonctionnel 7, il peut être prélevé sur une ligne périphérique de données 9, un flux de données avec des mots de données Dout d'une étendue de 8 chiffres binaires, dont les mots de données défectueux dans le cadre de la possibilité de correction du dispositif de décodage, sont corrigés De tels blocs de données, qui dépassent la possibilité de correction du dispositif de décodage, sont caractérisés par un signal de défaut EFO Ut qui est transmis sur une liaison 10 en parallèle avec les données délivrées par l'intermédiaire de la
ligne périphérique de données 9.
Le bloc fonctionnel 6 représenté sur la figure 1, est représenté plus en détail sur la figure 2 Les éléments identiques sont pourvus des mêmes références Les polynômes délivrés par le bloc fonctionnel 5 sont appliqués dans le présent exemple
de réalisation à 33 unités d'un décodeur cyclique 11.
Le schéma par blocs d'une unité du décodeur cyclique Il est représenté plus en détail dans le bloc encadré en traits points Ensuite, au début du bloc, les signaux adjacents du polynôme sont chargés par l'intermédiaire d'un multiplexeur 12 dans un registre 13 Puis chaque élément Ri ou bien Ti est multiplié cycliquement avec les symboles a-i mis à disposition dans un bloc 14 S'il est trouvé de cette façon, une valeur nulle T(x), c'est-à-dire si la somme de tous les Ti est égale à 0, alors la valeur du défaut peut être calculée sous la forme Yk = R(xk)/T'(xk) pour le
cas b = 0.
La dérivée T'(x) donne de façon correspondante aux règles de calcul dans le champ Galois, le polynôme des coefficients pairs de T De tels décodeurs cycliques sont connus par la publication mentionnée au début IBM-Journal RES
DEVELOP, Vol 30, Mai 1986, pages 259 à 269.
Les signaux délivrés par les différents décodeurs cycliques sont rassemblés dans des étages de totalisation 15, 16 et 17 Les sommes Val, Even Sum et Odd Sum à la sortie des étages de totalisation 15 à 17, sont l'EXOR sur tous les chiffres binaires d'un plan Dans le cas présent, le chiffre binaire O est par exemple formé de la somme Val par l'intermédiaire d'un EXOR répété 16 fois des chiffres binaires O de RO à R 15 Une division R/T' est réalisée sous la forme d'une multiplication avec les inverses Ce processus de calcul s'effectue par les étages 18 et 19 Les sommes Even Sum et Odd Sum sont amenées conjointement dans un étage de totalisation 20, l'interrogation à zéro, dans un étage 21 Si le signal 'Found' à la sortie de l'étage 21 a un niveau élevé, alors la valeur d'un compteur de positions qui est constitué par un multiplexeur 22, un registre 23 et un étage 24, est déposée simultanément avec la valeur de défaut trouvée Yk sur l'empilage d'une mémoire à empilage 25 pour des valeurs d'emplacements de défauts Xi On supposera dans le présent exemple, que le ou bien les
mémoires à empilage sont constituées de 16 registres.
Le dépôt sur l'empilage de la mémoire à empilage 25 s'effectue dans un registre O, tandis que les valeurs qui étaient jusque là celles des registres O à 14, avancent respectivement d'une position sur les registres 1 à 15 Le contenu du registre 15 est alors perdu L'empilage remplit la fonction de ce que l'on appelle un LIFO's (Last In/First Out), car l'algorithme de recherches selon Chien calcule des emplacements de défauts inverses en successions régressives En parallèle à la mémoire à empilage 25 est exploitée une mémoire à empilage 26 qui mémorise
les valeurs de défauts Yi.
La figure 3 montre un schéma par blocs du bloc fonctionnel 7 Dans ce schéma, la référence 27 désigne une mémoire à empilage pour des valeurs Xk des emplacements de défauts, et la référence 28 désigne une mémoire à empilage pour les valeurs de défauts Yk* Les valeurs Xk des emplacements de défauts et Yk des défauts, sont prises en charge en parallèle à la fin d'un bloc de données, par les valeurs se trouvant dans les mémoires à empilage 25 et 26 L'agencement de la figure 2 peut ainsi être à nouveau initialisé et est ainsi ensuite disponible pour une nouvelle recherche Chien. Dans l'agencement à la figure 3, la succession des valeurs Xk et Yk est inversée par un compteur de positions inversé Ce compteur de positions inversé est constitué par un multiplexeur 29, un registre 30 et un étage 31 L'agencement est tel qu'au début du bloc, le registre 30 est chargé par l'intermédiaire du multiplexeur 29 avec la valeur terminale de la longueur de bloc Les valeurs de sortie du registre 30 sont, pendant le reste du temps, réinjectées par l'intermédiaire de l'étage 31 avec des valeurs des symboles a 1 et donc multipliées Un emplacement de défaut Xk est alors trouvé lorsque les données délivrées par le compteur de positions inversé sont identiques avec le contenu d'un registre O dans la mémoire à empilage 27 La comparaison est effectuée dans un étage de comparaison 32 qui délivre un signal de sortie correspondant 'Found' Ce signal 'Found' représente un signal d'impulsion de porte pour une porte ET 33 qui est reliée à une autre sortie de la mémoire à empilage 28 La valeur de défaut Yk se présentant à la sortie de la porte ET 33 est combinée logiquement dans un étage EXOR 34 avec la valeur de données Din retardée dans le dispositif de
temporisation 2 et la correction est ainsi effectuée.
Le signal de défaut E Fin également retardé par le dispositif de temporisation 2, arrive en fonction du dispositif de commande 8 du décodeur RS, par l'intermédiaire d'un étage 35 à la liaison de sortie 10 Lors de la présence d'un niveau logique élevé dans le signal 'Found', la valeur la plus élevée dans les mémoires à empilage 27 et 28 est simultanément enlevée Cela signifie que les registres 1 à 15 se trouvant dans les mémoires à empilage 27 et 28 sont copiés sur les positions de registres O à 14 et que le registre 15 reprend une logique nulle Si tous les défauts sont corrigés, il y a une logique nulle sur l'empilage Dans ce cas, aucune autre coïncidence ne
peut survenir avec le compteur de positions inverse.
L'agencement de circuit conforme à l'invention comporte, dans ce cas, à côté des avantages déjà mentionnés, cet avantage qu'aucune commande de processus n'est utilisée pour la manipulation d'un nombre de défauts quelconque, car une commande automatique intervient par l'intermédiaire des valeurs sur l'empilage des mémoires à empilage 27 Il y a seulement lieu de charger le compteur de positions inverse au début du bloc avec la valeur de longueur de bloc considérée pour décompter ensuite cycliquement vers le bas Ce processus correspond à une multiplication avec a-1 Si des effacements sont également corrigés dans l'agencement de circuit selon l'invention, il y a lieu, outre les données, de retarder également le signal de défaut en tant qu'un neuvième chiffre binaire De tels effacements peuvent par exemple résulter d'une interruption Dans d'autres cas, il suffit de retarder le signal de données Din adjacent dans une étendue de mots de 8 chiffres binaires Le dispositif de commande 8 modifie le signal de défaut retardé E Fin de façon qu'un état correct d'un chiffre binaire de données susceptible d'être prélevé à la sortie de l'étage EXOR 34 soit disponible simultanément également sur la liaison 10 Le présent traitement pipeline permet une vitesse de travail continue de O à 20 M Hz pour une largeur de symbole de 8 chiffres binaires Dans le présent exemple de réalisation, un code Reed-Solomon est soutenu avec 1 à
16 mots de contrôle.
Claims (3)
1. Agencement de circuit pour détecter et corriger des défauts dans des mots de données de blocs de données codés RS avec: un dispositif pour la formation de syndromes dans le flux de données des blocs codés RS, un dispositif pour déterminer des effacements dans les syndromes ainsi formés, un dispositif pour l'application d'un algorithme euclidien dans lequel: Ts (x) = (Qs 1 (x))Ts_l (x) + Ts-2 (x), R= (Qs 1 (x) ()Rs Q (x))R+ Rs-2 (x) et Qs-1 (x) = Rs_ 2 (x)/Rs 1 (x) ist Ts(x) étant un polynôme d'emplacement de défaut, Rs(x) un polynôme de valeur de défaut et QS-1 (X) un polynôme de valeur intermédiaire, et une normalisation de Rs(x) et Ts(x) peut s'effectuer avec un très bas coefficient Ts( 0) = o, de sorte que l'on a: R(x) = Rs(x)/6, T(x) = Ts(x)/6 un dispositif pour déterminer des emplacements de défauts Xk et des valeurs de défauts Yk par une recherche de mise à zéro selon Chien avec la relation: R(Xk) Yk b X k * T'(Xk) dans laquelle, T'(Xk) est la première dérivée à un emplacement Xk un dispositif pour corriger des mots de données adaptés à des durées de signaux à l'intérieur d'un bloc de données codées RS adjacent à l'aide des emplacements de défauts Xk et des valeurs de défauts Yk ainsi déterminés, agencement de circuit caractérisé en ce qu'il comporte un compteur progressif ( 22, 23, 24) pour le comptage progressif des mots de données se trouvant dans un bloc de données et pour délivrer une valeur de cible (X) lors de la détermination d'une mise à zéro selon Chien, une première mémoire à empilage ( 25) dans laquelle sont susceptibles d'être inscrites les valeurs de comptage (X) délivrées par le compteur progressif ( 22, 23, 24) et qui sont susceptibles d'être lues à la fin de chaque bloc de données pour l'inscription dans une seconde mémoire à empilage ( 27) qui est susceptible d'être commandée par un signal de commande, une troisième mémoire à empilage ( 26) dans laquelle sont susceptibles d'être inscrites les valeurs de défauts (Yk) simultanément avec l'inscription correspondante des valeurs de comptage (X) dans la première mémoire à empilage ( 25) et qui sont susceptibles d'être lues à la fin d'un bloc de données pour l'inscription dans une quatrième mémoire à empilage ( 22) qui est susceptible d'être commandée par un signal de commande, un compteur dégressif ( 29, 30, 31) pour des comptages dégressifs débutant avec la valeur d'une longueur de bloc, un dispositif pour comparer la valeur de comptage présente à un emplacement le plus élevé dans la seconde mémoire à empilage ( 27) avec les valeurs de comptage délivrées par le compteur dégressif ( 29, , 31) pour permettre la dérivation du signal de commande en cas d'identité des valeurs de comptage, un étage EXOR ( 34) à l'une des entrées duquel est appliquée en fonction du signal de commande, la valeur de défaut (Xk) présente à un emplacement le plus élevé dans la quatrième mémoire à empilage ( 28), à l'autre entrée duquel s'appliquent les mots de données adaptés à la durée du signal, et à la sortie duquel peuvent être prélevés les mots de
données corrigés des défauts.
2. Agencement de circuit selon la revendication 1, caractérisé en ce que le compteur progressif ( 22, 23, 24) comporte un premier étage multiplexeur ( 22) avec un premier registre ( 23) branché à la suite, dans lequel au début du bloc est appliquée à une entrée de l'étage multiplexeur ( 22), la valeur a O = 1 et dans lequel, pendant le reste du temps, se trouvent à une autre entrée de l'étage multiplexeur ( 22) des valeurs, multipliées par une valeur al des valeurs de sortie délivrées par le
registre ( 23).
3. Agencement de circuit selon la revendication 1, caractérisé en ce que le compteur dégressif ( 29, 30, 31) comporte un second étage multiplexeur ( 29) avec un second registre ( 30) branché à la suite, dans lequel au début du bloc la valeur d'une longueur de bloc est appliquée à une entrée du second étage multiplexeur ( 29) et dans lequel, pendant le reste du temps, se trouvent à une autre entrée du second étage multiplexeur ( 29) des valeurs de sortie
délivrées par le second registre ( 30).
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE4105860A DE4105860C2 (de) | 1991-02-25 | 1991-02-25 | Schaltungsanordnung zum Erkennen und Korrigieren von Fehlern in Datenworten |
Publications (2)
Publication Number | Publication Date |
---|---|
FR2673341A1 true FR2673341A1 (fr) | 1992-08-28 |
FR2673341B1 FR2673341B1 (fr) | 1997-03-21 |
Family
ID=6425828
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR9201750A Expired - Fee Related FR2673341B1 (fr) | 1991-02-25 | 1992-02-17 | Agencement de circuit pour detecter et corriger des defauts dans des mots de donnees. |
Country Status (4)
Country | Link |
---|---|
US (1) | US5365529A (fr) |
JP (1) | JPH0575479A (fr) |
DE (1) | DE4105860C2 (fr) |
FR (1) | FR2673341B1 (fr) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0595326A2 (fr) * | 1992-10-30 | 1994-05-04 | Sony Corporation | Méthode de correction de données perdues et circuit correspondant |
EP0660535A2 (fr) * | 1993-12-27 | 1995-06-28 | Canon Kabushiki Kaisha | Appareil pour corriger uniformément des effacements et des erreurs de mots reçus en utilisant un polynome commun |
EP0660533A2 (fr) * | 1993-12-20 | 1995-06-28 | AT&T Corp. | Méthode et appareil pour un décodeur à itération réduite |
FR2717968A1 (fr) * | 1994-03-25 | 1995-09-29 | Mitsubishi Electric Corp | Codeur exécutant une correction d'erreurs, décodeur exécutant une correction d'erreurs et système de transmission de données utilisant des codes de correction d'erreurs. |
US5912905A (en) * | 1994-03-25 | 1999-06-15 | Mitsubishi Denki Kabushiki Kaisha | Error-correcting encoder, error-correcting decoder and data transmitting system with error-correcting codes |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0611054B1 (fr) * | 1993-01-22 | 1998-04-08 | Canon Kabushiki Kaisha | Appareil et procédé d'obtention d'ensembles polynomiaux |
US5517509A (en) * | 1993-03-31 | 1996-05-14 | Kabushiki Kaisha Toshiba | Decoder for decoding ECC using Euclid's algorithm |
JP3176171B2 (ja) * | 1993-04-21 | 2001-06-11 | キヤノン株式会社 | 誤り訂正方法及びその装置 |
JPH06314978A (ja) * | 1993-04-28 | 1994-11-08 | Nec Corp | チェン・サーチ回路 |
US5615220A (en) * | 1995-01-31 | 1997-03-25 | Philips Electronics North America Corporation | Polynomial divider which can perform Euclid's Algorithm to produce an error locator polynomial from an error syndrome polynomial, and apparatus including the polynomial divider |
US5974582A (en) * | 1997-10-14 | 1999-10-26 | Lsi Logic Corporation | High-speed chien search logic |
US5943348A (en) * | 1997-10-14 | 1999-08-24 | Lsi Logic Corporation | Method to check for burst limiting in error correcting systems |
US6279137B1 (en) | 1998-12-08 | 2001-08-21 | Lsi Logic Corporation | System and method for a storage-efficient parallel Chien Search |
EP1011202A3 (fr) | 1998-12-11 | 2003-07-09 | Matsushita Electric Industrial Co., Ltd. | Décodeur Reed-Solomon |
JP5674700B2 (ja) * | 2012-03-22 | 2015-02-25 | 株式会社東芝 | 符号化装置および符号化装置の制御方法、ならびに、記憶装置 |
DE102021109391B3 (de) * | 2021-04-14 | 2022-08-25 | Infineon Technologies Ag | Multibytefehler-Erkennung |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0204612A1 (fr) * | 1985-05-30 | 1986-12-10 | LABORATOIRE CENTRAL DE TELECOMMUNICATIONS Société anonyme: | Procédé de transmission, avec possibilité de correction de paquets d'erreurs, de messages d'information et dispositifs de codage et de décodage pour la mise en oeuvre de ce procédé |
US4649541A (en) * | 1984-11-21 | 1987-03-10 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Reed-Solomon decoder |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4494234A (en) * | 1982-12-29 | 1985-01-15 | International Business Machines Corporation | On-the-fly multibyte error correcting system |
US4665523A (en) * | 1984-02-15 | 1987-05-12 | Stanford University | Method and means for error detection and correction in high speed data transmission codes |
US4873688A (en) * | 1987-10-05 | 1989-10-10 | Idaho Research Foundation | High-speed real-time Reed-Solomon decoder |
US4868828A (en) * | 1987-10-05 | 1989-09-19 | California Institute Of Technology | Architecture for time or transform domain decoding of reed-solomon codes |
US4958348A (en) * | 1988-02-12 | 1990-09-18 | Eastman Kodak Company | Hypersystolic Reed-Solomon decoder |
JPH02125532A (ja) * | 1988-11-04 | 1990-05-14 | Sony Corp | Bch符号の復号装置 |
US5170399A (en) * | 1989-08-30 | 1992-12-08 | Idaho Research Foundation, Inc. | Reed-Solomon Euclid algorithm decoder having a process configurable Euclid stack |
US5099482A (en) * | 1989-08-30 | 1992-03-24 | Idaho Research Foundation, Inc. | Apparatus for detecting uncorrectable error patterns when using Euclid's algorithm to decode Reed-Solomon (BCH) codes |
-
1991
- 1991-02-25 DE DE4105860A patent/DE4105860C2/de not_active Expired - Fee Related
- 1991-12-12 US US07/805,766 patent/US5365529A/en not_active Expired - Fee Related
-
1992
- 1992-02-17 FR FR9201750A patent/FR2673341B1/fr not_active Expired - Fee Related
- 1992-02-24 JP JP4036134A patent/JPH0575479A/ja active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4649541A (en) * | 1984-11-21 | 1987-03-10 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Reed-Solomon decoder |
EP0204612A1 (fr) * | 1985-05-30 | 1986-12-10 | LABORATOIRE CENTRAL DE TELECOMMUNICATIONS Société anonyme: | Procédé de transmission, avec possibilité de correction de paquets d'erreurs, de messages d'information et dispositifs de codage et de décodage pour la mise en oeuvre de ce procédé |
Non-Patent Citations (1)
Title |
---|
PROCEEDINGS OF EUSIPCO-88 SIGNAL PROCESSING IV: THEORIES AND APPLICATIONS, GRENOBLE FR, 09.88 ELSEVIER SCIENCE PUBLISHERS vol. 2, 5 Septembre 1988, AMSTERDAM,NL pages 1015 - 1018 , XP43873 HAHN 'Universal error correction codec for data transmission' * |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0989679A1 (fr) * | 1992-10-30 | 2000-03-29 | Sony Corporation | Méthode de correction de données perdues et circuit correspondant |
EP0595326A2 (fr) * | 1992-10-30 | 1994-05-04 | Sony Corporation | Méthode de correction de données perdues et circuit correspondant |
EP0595326A3 (en) * | 1992-10-30 | 1995-10-04 | Sony Corp | Method of correcting lost data and circuit thereof |
US5566190A (en) * | 1992-10-30 | 1996-10-15 | Sony Corporation | Apparatus and methods for correcting lost data |
EP0991196A1 (fr) * | 1992-10-30 | 2000-04-05 | Sony Corporation | Méthode de correction de données perdues et circuit correspondant |
EP0989680A1 (fr) * | 1992-10-30 | 2000-03-29 | Sony Corporation | Méthode de correction de données perdues et circuit correspondant |
EP0660533A2 (fr) * | 1993-12-20 | 1995-06-28 | AT&T Corp. | Méthode et appareil pour un décodeur à itération réduite |
EP0660533A3 (fr) * | 1993-12-20 | 1996-01-03 | At & T Corp | Méthode et appareil pour un décodeur à itération réduite. |
EP0660535A2 (fr) * | 1993-12-27 | 1995-06-28 | Canon Kabushiki Kaisha | Appareil pour corriger uniformément des effacements et des erreurs de mots reçus en utilisant un polynome commun |
EP0660535A3 (fr) * | 1993-12-27 | 1995-12-13 | Canon Kk | Appareil pour corriger uniformément des effacements et des erreurs de mots reçus en utilisant un polynome commun. |
US5541937A (en) * | 1993-12-27 | 1996-07-30 | Canon Kabushiki Kaisha | Apparatus for uniformly correcting erasure and error of received word by using a common polynomial |
FR2717968A1 (fr) * | 1994-03-25 | 1995-09-29 | Mitsubishi Electric Corp | Codeur exécutant une correction d'erreurs, décodeur exécutant une correction d'erreurs et système de transmission de données utilisant des codes de correction d'erreurs. |
US5912905A (en) * | 1994-03-25 | 1999-06-15 | Mitsubishi Denki Kabushiki Kaisha | Error-correcting encoder, error-correcting decoder and data transmitting system with error-correcting codes |
US5699368A (en) * | 1994-03-25 | 1997-12-16 | Mitsubishi Denki Kabushiki Kaisha | Error-correcting encoder, error-correcting decoder, and data transmitting system with error-correcting codes |
Also Published As
Publication number | Publication date |
---|---|
DE4105860A1 (de) | 1992-08-27 |
JPH0575479A (ja) | 1993-03-26 |
US5365529A (en) | 1994-11-15 |
DE4105860C2 (de) | 1995-04-20 |
FR2673341B1 (fr) | 1997-03-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
FR2673341A1 (fr) | Agencement de circuit pour detecter et corriger des defauts dans des mots de donnees. | |
EP0108655B1 (fr) | Système de détection et de correction d'erreurs de transmission d'un message binaire utilisant un code cyclique détecteur et correcteur d'erreurs de type Reed-Solomon entrelacé | |
EP0265336B1 (fr) | Opérateur polynomial dans les corps de Galois, et processeur de traitement de signal numérique comportant un tel opérateur | |
FR2860360A1 (fr) | Dispositif de codage /decodage utilisant un codeur/decodeur de reed-solomon | |
EP0821493B1 (fr) | Système de correction d'erreurs dans des trames de données ayant des codes de parité horizontaux et verticaux | |
FR2714498A1 (fr) | Décodeur exécutant une correction d'erreurs et procédé de décodage avec correction d'erreurs. | |
CH653457A5 (fr) | Procede de correction d'erreurs dans des signaux de donnees digitales. | |
FR2736479A1 (fr) | Procede de codage et de decodage de correction d'erreurs et circuit utilisant ledit procede | |
FR2549319A1 (fr) | Dispositif decodeur pour le decodage de mots de code qui sont proteges par blocs au moyen d'un code de reed-solomon contre plusieurs erreurs de symbole par bloc et dispositif de lecture pour des corps de stockage pouvant etre lus par voie optique, ce dispositif de lecture etant pourvu d'un tel dispositif decodeur | |
EP0995272A1 (fr) | Decodage iteratif de codes produits | |
FR2599916A1 (fr) | Procede et dispositif pour le decodage d'un bloc de symboles de code qui est reparti de deux manieres sur des mots de code qui sont chacun proteges par un code a distance maximum de separation | |
JPH0653842A (ja) | Rsコードデータ信号を復号化する方法および回路 | |
EP0682828B1 (fr) | Procede d'entrelacement et de desentrelacement en bloc et dispositif de mise en oeuvre | |
FR2540690A1 (fr) | Verificateur de codeur | |
EP0204635B1 (fr) | Procédé de transmission en blocs de mots d'information numérique | |
EP0204612B1 (fr) | Procédé de transmission, avec possibilité de correction de paquets d'erreurs, de messages d'information et dispositifs de codage et de décodage pour la mise en oeuvre de ce procédé | |
FR2714555A1 (fr) | Procédé et dispositif pour calculer un polynôme localisateur d'erreurs à utiliser dans un décodeur de Reed-Solomon. | |
FR2866998A1 (fr) | Decodage et correction d'erreurs pour codes de geometrie algebrique | |
EP1076933B1 (fr) | Dispositif de correction d'erreurs et lecteur de disque optique comportant un tel dispositif | |
EP0690584B1 (fr) | Circuit de localisation d'erreurs d'un décodeur Reed-Solomon | |
EP0463598A1 (fr) | Circuit de décodage de codes convolutionnels pour l'exécution de l'étape de stockage et d'exploration inverse des chemins survivants d'un algorithme de viterbi | |
FR2863794A1 (fr) | Procedes et dispositifs de localisation d'erreurs pour les codes de geometrie algebrique | |
FR2838580A1 (fr) | Procedes et dispositifs de faible cout pour le decodage de codes produits | |
KR100192804B1 (ko) | 리드 솔로몬 복호화기에서의 다항식 평가 장치 | |
EP0165147B1 (fr) | Codeur-décodeur de codes de blocs, paramètrable |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
ST | Notification of lapse |