Brevet FR2814018A1 — publié le 20020315

DOMAINE DE L'INVENTION La présente invention concerne les télécommunications et de façon davantage particulière, des services d'émulation de circuit à bande passante dynamique (DBCES) dans un réseau relais de cellules tel que ATM. ARRIÈRE-PLAN DE L'INVENTION Le Mode Transfert Asynchrone ou ATM est un service qui transporte des données selon de petits paquets ou de petites cellules de dimension fixe sur un réseau commuté par paquets. Les cellules sont statistiquement multiplexées sur des liaisons physiques fixes entre des noeuds de réseau et elles établissent des circuits virtuels sur le réseau entre des points d'extrémité. L'ATM inclut un certain nombre de spécifications parmi lesquelles AAL1 (Couche d'Adaptation ATM 1) établit un standard pour transporter des données sensibles au temps telles que la voix ou qu'une information vidéo sur les circuits virtuels entre les points d'extrémité. Ceci est connu en tant qu'émulation de circuit (CES) du fait que ceci procure un certain nombre de canaux vocaux qui apparaissent à l'utilisateur comme étant similaires à par exemple des canaux multiplexés par division temporelle. Le mode DBCES est un mode d'utilisation à bande passante dynamique dans un réseau ATM sur la base de la détection des fenêtres temporelles d'une artère TDM donnée qui sont actives et de celles qui sont inactives. Lorsqu'un état inactif est détecté dans une fenêtre temporelle spécifique, la fenêtre temporelle est enlevée de la structure ATM suivante et la bande passante qu'elle utilisait peut être réutilisée pour d'autres services. Le mode DBCES est décrit en détail dans ATM Forum spécification: af-vtoa-0085.000 (juillet 1997). Les dispositifs connus en tant que dispositifs SAR (Segmentation et Réassemblage) convertissent des données arrivantes selon des cellules et vice versa. Les SAR incluent des tampons pour stocker les cellules destinées à être traitées. Lors d'un fonctionnement dans le mode DBCES (Service d'Emulation de Circuit à Bande Passante Dynamique), si le nombre de canaux vocaux transportés par le train de cellules AAL1 est modifié, le débit auquel les cellules arrivent au récepteur varie. Cette variation du débit d'arrivée peut générer un sous-débordement ou un sur- débordement dans le tampon vocal au niveau du récepteur qui reçoit les cellules arrivantes sauf si des précautions spéciales sont prises. Afin de traiter ce problème, il a été proposé d'ajouter une allocation de tampon supplémentaire afin d'empêcher des sous- débordements et d'insérer un retard supplémentaire dans le tampon afin d'empêcher des sur-débordements. Selon une variante, une autre solution consiste à démarrer le tampon avec un nombre spécifique de canaux vocaux qui sont actifs pour établir un remplissage de tampon adéquat mais le tampon ne peut pas être restauré automatiquement à la suite d'erreurs de glissement. Pour finir, une autre solution consiste simplement à laisser survenir les sur-débordements et les sous-débordements; cependant, ceci devrait avoir pour effet que les récepteurs reçoivent des données incorrectes, ce qui est transposé selon des sons de cliquetis au niveau de l'information audio reçue. OBJET ET RÉSUMÉ DE L'INVENTION Selon un aspect large, I'invention propose un procédé permettant de gérer des tampons dans un dispositif SAR (segmentation et ré- assemblage) qui fonctionne dans un mode DBCES (service d'émulation de circuit à bande passante dynamique), comprenant: la détermination d'une limite de tampon de canal actif pour un circuit virtuel en fonction du nombre de canaux actifs; et l'établissement de la quantité de tamponnage pour chaque canal actif de telle sorte qu'elle soit égale à la CDV (variation de retard de cellule) plus la limite de tampon de canal actif. La quantité de tamponnage est typiquement représentée par la distance entre le pointeur d'écriture et le pointeur de lecture pour les tampons circulaires. Conformément à l'invention, pour n'importe quelle valeur courante de canaux vocaux actifs, soit N, un nombre minimum défini de canaux vocaux actifs, soit MIN, et une tolérance de variation de retard de cellule souhaitée, soit CDV, un espacement de pointeur d'écriture (pointeur de glissement) par rapport au pointeur de lecture est calculé. Suite à un démarrage ou lors d'une erreur (c'est-à-dire un sous- débordement ou un sur-débordement), cet espacement souhaité est utilisé pour créer une nouvelle valeur pour le pointeur d'écriture. Le fait d'autoriser diverses définitions du MIN permet à l'utilisateur du système d'établir par compromis le retard dans le tampon pour la bande passante dans le train de cellules. Le fait de recalculer l'espacement souhaité lorsque N varie permet au tampon de manipuler n'importe quel nombre de canaux vocaux jusqu'à MIN. Une restauration à partir d'erreurs est réalisée de manière automatique (sans intervention de l'unité centrale de traitement ou CPU d'utilisateur) par l'intermédiaire de l'utilisation de l'espacement de tampon correct. Le train de cellules peut être démarré avec n'importe quelle valeur initiale, soit N, de canaux vocaux actifs. L'inclusion de la variation de retard de cellule (CDV) au niveau du calcul signifie que n'importe quelle variation de retard de cellule dans le train de cellules reçu ne génère pas d'erreurs de glissement (c'est-à- dire des sous-débordements ou des sur-débordements). Typiquement, I'espacement est défini de telle sorte que pointeur d'écriture = pointeur de lecture + CDV + (47/MIN) - (47/N) o 47 est utilisé du fait que chaque cellule dans ATM AAL1 contient approximativement 47 octets de données vocales. BRÈVE DESCRIPTION DES DESSINS L'invention sera maintenant décrite de manière davantage détaillée à titre d'exemple seulement par report aux dessins annexés parmi lesquels: les figures la et lb sont des schémas fonctionnels qui représentent les tampons circulaires selon SAR pour à la fois des modes de fonctionnement SDT et DBCES d'un SAR; et la figure 2 est un schéma fonctionnel qui représente la structure de commande de ré-assemblage pour un SAR selon une mise en ceuvre préférée. DESCRIPTION DÉTAILLÉE DE L'INVENTION Un mode transfert de données structurées (SDT) est un mode de transfert de données AAL1 selon lequel des données sont tout d'abord structurées selon des blocs qui sont ensuite segmentés selon des cellules pour un transfert. Selon une application typique, des données TDM sont transférées sur un circuit virtuel ATM entre un dispositif d'émission ou de segmentation (TXSAR) et un dispositif de réception ou de ré- assemblage (RXSAR) qui, comme noté ci-avant, convertissent des données selon des cellules ATM et vice versa. Le circuit virtuel transporte un certain nombre de canaux émulant un service TDM. Le RX_SAR SDT est responsable de l'écriture de données en provenance de cellules reçues dans des tampons circulaires de ré- assemblage tandis que le module TDM lit les données à partir des tampons et les émet en sortie en tant que canaux TDM. Cependant, une certaine commande de tamponnage est requise du fait que le RX_SAR SDT et le TDM fonctionnent à des fréquences d'horloge différentes (les données sont placées dans les tampons sur la base du débit d'arrivée des cellules (qui varie) tandis que les données sont lues à partir des tampons à un débit constant qui est déterminé par la fréquence d'horloge de sortie TDM (par exemple 2048 MHz)). Dans les modes de fonctionnement SDT et DBCES, I'une des tâches principales du RX_SAR SDT consiste à assurer qu'aucun sous- débordement ou qu'aucun sur-débordement ne se produit entre le RX_SAR SDT et un module TDM qui convertit les données sur des canaux multiplexés par division temporelle. Un sous-débordement se produit lorsqu'il y a des données selon une quantité insuffisante dans le tampon pour alimenter le module TDM au débit TDM. Un sur- débordement se produit lorsque le tampon subit un sur-débordement du fait que les cellules arrivent plus rapidement que les données ne sont lues par le module TDM. Le RX_SAR SDT est responsable du maintien d'une relation entre le pointeur d'écriture du RX_SAR SDT et le pointeur de lecture du module TDM. Cette commande est assurée par un sous-programme qui, chaque fois que le RX_SAR SDT est près de réaliser une écriture dans le tampon circulaire, détermine la distance entre le pointeur d'écriture et le pointeur de lecture. Normalement, chaque écriture est réalisée lorsque I'écriture précédente est terminée et le pointeur d'écriture avance simplement à mesure que les octets sont écrits. Cependant, lors d'un démarrage ou lorsque l'algorithme du RX_SAR SDT a décidé qu'une erreur de glissement (c'est-à-dire un sur-débordement ou un sous- débordement) est survenue ou lors d'un passage depuis zéro canal actif jusqu'à au moins un canal actif, le RX_SAR SDT utilise une valeur de pointeur d'écriture calculée de façon interne en tant que valeur de pointeur d'écriture correcte. Dans ces cas, indépendamment de la valeur du pointeur d'écriture original, le pointeur d'écriture est réglé à la valeur de pointeur de glissement et des données sont écrites sur le tampon circulaire de ré- assemblage à l'emplacement pointé par le pointeur de glissement. Le but de l'utilisation du pointeur de glissement consiste à établir une relation connue entre le pointeur de lecture et le pointeur d'écriture, à éliminer le risque de multiples glissements successifs (par exemple un déplacement du pointeur d'écriture qui l'éloignerait davantage du pointeur de lecture afin d'empêcher que des sous-débordements ne se produisent encore et encore). L'invention peut être mise en oeuvre dans n'importe quel dispositif SAR approprié. Un dispositif SAR approprié est par exemple le dispositif MT90528 de Mitel. La figure la représente un tampon circulaire 10 pour un RXSAR dans un mode de fonctionnement SDT. Des données sont stockées au niveau d'adresses individuelles 12 dans le tampon. Un pointeur d'écriture 16 détermine o les cellules arrivantes sont écrites. Un pointeur de lecture 14 détermine o les données TDM sortantes sont lues. La figure lb représente un agencement similaire pour un mode de fonctionnement DBCES. Valeurs de pointeur de glissement dans les modes de fonctionnement SDT et DBCES Un espacement prédéterminé est maintenu entre le pointeur de lecture et le pointeur d'écriture. Une explication des calculs est présentée ci-après. Les calculs utilisent un arrondi par excès. Si le circuit virtuel est configuré pour un SDT de base (figure la), le pointeur de glissement se voit assigner une valeur de telle sorte qu'il soit égal à pointeur de lecture TDM + CDV (CDV est appelé "avg lead" ou avance moyenne et est égal à la valeur "Maximum_Lead/2" programmable par l'utilisateur). CDV représente la variation de retard de cellule selon laquelle des cellules arriveront sur le canal virtuel au niveau du SAR de réception. En moyenne, les cellules doivent arriver au niveau du RXSAR SDT à un débit régulier (figure la) de telle sorte que les données de cellule soient toujours écrites sur le tampon circulaire à l'instant pointeur de lecture TDM + CDV. Cependant, du fait d'une variation de retard de cellule, il est possible que des cellules arrivent davantage lentement ou davantage rapidement que la moyenne. Par conséquent, un tamponnage suffisant doit être assuré dans les tampons circulaires de telle sorte que si une cellule arrive en retard, il y ait suffisamment de données (reçues au préalable) dans le tampon pour assurer que le module TDM puisse continuer à réaliser une lecture à partir du tampon circulaire à un débit régulier sans subir des sous-débordements. Si le canal virtuel est configuré pour DBCES et que le bit DBCES_Control n'est pas établi, la version DBCES du pointeur de glissement de RX_SAR SDT est la même que la version SDT du pointeur de glissement (c'est-à-dire qu'il est égal à pointeur de lecture TDM + CDV). Le problème dans cette situation réside dans le fait que lorsque le nombre N de canaux actifs arrivant sur un circuit virtuel varie, le débit d'arrivée des cellules varie également. Par exemple, dans le cas de deux canaux, chaque cellule consomme deux octets de chaque trame TDM de telle sorte qu'environ 24 trames sont consommées pour remplir la charge utile d'une cellule. Un VC ou circuit virtuel à 4 canaux consomme 4 octets de chaque trame TDM de telle sorte que seulement 12 trames sont consommées pour remplir une cellule. Dans le cas d'un unique canal, seulement un octet de chaque trame est consommé de telle sorte qu'un total de 47 trames TDM est consommé avant qu'une cellule ne soit remplie et prête à être transmise. Si l'on suppose qu'une cellule arrive et est écrite sur le tampon circulaire à l'emplacement pointé au moyen du pointeur de glissement (c'est-à-dire une distance moyenne par rapport au pointeur de lecture), aucun sous-débordement ne devrait se produire. Cependant, si le nombre de canaux actifs sur le circuit virtuel diminue, une quantité de temps plus longue sera consommée pour qu'une cellule soit formée au niveau de l'émetteur. Par conséquent, le débit d'arrivée des cellules diminuera. Par conséquent, le module TDM continuera à réaliser une lecture à partir du tampon circulaire à son débit régulier et sera en sous- débordement du fait qu'il n'y aura pas suffisamment de données dans le tampon pour permettre au module TDM de continuer la lecture jusqu'à ce que la cellule suivante arrive. La figure 2 représente une structure de commande pour le format DBCES. La zone DBCES_Control détermine la quantité de données tamponnées que l'utilisateur souhaite stocker dans chaque tampon circulaire de réassemblage de canal. Si cette zone est établie, le bit commande si cette variable est utilisée ou non. Les bits représentent le tamponnage de retard minimum souhaité pour chaque canal; "00" = 47 octets (par conséquent, le nombre minimum de canaux actifs dans le VC sera de 1); "01" = 24 octets (par conséquent, le nombre minimum de canaux actifs dans le VC sera de 2); "10" = 16 octets (par conséquent, le nombre minimum de canaux actifs dans le VC sera de 3); "11" = 12 octets (par conséquent, le nombre minimum de canaux actifs dans le VC sera de 4). Conformément aux principes de l'invention, si le circuit virtuel est configuré pour DBCES et que le bit de DBCES_Control (voir la figure 2) est établi, le pointeur d'écriture de RX_SAR SDT est assigné de manière à être égal à pointeur de lecture TDM + CDV + limite de tampon CDV de canal actif pour le circuit virtuel. La limite de tampon de canal actif pour le VC est calculé en tant que nombre d'octets du tamponnage DBCES souhaité par l'utilisateur (comme configuré au moyen de l'établissement de la zone DBCESControl dans la structure de commande de ré-assemblage DBCES pour le VC) moins le nombre maximum d'octets qui peuvent être écrits dans chaque tampon circulaire de ré-assemblage SDT pour le VC, compte tenu du profil d'activité du circuit virtuel (par exemple, s'il y a 2 canaux actifs dans le circuit virtuel, un maximum de 24 octets de données peuvent être écrits sur un quelconque tampon circulaire suite à l'arrivée d'une cellule). DBCES_Control est utilisé pour assurer un tamponnage "propre" lorsque le nombre de canaux actifs dans un VC peut varier selon des quantités importantes. Lorsque l'utilisateur établit la zone DBCES_Control, il définit le nombre minimum d'octets de tamponnage que l'utilisateur souhaite toujours avoir à disposition dans chaque tampon circulaire de réassemblage SDT pour le VC. Ce tamponnage supplémentaire ajoute du retard en termes des données qui sont émises en sortie sur le bus TDM mais est utile pour empêcher des sous- débordements de tampon lorsque le nombre de canaux actifs dans un VC varie. Un exemple spécifique sera maintenant considéré. On suppose que l'utilisateur a déterminé que la CDV attendue entre des cellules sur le circuit virtuel est de 625 microsecondes (5 octets de données dans le tampon). Par ailleurs, I'utilisateur a décidé qu'il permettra au nombre de canaux actifs dans le circuit virtuel de diminuer jusqu'à un minimum égal à l'unité (ce qui nécessite le stockage de 47 octets de données supplémentaires dans les tampons). Maintenant, on suppose qu'il y a quatre canaux actifs dans le circuit virtuel pour démarrer. Par conséquent, en utilisant la formule mentionnée ci-avant: distance par rapport au pointeur de lecture = CDV + limite de tampon de canal actif = 5 octets + (47 octets - 47 octets/4) = 40 octets, le pointeur d'écriture commencera une écriture (suite au démarrage ou suite à une condition d'erreur) en un emplacement qui se situe 40 octets à l'avant du pointeur de lecture. Après réception d'une cellule, un quart de la cellule, c'est-à-dire 12 octets, sera ajouté au tampon de telle sorte que le pointeur d'écriture sera ensuite à 52 octets à l'avant du pointeur de lecture. Dans le cas o une cellule avec N = 1 (c'est-à-dire seulement un canal) est envoyée, 47 trames TDM seront consommées pour que la cellule soit assemblée pour une réception dans le tampon de réception du RX_SAR. Pendant ce temps, 47 octets de données seront lus à partir du tampon au moyen du pointeur de lecture. Par conséquent, lorsque la cellule suivante arrive, le pointeur d'écriture sera toujours à 5 octets à l'avant du pointeur de lecture de telle sorte qu'aucun sous-débordement ne se produira. distance par rapport au pointeur de lecture = CDV = 5 octets + limite de tampon de canal actif = 5 octets + (47 octets - 47 octets/1) = 5 octets Cependant, sans DBCES_Control, nous devrions avoir: distance par rapport au pointeur de lecture = CDV = 5 octets. Dans ce cas, si le nombre de canaux actifs dans le circuit virtuel chute jusqu'à l'unité, le module TDM lira les données stockées dans le tampon dans 5 trames puis commencera à lire des données anciennes du fait que de nouvelles cellules ne seront pas arrivées. Par conséquent, un sous-débordement devrait se produire. Une capacité de programmation par l'utilisateur du tamponnage souhaité peut être assurée par l'intermédiaire de l'utilisation d'une zone DBCES_Control dans chaque structure de commande de ré-assemblage DBCES, comme on peut le voir sur la figure 2. L'utilisateur dispose de l'option de soit activer, soit désactiver ce tamponnage additionnel en utilisant le bit de la zone DBCESControl. Les bits de la zone DBCES_Control sont utilisés pour sélectionner la quantité de tamponnage additionnel requise dans le tampon circulaire de ré- assemblage de chaque canal à l'intérieur du VC. Les options sont procurées à l'utilisateur sur la base du nombre minimum de canaux actifs qui seront transportés sur le VC. Lorsque des canaux actifs selon un nombre moindre seront transportés, la quantité de tamponnage qui sera requise sera plus importante puisque le débit d'arrivée des cellules diminue lorsqu'il y a moins de canaux dans le VC (un temps plus long est consommé pour collecter suffisamment de données pour remplir une cellule). Selon l'exemple, I'utilisateur dispose de 4 options: "00" = minimum de 1 canal actif; "01" = minimum de 2 canaux actifs; "10" = minimum de 3 canaux actifs; "11" = minimum de 4 canaux actifs. Différents procédés peuvent être utilisés pour présenter ou programmer CDV et MIN ('exemple permet que MIN = 1 canal à 4 canaux et permet que CDV = Maximum_Lead/2 (CDV est approximativement compris entre 125 microsecondes et 64 millisecondes)). Le procédé peut être utilisé en conjonction avec un algorithme de détection de sous-débordement et sur-débordement. L'invention propose par conséquent une façon efficace d'empêcher le problème des sur-débordements et des sous- débordements qui peuvent se produire lorsque le nombre de canaux est modifié dans un service DBCES. REVENDICATIONS 1. Procédé de gestion de tampons dans un dispositif SAR (segmentation et ré-assemblage) qui fonctionne dans un mode DBCES (service d'émulation de circuit à bande passante dynamique) caractérisé en ce qu'il comprend: la détermination d'une limite de tampon de canal actif pour un circuit virtuel en fonction du nombre de canaux actifs; et l'établissement de la quantité de tamponnage pour chaque canal actif de telle sorte qu'elle soit égale à la CDV (variation de retard de cellule) plus la limite de tampon de canal actif. 2. Procédé selon la revendication 1, caractérisé en ce que chaque tampon comporte un pointeur d'écriture et un pointeur de lecture et la distance entre le pointeur d'écriture et le pointeur de lecture détermine la quantité de tamponnage. 3. Procédé selon la revendication 1 ou 2, caractérisé en ce que la limite de tampon de canal actif est égale au nombre d'octets de données de charge utile par cellule divisé par le nombre minimum de canaux autorisés moins le nombre d'octets de données de charge utile par cellule divisé par le nombre de canaux actifs courants. 4. Procédé selon la revendication 3, caractérisé en ce que la quantité de tamponnage est recalculée lorsque le nombre de canaux varie de manière à assurer un tamponnage adéquat la fois suivante o une modification du nombre de canaux se produit. 5. Procédé selon la revendication 4, caractérisé en ce que ledit procédé peut être activé en établissant un bit de commande dans une structure de commande dans les tampons. 6. Procédé selon la revendication 4, caractérisé en ce que lesdits tampons sont des tampons circulaires. 7. Procédé selon la revendication 1, caractérisé en ce que ledit DBCES est mis en oeuvre dans un réseau ATM. 8. Structure de données de commande pour un dispositif SAR (segmentation et ré-assemblage) permettant de mettre en oeuvre un mode DBCES (service d'émulation de circuit à bande passante dynamique), caractérisé en ce qu'elle comprend: une zone de commande comportant un bit qui détermine si oui ou non une gestion de tampon est active; et des bits qui déterminent le tamponnage minimum pour chaque canal; et en ce que: la quantité de tamponnage pour chaque canal actif est établie de manière à être égale à la CDV (variation de retard de cellule) moins une limite de tampon de canal actif, qui dépend du nombre de canaux actifs. 9. Structure de données de commande selon la revendication 8, caractérisée en ce que la limite de tampon de canal actif est égale au nombre d'octets de données de charge utile par cellule divisé par le nombre minimum de canaux autorisés moins le nombre d'octets de données de charge utile par cellule divisé par le nombre de canaux actifs courants. 10. Structure de données de commande selon la revendication 8, caractérisée en ce que la limite de canal actif vaut 47/MIN, o MIN est le nombre minimum de canaux N envisagés, moins 47/N o N est le nombre de canaux actifs courants.