Brevet FR2741172A1 — publié le 19970516

Dispositif de traitement de données comportant une mémoire tampon L'invention concerne un dispositif de traitement de données comportant une mémoire tampon en vue de permettre à des circuits ayant accès à cette mémoire de travailler à des vitesses différentes. L'invention s'applique notamment dans un système de transmission de données numériques par paquets tel qu'un système de transmission et de réception de télévision numérique comme le DVB ('Digital Video Broadcast"). Un récepteur de télévision digitale comporte une partie réception et démodulation et une partie de traitement de l'information proprement dite. Les données à la sortie de la partie réception se présentent généralement sous la forme de paquets de mots binaires de longueur donnée. Or, la partie de traitement de l'information ne traite pas forcément les paquets de données à la même vitesse que ceux-ci sont transmis de la partie réception.: la vitesse de traitement peut être largement supérieure à la vitesse de réception. On intercale alors entre les deux parties une mémoire tampon qui découple l'écriture par la partie réception et la lecture par la partie traitement, chacune des deux parties travaillant de manière asynchrone. On cherche à minimiser la taille de cette mémoire tampon, en prêtant toutefois attention aux performances du système. L'invention a pour objet un dispositif de traitement de données comportant une mémoire tampon entre un premier circuit écrivant des paquets de données de longueur L dans ladite mémoire tampon et un second circuit lisant les paquets dans ladite mémoire tampon, caractérisé en ce qu'il comporte -un pointeur d'écriture de ladite mémoire tampon, -des moyens de remise à zéro dudit pointeur lors de la détection du début d'un paquet, 2 2741172 la taille de la mémoire tampon étant égale à L/n arrondi à l'entier supérieur, o n est un entier supérieur ou égal à 2. Selon une exemple de réalisation particulier, les moyens de remise à zéro dudit pointeur comprennent un comparateur qui compare un mot de synchronisation de début de paquet aux données reçues. Selon un exemple de réalisation particulier, le dispositif conforme à l'invention comprend des moyens de réinitialisation du second circuit lorsque la lecture dans ladite mémoire tampon n'a pas débuté pendant un intervalle de temps déterminé après le début de l'écriture d'un paquet de données dans ladite mémoire tampon. 1 5 D'autres caractéristiques et avantages de l'invention apparaîtront à travers la description d'un exemple de réalisation particulier non limitatif illustré par les figures jointes. La figure 1 représente un diagramme-bloc d'un récepteur de télévision digitale par satellite. La figure 2 illustre la mémoire conforme à l'exemple de réalisation par rapport à la taille d'un paquet de données. La figure 1 représente un diagramme bloc d'un décodeur de télévision numérique. Ce décodeur possède un tuner 1 relié à un convertisseur de fréquences à faible bruit qui convertit les signaux reçus par une parabole. Le tuner permet d'obtenir un signal modulé en bande de base, qui sera démodulé et corrigé par une démodulateur-correcteur d'erreurs 2. La correction d'erreurs est de type Reed-Salomon selon le présent exemple. Le signal digital est disponible à la sortie du bloc 2. Le flux de données transporté par ce signal comporte des paquets de données appelés paquets de transport, ayant une longueur fixe de 188 octets. L'organisation des paquets est décrite dans les standards ISO/IEC 13818-1 à ISO/IEC 13818-3, communément dénommés MPEG II 3 2741172 Systèmes, Vidéo et Audio. On considérera par exemple dans ce contexte l'annexe F de MPEG II Systèmes, qui montre les types et longueurs des champs de données dans les différents paquets. Le démodulateur et correcteur d'erreurs 2 écrit dans une mémoire de synchronisation 3, qui possède la structure d'une pile FIFO. La partie de traitement des données (références 4 et suivantes) lit à son rythme les données de la mémoire. Un circuit démultiplexeur 4 possède des filtres destinés à signaler la présence de certains types de données prédéterminées dans les paquets reçus. Les types de données, par exemple des données audio, vidéo, de contrôle d'accès etc... sont repérés par des mots d'identification, comparés par les filtres à un certain nombre de mots prédéterminés. Selon le résultat du filtrage, les paquets ou morceaux de paquets sont alors aiguillés vers les décodeurs d'application appropriés. 1 5 Le démultiplexeur 4 est contrôlé par un microcontrôleur 5 qui d'une part écrit dans des registres internes du démultiplexeur et gère une mémoire RAM 6 contenant notamment les filtres reprogrammables. Le démultiplexeur 4 adresse cette mémoire RAM en fonction des mots binaires à filtrer et y lit le résultat d'un filtrage. Un tel filtrage est décrit de manière plus détaillée dans la demande de brevet français FR 95 02348. Les décodeurs d'application comprennent un décodeur MPEG II vidéo 8 et un décodeur MPEG II audio 9, implémentés par exemple avec des circuits intégrés fabriqués par SGS Thomson. Une interface 10 pour carte à puce 1 1 est également connectée au démultiplexeur 4, qui transmet à la carte à puce des données de gestion de contrôle d'accès liées à l'adresse spécifique de cette carte, ainsi que des messages d'autorisation à partir desquels la carte détermine les mots de contrôle nécessaires pour le désembrouillage des émissions. Le protocole de communication entre l'interface 10 et la carte 11 est conforme au standard ISO 7816-3. Un circuit de réinsertion 'Télétext' 12 réinsère les données télétexte transmises dans des paquets séparés des données vidéo dans le signal vidéo. Selon le présent exemple de réalisation, le 4 2741172 circuit "Télétext" est un circuit tel que celui décrit dans la demande de brevet français FR 94 08195. Le démultiplexeur partage avec les décodeurs d'application, I'interface carte à puce et le circuit "Télétext' les ressources d'une RAM 7. Des buffers sont alloués aux différents circuits. Le démultiplexeur y stocke temporairement des données relues ultérieurement par ces circuits. Le paquet de transport MPEG II Système a une longueur de 188 octets. Le choix de la taille de la mémoire FIFO 3 dépend de cette valeur. En effet, on cherche à utiliser une FIFO dont la taille soit inférieure à la taille d'un paquet entier, dans un but d'économie. La mémoire FIFO 3 est gérée grâce à un pointeur d'adresse d'écriture et un pointeur d'adresse de lecture. Lorsque les pointeurs arrivent en fin de mémoire, ils sont automatiquement remis à zéro. Pour ce qui est du présent exemple de réalisation, les pointeurs font partie intégrante de la mémoire 3. La taille de la mémoire est choisie en fonction de la contrainte suivante: lorsque la fin d'un paquet est écrite à une adresse donnée, la distance entre cette adresse et l'adresse à partir de laquelle le prochain paquet sera écrit devra être maximale. Ceci permet de maximiser le temps dont dispose le démultiplexeur 4 pour lire les données dans cette mémoire avant que celles-ci ne soient effacées par l'écriture du paquet suivant. Selon le présent exemple, la taille de la mémoire est de 63 octets. Ceci correspond au tiers de la taille du paquet de données, arrondi à l'entier supérieur le plus proche, étant donné que le taille du paquet divisé par trois ne donne pas un entier. La figure 2 illustre la méthode d'écriture d'un paquet typique, c'est à dire un paquet écrit sans interruption, dans la mémoire 3. L'écriture d'un paquet commence à une adresse fixe, par convention 2741172 l'adresse O. Le pointeur d'écriture est remis à zéro lorsque le circuit démodulateur et correcteur 2 envoie un signal de validation des données dont le front montant signale le début d'un paquet de transport ou après une interruption du fonctionnement du système. Le signal de validation est aussi transmis à des composantes du démultiplexeur pour l'informer qu'un paquet peut être lu. Pendant la première passe (chiffre 1), les 63 premiers octets du paquet sont écrits, le pointeur d'écriture rebouclant à l'adresse 0 en fin de mémoire. De la même manière, les 63 octets suivants sont écrits lors de la seconde passe. Lors de la troisième passe, la fin du paquet est écrite à l'avant-dernière adresse de la mémoire, laissant un octet libre avant que le compteur d'écriture ne soit remis à zéro pour l'écriture du paquet suivant. Par conséquent, par rapport à la taille de la mémoire, la distance entre le dernier octet d'un paquet et le premier octet du paquet suivant est optimisée. Le pointeur de lecture est remis à zéro en fin de paquet ou après une interruption du système (données erronées, coupure d'alimentation etc..), puisque l'adresse de début du paquet suivant est fixée à l'adresse O. Selon une variante de réalisation, un signal de réinitialisation du démultiplexeur est généré lorsque ce dernier n'a pas commencé à lire la mémoire tampon un certain nombre de cycles d'horloge après le début d'écriture d'une paquet. Ce signal force le démultiplexeur à commencer le traitement du paquet en cours, la réinitialisation ayant pour effet de faire sortir le démultiplexeur d'un éventuel état anormal. Cette variante permet d'obtenir une synchronisation rapide sur démultiplexeur sur les données écrites dans la mémoire tampon. En effet, le signal de validation des données transmis par le circuit 2 au circuit 4 ne fait qu'informer ce dernier de la présence d'un nouveau paquet, sans toutefois le forcer à considérer ce nouveau paquet de façon immédiate. Ceci permet le cas échéant au circuit 4 de finir de traiter le paquet précédent. Dans le cadre 6 2741172 du présent exemple, le signal de réinitialisation est généré lorsque les 58 premiers octets d'un paquet ont été écrits sans que la lecteure n'ait commencé. Il est bien évident que la présente invention ne se limite pas aux valeurs numériques données dans la description de l'exemple de réalisation. Notamment, le facteur de division utilisé pour déterminer la taille de la mémoire par rapport à la taille d'un paquet de données peut être différent de 3. Dans ce cas, selon que ce facteur est ou non un diviseur de la taille du paquet, arrondir à l'entier supérieur peut ne pas être nécessaire. 7 2741172 REVENDICATIONS 1. Dispositif de traitement de données comportant une mémoire tampon (3) entre un premier circuit (2) écrivant des paquets de données de longueur L dans ladite mémoire tampon et un second circuit (4) lisant les paquets dans ladite mémoire tampon, caractérisé en ce qu'il comporte -un pointeur d'écriture de ladite mémoire tampon, -des moyens (2) de remise à zéro dudit pointeur lors de la détection du début d'un paquet, la taille de la mémoire tampon étant égale à L/n arrondi à l'entier supérieur, o n est un entier supérieur ou égal à 2. 2. Dispositif selon la revendication 1, caractérisé en ce que les moyens de remise à zéro dudit pointeur comprennent un comparateur qui compare un mot de synchronisation de début de paquet aux données reçues. 3. Dispositif selon l'une des revendications précédentes, caractérisé en ce qu'il comprend des moyens de réinitialisation du second circuit lorsque la lecture dans ladite mémoire tampon n'a pas débuté pendant un intervalle de temps déterminé après le début de l'écriture d'un paquet de données dans ladite mémoire tampon.