FR 2839830 A1 20031121 FR 0206079 A 20020517 signal de validation (VAL). 1 2839830 Memoire pour decodeur turbo. DOMAINE TECHNIQUE La presente invention concerne un circuit de decodage pour decoder de fason iterative des donnees d'entrees, ledit circuit comprenant au moins un premier decodeur et un deuxieme decodeur, chaque decodeur etant apte 3 calculer des donnees extrinseques de sortie 3 partir des donnees d'entree et de donnees extrinseques d'entree issues de l'autre decodeur. Wile concerne egalement un procede de decodage pour decoder des donnees gr3ce 3 un tel circuit de decodage. Wi le concerne enfin un program me com prenant des instructions de code de programme pour ['execution des etapes de ce procede L'invention trouve une application, par exemple, dans un systeme de communication par satellite ou dans un systeme utilisant le standard UMTS. Par exemple, un telephone mobile de troisieme generation peut mettre en oeuvre un tel circuit de decodage. ETAT DE LA TECHNIQUE ANTERIEURE De nombreux systemes de communication utilisent des turbo codes afin d'envoyer des donnees d'un emetteur vers un recepteur. Les donnees vent encodees par ltemetteur gr3ce aux turbo codes, et decodees de fason iterative au niveau du recepteur. Un reseau de telecommunications utilisant le standard UMTS est un exemple de tel systeme. Entre l'emetteur et le recepteur, les donnees circulent sur un canal. Ce canal peut presenter du bruit, ce qui peut engendrer des erreurs dans les donnees resues par le recepteur. L'utilisation de turbo codes permet une bonne correction d'erreur au niveau du recepteur. Ainsi, un tel systeme de communication presente un taux d'erreurs relativement falble. La figure 1 represente un exemple de systeme de communication utilisant les turbo codes. Un tel systeme comprend un dispositif d'encodage ENC, un canal de transmission CHAN et un dispositif de decodage DEC. Au niveau du dispositif d'encodage ENC, un vecteur de donnees S1 est code par un premier codeur recursif systematique 11, pour donner un premier vecteur de parite P1. Parallelement, les donnees du vecteur de donnees S1 vent entrelacees par un premier entrelaceur 12, et le vecteur qui en resulte est code par un deuxieme codeur recursif systematique 13, pour donner un deuxieme vecteur de parite P2. 2 2839830 L'entrelacement des donnees diun vecteur consiste a permuter les composantes de ce vecteur selon un ordre predefini, afin diobtenir un autre vecteur. Dans la suite, on parlera indifferemment de ltentrelacement des donnees d'un vecteur ou de l'entrelacement du vecteur, afin de simplifier ['expose. Ensuite, Le vecteur de donnees S1, le premier vecteur de parite P1 et le deuxieme vecteur de parite P2 vent envoyes sur le canal de transmission CHAN, vers le dispositif de decodage DEC. Le dispositif de decodage DEC comprend un premier decodeur 14, un deuxieme decodeur 16, un deuxieme entrelaceur 15, un troisieme entrelaceur 17 et un desentrelaceur 18. Dans l'exemple de la figure 1, les decodeurs 14 et 16 vent des decodeurs entree-sortie-logiciel (en anglais SISO: soft-input-soft-output) . Ce dispositif de decodage DEC fonctionne de maniere iterative. Lors d'une iteration, le premier decodeur 14 calcule un premier vecteur de donnees extrinseques de sortie, a partir du vecteur de donnees S1 resu, du premier vecteur de parite P1 reSu et diun vecteur de donnees extrinseques issu du deuxieme decodeur 16. S'il n'existe pas encore de vecteur de donnees extrinseques issu du deuxieme decodeur 16, celui-ci est remplace par un vecteur predefini, par exemple un vecteur unitaire. Ceci est possible lors de la premiere iteration d'un decodage. Le premier vecteur de donnees extrinseques de sortie est entrelace gr3ce au deuxieme entrelaceur 15, et le vecteur qui en resulte est envoye vers le deuxieme decodeur 16. Le deuxieme decodeur 16 calcule alors un deuxieme vecteur de don nees extrinseq ues de sortie, a parti r du deuxieme vecteur de pa rite P2, d'un vecteur S2 issu du troisieme entrelaceur 17 ayant pour entree le vecteur de donnees S1, et du vecteur issu du deuxieme entrelaceur 15. Le deuxieme vecteur de donnees extrinseques de sortie est alors desentrelace par le desentrelaceur 18, et le vecteur qui en resulte est envoye vers le premier decodeur 14. Une nouvelle iteration peut alors etre effectuee. La figure 2 represente un exemple d'architecture permettant de mettre en oeuvre le dispositif de decodage DEC. Le dispositif de decodage DEC comprend un decodeur 20, une premiere memoire 21 et une deuxieme memoire 22. Le decodeur 20 joue alternativement le r81e du premier decodeur 14 et du deuxieme decodeur 16. Le decodeur 20 fonctionne done selon deux modes: un mode SISO1 dans lequel le decodeur 20 se comporte comme le premier decodeur 14 de la figure 1. - un mode SISO2 dans lequel le decodeur 20 se comporte comme le deuxieme decodeur 16 de la figure 1. Lors d'une iteration, le decodeur 20 en mode SISO1 traite des vecteurs d'entree, comme il a ete detaille sur la figure 1, et calcule un premier vecteur de donnees extrinseques de sortie. Le decodeur 20 passe ensuite en mode 3 2839830 SISO2, traite des vecteurs d'entree, et calcule un deuxieme vecteur de donnees extrinseques de sortie. Le decodeur 20 a done besoin de fire et d'ecrire des donnees extri nseques da ns une memoire. Ces derrieres vent stockees da ns la premiere et la deuxieme memoire 21 et 22. Lorsque le decodeur 20 est en mode SIS01, il effectue une lecture desentrelacee 23 du vecteur de donnees extrinseques stocke dans la deuxieme memoire 22. Il calcule alors le premier vecteur de donnees extrinseques de sortie et effectue une ecriture lineaire 24 de ce premier vecteur de donnees extrinseques de sortie dans la premiere memoire 21. Ensuite, le decodeur 20 passe en mode SISO2. Lorsque le decodeur 20 est en mode SISO2, il effectue une lecture entrelacee 25 du vecteur de donnees extrinseques stocke dans la premiere memoire 21. Il calcule alors le deuxieme vecteur de donnees extrinseques de sortie et effectue une ecriture lineaire 26 de ce deuxieme vecteur de donnees extrinseques de sortie dans la deuxieme memoire 22. La lecture desentrelacee 23 et la lecture entrelacee 25 vent effectuees respectivement par un desentrelaceur et un entrelaceur non representes sur la figure 2. Un inconvenient de ce systeme de decodage reside dans le fait qu'il necessite deux memoires pour stocker les vecteurs de donnees extrinseques. Or, dans les turbo decodeurs utilises, par exemple dans le standard UMTS, un vecteur de donnees extrinseques contient 5114 donnees. Par consequent, ['ensemble des memoires necessaires pour stocker les donnees extrinseques a une taille importante, ce qui est genant car cela necessite une surface importante de silicium dans un circuit accueillant un tel turbo decodeur. Cet ensemble de memoires constitue un systeme memoire de donnees extrinseques. EXPOSE DE L'INVENTION Un but de ['invention est de proposer un circuit de decodage dans lequel la tail le du systeme memoire de donnees extrinseques est reduite. Un systeme de traitement selon ['invention et tel que defini dans le paragraphe d'ouverture est caracterise en ce qu'il comprend une unique memoire pour stocker les donnees extrinseques a certaines adresses, une donnee extrinseque de sortie calculee par un decodeur a partir d'une donnee extrinseque d'entree issue de l'autre decodeur etant stockee a l'adresse de ladite donnee extrinseque d'entree, le premier decodeur lisant les donnees extrinseques dans un premier ordre a partir de ['unique memoire, le deuxieme decodeur lisant les donnees extrinseques dans un deuxieme ordre a partir de ['unique memoire. 4 2839830 Selon ['invention, il est possible dictiliser une seule memoire pour stocker les vecteurs de donnees extrinseques. En effet, les vecteurs de donnees extrinseques vent stockes dans ['unique memoire selon le premier ordre, par exemple un ordre lineaire. Ceci signifie que la premiere composante d'un vecteur de donnees extrinseques est stockee a la premiere adresse de la memoire unique, la deuxieme composante a la deuxieme adresse et ainsi de suite. Lorsque le premier decodeur lit un vecteur de donnees extrinseques d'entree dans la memoire unique, il le fait de fason lineaire, c'est a dire qu'il lit la premiere composante, puis la deuxieme, et ainsi de suite. Lorsque le premier decodeur a calcule la composante du vecteur de donnees extrinseques de sortie correspondent a la premiere composante du vecteur de donnees d'entree, il ecrit cette composante du vecteur de donnees extrinseques de sortie a l'adresse ou etait stockee la premiere composante du vecteur de donnees d'entree, ctest a dire la premiere adresse de la memoire unique. Lorsque le deuxieme decodeur lit un vecteur de donnees extrinseques d'entree dans la memoire unique, il le fait de faSon entrelacee, ctest a dire qu'il lit les composantes dans un ordre d'entrelacement predefini. Lorsque le deuxieme decodeur a calcule la composante du vecteur de donnees extrinseques de sortie correspondent 3 une composante du vecteur de donnees extrinseques d'entree, il ecrit cette composante du vecteur de donnees extrinseques de sortie a 1'adresse ou etait stockee la composante du vecteur de donnees extrinseques d'entree correspondante. Selon un autre mode de realisation de ['invention non limitatif, le premier et le deuxieme decodeur vent realises par un unique decodeur fonctionnant alternativement selon un premier mode correspondent au fonctionnement du premier decodeur et selon un deuxieme mode correspondent au fonctionnement du deuxieme decodeur. Selon ce mode de realisation, un seul decodeur est necessite, ce qui reduit la taille du circuit de decodage. Preferentiellement, I'unique memoire comprend un port de lecture et un port d'ecriture. Ceci permet a un decodeur de fire et ecrire simultanement une donnee dans la memoire unique, ce qui permet de reduire le temps de decodage. Avantageusement, I'unique memoire est controlee par une horloge de frequence deux fois plus elevee qu'une frequence d'horloge de controle des decodeurs. Meme lorsque ['unique memoire possede un seul port, ceci permet aux decodeurs de fire et d'ecrire une donnee dans la memoire unique en un cycle d'horloge de controle des decodeurs. Ainsi, le temps de decodage ntest pas superieur a celui necessite dans un circuit de decodage selon l'art anterieur. Preferentiellement, le circuit de decodage comprend en outre un registre pour stocker temporairement une composante diun vecteur de donnees 2839830 extrinseques d'entree pendant un cycle d'horloge de controle des decodeurs. De la sorte, les decodeurs, pour ilre une donnee extrinseque dans ['unique memoire, disposent d'un temps egal au temps dont ils disposaient dans l'art anterieur. Ceci permet d'utiliser ['invention avec les decodeurs de l'art anterieur, sans avoir a les reprogrammer. BREVE DESCRIPTION DES FIGURES L'invention sera mieux comprise et d'autres details apparatront dans la description qui va suivre en regard des dessins annexes qui vent donnes a titre d'exemples non limitatifs et dans lesquels: - la figure 1 est un schema de principe diun systeme de communication de l'art anterieur; - la figure 2 est un schema bloc illustrant des caracteristiques d'un dispositif de decodage de la figure 1; - la figure 3a est un schema bloc illustrant des caracteristiques d'un mode de realisation de ['invention et la figure 3b est un schema bloc illustrant des caracteristiques d'un autre mode de realisation de ['invention; - la figure 4 est un schema bloc illustrant des caracteristiques d'un autre mode de realisation avantageux de ['invention; - la figure 5 est un chronogramme illustrant un fonctionnement du dispositif de decodage de la figure 4; EXPOSE DETAILLE D'AU MOINS UN MODE DE REALISATION DE L'INVENTION La figure 3a illustre un circuit de decodage selon ['invention. Ce circuit comprend un premier decodeur 14, un deuxieme decodeur 16, un deuxieme entrelaceur 18, un premier desentrelaceur 15 et une memoire unique 31. Ce circuit fonctionne de maniere iterative, comme il est explique ci- apres. Une iteration est composee d'une premiere et d'une deuxieme demiiteration. Lors de la premiere demi-iteration, le premier decodeur 14 a besoin de fire des donnees extrinseques calculees par le deuxieme decodeur 16 a ['iteration precedente, afin de calculer un vecteur de donnees extrinseques de sortie. La memoire unique 31 comprend un vecteur dont les composantes vent les donnees extrinseques que le premier decodeur 14 doit fire. Chaque composante correspond a une donnee a decoder comprise dans un vecteur de donnees S1, comme il est detaille ci-dessous. Supposons que le vecteur de donnees S1 comprend 10 composantes S10 a 519. Ce vecteur de donnees S1 s'ecrit: 51 = [S10 511 512 S13 S14 515 516 517 518 519]. 6 2839830 A ce vecteur de donnees S1 correspond un vecteur de parite P1 qui s'ecrit: P1 = [P,0 P., P,2 P,3 Pi4 P,5 P,6 P,7 P,8 P']. Le vecteur de donnees extrinseques calcule par le deuxieme decodeur 16 a ['iteration precedente et stocke dans la memoire unique 31 s'ecrit: La2 = [La20 La2 La22 La 23 La 24 La 25 La 26 La 27 La 28 La 29]. Dans le cas present, la memoire unique 31 comprend 10 adresses @0 a @9. La composante La20 est stockee a l'adresse @0, la composante La2, est stockee a l'adresse @1 et ainsi de suite. La composante La20 est la donnee extrinseque correspondent a la donnee S,0, la composante La2, est la donnee extrinseque correspondent a la donnee S., et ainsi de suite. Le calcul de la donnee extrinseque de sortie correspondent a chaque composante du vecteur de donnees S1 steffectue de la maniere suivante. Le premier decodeur 14 lit, une apres l'autre, chaque composante du vecteur de donnees extrinseques La2 et calcule, pour chaque composante du vecteur La2, une valeur a dependent des composantes correspondantes des vecteurs S1 et P1 selon une premiere fonction f,. Par exemple, le premier decodeur 14 calcule la valeur ao=f(La20, S,0 P,0). Un vecteur al est ainsi obtenu, qui s'ecrit: al = [aO a a2 a3 al4 aS a6 a7 a8 a9]. Ce vecteur al est stocke dans une memoire annexe, non representee sur la figure 3a. Ensuite, le premier decodeur 14 calcule pour chaque composante de La2, une valeur dependent des composantes correspondantes des vecteurs S1 et P1, selon une deuxieme fonction f2. Un tel calcul steffectue dans un ordre inverse de i'ordre dans lequel les valeurs a vent calculees. Pour ce faire, le premier decodeur 14 commence par calculer la valeur,B, g=f2(La29, S,g, P,g). A chaque fois qu'une valeur,8 est calculee, le premier decodeur 14 calcule une valeur La dependent de cette valeur,8 et de la valeur a correspondante selon une troisieme fonction f3. Le premier decodeur 14 calcule done une valeur La,'=f3(a,9, p19) et ecrit cette donnee a l'adresse @9 de la memoire unique 31. Le premier decodeur calcule ensuite une valeur La8=f3(a8, 0,8) et ecrit cette donnee a l'adresse @8 de la memoire unique 31, et ainsi de suite. On obtient ainsi, dans la memoire unique 31, un vecteur de donnees extrinseques Lal qui s'ecrit: Lal = [La0 La,, La,2 La3 La,4 La,5 La16 La,7 La8 Lag]. Le calcul des donnees extrinseques est connu de l'homme du metier. Il est par exemple decrit dans une these de S.A. Barbulescu intitulee Australia, PhD Dissertation >>, publiee en Aout 1995. 7 2839830 Il faut noter qu'il est egalement possible d'utiliser une technique de calcul cite des >, egalement connue de l'homme du metier. Celle-ci consiste a partitionner les vecteurs en fenetres. Dans l'exemple ci-dessus, on peut par exemple considerer deux fenetres, l'une comprenant les cinq premieres composantes des vecteurs, l'autre comprenant les cinq derrieres composantes. Le calcul des donnees extrinseques steffectue alors de la maniere suivante. Le premier decodeur 14 calcule d'abord les valeurs aO, a, a2, a3 et a4. Il calcule ensuite la valeur pi4 et la valeur La4 Il ecrit alors la valeur La4 a l'adresse @4 de la memoire unique 31 et, simultanement, lit la valeur La2s a l'adresse @5 de la memoire unique 31. La memoire unique 31 doit done comprendre des moyens pour ecrire et fire simultanement des donnees a des adresses differentes. Preferentiellement, la memoire unique 31 comprend un port de lecture et un port d'ecriture. Par >, il faut entendre un port apte a fire des donnees, ce qui n'exclut pas que des donnees soient egalement ecrites sur ce port. De meme, par >, il faut entendre un port apte a ecrire des donnees, ce qui ntexclut pas que des donnees soient egalement lues par ce port. Un autre moyen pour ecrfre et fire simultanement des donnees est decrit plus loin et illustre sur les figures 4 et 5. Lors de la deuxieme demi-iteration, le deuxieme decodeur 16 doit fire dans la memoire unique 31 les composantes du vecteur Lal de donnees extrinseques. Une telle lecture se fait de fason entrelacee grace au deuxieme entrelaceur 15, dans un ordre d'entrelacement predefini. Par exemple, le deuxieme decodeur 16 peut fire successivement les composantes La2, La', La, Las, La4, La8, La O, La 7, La3 et La6. Gr3ce a un vecteur 52 correspondent au vecteur S1 entrelace par un troisieme entrelaceur 17, non represente sur la figure 3a, et a un deuxieme vecteur de parite P2 correspondent au premier vecteur de pa rite entrelace, le deuxieme decodeur 16 calcule, de la meme maniere que celle decrite ci-dessus, des valeurs a22, a29, a2, a25, a24, a28, a20, a27, a23 et a26. Par exemple, a22=f(La2, 522, P22). Le deuxieme decodeur 16 calcule ensuite une valeur p26=f2(La6 526 P26) et une valeur La'26=f3(a26,,826), qui est la donnee extrinseque de sortie correspondent a la donnee 56. Le deuxieme decodeur 16 ecrit alors cette valeur La'26 dans la memoire unique 31, a l'adresse a laquelle se trouvait la donnee extrinseque La6, ctest a dire a l'adresse @6. Ceci est effectue grace au desentrelaceur 18. Ceci est possible car une fois que le deuxieme decodeur 16 a calcule la valeur La'26, il nta plus besoin de la donnee extrinseque d'entree La6 8 2839830 correspondante et peut done utiliser l'adresse @6 de la memoire unique 31 pour y ecrire la valeur La'26 Le deuxieme decodeur 16 calcule ensuite une valeur p23=f2(La3, S23 P23) et une valeur La'23=f3(oc23, D23), et ecrit cette valeur 3 l'adresse @3, et ainsi de suite. On obtient ainsi, dans la memoire unique 31, un vecteur de donnees extrinseques La'2 qui s'ecrit: La'2 = [La'20 La'2 La'22 La'23 La'24 La'2s La'26 La'z7 Lai2s La 29] Ce vecteur La'2 de donnees extrinseques peut alors etre utilise par le premier decodeur 14 a ['iteration suivante. Il est egalement possible diutiliser la technique des glissantes >> pour le deuxieme decodeur 16. Il faut noter que, grace a ['invention, les donnees extrinseques de sortie calculees par le premier decodeur 14 et par le deuxieme decodeur 16 vent toujours stockees dans la memoire unique 31 de fason lineaire. Or, apres un nombre predefini alliterations, le decodage est arrete et les donnees extrinseques vent lues par un circuit final, non represente sur la figure 3a. Par consequent, si le decodage est arrete apres que le premier decodeur a calcule ses donnees extrinseques de sortie, une simple lecture lineaire permet au circuit final de fire ces donnees extrinseques. Il en est de meme si le decodage est arrete apres que le deuxieme decodeur a calcule ses donnees extrinseques de sortie. Le circuit final nta done pas besoin d'effectuer de lecture desentrelacee. Ceci presente un avantage par rapport a l'art anterieur. En effet, dans l'art anterieur, si lton arrete le decodage apres que le deuxieme decodeur a calcule ses donnees extrinseques de sortie, le circuit final doit effectuer une lecture desentrelacee a partir de la deuxieme memoire de la figure 2. Ceci necessite un desentrelaceur supplementaire, ce qui represente un inconvenient, notamment au niveau de la consommation de courant du circuit de decodage. Il faut egalement noter que ['invention ne se limite pas a des vecteurs de donnees extrinseques stockes de fason lineaire dans la memoire unique 31. On peut par exemple envisager de stocker les vecteurs de donnees extrinseques de fason entrelacee. Dans ce cas, le premier decodeur 14 devra fire dans la memoire unique 31 de fason desentrelacee, et le deuxieme decodeur 16 devra fire dans la memoire unique 31 de fason lineaire. La figure 3b represente un circuit de decodage comprenant un seul decodeur 20. Ce decodeur 20 joue alternativement le role du premier decodeur 14 et du deuxieme decodeur 16 de la figure 3a. 9 2839830 L'utilisation de la technique des a fenetres glissantes >> necessite de pouvoir fire et ecrire simultanement une donnee dans la memoire unique 31. Lorsque ['unique memoire 31 comprend un seul port, ceci est possible en contr81ant la memoire unique 31 par une horloge dont la frequence est le double de la frequence dthorloge contr81ant le decodeur 20. La figure 4 illustre un tel circuit de decodage. Le decodeur 20 est contr81e par une premiere horloge CLK ayant une frequence f. La memoire unique 31 est controlee par une deuxieme horloge CLK2x ayant une frequence double de f. En un cycle de la deuxieme horloge CLK2x, la memoire unique 31 peut fire ou ecrtre une donnee. Par consequent, en deux cycles de la deuxieme horloge CLK2x, la memoire unique 31 peut fire une donnee puis ecrire une autre donnee, ou vice versa. Or deux cycles de la deuxieme horloge CLK2x correspondent a un cycle de la premiere horloge CLK. Par consequent, en un cycle de la premiere horloge CLK, la memoire unique 31 peut fire et ecrire deux donnees differentes. Ceci signifie qu'en un cycle de la premiere horloge CLK, le decodeur 20 peut fire et ecrire deux donnees a des adresses differentes dans la memoire unique 31. Ainsi le decodeur 20 peut aisement mettre en ceuvre la technique des fenetres glissantes, puisque celle-ci necessite de fire et d'ecrire deux donnees differentes en un seol cycle de lthorloge contr81ant le decodeur 20, c'est a dire la premiere horloge CLK dans le cas present. Cependant, comme on le verra sur la figure 5, une donnee en sortie de la memoire unique 31 est dans ce cas valide pendant seulement un cycle de la deuxieme horloge CLK2x, c'est a dire la moitie d'un cycle de la premiere horloge CLK. Par consequent, afin d'utiliser le circuit de decodage decrit ci-dessus, il est necessaire de reprogrammer le decodeur 20 pour qu'il soit apte a fire des donnees pendant la moitie seulement d'un cycle de son horloge de contr81e. Afin de pallier cet inconvenient, le circuit de decodage comprend preferentiellement un registre 41 contr81e par la premiere horloge CLK. Lorsqu'une donnee sort de la memoire unique 31, elle est verrouillee dans ce registre et reste valide pendant un cycle de la premiere horloge CLK. Le decodeur 20 peut done fire cette donnee pendant un cycle de la premiere horloge CLK. Par consequent, il ntest pas necessaire de reprogrammer le decodeur 20. Cette variante du troisieme mode de realisation de ['invention peut done etre utilisee avec un decodeur de l'art anterieur. La figure 5 est un chronogramme permettant de comprendre le fonctionnement du circuit de decodage de la figure 4. Ce chronogramme comprend la premiere horloge CLK, la deuxieme horloge CLK2x, un signal de permission EN permettant d'activer le port de la memoire unique 31, un signal d'ecriture WR, un 2839830 signal d'adresse add, un signal d'entree in, un signal de sortie out et un signal de registre reg. Le port de la memoire 31 comprend une entree de permission qui reSoit le signal de permission EN, une entree de lecture/ecriture qui resoit le signal d'ecriture WR, une entree d'adresses qui resoit le signal d'adresse add, un port d'entree dont la valeur est le signal d'entree in et un port de sortie dont la valeur est le signal de sortie out. Le premier signal d'horloge CLK presente des fronts montants et descendants a des instants tl a t7, I'instant tl correspondent a un front montant. - Juste apres ['instant tl, le signal EN prend la valeur 1, le signal WR la valeur 0 et le signal add la valeur @1. Ceci signifie que le decodeur 20 veut fire la donnee situee a l'adresse @1 dans la memoire unique 31. Par consequent, au prochain front montant de l'horloge contr81ant la memoire unique 31, c'est a dire la deuxieme horloge CLK2x, la donnee situee a l'adresse @1 est amenee sur le port de sortie de la memoire unique 31. Ceci survient juste apres ['instant t2 (out=read@1). Cette donnee sur le port de sortie de la memoire unique 31 reste valide jusqutau prochain front montant de la deuxieme horloge CLK2x, c'est a dire jusquiau temps t3. Par consequent, cette donnee n'est valide que pendant la moitie d'un cycle de la premiere horloge CLK. Pour rendre cette donnee valide pendant un cycle entier de la premiere horloge CLK, on verrouille cette donnee dans le registre 41 a ['instant t3. Pour ce faire, on utilise un registre 41 qui recopie la valeur du port de sortie de la memoire unique 31 a chaque front montant de lthorloge le contr81ant, c'est a dire la premiere horloge CLK dans le cas present. Ainsi, a ['instant t3, le registre recopie la valeur du port de sortie de la memoire unique 31 (reg = rd@1) et garde cette valeur jusquiau prochain cycle de la premiere horloge CLK. Cette valeur reste done valide pendant un cycle de la premiere horloge CLK, entre les instants t3 et t5. Pendant ce cycle de la premiere horloge CLK, le decodeur 20 peut fire cette donnee. Par consequent, pour le decodeur 20, tout se passe comme si la memoire unique 31 etait contr81ee par la premiere horloge CLK. - Entre ['instant t2 et ['instant t3, le signal d'ecriture WR prend la valeur 1 et le signal add prend la valeur @2. Ceci signifie qu'une donnee doit etre ecrite a l'adresse @2 de la memoire unique 31. Cette donnee, notee wr@2, est amenee sur le port d'entree de la memoire unique 31 entre ['instant t2 et ['instant t3 (in = wr@2). - Juste apres ['instant t3, la donnee wr@2 est ecrite a l'adresse @2 de la memoire unique 31. On notera que le port de sortie prend alors cette valeur wr@2 (out= wr@2). - Entre ['instant t3 et ['instant t4, le signal d'ecriture WR prend la valeur 0 et le signal add la valeur @3. Ceci signifie que le decodeur 20 veut fire la 11 2839830 donnee situee a l'adresse @3 dans la memoire unique 31. Par consequent, au prochain front montant de la deuxieme horloge CLK2x, la donnee situee a l'adresse @3 est amenee sur le port de sortie de la memoire unique 31. Ceci survient juste apres ['instant t4 (out=read@3). - Entre ['instant t4 et ['instant t5, le signal d'ecriture WR prend la valeur 1 et le signal add prend la valeur @4. Ceci signifie qu'une donnee doit etre ecrite a l'adresse @4 de la memoire unique 31. Cette donnee, notee wr@4, est amenee sur le port d'entree de la memoire unique 31 entre ['instant t4 et ['instant t5 (in = wr@4) - Juste apres ['instant t5, la donnee wr@4 est ecrite a l'adresse @4 de la memoire unique 31. On notera que le port de sortie prend alors cette valeur wr@4 (out = wr@4). Il faut noter qu'il est important d'initier une lecture dans la memoire unique 31 lorsque lthorloge contrDiant le registre 41 est a lietat haut, et une ecriture lorsque l'horloge controlant le registre 41 est 3 l'etat teas. En effet, en initiant une lecture lorsque l'horloge controlant le registre 41 est a ltetat haut, la donnee a fire est valide sur le port de sortie lorsque l'horloge contr61ant le registre 41 est a l'etat teas et lorsque cette horloge presente un front montant. Il est done possible de verrouiller cette donnee dans le registre 41. Si on initiait une lecture lorsque lthorloge controlant le registre 41 est a l'etat teas, la donnee a fire serait valide sur le port de sortie lorsque lthorloge controlant le registre 41 est a ltetat haut mais ne serait plus valide lorsque cette horloge presenterait un front montant. Il ne serait done pas possible de verrouiller cette donnee dans le registre 41. Un circuit de decodage selon ['invention peut etre mis en oeuvre dans un dispositif electronique, tel un telephone mobile. Un circuit de decodage selon ['invention peut done etre utilise dans un reseau de communication comprenant au moins un emetteur apte a envoyer des signaux codes, un canal de transmission, et un recepteur apte a recevoir lesdits signaux. L'invention concerne egalement un procede de decodage pouvant etre mis en ccuvre dans un circuit electronique comprenant un circuit de decodage selon ['invention. Un tel procede de decodage comprend: - une premiere etape dans laquelle le premier decodeur lit de facon lineaire des donnees extrinseques d'entree stockees dans une unique memoire comprenant des adresses, calcule des donnees extrinseques de sortie a partir de chaque donnee extrinseque d'entree et ecrit chaque donnee extrinseque de sortie a l'adresse contenant la donnee extrinseque d'entree correspondante; i2 2839830 - une deuxieme etape dans laquelle le deuxieme decodeur lit de facon entrelacee les donnees extrinseques d'entree stockees dans ['unique memoire et correspondent aux donnees extrinseques de sortie calculees par le premier decodeur lors de la premiere etape, calcule des donnees extrinseques de sortie et ecrit chaque donnee extrinseque de sortie a l'adresse contenant la donnee extrinseque d'entree correspondante. En principe, il est possible d'implementer ce procede de decodage au moyen d'un circuit integre convenablement programme. Un jeu d'instructions contenu dans une memoire de programmation peut ordonner au circuit integre d'effectuer les differentes etapes decrites precedemment. Le jeu d'instructions peut etre charge dans la memoire de programmation par la lecture d'un support de donnees comme, par exemple, un disque sur lequel est code le jeu d'instructions. La lecture peut s'effectuer par l'intermediaire d'un reseau de communication comme, par exemple, l'Internet. Dans ce cas, un fournisseur de service mettra le jeu d'instructions a la disposition des interesses. Le verbe > et ses conjugaisons dolvent etre interpretes de fason large, c'est a dire comme niexcluant pas la presence non seulement d'autres elements que ceux listes apres ledit verbe, mais aussi d'une pluralite d'elements deja listes apres ledit verbe et precedes de ['article a un >> ou > 13 2839830 Revendications 1. Circuit de decodage pour decoder de fason iterative des donnees d'entrees (S1, P1, P2), ledit circuit comprenant au moins un premier decodeur (14) et un deuxieme decodeur (16), chaque decodeur etant apte a calculer des donnees extri nseques de sortie a pa rti r des donnees d'entree (S 1, P1, P2) et de donnees extrinseques d'entree issues de l'autre decodeur, ledit circuit etant caracterise en ce qu'il comprend une unique memoire (31) pour stocker les donnees extrinseques a certaines adresses, une donnee extrinseque de sortie calculee par un decodeur a partir d'une donnee extrinseque d'entree issue de l'autre decodeur etant stockee a l'adresse de ladite donnee extrinseque d'entree, le premier decodeur (14) lisant les donnees extrinseques dans un premier ordre a partir de ['unique memoire (31), le deuxieme decodeur (16) lisant les donnees extrinseques dans un deuxieme ordre a partir de ['unique memoire (31). 2. Circuit de decodage selon la revendication 1, caracterise en ce que le premier ordre est un ordre lineaire et le deuxieme ordre est un ordre entrelace. 3. Circuit de decodage selon la revendication 1, caracterise en ce que le premier et le deuxieme decodeur vent realises par un unique decodeur (20) fonctionnant alternativement selon un premier mode correspondent au fonctionnement du premier decodeur (14) et selon un deuxieme mode correspondent au fonctionnement du deuxieme decodeur (16). 4. Circuit de decodage selon la revendication 1, caracterise en ce que ['unique memoire comprend un port de lecture et un port d'ecriture. 5. Circuit de decodage selon la revendication 1, caracterise en ce que I'unique memoire est controlee par une horloge (CLK2x) de frequence deux fois plus elevee qu'une frequence d'horloge de controle (CLK) des decodeurs (14, 16) . 6. Circuit de decodage selon la revendication 1, caracterise en ce qu'il comprend en outre un registre (41) pour stocker temporairement une composante d'un vecteur de donnees extrinseques d'entree pendant un cycle d'horloge de controle des decodeurs. 7. Dispositif electronique comprenant un circuit de decodage selon l'une des revendications 1 a 6. 14 2839830 8. Reseau de communication comprenant au moins un emetteur apte a envoyer des signaux codes, un canal de transmission, un recepteur apte a recevoir lesdits signaux et un circuit de decodage selon l'une des revendications 1 a 6. 9. Procede de decodage pour decoder de fason iterative des donnees d'entrees grace a un circuit comprenant au moins un premier decodeur (14) et un deuxieme decodeur (16), chaque decodeur etant apte a calculer des donnees extrinseques de sortie a partir de donnees d'entree et de donnees extrinseques d'entree issues de l'autre decodeur, ledit procede etant caracterise en ce qu'il comprend: - une premiere etape dans laquelle le premier decodeur (14) lit de fason lineaire des donnees extrinseques d'entree stockees dans une unique memoire (31) comprenant des ad resses, calcule des donnees extrinseq ues de sortie a pa rti r de chaque donnee extrinseque d'entree et ecrit chaque donnee extrinseque de sortie a l'adresse contenant la donnee extrinseque d'entree correspondante; - une deuxieme etape dans laquelle le deuxieme decodeur (16) lit de fason entrelacee les donnees extrinseques d'entree stockees dans ['unique memoire (31) et correspondent aux donnees extrinseques de sortie calculees par le premier decodeur (14) lors de la premiere etape, calcule des donnees extrinseques de sortie et ecrit chaque donnee extrinseque de sortie a l'adresse contenant la donnee extrinseque d'entree correspondante. 10. Programme comprenant des instructions de code de programme pour I'execution des etapes du procede selon la revendication 9 lorsque ledit programme