FR 2916110 A1 20081114 FR 0755038 A 20070511 ,13L ,...j CAS ALONGA & JOSSE Paris - Munich - Alicante - Grenoble CONSEILS EN PROPRIÉTÉ INDUSTRIELLE EUROPEAN PATENT AND TRADEMARK ATTORNEYS 8, avenue Percier ù F 75008 PARIS Tél. : 33 (0)1 45 61 94 64 Fax : 33 (0)1 45 63 94 21 e-mail : paris@casalonga.com B06-3185FR ù FZ/EVH 06-GR1-134 Société Anonyme dite : STMicroelectronics SA Dispositif électronique de décalage de données multimodes, en particulier pour du codage/décodage avec un code LDPC. Invention de : Laurent PAUMIER Vincent HEINRICH Dispositif électronique de décalage de données multimodes, en particulier pour du codage/décodage avec un code LDPC. L'invention concerne les dispositifs de décalage de données qui sont en particulier utilisés pour effectuer une permutation cyclique des données d'entrée. De tels dispositifs sont par exemple utilisés de façon non limitative dans les dispositifs de codage de canal incluant les encodeurs utilisant des codes à base de blocs dont la matrice de parité présente une faible densité et plus connus de l'homme du métier sous la dénomination code LDPC ( Low Density Parity Check ), ou bien dans des dispositif de décodage de canal incluant les décodeurs LDPC, ou encore dans des dispositifs utilisant des turbos codes afin d'effectuer une partie de l'entrelacement de données. De tels codes sont proposés pour de nombreuses normes (802.11n, 802.16e, DVB-S2, ...). L'émergence de ces nombreuses normes requiert une flexibilité et une reconfigurabilité matérielles de ces dispositifs de décalage de données. Des dispositifs classiques de décalage de données sont connus par l'homme du métier sous la dénomination de circuits à décalage à barillet ( barrel shifters selon une dénomination anglo-saxonne communément utilisée par l'homme du métier). Ces circuits à décalage à barillet sont basés sur une architecture logarithmique de multiplexeurs et, lorsqu'ils sont de taille N (c'est-à-dire présentant N entrées et N sorties) ils offrent une solution simple pour effectuer un décalage cyclique de N données délivrées en entrée du circuit par un bus de taille N. Par contre, lorsque seule une partie du bus de données est utilisée, c'est-à-dire que lorsqu'on alimente le circuit à décalage à barillet avec un nombre de données inférieur à N, les sorties du circuit à décalage à barillet, sur lesquelles les données décalées sont délivrées, varient selon la valeur de décalage souhaitée. En d'autres termes, les fils de sortie réellement utilisés c'est-à-dire véhiculant les données de sortie décalées, ne sont pas les mêmes, pour une taille de bus donnée, en fonction de la valeur de décalage. Et ceci pose bien évidemment un problème lorsque l'on doit connecter un autre circuit en aval du circuit à décalage à barillet. Aussi, on voit tout de suite que ces circuits à décalage à barillet n'offrent pas une solution satisfaisante à la flexibilité et à la reconfigurabilité matérielles mentionnées ci-avant et requises pour satisfaire à l'émergence de normes différentes, sauf bien entendu à utiliser autant de circuits à décalage à barillet qu'il y a de tailles de bus à envisager, moyennant un dispositif de sélection approprié, ou bien un seul circuit à décalage à barillet présentant la taille maximale avec en aval un dispositif complexe de routage des fils configurable en fonction de la taille réelle du bus de données d'entrée. Or, ces deux solutions présentent un encombrement surfacique non négligeable et/ou des problèmes complexes de routage. Selon un mode de réalisation il est proposé un dispositif de décalage permettant de supporter toute taille de bus de 1 à N offrant ainsi un dispositif totalement reconfigurable. Selon un aspect, il est proposé un dispositif électronique de décalage capable de décaler des données d'une valeur globale de décalage souhaitée, comprenant N entrées aptes à recevoir simultanément R données d'entrée, R étant susceptible de prendre toutes les valeurs de 1 à N. Le dispositif comprend également N sorties et un circuit à décalage configurable connecté entre les N entrées et les N sorties et comportant une cascade d'étages de décalage. Le nombre d'étages dépend de N et chaque étage comporte au moins N moyens de multiplexage commandables. Chaque moyen de multiplexage d'un étage possède une première entrée élémentaire et une deuxième entrée élémentaire respectivement connectées directement ou indirectement, par exemple par l'intermédiaire d'un ou de plusieurs autres moyens de multiplexage, à une première entrée et à une deuxième entrée prises parmi les N entrées de façon à, sur commande, ne pas décaler une donnée présente sur ladite première entrée élémentaire et décaler une données présente sur la deuxième entrée élémentaire d'une valeur élémentaire de décalage qui dépend du rang de l'étage. Par ailleurs, le sens de décalage, décalage à droite ou décalage à gauche, est identique pour tous les moyens de multiplexage du circuit. Le dispositif électronique de décalage comporte également des moyens de commande aptes à commander les différents moyens de multiplexage de façon à délivrer les R données d'entrée sur R sorties prédéterminées quelle que soit la valeur globale de décalage souhaitée qui est inférieure à R. Selon un mode de réalisation, le circuit à décalage comporte deux parties, l'une pouvant s'apparenter, du point de vue du nombre de moyens de multiplexage, à un circuit à décalage à barillet classique. Par contre, d'un point de vue connectique, il s'agit en fait d'un circuit à barillet modifié puisque tous les moyens de multiplexage de cette première partie sont connectés de façon à éventuellement décaler toujours dans le même sens. Le circuit à décalage comporte également une deuxième partie pouvant comporter éventuellement des moyens de multiplexage supplémentaires. En ce qui concerne la commande des moyens de multiplexage, celle-ci est plus complexe que pour un circuit à décalage à barillet classique car les moyens de multiplexage d'un étage de décalage donné ne sont pas forcément commandés de la même façon. Ainsi, selon un mode de réalisation, le circuit à décalage est, en ce qui concerne la commande des moyens de multiplexage, divisé virtuellement en deux parties, qui ne sont pas forcément les deux mêmes parties évoquées précédemment, la frontière entre ces deux parties dépendant de la valeur S+N-R, où S désigne la valeur globale de décalage souhaitée. Ainsi, selon un mode de réalisation, chaque étage de décalage comporte un premier groupe de moyens de multiplexage adjacents et un deuxième groupe de moyens de multiplexage adjacents, le nombre de moyens de multiplexage dans chaque groupe dépendant du rang de l'étage et de la valeur S+N-R où S désigne la valeur globale de décalage souhaitée, et les moyens de commande sont aptes à commander de façon indépendante les deux groupes de moyens de multiplexage de chaque étage, et de façon identique tous les moyens de multiplexage d'un groupe d'un étage, de façon à ce que les moyens de multiplexage de tous les premiers groupes réalisent un décalage total égal à s et que les moyens de multiplexage de tous les deuxièmes groupes réalisent un décalage total égal à S+N-R. Si les données d'entrées sont codées sur un seul bit, chaque moyen de multiplexage est en fait un multiplexeur. Par contre, si les données d'entrées sont codées sur plusieurs bits, chaque moyen de multiplexage est un ensemble de plusieurs multiplexeurs connectés en parallèle et respectivement associés aux bits de données. Chaque ensemble de multiplexeurs est commandable de façon individualisée et tous les multiplexeurs d'un même ensemble sont commandés de façon identique. Le dispositif de décalage peut être par exemple réalisé sous la forme d'un circuit intégré. Selon un autre aspect, il est également proposé un dispositif de codage de canal, en particulier apte à effectuer un encodage avec un code LDPC, incorporant un dispositif de décalage tel que défini ci-avant. Selon un autre aspect, il est aussi proposé un dispositif de décodage de canal, en particulier apte à effecteur un décodage de blocs encodés avec un code LDPC, incorporant un dispositif de décalage tel que défini ci-avant. D'autres avantages et caractéristiques de l'invention apparaîtront à l'examen de la description détaillée de modes de réalisation, nullement limitatifs, et des dessins annexés sur lesquels : -la figure 1 illustre schématiquement un mode de réalisation d'un dispositif de décalage de données ; - la figure 2 illustre schématiquement un moyen de multiplexage ; - les figures 3 et 4 illustrent schématiquement plus particulièrement un mode de réalisation d'un circuit à décalage incorporé dans le dispositif de décalage de données de la figure 1 ; - les figures 5 à 18 illustrent différents modes de réalisation et de fonctionnement d'un dispositif de décalage de données, - la figure 19 illustre schématiquement la structure interne d'une chaîne de communication, par exemple d'un appareil sans fil, incorporant des moyens de codage et de décodage de canal, et ; - la figure 20 illustre plus en détail mais toujours de façon schématique un mode de réalisation d'un décodeur LDPC incorporant un dispositif de décalage de données. Sur la figure 1, la référence DDC désigne un dispositif électronique de décalage comportant N entrées E l ù EN et N sorties S1 - SN. 15 Le dispositif DDC est apte à recevoir des données Wi en provenance d'un bus d'entrées BSE, et à délivrer des données décalées sur un bus de sortie B S S. Comme on le verra plus en détails ci-après, l'organisation de ces données aptes à être effectivement reçues en entrée du dispositif DDC, 20 peut être différente. Ainsi, par exemple, le dispositif DDC peut recevoir simultanément N données W 1 ù WN organisées par exemple en un seul groupe, ou bien un groupe de données dont la taille peut prendre une valeur quelconque supérieure ou égale à 1 et inférieure à N. 25 En d'autres termes, le dispositif DDC est ici un dispositif multimodes en ce sens qu'il est capable de traiter le cas d'un bus BSE de taille N, c'est-à-dire recevoir simultanément R=N données en entrée, ou bien le cas de bus de taille intermédiaire, c'est-à-dire recevoir en entrée sur le bus BSE un nombre R de données inférieur à N et supérieur ou 30 égal à 1. Et, quelle que soit l'organisation des données d'entrée, le dispositif DDC va délivrer les données de sortie décalées sur des sorties prédéterminées du dispositif DDC, et ce quelle que soit la valeur de décalage globale envisagée compatible avec l'organisation des données 35 d'entrée. 10 Ainsi, un exemple de valeur globale de décalage S compatible avec une organisation d'entrée est une valeur de décalage S inférieure à la taille R du groupe de données reçues. Le dispositif de décalage DDC comporte également des moyens de commande MC1 aptes à commander les différents moyens de multiplexage de façon à délivrer les R données d'entrée sur R sorties prédéterminées quelle que soit la valeur globale de décalage S souhaitée qui est inférieure à R. Plus particulièrement, chaque multiplexeur MUX comporte une première entrée élémentaire EM1 et une deuxième entrée élémentaire EM2, ainsi qu'une sortie SM. Selon la valeur du signal de commande cde; délivré par les moyens de commande MC1, la première entrée élémentaire EM1 ou bien la deuxième entrée élémentaire EM2 seront effectivement reliée à la sortie SM. Lorsque la première entrée élémentaire EM1 est reliée à la sortie SM, le multiplexeur MUX est dans un premier état ETT1 dans lequel, comme on le verra plus en détail ci-après, il ne décale pas une donnée présente sur ladite première entrée EM1. Par contre, lorsque la deuxième entrée élémentaire EM2 est reliée effectivement à la sortie SM, le multiplexeur MUX est dans un deuxième état ETT2 dans lequel il décale une donnée présente sur cette deuxième entrée élémentaire d'une valeur élémentaire de décalage qui dépend du rang de l'étage de décalage du circuit à décalage. On se réfère maintenant plus particulièrement aux figures 3 à 16 pour décrire plus en détail une première variante de réalisation concernant plus particulièrement un dispositif de décalage DDC apte à effectuer un décalage des données à gauche. Dans les exemples décrits ici, pour un groupe de R données (R inférieur ou égal à N et supérieur ou égal à 1) arrivant sur les R entrées El à ER du dispositif de décalage DDC, les R sorties prédéterminées sur lesquelles vont sortir les données décalées, quelle que soit la valeur de décalage globale S souhaitée, sont les R sorties de rang 1 à R référencées S1 à SR. Comme on le voit plus particulièrement sur les figures 3 et 4, le circuit à décalage CDC comporte une première partie PTA ayant une architecture régulière et une deuxième partie PTB. Le circuit à décalage CDC comporte une cascade d'étages de décalage ET; dont le nombre est fonction de N. Plus particulièrement, le nombre d'étages de décalage est égal à ceil(log2(N)), où ceil(X) désigne la fonction partie entière supérieure de X. Dans la partie PTA du circuit à décalage CDC à architecture régulière, chaque étage de décalage comporte N multiplexeurs MUX. Par ailleurs, un étage de décalage de rang i dans la cascade, comporte un nombre supplémentaire de multiplexeurs disposés dans la partie PTB. Ce nombre peut être éventuellement nul et il dépend d'une façon générale du rang i de l'étage ainsi que du nombre N. Plus précisément, chaque étage à décalage comporte ainsi au total un nombre de multiplexeurs égal à N+2i.floor N-21- -1)/2i , où floor(X) désigne la fonction partie entière inférieure de X et i désigne le rang de l'étage, le premier étage étant l'étage de rang i égal à 1. Tous ces multiplexeurs sont aptes à décaler dans le même sens de décalage (ici à gauche). I1 ressort ainsi de cette formule et du nombre d'étages de décalage que le dernier étage de la cascade ne comporte que N multiplexeurs, c'est-à-dire que ce dernier étage de décalage ne comporte aucun multiplexeur supplémentaire disposé dans la partie PTB. Par ailleurs, comme on le voit plus particulièrement sur la figure 3, parmi les N entrées El-EN du dispositif DDC, N-1 entrées sont en fait dédoublées. I1 s'agit ici des N-1 entrées de rang 2 à N. Seule la première entrée de rang 1, référencée El, n'est pas dédoublée. En d'autres termes, si l'on se place au niveau du circuit à décalage CDC, celui-ci comporte au niveau de la partie PTA, N entrées que l'on peut qualifier ici d'entrées intermédiaires, et référencées Ela-ENa. Ces N entrées intermédiaires correspondent aux N entrées El-EN. Les N-1 entrées intermédiaires E2b-ENb qui correspondent virtuellement aux entrées de la deuxième partie PTB du circuit CDC sont au moins pour certaines d'entre elles respectivement reliées aux N-1 entrées correspondantes E2a-ENa, et par conséquent aux N1 entrées E2-EN. C'est la raison pour laquelle on parle d'un dédoublement des N-1 entrées E2-EN alors que seule l'entrée de rang 1, c'est-à-dire l'entrée E l n'est pas dédoublée. En fait, comme on le verra plus en détail ci-après, et notamment sur des exemples particuliers, pour le premier étage et si l'on considère uniquement la première partie PTA, seule l'entrée de rang N, EN, est dédoublée. Pour l'étage de rang 2 et si l'on considère uniquement la première partie PTA, les deux premières entrées à partir de la gauche, c'est-à- dire les entrées EN et EN-1 de rang N et N-1 sont dédoublées. Plus généralement, pour l'étage de rang i et si l'on considère uniquement la première partie PTA, les 21- 1 premières entrées à partir de la gauche sont dédoublées, c'est-à-dire qu'elles sont connectées à deux multiplexeurs de rangs différents de cet étage de rang i. Par ailleurs, puisque la taille du bus BSE peut prendre toutes les valeurs entre 1 et N, chacune des N données d'entrée a la possibilité d'être présente sur chacune des N sorties S1-SN. Ainsi, dans le cas présent, la donnée présente sur l'entrée ENa peut uniquement être présente sur la sortie SN. Donc, cette donnée qui est également présente sur l'entrée ENb doit pouvoir être présente sur les sorties S1, S2, ..., SN-1. Par conséquent, la donnée d'entrée présente sur l'entrée ENb doit être capable d'être décalée vers la gauche d'une valeur de décalage égale à 1, 2, 3, ..., ou N-1. De même, compte tenu du sens de décalage, la donnée présente sur l'entrée EN-la peut uniquement être présente sur les sorties SN ou SN-1. De ce fait, cette donnée présente également sur l'entrée EN-lb doit pouvoir être capable d'être présente sur les sorties S1, S2, ..., SN- 2. Par conséquent, la donnée présente sur l'entrée EN-lb doit pouvoir être décalée vers la gauche d'une valeur de décalage égale à 2, 3, ..., ou N-1. La donnée présente sur l'entrée E3a peut être présente sur l'une des sorties S3 à SN. Ainsi, la donnée présente sur l'entrée E3b doit pouvoir être présente sur la sortie S1 ou S2. Par conséquent, la donnée présente sur l'entrée E3b doit pouvoir être décalée vers la gauche de N-2 ou de N-1. Enfin, la donnée présente sur l'entrée E2a peut être présente sur l'une quelconque des sorties S2 à SN. Ainsi, la donnée présente sur l'entrée E2b doit pouvoir être présente sur la sortie S1. Par conséquent, la donnée présente sur cette entrée E2b doit pouvoir être décalée vers la gauche de N-1. Plus généralement, la donnée présente sur l'entrée Ejb doit pouvoir être décalée vers la gauche de N-1, N-2, ..., ou N-j+l. L'architecture du circuit à décalage CDC comportant la première partie PTA et la deuxième partie PTB permet de réaliser ces divers décalages comme il va maintenant être expliqué plus en détail sur des exemples plus particuliers de réalisation. Comme indiqué ci-avant, quelle que soit la partie du circuit à décalage CDC, tous les multiplexeurs MUX sont aptes à décaler une donnée toujours dans le même sens de décalage, ici à gauche. En d'autres termes, la deuxième entrée élémentaire EM2 d'un multiplexeur de rang r est toujours connectée, directement ou bien indirectement par l'intermédiaire d'au moins un autre multiplexeur, à une entrée Eq de rang q différent du rang du multiplexeur, par exemple de rang inférieur. En d'autres termes, cela se traduit graphiquement sur les figures 4 à 12 qui illustrent des décalages à gauche, par une connexion en oblique à droite des deuxièmes entrées élémentaires de tous les multiplexeurs MUX. Par ailleurs, chaque multiplexeur d'un étage de décalage de rang i est apte à décaler par l'intermédiaire de la deuxième entrée élémentaire, une donnée d'une valeur élémentaire de décalage qui est identique pour tous les multiplexeurs de cet étage. Cette valeur élémentaire de décalage est égale à 2'-' pour un étage de rang i, le premier étage étant l'étage de rang i égal à 1. Par ailleurs, comme expliqué ci-avant en des termes différents, les deuxièmes entrées élémentaires de tous les multiplexeurs d'un étage de décalage sont respectivement connectées directement ou indirectement à des entrées de rangs consécutifs, étant entendu que le rang N est considéré comme étant consécutif au rang 1. Ceci est illustré sur les exemples de réalisation des figures 5 à 12. Sur ces figures, à des fins de simplification, les entrées El-EN et les sorties S1-SN sont représentées uniquement par le numéro de leur rang 1 à N. Ainsi, sur la figure 5, qui illustre le cas N=3, les deuxièmes entrées élémentaires des multiplexeurs de rangs 3, 2 et 1 de l'étage ET1 sont respectivement liées aux entrées de rangs consécutives 2, 1 et 3. De même, les deuxièmes entrées élémentaires des multiplexeurs de rangs 3, 2 et 1 du deuxième étage ET2 sont respectivement reliées aux entrées de rangs consécutifs 1, 3 et 2. Dans le cas de la figure 6, le dispositif DDC est un dispositif prévu pour N=4. Les deuxièmes entrées élémentaires des multiplexeurs adjacents de l'étage ET1 (partie PTA et partie PTB) sont respectivement reliées aux entrées de rangs consécutifs 3, 2, 1, 4, 3, 2. Les deuxièmes entrées élémentaires des quatre multiplexeurs de la partie PTA du dernier étage ET2 sont respectivement reliées indirectement aux entrées de rangs consécutifs 2, 1, 4, 3. On retrouve le même principe sur les figures 7 à 12 qui illustrent respectivement des dispositifs de décalage DDC pour des valeurs de N=5, 6, 7, 10, 11 et 13. Par ailleurs, comme on peut le voir sur ces figures, une seule des N entrées est directement connectée à deux multiplexeurs différents tandis que chacune des N-1 autres entrées de rangs successifs est directement connectée à au moins trois multiplexeurs différents de façon à ce qu'une donnée présente sur une de ces N-1 autres entrées puisse être décalée dans ledit sens de décalage de toute valeur globale de décalage inférieure à N et compatible avec le rang de ladite entrée. Plus précisément, dans les exemples décrits ici, ces N-1 autres entrées sont les entrées de rangs 2 à N et chacune de ces entrées est directement connectée à au moins trois multiplexeurs différents de façon à ce qu'une donnée présente sur une de ces entrées puisse être décalée dans le sens de décalage de toute valeur globale de décalage compris entre N-1 et N-r+l, où r désigne le rang de ladite entrée. Sur ces exemples, la seule entrée qui est directement connectée à deux multiplexeurs différents est l'entrée de rang 1. Si l'on se reporte maintenant de nouveau aux exemples, et par exemple à la figure 9, qui illustre le cas N=7, l'entrée de rang 2 connectée sur la partie PTB doit pouvoir être décalée sur la gauche d'une valeur de décalage égale à 6. Par conséquent, puisque le deuxième étage ET2 décale d'une valeur élémentaire de décalage égale à 2 et que le troisième étage ET3 décale d'une valeur élémentaire de décalage égale à 4, il est nécessaire ici d'insérer un multiplexeur m5 au niveau de l'étage ET2 dont la première entrée élémentaire est connectée indirectement par l'intermédiaire du multiplexeur ml à l'entrée de rang 4 et dont la deuxième entrée élémentaire est connectée à l'entrée de rang 2. La sortie de ce multiplexeur m5 est connectée à la deuxième entrée élémentaire du multiplexeur de rang 1 de l'étage ET3. La donnée de rang 3 au niveau de la partie PTB doit pouvoir être décalée d'une valeur globale de décalage égale à 6 ou 5. Puisque 5 est une valeur impaire, un décalage élémentaire de 1 est nécessaire au niveau du premier étage, d'où la présence du multiplexeur ml dont la première entrée élémentaire est connectée à l'entrée de rang 4 et dont la deuxième entrée élémentaire est connectée à l'entrée de rang 3. Un décalage élémentaire de 2 est aussi requis pour effectuer le décalage global de 6, ce qui nécessite la présence du multiplexeur m6 au deuxième étage ET2. L'entrée de rang 4 doit pouvoir être décalée d'une valeur globale de décalage égale à 6, 5 ou 4. Une valeur globale de décalage égale à 4 est obtenue grâce aux multiplexeurs de la partie PTA du circuit CDC. Par contre, pour atteindre une valeur globale de décalage égale à 5 ou 6, un décalage élémentaire de 1 ou de 2 est requis. C'est la raison pour laquelle on prévoit ici d'insérer des multiplexeurs supplémentaires m2 et m7 respectivement au premier étage ET1 et au deuxième étage ET2. Le même raisonnement se poursuit pour les autres entrées, ce qui conduit effectivement à l'architecture illustrée sur la figure 9. D'une façon plus générale, dans les exemples décrits ici pour un décalage à gauche, les premières entrées élémentaires des N multiplexeurs de rang 1 à N d'un étage de rang i sont respectivement connectées directement ou indirectement aux N entrées de rang 1 à N. La deuxième entrée élémentaire du multiplexeur de rang 1 de l'étage de rang 1 (c'est-à-dire le premier étage) est connectée à l'entrée de rang N. Les premières et deuxièmes entrées élémentaires des éventuels autres moyens de multiplexage de l'étage de rang i, c'est-à-dire les éventuels multiplexeurs de la partie PTB, sont connectées directement ou indirectement à certaines au moins des entrées de rang N à 2 compte tenu de la valeur élémentaire de décalage associée à cet étage. Les deuxièmes entrées élémentaires de certains des N multiplexeurs du dernier étage sont également connectées directement ou indirectement aux entrées de rang N à 2 compte tenu de la valeur élémentaire de décalage associée à cet étage. La commande des multiplexeurs des différents étages est illustré sur deux exemples particuliers (figures 13 et 14 d'une part, figures 15 et 16 d'autre part). En fait, comme on le voit sur ces figures, et notamment sur les figures 13 et 15, le graphe du circuit à décalage CDC est divisé en deux parties PT1 et PT2, qui dépendent de la valeur S+N-R où S désigne la valeur globale de décalage, et R le nombre effectif de données reçues sur le bus BSE, c'est-à-dire la taille effective du bus BSE. Les multiplexeurs de la première partie PT1 effectuent un décalage total de S tandis que les multiplexeurs de la partie PT2 effectuent un décalage total de S+N-R. La première partie PT1 comporte au niveau de chaque étage de décalage un premier groupe de multiplexeurs adjacents. La deuxième partie PT2 comporte au niveau de chaque étage un deuxième groupe de multiplexeurs adjacents. Les moyens de commande MC 1 commandent de façon indépendante les deux groupes de multiplexeurs de chaque étage et de façon identique tous les multiplexeurs d'un groupe d'un étage, de façon à obtenir les décalages totaux mentionnés ci-dessus. Le nombre de multiplexeurs du premier groupe (c'est-à-dire appartenant à la première partie PT1) d'un étage de rang i est égal à min(MX,N-(mod(S+N-R,2')-(N-R))) où mod (X, Y) désigne le reste de la division de X par Y, min désigne la fonction minimum et MX désigne le nombre de multiplexeurs de l'étage de rang i. Plus particulièrement, dans le cas des figures 13 et 14, N est égal à 6, R est égal à 4 et S est égal à 3. Sur ces figures, un signal de commande logique égal à 1 signifie qu'un multiplexeur est dans son état de décalage ETT2, tandis qu'un signal de commande logique égal à 0 signifie qu'un multiplexeur est dans son état de non décalage ETT1. Par conséquent, le nombre d'étages est égal à 3 et la première partie PT1 du premier étage ET1 comporte sept multiplexeurs. Comme par ailleurs l'étage ET1 comporte au total dix multiplexeurs, la partie PT2 comporte pour cet étage ET1 trois multiplexeurs. Tous les six multiplexeurs de l'étage ET2 font partie de la partie PT1. Enfin, la partie PT1 de l'étage ET3 comporte trois multiplexeurs ainsi que la partie PT2. Les multiplexeurs de la partie PT1 doivent effectuer un décalage total égal à 3. Par conséquent, comme le décalage élémentaire effectué par les multiplexeurs de l'étage ET1 est égal à 1 que celui effectué par les multiplexeurs de l'étage ET2 est égal à 2, ce sont les multiplexeurs de la partie PT1 des étages ET1 et ET2 qui sont commandés pour être dans leur état ETT2, c'est-à-dire dans leur état de décalage, tandis que les multiplexeurs de la partie PT1 de l'étage ET3 sont commandés pour être dans leur état ETT1, c'est-à-dire dans leur état où ils ne décalent pas la donnée. Les multiplexeurs de la partie PT2 doivent effectuer globalement un décalage égal à 3+6-4, c'est-à-dire 5. Ce décalage global de 5 est obtenu par un décalage élémentaire de 1 (multiplexeurs de la partie PT2 de l'étage ET1) et par un décalage élémentaire de 4 obtenue au moyen desmultiplexeurs de la partie PT2 de l'étage ET3. La configuration des multiplexeurs est illustrée en caractères gras sur la figure 14. Bien entendu, puisque dans l'exemple qui est mentionné ici les données sont délivrées sur les sorties des rangs 1 à R, c'est-à-dire sur les sorties S1 à S4, le trajet des données W2, W3 et W4 par l'intermédiaire des multiplexeurs MUXa de la figure 14 est sans importance. Sur la figure 15, N est égal à 6, R est égal à 5 et S est égal à 1. En conséquence, le premier étage ET1 comporte dans sa partie PT1 sept multiplexeurs (i groupe) et dans sa partie PT2 trois multiplexeurs (deuxième groupe). L'étage ET2 comporte dans sa partie PT1 cinq multiplexeurs et dans sa partie PT2 un multiplexeur. I1 en est de même pour l'étage ET3. Le décalage global effectué par les multiplexeurs de la partie PT1 est égal à 1, ce qui est obtenu uniquement par les multiplexeurs du premier étage. Le décalage global effectué par les multiplexeurs de la partie PT2 est égal à 2, ce qui est obtenu uniquement par le multiplexeur de la partie PT2 de l'étage ET2. Le trajet des données Wl-W5 est illustré en conséquence en caractères gras sur la figure 16. Matériellement, les moyens de commande MC1 peuvent être réalisés aisément à partir de portes et/ou de circuits logiques en fonction des valeurs de S, Net R. Tout ce qui vient d'être décrit s'applique également à un dispositif de décalage capable d'effectuer un décalage à droite comme illustré par exemple dans deux cas particuliers sur les figures 17 et 18. En fait, comme on le voit sur ces exemples, la structure d'un tel dispositif DDC capable d'effectuer un décalage à droite a une architecture symétrique par rapport à celle illustrée sur les figures précédentes. Et, dans le cas d'un décalage à droite, les première entrées élémentaires des N multiplexeurs de rang 1 à N sont là encore respectivement connectées directement ou indirectement aux N entrées de rang 1 à N. La deuxième entrée élémentaire du multiplexeur de rang 1 est toujours connectée à l'entrée de rang N. Par ailleurs sur ces deux figures, les R sorties prédéterminées sont les sorties de rang 1 à R (qui sont cette fois-ci les R sorties de gauche sur ces figures). Dans tout ce qui a été décrit ci-avant, on a supposé que les données étaient codées sur un seul bit. Cela étant, l'invention s'applique également à des données codées d'une façon plus générale sur plusieurs bits. Dans ce cas, si les données sont codées sur un nombre nbit, chaque multiplexeur MUX est en fait remplacé par un ensemble de nbit multiplexeurs en parallèle et connectés chacun de façon identique. L'agencement et la configuration ainsi que la commande des différents multiplexeurs du circuit à décalage dépendent non seulement du nombre de tailles intermédiaires susceptibles d'être traitées, c'est-à-dire du nombre N, mais également du choix des entrées sur lesquelles sont reçues les R données d'entrée et du choix des R sorties prédéterminées du dispositif de décalage. En effet, on peut tout à fait envisager de faire sortir les R données pour une taille intermédiaire inférieure à N sur R sorties certes prédéterminées quelle que soit la valeur de décalage globale souhaitée, mais différentes des sorties S1 à SR. De même on peut faire recevoir les R données d'entrée sur R entrées différentes des entrées E l à ER. L'homme du métier saura donc configurer au cas par cas le circuit à décalage et le connecter entre les N entrées et les N sorties en fonction de l'application envisagée moyennant bien entendu les principes généraux évoqués ci-avant et relatifs au nombre d'étages de décalage, au nombre de multiplexeurs par étage de décalage, au sens de décalage identique pour tous les multiplexeurs ainsi qu'à une commande des multiplexeurs par groupe en fonction d'un découpage adéquat. L'invention peut trouver une application intéressante dans le cadre de systèmes fonctionnant selon des normes de transmission sans fil comme par exemple la norme IEEE 802.16e destinée aux systèmes désignés sous la dénomination anglo-saxonne Fixed and Mobile Broadband Wireless Access Systems ou bien la norme IEEE 802.1 ln concernant les réseaux désignés sous la dénomination anglo-saxonne Local and Metropolitan Networks . On peut encore citer la norme DVB-S2 en particulier pour les transmissions par satellite. De tels systèmes utilisent des moyens de codage et de décodage de canal qui peuvent incorporer avantageusement des dispositifs de décalage tels que décrits ci-avant. Plus précisément, sur la figure 19, la référence WAP désigne un appareil sans fil utilisable dans un système de communication conforme à 15 la norme DVB-S2. L'appareil sans fil WAP comporte une chaîne de transmission TXCH capable de transmettre sur un canal de transmission CH, par exemple l'air, des informations codées et modulées. Par ailleurs, cet appareil WAP comporte également une chaîne de 20 réception RXCH capable de recevoir et de décoder des informations en provenance du canal de transmission CH. La chaîne de transmission TXCH comporte de façon classique et connue en soi des moyens de codage de source SCM recevant des données d'application APP pour notamment les comprimer de façon à 25 réduire le débit de données. La chaîne de transmission comporte également des moyens de codage de canal dont la fonction est notamment d'ajouter de la redondance pour pouvoir par la suite corriger les erreurs potentielles en réception dues au bruit du canal de transmission. Ces moyens de codage 30 de canal comportent par exemple des moyens de codage LDPC. La chaîne de transmission comporte également des moyens de modulation MDM de façon à adapter le signal au canal de transmission (canal satellite ou canal radio, par exemple). La chaîne de réception RXCH comporte des moyens homologues 35 effectuant les fonctions inverses. Plus précisément, on trouve des moyens de démodulation DMDM, suivis de moyens de décodage de canal CHDCM comportant par exemple un décodeur LDPC, suivis de moyens de décodage de source SDCM délivrant à l'utilisateur les données d'utilisateur DUT correspondant aux données d'application APP. Le code LDPC est un code à base de blocs. L'encodeur traite des blocs de K bits et délivre des blocs de N bits. Ainsi, N-K bits de redondance sont ajoutés. Ces N-K bits sont appelés bits de parité . Le taux de codage ( Code rate , en langue anglaise) est défini par le rapport K/N. Plus le taux de codage est bas, plus le nombre de bits de redondance est élevé et ainsi plus grande est la protection contre le bruit du canal de transmission. Ces N-K bits sont calculés à l'aide d'une matrice de parité H. Le code LDPC est donc également un code basé sur une matrice. Cette matrice a N-K lignes et N colonnes et est composée de 1 et de 0 avec un nombre de 1 faible par rapport au nombre de 0 . C'est la raison pour laquelle ce type de codes basés sur une telle matrice sont dénommés codes LDPC , c'est-à-dire des codes à faible densité. Le bloc encodé BLC, de N bits, est calculé en résolvant l'équation HBLCT = 0, où H désigne la matrice de parité, et T la fonction transposée . Du côté du décodeur, la correction des bits erronés est effectuée à partir des relations entre les informations codées du bloc. Ces relations sont données par la matrice de parité H. Le décodeur utilise des métriques internes correspondant aux 1 de la matrice H. La matrice H correspond au graphe de Tanner du code LDPC comportant des noeuds dits de contrôle ( check nodes ) et des noeuds d'information ( bit nodes ) reliés entre eux par le chemin des graphes représentatifs des messages échangés itérativement entre les noeuds ainsi reliés. Ces métriques sont mises à jour par lignes (mise à jour des noeuds de contrôle) en prenant en compte les métriques internes d'une même ligne. Ensuite, le décodeur met à jour ces métriques par colonnes (mise à jour des noeuds d'information) en prenant en compte les métriques internes sur une même colonne ainsi que l'information correspondante en entrée du décodeur et provenant du canal de transmission. Une itération correspond à la mise à jour des noeuds de contrôle pour toutes les métriques internes suivie de la mise à jour des noeuds d'information pour toutes les métriques internes. Le décodage d'un bloc nécessite plusieurs itérations. Les valeurs des bits décodés, également appelées décisions dures ( Hard decisions , en langue anglaise) sont obtenues en additionnant les métriques internes par colonnes avec les informations reçues et en prenant le signe du résultat. En d'autres termes, le signe du résultat fournit la valeur 0 ou 1 du bit tandis que la valeur absolue du résultat donne une indication de confiance (probabilité) pour cette valeur logique 0 ou 1 . Les codes du type LDPC sont intéressants car ils permettent d'obtenir un taux d'erreurs de bits (BER : Bit Error Rate , en langue anglaise) très bas, en raison du caractère itératif de l'algorithme de décodage. Plusieurs algorithmes itératifs de décodage existent pour décoder des codes LDPC. On pourra notamment citer l'algorithme classique dit à propagation de croyance et bien connu de l'homme du métier sous la dénomination anglosaxonne Belief Propagation (BP). Si l'on se réfère maintenant plus particulièrement à la figure 20, on voit qu'un exemple de décodeur LDPC, référencé DEC, comporte essentiellement et schématiquement des moyens de mémoire d'entrée MMCH, des moyens de décodage MDCD, des moyens de mémoire de sortie MMHD ainsi que des moyens de contrôle MCTL. Les moyens de mémoire d'entrée MMCH reçoivent une succession de blocs BLC; encodés avec un code LDPC. Chaque bloc comporte un nombre prédéterminé d'informations codées, 64 800 dans la norme DVB-S2. Ces informations sont en fait des rapports de probabilités et sont généralement connues par l'homme du métier sous leur dénomination anglosaxonne de LLR ( Log Likelihood Ratio ). Ces informations sont codées sur n bits. Le signe de chaque information est représentatif de sa valeur logique tandis que sa valeur absolue est représentative de la confiance que la valeur logique de cette information soit la bonne. Chaque bloc reçu BLC; est décodé dans les moyens de décodage MDCD comportant dans cet exemple F processeurs fonctionnant en parallèle, F étant égal à 360 dans une application de norme DVB-S2. La batterie de F processeurs effectue la mise à jour des noeuds de contrôle et des noeuds d'information. Une mémoire de métriques MMT contient les métriques internes (en un nombre égal au nombre de 1 dans la matrice de parité). Un dispositif de décalage DDC tel que celui décrit ci-avant permet de placer les bonnes données en face des bons processeurs. Lors du décodage itératif, les informations de canal, initialisées par les informations du bloc à décoder, sont mises à jour à l'aide des métriques mises à jour. Enfin, à l'issue du décodage, les processeurs délivrent dans la mémoire MMHD, les décisions dures correspondant aux valeurs logiques décodées du bloc BLC;. Ces décisions dures sont en fait les signes des informations de canal mises à jour à la dernière itération. L'utilisation d'un dispositif de décalage DDC tel que décrit ci- avant, que ce soit au sein des moyens de codage de canal ou de moyens de décodage de canal, permet de réduire le nombre de multiplexeurs. En effet, à titre d'exemple, dans la norme 802.11n les tailles de bus devant être capables d'être traitées sont égales à 81, 54 et 27. L'utilisation d'un circuit à décalage à barillet classique de taille 81 conduit à un nombre de multiplexeurs égal à 3402 avec des données codées sur 6 bits. Un circuit à décalage à barillet de taille 54 comporte 1944 multiplexeurs. Un circuit à décalage à barillet de taille 27 a 810 multiplexeurs. En conséquence, une option consistant à prévoir trois circuits à décalage à barillet classiques ayant respectivement une taille égale à 81, 54 et 27 pour pouvoir supporter les trois tailles requises par la norme 802.1 ln conduit à un nombre total de multiplexeurs égal à 6156 auquel il faut ajouter un circuit de sélection. Par contre, un dispositif à décalage de données selon un mode de réalisation de l'invention présentant une taille maximale égale à 81 et capable de traiter toutes les tailles de 1 à 81 conduit à un nombre total de multiplexeurs de 5526 (avec des données codées sur 6 bits). En ce qui concerne la norme 802.16e, le nombre de modes est beaucoup plus important, typiquement égal à 19. Plus précisément, la taille du bus de données peut varier de 24 à 96. Et, à titre indicatif, avec des données codées sur 6 bits, la taille d'un circuit à barillet standard de taille 96 donc capable de ne couvrir qu'un seul mode à savoir le mode maximal, a un nombre au total de multiplexeurs égal à 4032. A titre de comparaison, un dispositif de décalage de données tel que celui qui a été décrit ci-avant et qui serait capable de couvrir toutes les tailles de 1 à 96 et donc tous les modes possibles de la norme 802.16e aurait un nombre de multiplexeurs égal à 6540, soit à peine plus de 1,6 fois le nombre de multiplexeurs du circuit à barillet classique ne traitant que la taille 96. REVENDICATIONS 1. Dispositif électronique de décalage capable de décaler des données d'une valeur globale de décalage souhaitée, caractérisé par le fait qu'il comprend N entrées aptes à recevoir simultanément R données d'entrées, R étant susceptible de prendre toutes les valeurs de 1 à N, N sorties, un circuit à décalage configurable (CDC) connecté entre les N entrées et les N sorties comportant une cascade d'étages de décalage (ETi), le nombre d'étages étant fonction de N, chaque étage comportant au moins N moyens de multiplexage commandables (MUX), chaque moyen de multiplexage d'un étage possédant une première entrée élémentaire (EM1) et une deuxième entrée élémentaire (EM2) respectivement connectées directement ou indirectement à une première entrée et à une deuxième entrée prises parmi les N entrées (Ei) de façon à, sur commande, ne pas décaler une donnée présente sur ladite première entrée élémentaire et décaler une donnée présente sur la deuxième entrée élémentaire d'une valeur élémentaire de décalage dépendant du rang de l'étage, le sens de décalage étant identique pour tous les moyens de multiplexage du circuit, et des moyens de commande (MC1) aptes à commander les différents moyens de multiplexage de façon à délivrer les R données d'entrées sur R sorties prédéterminées quelle que soit la valeur globale de décalage souhaitée inférieure à R. 2. Dispositif selon la revendication 1, dans lequel le nombre d'étages de décalage (ETi) est égal à ceil(log2(N)), où ceil(X) désigne la fonction partie entière supérieure de X. 3. Dispositif selon la revendication 1 ou 2, dans lequel chaque étage de décalage (ETi) comporte un nombre de moyens de multiplexage égal à N+2'.floor((N-2'-'-1)/2')), où floor(X) désigne la fonction partie entière inférieure de X et i désigne le rang de l'étage, le premier étage étant l'étage de rang i égal à 1. 4. Dispositif selon l'une des revendications précédentes, dans lequel une seule (El) des N entrées est directement connectée à deux moyens de multiplexage différents tandis que chacune des N-1 autresentrées de rangs successifs est directement connectée à au moins trois moyens de multiplexage différents de façon à ce qu'une donnée présente sur une de ces N-1 autres entrées puisse être décalée dans ledit sens de décalage de toute valeur globale de décalage inférieure à N et compatible avec le rang de ladite entrée. 5. Dispositif selon la revendication 4, dans lequel les N-1 autres entrées sont les entrées de rang 2 à N et chacune de ces entrées est directement connectée à au moins trois moyens de multiplexage différents de façon à ce qu'une donnée présente sur une de ces entrées puisse être décalée dans ledit sens de décalage de toute valeur globale de décalage comprise entre N-1 et N-r+l, où r désigne le rang de ladite entrée. 6. Dispositif selon l'une des revendications précédentes, dans lequel la valeur élémentaire de décalage d'un étage de rang i est identique pour tous les moyens de multiplexage de l'étage et est égal à 2'-' le premier étage étant l'étage de rang i égal à 1, et les deuxièmes entrées élémentaires de tous les moyens de multiplexage (MUX) d'un étage sont respectivement connectées directement ou indirectement à des entrées de rangs consécutifs. 7. Dispositif selon l'une des revendications précédentes, dans lequel le dernier étage ne comporte que N moyens de multiplexage (MUX). 8. Dispositif selon les revendications 6 et 7, dans lequel les premières entrées élémentaires des N moyens de multiplexage de rangs 1 à N d'un étage de rang i, sont respectivement connectées directement ou indirectement aux N entrées de rangs 1 à N, la deuxième entrée élémentaire du moyen de multiplexage de rang 1 de l'étage de rang i égal à 1 est connectée à l'entrée de rang N, les premières et deuxièmes entrées élémentaires des éventuels autres moyens de multiplexage de l'étage de rang i sont connectées directement ou indirectement à certaines au moins des entrées de rang N à 2 compte tenu de la valeur élémentaire de décalage associée à cet étage, et les deuxièmes entrées élémentaires de certains des N moyens de multiplexage du dernier étage sont également connectées directement ou indirectement auxentrées de rang N à 2 compte tenu de la valeur élémentaire de décalage associée à cet étage. 9. Dispositif selon l'une des revendications précédentes, dans lequel chaque étage de décalage comporte un premier groupe de moyens de multiplexage adjacents (PT1) et un deuxième groupe de moyens de multiplexage adjacents (PT2), le nombre de moyens de multiplexage dans chaque groupe dépendant du rang de l'étage et de la valeur S+N-R où S désigne la valeur globale de décalage souhaitée, et les moyens de commande sont aptes à commander de façon indépendante les deux groupes de moyens de multiplexage de chaque étage, et de façon identique tous les moyens de multiplexage d'un groupe d'un étage, de façon à ce que les moyens de multiplexage de tous les premiers groupes réalisent un décalage égal à s et que les moyens de multiplexage de tous les deuxièmes groupes réalisent un décalage égal à S+N-R. 10. Dispositif selon la revendication 9, dans lequel le nombre de moyens de multiplexages du premier groupe d'un étage de rang i est égal à min (MX , N-(mod(S+N-R,2')-(N-R))) où mod (X, Y) représente le reste de la division de X par Y, min représente la fonction minimum , et MX le nombre de moyens de multiplexage de l'étage de rang i. 11. Dispositif selon l'une des revendications précédentes, dans lequel le sens de décalage est à gauche ou à droite. 12. Dispositif selon l'une des revendications précédentes, réalisé sous la forme d'un circuit intégré. 13. Dispositif de codage de canal, en particulier apte à effectuer un encodage avec un code LDPC, caractérisé par le fait qu'il incorpore un dispositif de décalage (DDC) selon l'une des revendications précédentes. 14. Dispositif de décodage de canal, en particulier apte à effectuer un décodage de blocs encodés avec un code LDPC, caractérisé par le fait qu'il incorpore un dispositif de décalage (DDC) selon l'une des revendications 1 à 12.