Brevet FR2857178A1 — publié le 20050107

ENTRELACEUR ET DISPOSITIF DE DECODAGE DE SIGNAUX NUMERIQUES COMPRENANT UN TEL ENTRELACEUR La présente invention concerne un entrelaceur, utilisable en particulier pour le décodage de signaux numériques. Un entrelaceur ( interleaver en anglais) est une unité de traitement d'un flux de données numériques qui change l'ordre des données dans le flux. Une telle opération est utile, notamment, lors d'une transmission d'un flux de données: au lieu d'affecter de façon irrémédiable une petite partie du flux de données, d'éventuelles erreurs de transmission sont réparties sur une grande partie du flux, et sont alors susceptibles d'être corrigées en utilisant l'une des méthodes de correction connues de l'homme du métier. De façon générale, une correction d'erreur de transmission combinée avec une opération d'entrelacement est d'autant plus efficace que l'ordre des données dans le flux peut être considéré comme aléatoire. Les données peuvent être organisées dans le flux en unités de données successives, telles que, par exemple, des datagrammes dans le cas d'une transmission IP, des cellules dans le cas d'une transmission ATM ou des trames dans le cas d'une transmission UMTS. Pour effectuer un entrelacement des données du flux, le flux est découpé en tranches de flux de longueur déterminée. Une tranche de flux comprend en général un grand nombre d'unités de données. Les données successives d'une tranche sont écrites dans une mémoire à accès aléatoire selon un premier classement déterminé des adresses de cette mémoire, puis sont lues selon un second classement déterminé des adresses différent du premier classement. Un changement d'ordre des données dans le flux, ou entrelacement, est ainsi obtenu, qui correspond à la différence entre le classement des adresses pour l'écriture des données dans la mémoire et le classement des adresses pour la lecture des données dans la mémoire. Un entrelacement des données du flux dans l'ordre inverse est obtenu 30 en échangeant les premier et second classements des adresses entre les opérations de lecture et d'écriture dans la mémoire. De façon connue, un cycle de fonctionnement d'un entrelaceur comprend les quatre phases suivantes, répétées pour des cycles successifs: 1- écriture des données successives d'une première tranche de flux dans la mémoire en parcourant les adresses de la mémoire selon un 5 premier classement de celles-ci; 2- lecture des données de la première tranche de flux dans la mémoire en parcourant les adresses de la mémoire selon un second classement de celles-ci; 3- écriture des données successives d'une seconde tranche de flux 10 dans la mémoire en parcourant les adresses de la mémoire selon le second classement; 4- lecture des données de la seconde tranche de flux dans la mémoire en parcourant les adresses de la mémoire selon le premier classement. Couramment, le premier classement des adresses de la mémoire est l'ordre numérique croissant de ces adresses. Le second classement correspond alors à l'ordre d'entrelacement. Une opération d'entrelacement comprend par conséquent une écriture des données selon l'ordre numérique des adresses de mémoire, et une lecture selon l'ordre entrelacé. A l'inverse, une opération de désentrelacement comprend à une écriture des données dans la mémoire selon l'ordre entrelacé des adresses, suivie d'une lecture dans l'ordre numérique croissant des adresses. Lors du cycle de fonctionnement d'un entrelaceur décrit ci-dessus, la première tranche de flux est entrelacée, et la seconde tranche de flux est désentrelacée. Un avantage de ce fonctionnement de l'entrelaceur réside dans le fait que les deuxième et troisième phases du cycle sont effectuées simultanément, de même que les quatrième et première phases du cycle. Un débit d'entrelacementldésentrelacement important est ainsi obtenu. A chaque instant d'une horloge de cadencement de l'entrelaceur, des premières données sont donc lues dans la mémoire et, simultanément, des secondes données sont écrites dans la mémoire. Une mémoire à accès aléatoire à deux ports, ou DPRAM (pour Dual Port Random Access Memory ) est couramment utilisée à cette fin, pour permettre les deux opérations simultanées de lecture et d'écriture. La capacité de la mémoire DPRAM est au moins égale à la longueur d'une tranche de flux. Un inconvénient de l'utilisation d'une mémoire DPRAM réside dans les dimensions physiques importantes du composant électronique qui constitue cette mémoire. Il en résulte notamment un prix élevé du composant de mémoire et un encombrement provoqué par ce composant au sein de l'entrelaceur. Un objet de la présente invention consiste à réduire les inconvénients précités. L'invention propose un entrelaceur comprenant une première et une seconde mémoires à accès aléatoire pour stocker des données et un dispositif d'adressage relié à des entrées d'adresses respectives des deux mémoires. Le dispositif d'adressage est agencé pour transmettre, à chaque instant d'une horloge reliée au dispositif d'adressage, une consigne d'accès en lecture à l'une des deux mémoires et une consigne d'accès en écriture à l'autre des deux mémoires, de sorte que, à chaque instant, une donnée est inscrite ou lue dans chaque mémoire. En outre, le dispositif d'adressage est agencé pour transmettre, à chaque instant, une première adresse d'une première séquence d'adresses à la première mémoire et une seconde adresse d'une seconde séquence d'adresses à la seconde mémoire. La séquence d'adresses destinée à chaque mémoire est construite à partir de deux classements différents des adresses de ladite mémoire parcourus successivement, chaque classement étant parcouru en combinaison avec une consigne d'accès en lecture puis en combinaison avec une consigne d'accès en écriture avant d'être suivi par l'autre classement dans ladite séquence d'adresses. Ainsi, un entrelaceur selon l'invention utilise simultanément deux mémoires à accès aléatoires pour écrire et lire, à chaque instant, des données d'une tranche de flux respectivement dans chacune des deux mémoires. Chaque mémoire de l'entrelaceur peut alors être du type mémoire à port unique, ou SPRAM (pour Single Port Random Acess Memory ). De plus, chaque mémoire de l'entrelaceur peut avoir une capacité limitée à la moitié de la longueur des tranches de flux. Le remplacement d'une mémoire de type DPRAM ayant une capacité déterminée par deux mémoires de type SPRAM ayant chacune une capacité égale à la moitié de ladite capacité déterminée permet de réduire les dimensions de l'entrelaceur, et de diminuer son prix, tout en permettant un traitement identique du flux de données. Selon le mode de réalisation préféré de l'invention, le dispositif d'adressage est agencé pour transmettre à chaque mémoire des consignes d'accès opposées entre deux instants successifs. Un tel dispositif d'adressage peut être particulièrement simple, notamment la partie de ce dispositif dédiée à la génération des consignes d'accès. En outre, un entrelaceur ainsi constitué peut réaliser un entrelacement qui mélange les données de chaque tranche de flux sur toute la longueur de cette tranche. Dans le jargon de l'homme du métier, un tel entrelaceur est dit posséder une profondeur d'entrelacement égale à la longueur des tranches de flux. Une efficacité maximale de correction des erreurs de transmission est alors obtenue. Préférablement, un premier des deux classements des adresses est l'ordre numérique croissant des adresses, ou ordre incrémental. Le second classement des adresses peut être obtenu soit par calcul, soit par lecture d'une table mémorisée. Le dispositif d'adressage peut donc comprendre un générateur par calcul des adresses selon le second classement. Alternativement, le dispositif d'adressage peut comprendre un générateur des adresses selon le second classement qui produit une première partie des adresses d'après une table mémorisée, et une seconde partie des adresses par calcul en utilisant la table mémorisée. Un entrelacement plus aléatoire peut être obtenu en utilisant une table mémorisée par rapport au cas d'un second classement obtenu seulement par calcul. Par ailleurs, grâce au recours à un calcul pour la seconde partie des adresses, le mode mixte d'obtention des adresses selon le second classement ne nécessite qu'un volume limité de mémoire permanente (ou mémoire ROM pour Read Only Memory ). L'invention concerne aussi un dispositif de décodage de signaux numériques comprenant un entrelaceur tel que décrit précédemment, et comprenant un décodeur relié à une entrée d'écriture de données et à une sortie de lecture de données de chaque mémoire de l'entrelaceur. D'autres particularités et avantages de la présente invention apparaîtront dans la description ci-après de deux exemples de réalisation non limitatifs, en référence aux dessins annexés parmi lesquels: - la figure 1 est un diagramme synoptique d'un entrelaceur selon l'invention; - la figure 2 correspond à la figure 1 pour un mode de réalisation particulier de l'entrelaceur. Conformément à la figure 1, un entrelaceur comprend un dispositif d'adressage 100 connecté à deux mémoires dynamiques à accès aléatoire, 10 et 11, notées respectivement RAMO et RAMI. A chaque instant d'une horloge (non représentée) connectée à l'entrelaceur, le dispositif 100 transmet une adresse d'écriture à l'une des deux mémoires 10 ou I I, et une adresse de lecture à l'autre des deux mémoires. A0 est l'adresse transmise à la mémoire 10, et Al est l'adresse transmise à la mémoire 11. Le mode d'accès à chaque mémoire 10 et Il est fixé par une consigne d'accès binaire CA produite par le dispositif 100 à une sortie de consigne d'accès dédiée. La sortie de consigne d'accès est directement reliée à l'entrée de consigne d'accès W/R de la mémoire 11 (notée CA1 sur la figure 1), et est reliée par un inverseur 9 à l'entrée de consigne d'accès W/R de la mémoire 10 (notée CAO). Des premiers bus de données relient une sortie de données d'un décodeur 101 (noté DECOD.) à des entrées d'écriture de données W0, WI respectives des deux mémoires 10, 11. De même, des seconds bus de données lues relient des sorties de données respectives RO, RI de chaque mémoire 10, 11 à une entrée de données du décodeur 101. De façon connue, une entrée de données externe (notée ext IN) est connectée aux premiers bus pour amener initialement les données destinées à être décodées, et une sortie de données externes (notée ext OUT) est connectée aux seconds bus pour récupérer les données décodées. Chaque mémoire 10, 11 peut présenter, par exemple, 3200 emplacements de mémoire correspondant à des adresses distinctes. Chaque emplacement peut, par exemple, être dimensionné pour recevoir de trois mots de 6 bits chacun. L'ensemble des trois mots constitue une donnée stockée à un emplacement de mémoire associé à une. adresse unique pour une opération d'entrelacement ou de désentrelacement. Une tranche de flux de données entrelacée ou désentrelacée lors d'un cycle de fonctionnement de l'entrelaceur regroupe alors 6400 triplets de mots de 6 bits, chaque triplet constituant l'unité élémentaire d'entrelacement. Le dispositif d'adressage 100 comprend deux compteurs 1 et 2, notés COUNT 0 et COUNT 1 sur la figure 1, qui produisent chacun cycliquement un nombre entier compris entre 0 et 3199, incrémenté de une unité tous les deux instants successifs cadencés par l'horloge. Le compteur 2 produit chaque nombre avec un retard déterminé par rapport à l'instant auquel le compteur 1 produit le même nombre. Ce retard est choisi supérieur ou égal à un délai de latence du décodeur 101, qui peut être, à titre d'exemple, de 137 cycles d'horloge. Chaque nombre correspond à une adresse dans les deux mémoires 10et11. Le dispositif d'adressage 100 comprend aussi deux mélangeurs 3 et 4, notés MIX 0 et MIX 1. Chaque mélangeur 3, 4 produit cycliquement un nombre entier variant entre deux instants successifs cadencés par l'horloge et correspondant à une adresse dans chaque mémoire 10, 11. Les deux mélangeurs 3 et 4 produisent les nombres selon un classement prédéterminé commun, qui est entrelacé par rapport au classement incrémental desdits nombres. Le mélangeur 4 produit les mêmes nombres que le mélangeur 3 avec un retard identique à celui du compteur 2 par rapport au compteur 1. Un premier échangeur 5 est relié en entrée aux compteurs 1 et 2, et est agencé pour échanger entre deux sorties de l'échangeur 5 les nombres produits respectivement par les compteurs 1 et 2 à un même instant. Cet échange est opéré en fonction d'une consigne binaire de sélection de mémoire CS transmise à l'échangeur 5. De même un second échangeur 6, identique à l'échangeur 5, est relié 30 en entrée aux mélangeurs 3 et 4 et est agencé pour échanger entre deux sorties de l'échangeur 6 les nombres produits respectivement par les mélangeurs 3 et 4 à un même instant, en fonction de la consigne de sélection de mémoire CS. Conformément à la figure 2, chaque échangeur 5, 6 peut être réalisé au moyen de deux sélecteurs binaires dont les entrées sont connectées en parallèle, et qui sont commandés respectivement par la consigne CS ou par une consigne correspondant à l'inverse de la consigne CS. Un premier sélecteur de classement 7 possède deux entrées reliées respectivement à des premières sorties respectives des échangeurs 5 et 6, et une sortie reliée à l'entrée d'adresses de la mémoire 10. Le sélecteur 7 est agencé pour reproduire sur sa sortie le nombre transmis à l'une de ses entrées o en fonction d'une consigne binaire de classement CC. Le nombre produit par la sortie du sélecteur 7 correspond à l'adresse A0. De même, un second sélecteur de classement 8 possède deux entrées reliées respectivement à deux secondes sorties respectives des échangeurs 5 et 6, distinctes des premières sorties des échangeurs 5 et 6, et possède une sortie reliée à l'entrée d'adresses de la mémoire 11. Le sélecteur 8 est agencé pour reproduire sur sa sortie le nombre transmis à l'une de ses entrées en fonction de la consigne CC. Le nombre produit par la sortie du sélecteur 8 correspond à l'adresse Al. Les entrées des échangeurs 5 et 6 et des sélecteurs 7 et 8 sont connectées de sorte que la consigne CS commande une transmission d'adresses retardée pour tenir compte du délai de latence du décodeur 101 à l'une des deux mémoires 10, 11, et une transmission d'adresses non retardée à l'autre des deux mémoires 10, 11. Selon la figure 2, lorsque la consigne CS est égale à 0, l'échangeur 5 transmet au sélecteur 7 le nombre produit par le compteur 1 et au sélecteur 8 le nombre produit par le compteur 2. L'échangeur 6 transmet alors au sélecteur 7 le nombre produit par le mélangeur 3 et au sélecteur 8 le nombre produit par le mélangeur 4. Inversement, lorsque la consigne CS est égale à 1, l'échangeur 5 transmet au sélecteur 7 le nombre produit par le compteur 2 et au sélecteur 8 le nombre produit par le compteur 1. L'échangeur 6 transmet alors au sélecteur 7 le nombre produit par le mélangeur 4 et au sélecteur 8 le nombre produit par le mélangeur 3. Les entrées des sélecteurs 7 et 8 sont connectées de sorte que les adresses A0 et Al sont simultanément transmises aux deux mémoires 10 et 11, respectivement, selon un même classement, c'est-à-dire soit selon le classement incrémentai, soit selon le classement entrelacé. Par exemple, lorsque la consigne CC est égale à 0, les sélecteurs 7 et 8 transmettent respectivement aux mémoires 10 et 11 les nombres issus de l'échangeur 5, et provenant des compteurs 1 et 2. Lorsque la consigne CC est égale à 1, les sélecteurs 7 et 8 transmettent respectivement au mémoires 10 et 11 les nombres issus de l'échangeur 6, provenant des mélangeurs 3 et 4. La consigne CC est inversée à chaque fois que toutes les adresses des mémoires 10 et 11 ont été produites, chaque adresse ayant été associée à une consigne d'accès en lecture puis en écriture, soit selon le classement incrémental par les deux compteurs 1 et 2, soit selon le classement entrelacé par les mélangeurs 3 et 4. La consigne d'accès CA et la consigne de sélection CS sont choisies 15 identiques l'une à l'autre à chaque instant. L'intervention de chaque compteur 1, 2 ou mélangeur 3, 4 au cours d'un cycle de fonctionnement de l'entrelaceur est alors répartie de la façon suivante: - le compteur 1 produit les adresses pour la phase de lecture de désentrelacement; - le compteur 2 produit les adresses pour la phase d'écriture d'entrelacement; - le mélangeur 1 produit les adresses pour la phase de lecture d'entrelacement; et - le mélangeur 2 produit les adresses pour la phase d'écriture de 25 désentrelacement. De façon équivalente, la consigne d'accès CA peut être choisie inverse de la consigne de sélection CS si, à l'opposé des figures 1 et 2, la sortie de consigne d'accès CA est directement reliée à l'entrée de consigne d'accès de la mémoire 10, et est reliée par un inverseur à l'entrée de consigne d'accès de la mémoire 11. En outre, le dispositif d'adressage 100 est agencé pour produire des consignes CA et CS chacune inversée entre deux instants successifs. Une lecture de données dans l'une des mémoires 10 ou 11 à un instant donné est donc suivie par une écriture de données dans la même mémoire à l'instant suivant, et vice-versa. Il ressort du mode de fonctionnement précédent que chaque donnée du flux à décoder est écrite puis lue dans l'une ou l'autre des deux mémoires 10 ou 11 en fonction de la parité de son rang d'apparition dans la trame à laquelle elle appartient. Ainsi, les données de rang pair à l'intérieur d'une trame sont écrites puis lues dans la mémoire 10, et les données de rang impair à l'intérieur d'une trame sont écrites puis lues dans la mémoire 11. Les mélangeurs 3 et 4 peuvent utiliser un enregistrement des adresses selon le classement entrelacé dans une mémoire ROM. Ils peuvent aussi mettre en oeuvre un algorithme de génération des adresses selon le classement entrelacé, ou encore utiliser une méthode qui combine un enregistrement des adresses et un algorithme de génération. Les compteurs 1 et 2 peuvent être identiques entre eux, de même que les mélangeurs 3 et 4. Alternativement, le compteur 2 et le mélangeur 4 peuvent être constitués par des mémoires respectives de type files d'attente (ou FIFO pour First ln - First Out ), dont les entrées sont respectivement connectées aux sorties du compteur 1 et du mélangeur 3. La capacité de ces mémoires correspond aux retards du compteur 2 et du mélangeur 4 respectivement par rapport au compteur 1 et au mélangeur 3. Pour illustrer le gain d'encombrement procuré par l'invention, les inventeurs donnent l'exemple de réalisation suivant. Une mémoire à accès aléatoire commerciale à port unique (SPRAM) de capacité 3200 triplets de mots de 6 bits chacun possède une longueur de 595,1 micromètres (pm) et une longueur de 439,2 pm, soit une surface de 0,26 millimètre-carré (mm2). Par ailleurs, une mémoire à accès aléatoire commerciale à deux ports (DPRAM), de technologie identique à celle des mémoires précédentes à port unique, et ayant une capacité de 6400 triplets de mots de 6 bits chacun possède une longueur de 1034,3 pm et une largeur de 963,1 pm. Sa surface est donc de 0,99 mm2. Par conséquent, pour une capacité d'entrelacement identique, le remplacement selon l'invention d'une mémoire DPRAM de 6400 triplets de - 10- 6 bits par deux mémoires SPRAM de 3200 triplets de 6 bits correspond à un gain de 47% en surface de circuit électronique de l'entrelaceur dédiée à la fonction de mémorisation des données. REVENDICATIONS 1. Entrelaceur comprenant une première (10) et une seconde (11) mémoires à accès aléatoire pour stocker des données et un dispositif d'adressage (100) relié à des entrées d'adresses respectives des deux mémoires, le dispositif d'adressage étant agencé pour transmettre, à chaque instant d'une horloge reliée au dispositif d'adressage, une consigne d'accès en lecture à l'une des deux mémoires et une consigne d'accès en écriture à l'autre des deux mémoires, de sorte que, à chaque instant, une donnée est inscrite (WO, W1) ou lue (RO, R1) dans chaque mémoire, le dispositif d'adressage étant agencé en outre pour transmettre, à chaque instant, une première adresse (A0) d'une première séquence d'adresses à la première mémoire (10) et une seconde adresse (Al) d'une seconde séquence d'adresses à la seconde mémoire (11), le dispositif d'adressage (100) étant agencé pour construire la séquence d'adresses destinée à chaque mémoire à partir de deux classements différents des adresses de ladite mémoire parcourus successivement, chaque classement étant parcouru en combinaison avec une consigne d'accès en lecture puis en combinaison avec une consigne d'accès en écriture avant d'être suivi par l'autre classement. 2. Entrelaceur selon la revendication 1, dans lequel le dispositif d'adressage est agencé pour transmettre à chaque mémoire des consignes d'accès (CAO, CA1) opposées entre deux instants successifs. 3. Entrelaceur selon la revendication 2, dans lequel un premier des deux classements des adresses est l'ordre numérique croissant, et dans lequel le dispositif d'adressage (100) comprend un générateur par calcul des adresses selon le second des deux classements. 4. Entrelaceur selon la revendication 2, dans lequel un premier des deux classements des adresses est l'ordre numérique croissant, et dans lequel le dispositif d'adressage (100) comprend un générateur des adresses selon le second des deux classements, ledit générateur produisant une première partie des adresses d'après une table mémorisée, et une seconde partie des adresses par calcul en utilisant la table mémorisée. 5. Entrelaceur selon l'une quelconque des revendications précédentes, dans lequel le dispositif d'adressage (100) comprend: un premier (1) et un second (2) compteurs produisant chacun cycliquement un nombre entier incrémenté de une unité tous les deux instants successifs et correspondant à une adresse dans chaque mémoire (10, 11), un premier (3) et un second (4) mélangeurs produisant chacun cycliquement un nombre entier variant entre deux instants successifs selon un classement commun entrelacé par rapport au classement incrémental desdits nombres, lesdits nombres correspondant à une adresse dans chaque mémoire (10, 11) ; le dispositif d'adressage comprenant en outre: - un premier échangeur (5) relié aux premier (1) et second (2) compteurs et agencé pour échanger entre deux sorties du premier échangeur les nombres produits respectivement par les deux compteurs à un même instant en fonction d'une consigne binaire de sélection de mémoire (CS) transmise au premier échangeur; - un second échangeur (6) relié aux premier (3) et second (4) mélangeurs et agencé pour échanger entre deux sorties du second échangeur les nombres produits respectivement par les deux mélangeurs à un même instant en fonction de la consigne de sélection de mémoire (CS) transmise au second échangeur; - un premier sélecteur de classement (7) ayant deux entrées reliées respectivement à une première sortie du premier échangeur (5) et à une première sortie du second échangeur (6), et ayant en outre une sortie reliée à l'entrée d'adresses de la première mémoire (10), le premier sélecteur étant agencé pour reproduire sur ladite sortie le nombre transmis à l'une des entrées du premier 10 sélecteur en fonction d'une consigne binaire de classement (CC) transmise au premier sélecteur; un second sélecteur de classement (8) ayant deux entrées reliées respectivement à une seconde sortie du premier échangeur (5) et à une seconde sortie du second échangeur (6), et ayant en outre une sortie reliée à l'entrée d'adresses de la seconde mémoire (11), le second sélecteur étant agencé pour reproduire sur ladite sortie le nombre transmis à l'une des entrées du second sélecteur en fonction de la consigne de classement (CC) transmise au second sélecteur; le dispositif d'adressage comprenant en outre une sortie de consigne d'accès (CA) reliée à une entrée de consigne d'accès de chaque mémoire (10, 11), respectivement par une liaison directe et par un inverseur (9), l'entrelaceur étant agencé de sorte que la consigne d'accès (CA) est identique 15 ou opposée à chaque instant à la consigne de sélection (CS). 6. Dispositif de décodage de signaux numériques comprenant un entrelaceur (100) selon l'une quelconque des revendications précédentes, et un décodeur (101) relié à une entrée d'écriture de données et à une sortie de lecture de données de chaque mémoire (10, 11) de l'entrelaceur.