Brevet FR2716278A1 — publié le 19950818

PROCEDE DE TRAITEMENT DE DONNEES ISSUES D'UNE COUCHE D'ADAPTATION A LA TRANSMISSION SELON UN MODE DE TRANSFERT ASYNCHRONE DE TYPE ATM La présente invention concerne un procédé de traitement de données appelées cellules, issues de la couche d'adaptation pour le transfert selon un mode de transmission asynchrone de type ATM (Asychronus Transfert Mode). On rappelle que la transmission en mode ATM se fait par transfert de blocs d'information de longueur constante. La quantité élémentaire d'information utile transmise est de 48 octets, le bloc d'information transmis en ATM est dénommé cellule et identifié par une étiquette de 5 octets appelée en-tête. La longueur totale d'une cellule est donc de 53 octets. On rappelle également que le protocole de transmission selon un mode asynchrone tel que le mode ATM fait appel à différentes couches pour le transport des informations et, notamment, à une couche d'adaptation au mode ATM telle que la couche AAL5 définie par les recommandations I362 et I363 du CCITT. La couche d'adaptation permet à l'émission, de découper un message en morceaux transportables par des cellules ATM puis, à la réception, de récupérer les cellules constitutives d'un même message parmi le flux des cellules ATM reçues afin de reconstruire le message. La réception du flux ATM se fait au moyen d'un terminal de réception apte à traiter les cellules afin de reconstituer les messages et de pouvoir les exploiter. Les terminaux d'émission/réception actuels réalisent cette segmentation et ce réassemblage de messages dans une pré-mémoire de travail. Une fois un message reçu, traité et réassemblé, le processeur du terminal récepteur en est informé et doit réaliser le retransfert dudit message dans sa propre mémoire pour pouvoir l'exploiter. Ce type de réalisation est relativement simple à concevoir mais, impose une étape de transfert supplémentaire aux données avec toutes les ressources matérielles additionnelles qu'il convient, c'est à dire, des mémoires intermédiaires, des dispositifs de lecture/écriture et de contrôle. La présente invention a pour but de remédier à ces inconvénients. Elle a pour objet un procédé de traitement des données qui permet d'obtenir un réassemblage des cellules en message directement dans la mémoire de travail du processeur hôte (c'est à dire du terminal de réception) et cela sans étape intermédiaire. Les données constitutives du message sont stockées continûment selon l'invention dans cette mémoire au fur et à mesure ae la réception sur le canal ATM. Ainsi, l'invention permet de réaliser une fonction de réassemblage des cellules d'un même message en économisant une étape intermédiaire de recopie de données. Les données des messages sont de plus directement exploitables par le processeur du terminal, sans aucune opération supplémentaire de remise en ordre. La présente invention a plus particulièrement pour objet un procédé de traitement de données issues d'une couche d'adaptation à la transmission de messages se présentant sous la forme d'un flux de cellules au moyen d'un réseau de transfert asynchrone de type ATM, les cellules comportant un en-tête suivi d'un champ information, principalement caractérisé en ce que les cellules sont reçues par un terminal récepteur ayant une mémoire de travail et en ce qu'il comporte les étapes suivantes: - Réserver un emplacement dans la mémoire de travail du terminal, d'une taille maximale donnée, Enregistrer de façon continue les cellules constitutives d'un même message à cet emplacement. Selon une autre caractéristique de l'invention, la réservation de l'emplacement consiste à définir une adresse de début et une adresse de fin et,à enregistrer ces adresses dans des champs de contrôle d'adresse. Selon une autre caractéristique de l'invention, l'enregistrement en continu comprend les étapes suivantes: -Enregistrer au fur et à mesure de la réception, dans une zone mémoire, un contexte réception des cellules comportant le contenu des champs d'en- tête, -Identifier la cellule en cours de réception, par lecture des champs d'en- tête et comparaison de leur contenu au contenu des champs de messages déjà en cours de réception pour savoir si la cellule est une cellule de début,de continuation ou de fin de message, - Transférer les données de la cellule dans la mémoire à l'emplacement indiqué par le contenu des champs de contrôle d'adresse. Selon une autre caractéristique, on associe les champs de contrôle aux champs d'en-tête enregistrés formés des champs chemin virtuel (VPI), voie virtuelle (VCI) et indicateur de type (PT). Selon une autre caractéristique, les champs de contrôle créés comprennent: -un champ d'adresse pour contenir l'adresse de début d'un emplacement mémoire, -un champ d'adresse pour contenir l'adresse de fin de cet emplacement mémoire, -un champ décompteur associé à la taille de l'emplacement mémoire réservé pour contrôler la fin de réception du message, -un champ de temporisation incrémenté à une valeur donnée et décrémenté par une horloge pour terminer la réception dans le cas ou l'information de fin est perdue, -un champ de drapeau d'erreur pour indiquer l'apparition d'anomalies sur le message. La présente invention sera mieux comprise à l'aide de la description qui va suivre, donnée à titre d'exemple illustratif et non limitatif et, qui est faite en regard des dessins sur lesquels: - La figure 1 représente le format d'une cellule transmise selon le mode- de transfert asynchrone tel que le mode ATM, - La figure 2 représente le format d'un message à transmettre au niveau de la sous-sous-couche CPCS de transfert de données, - La figure 3 représente le format des messages à transmettre après passage dans la sous-couche SAR d'adaptation au mode ATM, - La figure 4 représente la couche de transfert ATM, - La figure 5 représente de façon plus détaillée le format du message dans la sous-sous-couche CPCS, - La figure 6 représente de façon plus détaillée le format du message dans la sous-couche d'adaptation SAR, - La figure 7 représente les étapes essentielles du procédé conforme à l'invention, - La figure 8 représente les étapes permettant d'enregistrer de façon continue les cellules d'un même message, - La figure 9 représente les étapes permettant d'enregistrer de façon continue les cellules d'un même message dans le cas de cellules de continuité ou de fin de message. On rappelle que la technique de transmission en mode ATM est basée sur la transmission des informations à l'aide de paquets de données de longueur fixe appelées cellules. Chaque cellule possède un champ d'en-tête de 5 octets et un champs d'information de 48 octets selon le format qui a été représenté sur la figure 1. Les numéros de conduits virtuels et de voies virtuelles sont contenus dans les champs VPI et VCI de la cellule. La cellule comporte en outre un indicateur de type de cellule contenu dans le champ PT (Payload Type) et un indicateur de priorité CLP (Cell Loss Priority). Le champ HEC correspond à un code correcteur d'erreurs. L'adaptation en mode ATM réalisée par la couche AAL5, consiste pour un message, tel que représenté sur la figure 2, à principalement, ajouter des champs d'information à la fin de ce message à travers une sous-souscouche dénommée CPCS. L'ensemble de ces champs est nommé : queue CPCS. Le champ PAD permet uniquement de rajouter des octets dits de bourrage pour aligner le champ ainsi obtenu CPCS PDU à un multiple de 48 bits. L'ensemble CPS PDU est ensuite découpé pour former les segments de la sous-couche SAR. La sous-couche SAR est représentée sur la figure 3. Ces segments sont ensuite mis au format ATM par le passage dans la couche ATM qui consiste à rajouter un en-tête ATM à chacun d'eux. Chaque ensemble d'information ainsi obtenu constitue des cellules selon le format ATM. On va maintenant détailler le format de la sous-sous-couche CPCS telle que représentée à la figure 5. Le message à transmettre se trouve dans le champ partie utile de cette couche, ce champ étant dénommé CPCS SDU. Le champ queue CPCS PDU comporte les champs suivants: CPCS UU (CPCS User-to-user indication, 1 octet) : Champ transparent au CPCS et destiné à transférer des informations d'usager à usager. CPI (Common part indicator, 1 octet) : Utilisé pour établir la valeur de certains champs du CPCS PDU. Length (Length of CPCS SDU, 2 octets) : Ce champ donne la taille de la partie utile du CPCS PDU. Il est utilisé par le récepteur pour détecter la perte ou le gain d'informations. CRC (Cyclic Redundancy Check, 4 octets) : Ce champ donne la valeur du CRC 32 bits calculée sur le contenu complet de la CPCS-PDU, incluant la partie utile, le champ PAD et les 4 premiers octets de la queue du CPCS- PDU). La figure 6 représente d'une façon détaillée la sous-couche SAR. Comme cela a été dit, le CPCS PDU, correspondant au message à émettre, est tronçonné en une suite de SAR SDU qui seront elles-mêmes insérées dans les parties utiles des SAR PDU. Le champ PT (Payload type, 3 bits) : Ce champ. PT appartient à l'en-tête ATM et, donc, se réfère à la couche ATM. La couche AAL5 utilise cependant le paramètre AUU de ce champ PT (ATM-layer-User-to-ATM-layer-User indication) pour déterminer si la cellule est une fin de message ou non. Le codage est: - OXO pour début ou suite de message, - OX1 pour fin de message Les 48 octets du SAR PDU constituent le champ d'information de la cellule ATM. La description qui va suivre maintenant est faite en regard des figures 7 à 9. Selon le procédé conforme à l'invention, on réassemble les cellules en message directement dans la mémoire MW du processeur hôte MP, encore dénommé terminal de réception TR, sans étape intermédiaire. Les données constitutives du message sont stockées continûment dans cette mémoire au fur et à mesure de la réception sur le canal C (ATM). Ainsi, la fonction de réassemblage est réalisée en économisant une étape intermédiaire de recopie des données comme cela était le cas dans l'état de la technique. Les données des messages sont de plus directement exploitables par le processeur hôte sans aucune opération supplémentaire de remise en ordre. Les étapes essentielles du procédé selon l'invention sont représentées par les blocs 100 et 200 de la figure 7. A cette fin, conformément au procédé de l'invention, le réassemblage consiste tout d'abord à pré-réserver (bloc 100) un emplacement mémoire de taille donnée correspondant à la taille maximale d'un message dans une zone ZM de la mémoire MW du système hôte TR en début de réception de chaque message. Pour réaliser un enregistrement continu (bloc 200), on enregistre un contexte réception CTX du message dans une zone mémoire REC de l'ensemble réception R. Ce contexte réception comporte le contenu des champs de l'entête ATM à savoir: VPI, VCI, PT. Puis, on crée des champs de contrôle que l'on associe au message et qui vont permettre au terminal de réception d'assurer l'enregistrement en continu des cellules de ce message (bloc 200). On identifie une cellule par lecture du couple VPI/VCI et comparaison avec les couples enregistrés se trouvant déjà dans le contexte réception. On examine le contenu du champ PT pour savoir si la cellule est une cellule de fin de message ou non. On réalise ensuite des traitements distincts sur les champs de contrôle selon qu'il s'agit d'une cellule de fin de message ou non. Puis, on transfère les données utiles à l'adresse indiquée par un champ de contrôle adresse. On va maintenant détailler les différentes étapes permettant d'enregistrer les données utiles d'une cellule dans l'emplacement réservé à un message en cours de réception, cela de façon continue de manière à reconstituer directement le message dans la mémoire de travail. On pourra se reporter plus particulièrement au schéma de la figure 8. Pour cela, on crée des champs de contrôle (bloc 220) définis ci-dessous: -un champ d'adresse ADDi pour contenir l'adresse de début d'un emplacement mémoire, -un champ d'adresse ADFi pour contenir l'adresse de fin de cet emplacement mémoire, -un champ décompteur DECOMP associé à la taille de l'emplacement mémoire réservé pour contrôler la fin de réception du message, -un champ de temporisation TEMP incrémenté à une valeur donnée et décrémenté par une horloge HL pour terminer la réception dans le cas ou l'information de fin est perdue, -un champ de drapeau d'erreur FLAG pour indiquer l'apparition d'anomalies sur le message. On lit le contenu du champ PT (bloc 221) pour savoir si la cellule est une cellule de fin de message, a) dans le cas o la cellule n'est pas une cellule de fin de message mais, une cellule de début,(224), - on enregistre le contexte réception de cette cellule formé par le contenu des champs VPI, VCI, PT,(225), - on associe à ce contexte la valeur de champs de contrôle (226) parmi lesquels les champs d'adresses vont contenir une adresse de début ADDi et une adresse de fin ADFi de l'emplacement mémoire dans le lequel la cellule va pouvoir être inscrite, - on vérifie si la taille du message est compatible avec la taille de l'emplacement réservé,(227), - on lit le champ adresse début ADDi et on transfère les données utiles de la cellule à cette adresse dans la mémoire de travail,(228), - on met à jour les champs de contrôle et notamment le champ adresse fin (229). b) dans le cas o la cellule n'est pas une cellule de fin, mais une cellule de continuation de message,(224), - on vérifie si la taille du message est compatible avec l'emplacement réservé,(227), - on lit les champs de contrôle adresses (228) associés au champs VPI/VCI déjà enregistres pour ce message et on transfère les données utiles de la cellule à l'adresse de fin indiquée dans ces champs de contrôle, - on met à jour les champs de contrôle notamment l'adresse de fin (229). c) dans le cas o la cellule est une cellule de fin de message (222), - on vérifie si la taille du message est compatible avec l'emplacement réservé, - on lit les champs de contrôle adresses pour connaître l'adresse de fin à laquelle doit être enregistrée la cellule et on transfère les données utiles de la cellule à cette adresse de fin dans la mémoire de travail, on libère les champs de contrôle associés à ce message et on transfère la valeur de ces champs dans la mémoire de travail (MW). L'ensemble de réception R, représenté sur la figure 9, permet de mettre en oeuvre le procédé selon l'invention. Cet ensemble est apte à prendre en charge les transferts de données avec la mémoire de travail MW du terminal TR grâce à des accès DMA (Direct Memory Access) en rafale. Il permet de plus de réaliser des opérations sur plusieurs messages différents simultanément quelque soit la valeur de leur identifiant (VPI, VCI). L'ensemble permet la gestion des différents champs associés aux cellules, contrôle leur validité et communique ces différents résultats aux couches supérieures comme cela a été décrit. Cet ensemble comporte un module REC pour transférer les données de la partie utile des cellules vers la mémoire de message MW, par bloc, en devenant maître des bus d'adresses et de données BP de la mémoire MW du système hôte. L'unité PREREC prélève les données dans le circuit d'adaptation ATM (canal C), sépare les informations d'en-tête, des informations utiles (48 octets), versées dans la pile Fifo F2, extrait le contenu du champ PT pour connaître s'il s'agit d'une fin de message ou non afin de présenter à l'unité de réception REC une demande de traitement correspondant au cas d'espèce. Le contexte réception est en attente dans la pile Fifo Fl. Le bloc PREREC fonctionne avec une horloge octet réception délivrée par le circuit d'adaptation ATM. Le reste du circuit fonctionne avec l'horloge générale H. L'unité REC utilise des moyens de mémorisation incluant une mémoire associative lui permettant de retrouver, pour un couple VPI/VCI donné, l'existence et le numéro d'un canal. Cette unité utilise aussi une RAM, adressée par le numéro ci-dessus, pour retrouver les contextes réception et, effectue, grâce à ces informations, une concaténation des segments d'un même message dans l'emplacement de la mémoire des messages réservé (écriture via le DMA). De plus, cette unité gère la temporisation pour la réception de chaque message. L'unité DMA gère les opérations de lecture/écriture dans la mémoire des messages. Elle effectue deux sortes d'échanges: - le plus prioritaire est l'écriture d'un segment d'information reçu: transfert de 48 octets, soit 12 mots qui sont pris dans la pile Fifo (données reçues) Fifo F2 sur le schéma. Lorsque le bloc réception décide de jeter une cellule, c'est le bloc DMA qui est chargé d'extraire 48 octets de la Fifo sans rien écrire dans la mémoire des messages. - en deuxième priorité on trouve l'écriture d'un contexte réception dans l'emplacement tournant des contextes réception, soient 3 mots, lus dans la mémoire de contextes du bloc réception. L'unité PMU assure l'interface entre le module R et le bus BP du MP-hôte, c'est à dire le pilotage des signaux bidirectionnels, l'exécution des opérations de lecture/écriture des registres demandés par le MP et des resets associés. L'unité RG de registres comportes des registres de commande, d'interruption et de status communs à l'ensemble des unités. Le bus Ad est utilisé par l'unité réception REC pour indiquer au DMA l'adresse de début de transfert: le bus DO sert à transmettre les données reçues (Fifo F2 vers DMA) ou les contextes réception (unité REC vers DMA). Les échanges ont lieu sur ce dernier bus au rythme sporadique de 25 Million de mots de 32 bits/seconde, soit 800 Mb/s en vitesse de pointe. Entre les unités PREREC et les piles Fifos, les données sont échangées par octets au rythme maximal de 19,44 Mhz, soit 155,5 Mb/s. Le bus BI permet au microprocesseur MP de lire ou d'écrire tous les registres internes. Dans la Fifo F2, on stocke nx (48 octets d'informations); Dans la Fifo F1, on stocke nx (le contexte réception), à savoir n fois: - - VCI/VPI: 16 bits/8 bits - T: 1 bit (cellule reçue, ici à 1) - TM: 1 bit (taille du message = taille maximale) au total: 26 bits. En pratique on prendra n=4, ce qui revient à stocker la partie utile et le contexte réception de 4 cellules dans les piles Fifo. REVENDICATIONS 1. Procédé de traitement de données issues d'une couche d'adaptation à la transmission de messages sous la forme de flux de cellules sur un réseau de transfert asynchrone de type ATM, les cellules comportant un en-tête suivi d'un champ information, caractérisé en ce que les cellules sont reçues par un terminal récepteur ayant une mémoire de travail et en ce qu'il comporte les étapes suivantes: Réserver un emplacement dans la mémoire de travail du terminal, d'une taille maximale donnée, Enregistrer de façon continue les cellules constitutives d'un même message à cet emplacement. 2. Procédé selon la revendication 1, caractérisé en ce que la réservation de l'emplacement consiste à définir une adresse de début et une adresse de fin et,à prévoir une zone de mémorisation pour enregistrer ces adresses dans des champs de contrôle d'adresse définis dans cette zone de mémorisation. 3. Procédé selon la revendication 1 ou 2, caractérisé en en ce que l'enregistrement en continu dans la mémoire de travail comprend les étapes suivantes: -Enregistrer dans la zone de mémorisation prévue un contexte réception de la cellule comportant le contenu des champs d'en-tête, -Identifier la cellule par lecture de ces champs et comparaison de leur contenu au contenu des champs de messages déjà en cours de réception pour savoir si la cellule est une cellule de début,de continuation ou de fin de message, - Transférer les données de la cellule dans la mémoire à l'emplacement indiqué par le contenu des champs de contrôle d'adresse. 4. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce qu'on associe les champs de contrôle aux champs d'entête enregistrés et formés des champs chemin virtuel (VPI), voie virtuelle (VCI) et indicateur de type (PT). 5. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que les champs de contrôle créés comprennent: -un champ d'adresse pour contenir l'adresse de début d'un emplacement mémoire, -un champ d'adresse pour contenir l'adresse de fin de cet emplacement mémoire, -un champ décompteur associé à la taille de l'emplacement mémoire réservé pour contrôler la fin de réception du message, -un champ de temporisation incrémenté à une valeur donnée et décrémenté par une horloge pour terminer la réception dans le cas ou l'information de fin est perdue, -un champ de drapeau d'erreur pour indiquer l'apparition d'anomalies sur le message. 6. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que 1' enregistrement des cellules constitutives d'un même message comporte les étapes suivantes: - On lit le contenu du champ PT pour savoir si la cellule est une cellule de fin de message, a) dans le cas o la cellule n'est pas une cellule de fin de message mais, une cellule de début, - on enregistre le contexte réception de cette cellule formé par le contenu des champs VPI, VCI, PT, - on associe à ce contexte la valeur de champs de contrôle parmi lesquels les champs d'adresses vont contenir une adresse de début ADDi et une adresse de fin ADFi de l'emplacement mémoire dans le lequel la cellule va pouvoir être inscrite, - on vérifie si la taille du message est compatible avec la taille de l'emplacement réservé, - on lit le champ adresse début ADDi et on transfère les données utiles de la cellule à cette adresse dans la mémoire de travail, - on met à jour les champs de contrôle et notamment le champ adresse fin. b) dans le cas o la cellule n'est pas une cellule de fin, mais une cellule de continuation de message, - on vérifie si la taille du message est compatible avec l'emplacement réservé, - on lit les champs de contrôle adresses associés au champs VPI/VCI déjà enregistrés pour ce message et on transfère les données utiles de la cellule à l'adresse de fin indiquée dans ces champs de contrôle, - on met à jour les champs de contrôle notamment l'adresse de fin. c) dans le cas o la cellule est une cellule de fin de message, - on vérifie si la taille du message est compatible avec l'emplacement réservé, - on lit les champs de contrôle adresses pour connaître l'adresse de fin à laquelle doit être enregistrée la cellule et on transfère les données utiles de la cellule à cette adresse de fin dans la mémoire de travail, on libère les champs de contrôle associés à ce message et on les transfère dans la mémoire de travail.