• Aucun résultat trouvé

Architectures Reed-Solomon derivees

Le decodeur de Reed-Solomon s'insere toujours dans un systeme de stockage ou de transmission de donnees et herite donc de contraintes tres diverses. Cela peut-^etre le debit (produit de la latence par la frequence d'horloge), la latence (lorsque la frequence d'horloge est xee) ou la surface. Nous proposons donc des solutions degenerees de la precedente pour fournir des debits ou des latences adaptes a la surface.

5.9.1 Architecture a latence reduite

Les blocs de la gure 5.10 montrent que la latence du calcul des syndromes et de l'evaluation des polyn^omes est deja minimale puisqu'elle depend de l'entree serielle des symboles. Par contre, l'expansion et l'obtention des polyn^omes solutions peuvent-^etre optimisees car c'est le circuit qui gere la circulation des donnees entrantes (polyn^ome syndromial, polyn^ome e acement ou polyn^ome syndromial modi e). Nous diminuons la latence de la maniere suivante:

 Les syndromes rentrent parallelement dans l'unite d'expansion (ou en serie par paquets de p) si bien que les 2t expansions successives (ou p) sont, a present, realisees dans le m^eme cycle d'horloge: la surface et le chemin critique sont augmentes d'un facteur 2t (ou p).

 Le polyn^ome syndromial modi e n'est plus seriellement introduit dans la premiere unite de division mais tous les coecients sont reduit dans le m^eme cycle. De plus, les 2t (ou p) divisions peuvent ^etre e ectuees dans le m^eme cycle si bien que la surface et le chemin critique sont augmentes de 2t (ou p).

La surface augmente donc localement d'un facteurp, la frequence d'horloge diminue d'un facteur p mais la latence devient:

Architectures Reed-Solomon derivees

109

latence =N + 4t

p + 2 (5.19)

Il s'agit de la solution ideale d'un circuit de communication ou la frequence d'horloge est assez basse pour permettre de cha^iner les operations combinatoires.

5.9.2 Architecture a surface reduite

La solution massivement parallele precedente peut-^etre implantee par un architec-ture micro-contr^olee. Le principe est le suivant: toutes les operations combinatoires sont e ectuees par la m^eme unite arithmetique et logique (UAL), supprimant ainsi plusieurs centaines de multiplieurs et additionneurs. La surface sequentielle reste la m^eme puisqu'il faut toujours stocker les donnees intermediaires entre deux operations. Toutefois, le stockage du micro-code s'e ectue dans une ROM et les donnees sont placees dans une RAM pour diminuer la surface des points de memorisationequivalents et pour ne pas avoir a concevoir le circuit de decodage d'acces aux donnees.

Le micro-programme est ecrit en langage C, puis translate en langage machine sur des lignes de 28 bits. Il se compose de deux sortes d'operations:

1. les operations combinatoires ou sequentielles. Elles necessitent deux operandes gauche et droite, une operande resultat et une operation. les operandes sont des elements du corps de Galois, un bit, ou un degre (entier). Elle peuvent ^etre stockees dans des registres, la memoire ou des constantes cablees. Les operations sont des operations de corps de Galois (addition, nultiplication, inversion, ..), des operations logiques (Et, Ou, comparaison, ..) ou des operations entieres (incrementation, decalage, ..). Elles s'e ectuent en deux cycles: le premier joue le r^ole de fetch en allant chercher les operandes; le deuxieme e ectue l'operation et stocke le resultat comme precise dans le micro-code. Le temps d'acces des memoires ne permet pas en e et d'e ectuer tout le travail dans le m^eme cycle. 2. les contr^oles de ot permettent d'e ectuer des operations conditionnelles (saut) ou iteratives (boucle). Les donnees a tester doivent ^etre obligatoirement des registres ou des constantes si bien qu'un seul cycle est necessaire. L'UAL est plus simple puisque seules les operations logiques elementaires sont e ectuees. l'adresse de la micro-instruction suivante est maintenant fonction du resultat du test precedent.

Le schema logique est fourni en gure 5.17. Elle presente le traitement d'une operation combinatoire (deux cycles) et d'une operation de contr^ole de boucle (un cy-cle). La ROM contient 252 micro-instructions de 28 bits de largeur, la RAM contient

N +32t+ 31 lignes de largeurm (m= 8 en general) et la latence du decodage est de (N + 4t+ 2)(275 + 232t) cycles d'horloge dans le pire cas, c'est-a-dire qu'un symbole

Architectures Reed-Solomon derivees

110 000 000 111 111 00 11 00 11 00 00 11 11 000 000 111 111 000 111 000 111 fetch adr+1 UAL cycle 1 cycle 2 2 2 saut adr+1 1 0 UAL cycle 1 0 27 21 12 5 9 13 18

opération résultat opérande gauche opérande droite opération boucle bouc. op adresse boucle saut opér.ga. opér.dr op. adresse saut

écriture RAM opération fetch lecture ROM génération constante sélection/chargement registres opération lecture ROM translation d’adresse lecture RAM sélection résultat sélection/chargement registres sélection operandes génération constante

Figure 5.17: Schema de l'architecture micro-contr^olee.

est corrige tous les 275 + 232t cycles. Bien que petite, la RAM occupe la moitie de la surface totale. La co^ut de cette architecture est, bien entendu, le debit qui chute desormais a:

debit= F m

275 + 232t: (5.20)

ouF est la frequence d'horloge.

5.9.3 Architecture mixtes

Les architectures precedentes e ectuent les operations soit parallelement, soit en sequence, ce qui engendre deux solutions de debit et de surface extr^eme. Il est ju-dicieux de remarquer qu'il existe un autre degre de liberte quant a l'allocation des operations: la plupart des donnees a traiter sont des polyn^omes (syndromial, locateur, evaluateur) si bien qu'il est possible, dans chaque unite de traitement, d'e ectuer les operations sur tous les coecients en m^eme temps ou sequentiellement. En d'autres termes, nous avons deja realise des architectures totalement paralleles et totale-ment sequentielles, mais nous pouvons aussi choisir de traiter sequentielletotale-ment les polyn^omes dans une architecture parallele ou de traiter parallelement les polyn^omes dans une architecture sequentielle. On obtient alors deux architectures mixtes dont le debit est diminue ou augmente localement d'un facteur 2t.

La solution sequentielle avec traitement des polyn^omes paralleles est obtenue en placant les memoires les coecients des polyn^omes de telle maniere a pouvoir les

Resultats experimentaux des codes RS

111 acceder dans le m^eme cycle. L'UAL est bien s^ur plus grosse de 2t,1 multiplieurs et additionneurs mais les autres operations restent les m^emes et les boucles sont supprimees. Le schema de principe des operations combinatoires et sequentielles est donne en gure 5.18, dont le fonctionnement est identique a l'architecture micro-contr^olee precedente. 000 000 111 111 adr+1 UAL 0 1 polynômes polynômes cellule systolique polynôme codage 1 parmi n cycle 2 cycle 1 sélection résultat écriture RAM lecture RAM translation d’adresse lecture ROM génération constante sélection/chargement registres selection operandes fetch

Figure 5.18: Architectures mixtes.

La solution parallele avec traitement sequentiel des polyn^omes est obtenue en n'utilisant qu'une seule cellule systolique par unite de calcul, de selectionner les coef- cients, d'e ectuer l'operation et de reactualiser les coecients sequentiellement. Le principe de l'architecture est fourni dans la m^eme gure. On voit que 2tcellules sont remplacees par une cellule munie d'un arbre de selection d'operandes.

Notons nalement que nous avons encore degenere ces architectures pour realiser des decodeurs de code BCH (Bose-Chaudhuri-Hocquenheim) qui ont la particularite de transmettre des bits a la place de symboles. L'algorithme de decodage est simpli e. En particulier, les codes corrigeant une, deux ou trois erreurs peuvent ^etre construits en determinant directement des syndromes la position des erreurs. Nous ne nous etendrons pas plus sur ces codes.