Brevet FR2769435A1 — publié le 19990409

DECODEUR SERIE DE REED-SOLOMON SYNCHRONISE AVEC UN SIGNAL D'HORLOGE DE BITS La présente invention concerne un décodeur de petite taille qui réduit la consommation de puissance, et plus particulièrement, un décodeur série de Reed-Solomon synchronisé avec un signal d'horloge de bits. Dans les systèmes numériques de communication classiques, le décodeur de Reed-Solomon a été utilisé pour corriger une erreur produite dans la transmission des signaux. Par exemple, le décodeur de Reed-Solomon a été utilisé récemment dans la diffusion vidéo-numérique. Le décodeur de Reed-Solomon décode les données codées sur une base bloc-par-bloc de façon à corriger une erreur. Le codage sur une base bloc-par-bloc consiste à diviser les données séquentielles d'entrée en une pluralité de blocs d'une longueur prédéterminée, à coder les données par blocs et à ajouter un octet fictif à la fin des données de bloc codées. Bien que ce codage sur une base bloc-par-bloc puisse corriger les erreurs de transmission en leur ajoutant l'octet fictif dans une partie de décodage, l'octet fictif ajouté aux données de transmission provoque une augmentation de la largeur du canal. Cependant, ce codage et décodage sur une base bloc-par-bloc a été largement utilisé dans la correction des erreurs de données à cause de la capacité de correction excellente pour les erreurs de données continues. Les Figs.lA à 1D sont des vues de principe représentant un codage et un décodage classique sur une base bloc-parbloc. Cette donnée de codage de bloc utilisée dans le dispositif de codage/décodage de Reed-Solomon comprend 188 octets et 16 octets fictifs (désignés ci-après "octet, ou multiplet, de vérification"). Par conséquent, cette invention décrira les données de bloc de 204 octets, en tant qu'exemple. En se référant à la Fig.lA, une donnée de codage de source est divisée en des blocs unitaires (188 octets) avant un codage de canal. La donnée de codage de canal a la taille de 204 octets en ajoutant la donnée divisée (188 octets) au multiplet de vérification de 16 octets, comme cela est montré à la Fig.lB. Avec le codage sur la base bloc-par-bloc, le canal s'étend de 188 octets à 204 octets. Généralement, le procédé de codage/décodage de Reed Solomon effectue des opérations modulaires dans le champ de Galore. La donnée de bloc M(x) est écrite conformément à la procédure, de la manière suivante: M(x) = M18,Xla + Ml86Xl86 + . . . + M2X2 + M1X1 + MOXO . . . (1) Comme montré ci-dessus dans équation 1, la donnée de bloc est exprimée sous la forme d'un polynôme M(x) constitué d'un ordre spécifique correspondant à chaque octet. Ce qui signifie que la donnée est divisée en une pluralité de blocs de "ordre + 1". La donnée de canal est obtenue en multipliant la donnée de verrouillage M(x) par un polynôme de création d'ordre 16 G(x). Ce qui signifie que la donnée de codage de canal d'ordre 203 C(x) est obtenue en multipliant la donnée de bloc d'ordre 187 par le polynôme de création d'ordre 16, sachant que les coefficients de la donnée de bloc M(x) sont les mêmes que ceux des données de codage de canal d'ordre 203 à 16 C(x), et les coefficients de la donnée de codage de canal d'ordre 15 C(x) et les coefficients des données de codage de canal d'ordre 15 à 0 C(x) correspondant aux octets de vérification. En utilisant ces octets de vérification, les erreurs produites en transférant les données peuvent être corrigées. La donnée de codage de canal C(x) et le polynôme de création G(x) sont exprimés de la manière suivante: La donnée de codage de canal C(x) est transférée vers un décodeur dans le terminal de réception à travers un canal de transmission avec du bruit. Par conséquent, la donnée fournie en entrée au décodeur du terminal de réception est une donnée de réception R(x) qui est différente de la donnée de codage de canal C(x). La donnée de réception R(x) est exprimée de la manière suivante: Comme montré à la Fig.lB, la donnée de réception R(x) peut inclure la donnée d'erreur E(x), et la donnée d'erreur E(x) a des valeurs aléatoires. Comme indiqué ci-dessus, la donnée de codage, à laquelle est ajouté le multiplet de vérification de 16 octets, peut généralement corriger des erreurs de 8 octets. En se référant à la Fig.2, il est maintenant décrit le décodeur de Reed-Solomon pour corriger 8 octets dans la donnée de réception erronée R(x). En premier lieu, le décodeur de Reed-Solomon inclut: un registre 21 mémorisant temporairement la donnée de bloc fournie en entrée à travers le canal de transmission jusqu'à ce que les valeurs d'erreur soient calculées; une partie de calcul de syndrome 22 pour calculer le polynôme afin de déterminer si une erreur est présente ou pas dans la donnée de bloc reçue; une partie de calcul de polynôme d'estimation et de position d'erreur 23 pour déterminer des coefficients du polynôme de position d'erreur à partir du polynôme de syndrome de la partie de calcul de syndrome 22 en utilisant l'algorithme d'Euclide, afin de calculer ainsi les positions d'erreur et le polynôme estimé; une partie de calcul de valeur d'erreur et de racine de polynôme de position d'erreur 24 pour calculer des racines du polynôme de position d'erreur calculé provenant de la partie de calcul de polynôme d'estimation et de position d'erreur 23 et calculer ensuite les valeurs d'erreur; une partie de génération de signal de commande 26 pour commander la partie de calcul de syndrome 22, la partie de calcul de polynôme d'estimation et de position d'erreur 23 et la partie de calcul de valeur d'erreur et de racine de polynôme de position d'erreur 24; et un additionneur 25 pour ajouter la donnée de bloc mémorisée dans le registre 21 au résultat de la partie de calcul de valeur d'erreur et de racine de polynôme de position d'erreur 24. Pour calculer les positions d'erreur et les valeurs d'erreur à partir de la donnée de bloc reçue R(x), le polynôme de syndrome S(x) ayant cette information devra être calculé, et le polynôme de syndrome S(x) sera écrit de la manière suivante: pour 0sksl5 &alpha;3 + &alpha;4 + &alpha;3 + &alpha;2 + 1 = 0 ... (4) où Sk est une valeur de coefficient du polynôme de syndrome S(x), et a est une valeur dans le champ de Galore. Le polynôme de syndrome S(x) comprend 16 coefficients qui sont égaux au nombre des octets de vérification. Ce qui signifie que le polynôme de syndrome S(x) est un polynôme d'ordre 16. Les coefficients du polynôme de syndrome S(x) sont calculés par blocs, de façon que seulement un polynôme de syndrome S(x) est calculé dans seulement une donnée de bloc. Par conséquent, la partie de calcul de syndrome 22 a un délai d'attente de 204 octets, qui correspond à un temps de retard de l'entrée à la sortie, et sa sortie est de 204 octets. La partie de calcul de syndrome 22 obtenue avec l'équation 4 est introduite dans la partie de calcul de polynôme d'estimation et de position d'erreur 23 de façon qu'un polynôme de position d'erreur # (x) et un polynôme de valeur d'erreur # (x) permettant une déduction des positions et valeurs d'erreur sont calculés en utilisant l'algorithme d'Euclide. L'algorithme d'Euclide peut être décrit mathématiquement de la manière suivante: Ro(x) = A(x), Q0 R1 (x) = [#i - 1bi - 1Ri - 1 (x) + #i - 1ai - 1ai - 1Qi - 1 (x)] -x#li - 1# [#1 - 1ai - 1Qi - 1 (x) + #bi - 1Ri - 1 (x)] #1(x) = [#i - 1bi - 1#1 - 1 (x) + #i - 1ai - 1 i - 1 (x)] -x#li - 1# [#i - 1a#i - 1 i - 1 (x) + #bi - 1#i - 1 (x) Qi(x) = [#i - 1Qi - 1 (x) + a1.1R1(x)] i (x) = [#i - 1 i - 1 (x) + #i - 1#i - 1 (x) li - 1 = deg(Ri - 1 (x))-deg(Qi - 1 (x)) = = 1 Si li - 1 2 O #i - 1 = O si li - 1 où R0 (x) est un polynôme de référence qui découle de luimême, Qo(x) est un polynôme de syndrome de correction qui est une entrée du polynôme de syndrome, #0 (x) est un polynôme de référence et p0(x) est un polynôme de pointeur d'annulation. L'objectif final de l'algorithme d'Euclide est de déterminer le polynôme de position d'erreur et le polynôme de valeur d'erreur. La partie de calcul de polynôme d'estimation et de position d'erreur 23 est terminée lorsque l'ordre du polynôme de référence Ro(x) utilisé dans l'algorithme d'Euclide est inférieur à 8. Dans le cas où une erreur est présente dans un octet à l'intérieur du bloc provenant du polynôme de position d'erreur et du polynôme de valeur d'erreur, l'algorithme destiné à supprimer l'erreur est l'algorithme de recherche de Chien. En d'autres termes, il est déterminé s'il existe ou pas une erreur, en remplaçant la variable dans le polynôme de position d'erreur et le polynôme de valeur d'erreur, qui sont calculés par l'algorithme d'Euclide, par une racine correspondant à chaque octet. Si une erreur est présente, la valeur de l'erreur est calculée avec l'équation 6 suivante: Typiquement, la donnée d'entrée du décodeur de Reed Solomon est fournie en entrée sur une base bloc-par-bloc en réponse à l'horloge d'octets. Dans la réalisation de ce décodeur de Reed-Solomon, son fonctionnement est donc cadencé par l'horloge d'octets. Il en découle que le décodeur de Reed-Solomon classique amène chaque partie de calcul à avoir des cellules séparées, ce qui accroît la taille du décodeur. Un objectif de la présente invention est de fournir un décodeur de Reed-Solomon synchronisé avec un signal d'horloge de bits série. Un autre objectif de la présente invention est de fournir un décodeur de Reed-Solomon capable de réduire la taille de puce en implantant des parties de calcul utilisant seulement une cellule. Encore un autre objectif de la présente invention est de fournir un décodeur de Reed-Solomon capable de réduire la consommation de puissance. Conformément à la présente invention, il est fourni un décodeur de Reed-Solomon incluant une partie de calcul de syndrome pour calculer un polynôme de syndrome d'une donnée de codage d'entrée, une partie de calcul de polynôme d'estimation et de position d'erreur pour calculer un polynôme de valeur d'erreur et un polynôme de position d'erreur en utilisant le polynôme de syndrome calculé dans la partie de calcul de syndrome, une partie de calcul de valeur d'erreur et de racine de polynôme de position d'erreur pour calculer une valeur d'erreur en utilisant les polynômes de position et de valeur d'erreur calculés dans le polynôme d'estimation et de position d'erreur, la partie de calcul de syndrome comprenant un moyen pour classer la donnée de codage d'entrée en une donnée paire et une donnée impaire et pour calculer, en série, des coefficients du polynôme de syndrome sur une base bit-par-bit, en synchronisme avec un signal d'horloge de bits, la partie de calcul de polynôme d'estimation et de position d'erreur comprenant un moyen pour classer un polynôme de syndrome initial, un polynôme de syndrome de correction, un polynôme de pointeur d'annulation initial et un polynôme de pointeur d'annulation initial en une donnée paire et une donnée impaire et pour un polynôme de valeur d'erreur et un polynôme de valeur de position d'erreur sur une base bit-par-bit, en synchronisme avec un signal d'horloge de bits, la partie de calcul de valeur d'erreur et de racine de polynôme de position d'erreur comprenant un moyen pour remplacer le polynôme de position d'erreur et le polynôme de valeur d'erreur par des racines, en synchronisme avec un signal d'horloge de bits, pour cumuler des résultats du polynôme de position d'erreur et du polynôme de valeur d'erreur et pour fournir des valeurs d'erreur pour une correction d'erreur, en synchronisme avec un signal d'horloge d'octets. Une compréhension plus complète de la nature et de l'avantage de la présente invention apparaîtra en se référant aux parties restantes de la description et des dessins, dans lesquels: les Figs.lA à 1D sont des vues de principe représentant une opération de codage et de décodage classique sur une base bloc-par-bloc; la Fig.2 est un schéma d'un décodeur de Reed-Solomon; la Fig.3 est un schéma d'une partie de calcul de syndrome selon la présente invention; la Fig.4 est un chronogramme représentant la partie de calcul de syndrome selon la présente invention; la Fig.5 est un schéma d'une partie de calcul de polynôme d'estimation et de position d'erreur selon la présente invention; la Fig.6 est un schéma d'une partie de calcul de valeur d'erreur et de racine de polynôme de position d'erreur selon la présente invention; et la Fig.7 est un algorithme de recherche de Chien, sous la forme d'un tableau, selon la présente invention. Une description détaillée d'une forme de réalisation selon la présente invention est maintenant fournie ci-dessous en référence aux dessins annexés. De manière générale, dans le système de transmission, une partie de décodage au niveau d'un terminal de réception fonctionne bit-par-bit avant de réaliser le décodage de Reed Solomon. Le décodeur de Reed-Solomon peut donc fonctionner en réponse à un signal d'horloge de bits. Dans ce cas, les opérations de tous les blocs dans le décodeur de Reed-Solomon classique, qui répond au signal d'horloge d'octets, peuvent être obtenues en réalisant la division temporelle dans seulement un bloc, c'est-à-dire, en répétant huit fois les opérations. Dans le cas où le décodeur ci-dessus est réalisé, chaque processeur occupe une zone de puce de 1/81i"", comparativement à celle du décodeur classique. De plus, pour effectuer les huit divisions temporelles, des registres sont nécessaires pour mémoriser temporairement des données. Cela peut être réalisé en prévoyant sur une puce des registres à décalage qui procurent un retard de 8 cycles. Consécutivement à la réduction du délai d'attente global, la taille de la mémoire vive RAM pour le retard peut aussi être réduite. Si le décodeur de Reed-Solomon classique retarde la donnée d'entrée de 400 cycles, le décodeur de Reed-Solomon selon la présente invention retarde la donnée d'entrée seulement de 242 cycles. Par conséquent, la taille souhaitable de la mémoire RAM est réduite d'un rapport 242/400. La Fig.3 est un schéma d'une partie de calcul de syndrome selon la présente invention, et la Fig.4 est un chronogramme représentant la partie de calcul de syndrome selon la présente invention. Dans la Fig.3, le repère 31 désigne un démultiplexeur, 32a et 32b désignent des additionneurs, 33a, 33b, 34a et 34b désignent des multiplieurs, 35a et 35b désignent des registres, 36a et 36b désignent des portes ET, et 37a et 37b désignent des registres à décalage. La partie de calcul de syndrome, qui est bien connue des hommes du métier auquel appartient le sujet, est employée aussi dans la présente invention. Cependant, la partie de calcul de syndrome selon la présente invention calcule le polynôme de syndrome, en classant la donnée d'entrée en une donnée paire et une donnée impaire. De plus, la partie de calcul de syndrome selon la présente invention est caractérisée en ce que la donnée de codage d'entrée est traitée en série en réponse au signal d'horloge de bits. Le principe de la présente invention est d'abord décrit ci-dessous. Pour calculer le polynôme de syndrome, les coefficients Sk du polynôme de syndrome peuvent être exprimés de la manière suivante: Sk = ( ...((r203ak + r202)ak + r20l)ak + . ) ak + r0) . . . (7) L'équation 7 peut être modifiée sur la base de sa caractéristique de module pour donner l'équation suivante: pour (0, 203, n + +) Sk n t rn + 5k. n - 1&alpha;15 - k, pour chaque k, lsksl5 Sk, n - 1 = 0 Sk 203 = Sk . . . (8) Par conséquent, dans la partie de calcul de syndrome, le circuit destiné à obtenir les coefficients Sk du polynôme de syndrome est réalisé en parallèle, et l'équation 8 devra être implantée par un processeur, car la rangée de donnée d'entrée rn est fournie en entrée en série. De plus, pour calculer les coefficients de syndrome Sk de la rangée de donnée d'entrée qui est fournie en entrée dans tous les cycles d'octet, seulement deux processeurs sont requis afin de traiter la donnée paire et la donnée impaire dans la présente invention, au lieu des 16 processeurs nécessaires dans la technique antérieure. La Fig.3 montre ce circuit. La partie de calcul de syndrome selon la présente invention présente un délai d'attente de 204 cycles, et délivre un polynôme de syndrome correspondant au polynôme de bloc associé pour un cycle tous les 204 cycles. Sachant que les calculs pour la donnée paire et la donnée impaire sont les mêmes, l'on décrit ci-dessous, dans la présente invention, un polynôme de syndrome seulement pour les données paires. En premier lieu, les coefficients Sk du polynôme de syndrome peuvent être exprimés de la manière suivante: S14 - rn + Sl4al pour 1#n#203 S12 # rn + S12&alpha;3 pour 1#n#203 S10 # rn + S10&alpha;5 pour 1#n#203 S8 # rn + S8&alpha;7 pour 1#n#203 S6 # rn + S6&alpha;9 pour 1#n#203 S4 # rn + S4&alpha;11 pour 1#n#203 S2 # rn + S4&alpha;13 pour 1#n#203 S0 t rn + SOals pour 1#n#203 ... (9) Comme montré dans l'équation 9 ci-dessus, les coefficients Sk du polynôme de syndrome sont obtenus en multipliant les valeurs des coefficients par une constante fixe a, successivement. L'équation 9 est réécrite pour correspondre à une division temporelle, de la manière suivante: pour (n = 203; n = 0; n --) pour (t = 0; t = 7; t + 2t, n = Rn + S2t, n+1&alpha;2t St, 204 =0 . . . (10) Comme montré dans l'équation 10 ci-dessus, "t" prend les valeurs 0 à 7 pour chaque variable "n", c'est-à-dire, 8 cycles. Les coefficients Sk du polynôme de syndrome correspondant à chaque "t" sont mémorisés temporairement dans le registre à décalage. Il en découle que le registre à décalage fonctionne comme un élément pour retarder les coefficients de syndrome, qui sont calculés sur une base bitpar-bit, pendant 8 cycles. En se référant maintenant aux Figs.3 et 4, la rangée de donnée de codage, qui est fournie en entrée sur une base octet-par-octet en fonction du signal d'horloge d'octets, est divisée successivement en la donnée paire et la donnée impaire par le démultiplexeur 31 et les données paire et impaire sont fournies en entrée respectivement aux additionneurs 32a et 32b pour calculer les coefficients de syndrome. La constante fixe a, qui est prédéterminée et mémorisée dans une mémoire (non représentée), est fournie aux multiplieurs 34a et 34b. Les multiplieurs 34a et 34b multiplient la constante fixe a provenant de la mémoire par la constante précédente a qui a été délivrée au niveau de la période d'horloge de bits précédente. Les sorties des multiplieurs 34a et 34b sont mémorisées dans les registres 35a et 35b, respectivement. Les registres 35a et 35b sont initialisés par un signal msbCK indiquant le bit le plus significatif. De plus, les registres 35a et 35b mémorisent temporairement les sorties des multiplieurs 34a et 34b et délivrent la valeur mémorisée aux multiplieurs 33a et 34b et aux multiplieurs 33b et 34b, respectivement. Les registres à décalage de 8 bits, 37a et 37b, reçoivent et décalent le coefficient de syndrome calculé dans les additionneurs 32a et 32b. La valeur du coefficient de syndrome initial, qui est fourni en entrée aux registres à décalage 37a et 37b, est zéro (0). La valeur du coefficient de syndrome, qui est décalé par les registres à décalage de 8 bits 37a et 37b, est fournie en entrée aux portes ET à 2 entrées, 36a et 36b, avec un signal de trame inversé indiquant une période d'entrée valide pour une trame. Les multiplieurs 33a et 33b calculent chaque coefficient de la donnée d'octet, en multipliant le coefficient retardé précédent, appliqué par les portes ET 36a et 36b, par le coefficient fixe provenant des registres 35a et 35b. Le coefficient calculé et la donnée de bit dans la donnée de codage sont ajoutés par les additionneurs 32a et 32b, de façon que le polynôme de syndrome correspondant à une donnée de bloc est calculé. Ces polynômes de syndrome délivrent respectivement les rangées de données paire et impaire à la cadence de l'horloge de bits de 8 cycles relativement à la donnée de bloc, en synchronisme avec un signal de validation de polynôme de syndrome Syndsig. Pour calculer le polynôme de position d'erreur et le polynôme de valeur d'erreur à partir du coefficient du polynôme de syndrome, l'algorithme d'Euclide a été largement utilisé. Dans la présente invention, ces polynômes sont implantés en série dans un processeur. De plus, pour minimiser globalement le délai d'attente du décodeur de Reed Solomon, la partie de calcul de polynôme d'estimation et de position d'erreur selon la présente invention n'est pas synchronisée avec le signal d'horloge de bits, mais avec le signal d'horloge d'octets. La Fig.5 est un schéma d'une partie de calcul de polynôme d'estimation et de position d'erreur utilisant l'algorithme d'Euclide selon la présente invention. Dans la Fig.5, les repères 51a et 51b désignent des commutateurs crossbar, 52a, 52b, 53a et 53b désignent des multiplieurs, 54a et 54b désignent des additionneurs, 55a à 55d désignent des démultiplexeurs, 56a à 56f désignent des registres à décalage, et 57a à 57d désignent des multiplexeurs. La partie de calcul de polynôme d'estimation et de position d'erreur 23 selon la présente invention est analogue à celle classique qui est bien connue aussi des hommes du métier auquel appartient le sujet. Cependant, la position d'erreur et la valeur d'erreur sont calculées respectivement dans la donnée paire et la donnée impaire, et des registres à décalage sont prévus pour le processus sériel. La modification de l'algorithme d'Euclide pour le processus sériel peut être exprimée mathématiquement de la manière suivante: n,(x) = O, (x) = 1, y,(x)= 1, fla(X) = 0 1 = max(t, Ri t) - max(t, Qi-i, t) a11 = vrai (li - 1#0) . (11) Les circuits conçus sur la base de l'équation 11 cidessus, c'est-à-dire, la partie de calcul de polynôme d'estimation et de position d'erreur 23 selon la présente invention, sont montrés à la Fig.5. A la Fig.5, R(x) est un polynôme de syndrome initial, Q(x) est un polynôme de syndrome de correction pour traiter de nouveau le polynôme de syndrome, @ #(x) est un polynôme de pointeur d'annulation initial, et p(x) est un polynôme de pointeur d'annulation. Les coefficients A et B sont traités respectivement par des opérateurs séparés pour tous les blocs. Le calcul des coefficients A et B étant bien connu des hommes du métier, la description détaillée est omise. De plus, le polynôme de syndrome de correction Q(x) et le polynôme de pointeur d'annulation y(x) sont produits par la partie de calcul de syndrome et le polynôme de syndrome initial R(x) et le polynôme de pointeur d'annulation initial A(x) sont produits par leur propre opérateur (non représenté). La partie de calcul de polynôme d'estimation et de position d'erreur, qui correspond à chaque polynôme, inclut un opérateur pour calculer les valeurs d'erreur et la position d'erreur et nécessite huit registres à décalage pour traiter individuellement la donnée paire et la donnée impaire. Analogues à des circuits d'usage général, les commutateurs crossbar 51a et 51b délivrent sélectivement soit le polynôme de syndrome initial R(x) et le polynôme de syndrome de correction Q(x), soit le polynôme de pointeur d'annulation initial A(x) et le polynôme de pointeur d'annulation p(x) en réponse à un signal de commande produit par un générateur de signal de commande. Les multiplieurs 52a et 52b multiplient le coefficient B par une sortie des commutateurs crossbar 51a et 51b, respectivement. De plus, les multiplieurs 53a et 53b multiplient le coefficient A par une autre sortie des commutateurs crossbar 51a et 51b, respectivement. Les additionneurs 54a et 54b ajoutent les sorties des multiplieurs 52a et 52b aux sorties des multiplieurs 53a et 53b, respectivement. Les signaux de sortie des additionneurs 54a et 54b sont divisés en des données paires et des données impaires par l'intermédiaire des démultiplexeurs 55a et 55c, respectivement, et les données divisées sont appliquées aux registres à décalage 56a, 56b, 56e et 56f. De même, d'autres sorties des commutateurs crossbar 51a et 51b sont divisées en des données paires et des données impaires par l'intermédiaire des démultiplexeurs 55b et 55d, respectivement, et les données divisées sont appliquées aux registres à décalage 56c, 56d, 56g et 56h. Ces registres à décalage 56a à 56h décalent les signaux d'entrée et délivrent ensuite les signaux décalés de 8 bits. Les sorties de la paire de registres à décalage mémorisant les données paires et les données impaires sont sélectionnées par les multiplexeurs 57a à 57d. La sortie de chacun des multiplexeurs 57a à 57d est renvoyée dans les commutateurs crossbar 51a et 51b et la sortie sous la forme d'un polynôme de valeur d'erreur et d'un polynôme de position d'erreur est fournie en entrée à la partie de calcul de valeur d'erreur et de racine de polynôme de position d'erreur 24 de la Fig.2. La partie de calcul de valeur d'erreur et de racine de polynôme de position d'erreur 24, recevant le polynôme de position d'erreur et le polynôme de valeur d'erreur, utilise l'algorithme de recherche de Chien afin d'obtenir les valeurs d'erreur et les positions d'erreur. Ce qui signifie que la partie de calcul de valeur d'erreur et de racine de polynôme de position d'erreur 24 remplace la variable dans le polynôme de position d'erreur et le polynôme de valeur d'erreur par une racine correspondant à chaque position d'erreur, et détermine si le résultat calculé est ou pas une racine de la position d'erreur. Si le résultat est la racine souhaitée, la partie de calcul de valeur d'erreur et de racine de polynôme de position d'erreur 24 calcule la valeur d'erreur, en remplaçant la variable dans le polynôme de valeur d'erreur par la racine calculée. Conformément à la présente invention, la partie de calcul de valeur d'erreur et de racine de polynôme de position d'erreur 24 utilise un procédé de substitution dans la configuration série pour déterminer si la racine correspond à l'ordre associé et est synchronisée avec le signal d'horloge d'octets au moment de la correction d'erreur. La raison pour laquelle la synchronisation avec le signal d'horloge d'octets est réalisée est que la donnée à corriger est basée sur l'unité octet. L'opération de la partie de calcul de valeur d'erreur et de racine de polynôme de position d'erreur 24 pour corriger les valeurs d'erreur est écrite de la manière suivante: pour (n = 203; n = 0; n --) pour (t = 0; t = 7; t + #t, n + 1#-t, #t, 204 = #t ... (12) n 2 -t n t=8 o(a-i) = E Xt, i t=l t=8 a(ff~l) = at, a t. i t=0 X=4 impair ) = E a, i t=2X-l X=l e(a-i) = si (a(a-i) = o), (afin / aimpair(ai: si (a(a) + 0), 0 La Fig.6 est un schéma de la partie de calcul de valeur d'erreur et de racine de polynôme de position d'erreur selon la présente invention. Dans la Fig.6, les repères 61a et 61b désignent des générateurs de valeurs initiales, 62a et 62b désignent des multiplieurs, 63a et 63b désignent des multiplexeurs, 64a et 64b désignent des registres à décalage de 8 bits, 65 désigne un extracteur de valeur impaire, 66a à 66c désignent des accumulateurs, 67 désigne un détecteur de valeur zéro, 68 désigne une mémoire morte ROM, 69 désigne un additionneur, et 70 désigne une porte ET. Les générateurs de valeurs initiales 61a et 61b produisent le polynôme de position d'erreur a(x) et le polynôme de valeur d'erreur (x) ayant 256 octets. Les multiplexeurs 63a et 63b délivrent sélectivement les données provenant des générateurs de valeurs initiales 61a et 61b, respectivement, et délivrent après sélectivement les résultats des multiplieurs 62a et 62b pendant 8 bits sur une base bit-par-bit afin de calculer les valeurs pour chaque bit par l'intermédiaire des multiplieurs 62a et 62b. Les sorties des multiplexeurs 63a et 63b sont appliquées respectivement aux registres à décalage de 8 bits 64a et 64b. Les registres à décalage de 8 bits 64a et 64b décalent les données d'entrée de 8 bits de façon que les données d'entrée décalées sont fournies successivement aux multiplieurs 62a et 62b. Les multiplieurs 62a et 62b multiplient le coefficient fixe par la donnée décalée. Après avoir effectué séparément l'opération pour calculer les valeurs d'erreur et la position d'erreur, la sortie du multiplexeur 63a, dans l'opération de position d'erreur, est appliquée à l'extracteur de valeur impaire 65 et à l'accumulateur 66a. L'extracteur de valeur impaire 65 extrait seulement la valeur impaire de la sortie du multiplexeur 63a, et les valeurs impaires extraites sont cumulées dans l'accumulateur 66b sur une base octet-paroctet. D'autre part, l'accumulateur 66a cumule aussi les données d'entrée sur une base octet-par-octet. De même, la sortie du multiplexeur 63b, dans l'opération de valeur d'erreur, est cumulée dans l'accumulateur 66c sur une base octet-par-octet. Ces accumulateurs sont construits avec des registres et des additionneurs. Le détecteur de zéro 67 détecte une valeur "0" de la sortie de données de l'accumulateur 66a, et la mémoire morte ROM 68 inverse les données de sortie de l'accumulateur 66b et mémorise les données inversées. De plus, la mémoire ROM 68 a une taille de 256 x 8 pour le calcul fractionnaire. La sortie de l'accumulateur c, qui est cumulée dans l'opération de valeur d'erreur, et la sortie de la mémoire ROM 68 sont ajoutées par l'additionneur 69. La valeur d'erreur est délivrée en effectuant une opération logique ET entre la sortie du détecteur de zéro 67 et la sortie de l'additionneur 69. Dans ce décodeur de Reed-Solomon, dans le cas où le nombre d'erreurs corrigées est inférieur à 8, il est possible de connaître le nombre des erreurs, cependant, dans le cas où ce nombre est supérieur à 8, un signal d'erreur de trame est produit. Dans l'algorithme de Chien modifié en un algorithme série, la variation des données en fonction du temps est montrée à la Fig.7. Comme cela apparaît ci-dessus, le décodeur Reed-Solomon diminue la taille de puce avec la réduction de la consommation de puissance. La forme de réalisation préférée de la présente invention a été divulguée à des fins d'illustration, et les hommes du métier apprécieront que différentes modifications, additions et substitutions sont possibles sans s'écarter du champ d'application et de l'esprit de la présente invention telle que divulguée dans les revendications annexées. REVENDICATIONS 1. Décodeur de Reed-Solomon incluant une partie de calcul de syndrome (22) pour calculer un polynôme de syndrome d'une donnée de codage d'entrée, une partie de calcul de polynôme d'estimation et de position d'erreur (23) pour calculer un polynôme de valeur d'erreur et un polynôme de position d'erreur en utilisant le polynôme de syndrome calculé dans la partie de calcul de syndrome, et une partie de calcul de valeur d'erreur et de racine de polynôme de position d'erreur (24) pour calculer une valeur d'erreur en utilisant les polynômes de position et de valeur d'erreur calcules dans le polynôme d'estimation et de position d'erreur, caractérisé en ce que la partie de calcul de syndrome comprend: un moyen (31 à 37) pour classer la donnée de codage d'entrée en une donnée paire et une donnée impaire et pour calculer, en série, un coefficient du polynôme de syndrome sur une base bit-par-bit, en synchronisme avec un signal d'horloge de bits; la partie de calcul de polynôme d'estimation et de position d'erreur comprend: un moyen (51 à 57) pour classer un polynôme de syndrome initial (R(x)), un polynôme de syndrome de correction (Q(x)), un polynôme de pointeur d'annulation initial (X(x)) et un polynôme de pointeur d'annulation initial (p(x)) en une donnée paire et une donnée impaire et pour un polynôme de valeur d'erreur et un polynôme de valeur de position d'erreur sur une base bit-par-bit, en synchronisme avec un signal d'horloge de bits; la partie de calcul de valeur d'erreur et de racine de polynôme de position d'erreur comprend: un moyen (61 à 70) pour remplacer le polynôme de position d'erreur et le polynôme de valeur d'erreur par des racines, en synchronisme avec un signal d'horloge de bits, pour cumuler des résultats du polynôme de position d'erreur et du polynôme de valeur d'erreur et pour délivrer des valeurs d'erreur pour une correction d'erreur, en synchronisme avec un signal d'horloge d'octets. 2. Décodeur de Reed-Solomon selon la revendication 1, caractérisé en ce que la partie de calcul de syndrome comprend: un démultiplexeur (31) pour classer la donnée de codage d'entrée en la donnée paire et la donnée impaire; un moyen opérationnel (32 à 36) pour calculer le polynôme de syndrome en ajoutant un coefficient de syndrome à une sortie du démultiplexeur; et un moyen de retard (37) pour fournir le coefficient de syndrome au moyen opérationnel (32 à 36), successivement, en synchronisme avec un signal d'horloge de bits. 3. Décodeur de Reed-Solomon selon la revendication 2, caractérisé en ce que le moyen de retard (37) est un registre à décalage. 4. Décodeur de Reed-Solomon selon la revendication 2, caractérisé en ce que le moyen opérationnel comprend: un moyen d'opération logique ET (36) pour recevoir une sortie du moyen de retard (37) et un signal de trame inversé provenant d'un circuit externe; un moyen opérationnel de constante (34, 35) pour fournir une constante fixe (a) correspondant à chaque bit sur une base octet-par-octet; un multiplieur (33) pour multiplier une sortie du moyen d'opération logique ET (36) par une sortie du moyen opérationnel de constante (34, 35); et un moyen d'addition (32) pour ajouter une sortie du multiplieur (33) à une sortie du démultiplexeur (31). 5. Décodeur de Reed-Solomon selon la revendication 1, caractérisé en ce que la partie de calcul de polynôme d'estimation et de position d'erreur comprend un premier moyen opérationnel pour calculer le polynôme de valeur d'erreur et un second moyen opérationnel pour calculer le polynôme de position d'erreur, chacun des premier et second moyens opérationnels (51 à 57) comprenant: une pluralité de moyens de retard (56) pour, successivement, retarder des coefficients du polynôme de valeur d'erreur et du polynôme de position d'erreur, qui sont calculés en fonction du polynôme initial et du polynôme de la partie de calcul de syndrome, pour chacune des données de bit paire et impaire, en réponse à un signal d'horloge de bits. 6. Décodeur de Reed-Solomon selon la revendication 5, caractérisé en ce que la pluralité de moyens de retard (56) comprend huit éléments de retard. 7. Décodeur de Reed-Solomon selon la revendication 5, caractérisé en ce que le moyen de retard (56) est un registre à décalage de 8 bits. 8. Décodeur de Reed-Solomon selon la revendication 1, caractérisé en ce que la partie de calcul de valeur d'erreur et de racine de polynôme de position d'erreur comprend un premier moyen opérationnel pour calculer des racines des positions d'erreur en utilisant le polynôme de position d'erreur (a(x)) et un second moyen opérationnel pour calculer des valeurs d'erreur en utilisant le polynôme de valeur d'erreur(o(x)), chacun des premier et second moyens opérationnels (61 à 70) comprenant un moyen de retard (64) pour retarder la donnée afin de remplacer le polynôme de position d'erreur et le polynôme de valeur d'erreur par les coefficients, successivement. 9. Décodeur de Reed-Solomon selon la revendication 8, caractérisé en ce que le premier moyen opérationnel comprend: un moyen de génération de valeur initiale (61a) pour produire une sortie du polynôme de position d'erreur ayant 256 octets; un moyen de sélection (63a) pour selectionner un élément parmi une sortie du moyen de génération de valeur initiale et une valeur de remplacement pour une position d'erreur correspondant à chaque bit; un moyen de retard (64a) pour retarder, successivement, une sortie du moyen de sélection (63a) en fonction d'un signal d'horloge de bits; un multiplieur (62a) pour multiplier une sortie du moyen de retard (64a) par le coefficient fixe et fournir le résultat de multiplication; un moyen d'extraction (65) pour extraire des valeurs impaires dans des sorties du moyen de sélection (63a); un premier moyen d'accumulation (66b) pour cumuler des sorties du moyen d'extraction (65) et délivrer les valeurs cumulées sur une base octet-par-octet; un second moyen d'accumulation (66a) pour cumuler des sorties du moyen de sélection (65) et délivrer les valeurs cumulées sur une base octet-par-octet; un moyen de détection de zéro (67) pour détecter des valeurs logiques "O" de sorties du moyen de selection (63a); un moyen de mémorisation (68) pour inverser et mémoriser une sortie du premier moyen d'accumulation; un moyen d'addition (69) pour ajouter une valeur d'erreur fournie par le second moyen opérationnel (61b à 64b, 66c) à une sortie du moyen de mémorisation (68); et un moyen d'opération logique ET (70) pour recevoir une sortie du moyen d'addition (69) et une sortie du moyen de détection de zéro (67). 10. Décodeur de Reed-Solomon selon la revendication 8, caractérisé en ce que le moyen de retard (64a, 64b) est un registre à décalage de 8 bits. 11. Décodeur de Reed-Solomon selon la revendication 9, caractérisé en ce que le moyen de mémorisation (68) est une mémoire avec une taille de 256 x 8. 12. Décodeur de Reed-Solomon selon la revendication 10, caractérisé en ce que les premier et second moyens d'accumulation (66b, 66a) comprennent: un additionneur pour ajouter une nouvelle donnée à une donnée précédente; et un registre pour mémoriser temporairement une sortie de i 1 additionneur. 13. Décodeur de Reed-Solomon selon la revendication 8, caractérisé en ce que la partie de calcul de valeur d'erreur et de racine de polynôme de position d'erreur, comprend: un moyen de génération de valeur initiale (61a) pour produire une sortie du polynôme de position d'erreur ayant 256 octets; un moyen de sélection (63a) pour sélectionner un élément parmi une sortie du moyen de génération de valeur initiale et une valeur de remplacement pour une position d'erreur correspondant à chaque bit; un moyen de retard (64a) pour retarder, successivement, une sortie du moyen de sélection (63a) en fonction d'un signal d'horloge de bits; un multiplieur (62a) pour multiplier une sortie du moyen de retard (64a) par le coefficient fixe et fournir le résultat de multiplication; et un moyen d'accumulation (66a) pour cumuler des sorties du moyen de sélection (63a) sur une base octet-par-octet. 14. Décodeur de Reed-Solomon selon la revendication 13, caractérisé en ce que le moyen de retard (64a) est un registre à décalage de 8 bits. 15. Décodeur de Reed-Solomon selon la revendication 13, caractérisé en ce que le moyen d'accumulation (66a) comprend: un additionneur pour ajouter une sortie du moyen de sélection à une donnée précédente; et un registre pour mémoriser temporairement une sortie de l'additionneur.