FR 2695740 A1 19940318 FR 9211054 A 19920916 SYSTEME DE TRANSMISSION DE DONNEES ENTRE UN BUS D ' ORDINATPEUR ET UN RESEAU EN FORME D'ANNEAU A TRE:S HAUT DEBIT La présente invention concerne un système de transmission de données entre un bus d'ordinateur et un réseau en forme d'anneau à haut débit Elle est plus particulièrement applicable à un réseau de transmission de données, de type FDDI, dont le support de transmission est constitué par des fibres optiques, ou encore de type TPDDI dont le support de transmission est constitué par une paire torsadée. Les réseaux de transmission de données de type FDDI ou TPDDI, sont utilisés de plus en plus fréquemment et sont définis dans leurs grandes lignes dans les documents15 élaborés dans les comités de standardisation internationaux tel que l'ANSI (American National Standard Institute), sous la référence X 3 T 9-5 Ces normes sont également adoptées par l'I S O, Organisation Internationale de Normalisation (International Standard Organization) Elles définissent un ensemble de caractéristiques physiques et électriques du réseau Ces réseaux de transmission ont comme avantage d'avoir une valeur élevée des débits de transmission obtenus, de l'ordre de 100 Mbits/s. On sait que sur un réseau, les messages d'information émis par les différentes stations sont constitués d'une pluralité de trames La trame est constituée de données utiles encadrées dans le temps par des caractères de commande placés en tête et en queue de trame Dans les réseaux de30 type FDDI ou TPDDI, la longueur des trames est de 4 kilooctet, et il existe deux types principaux de trames, définies par la norme, à savoir les trames de type LLC et les trames de types SMT Les trames de type LLC sont constituées en fait de données utiles à transporter et35 constituent celles les plus couramment utilisées sur le réseau Les trames de type SMT sont des trames spéciales dites de "management de station" ou encore de gestion de station, permettant de vérifier le bon fonctionnement de chacune des stations connectées au réseau. On sait par ailleurs, que l'ensemble des éléments constitutifs fonctionnels d'un ordinateur (processeur, mémoire, contrôleur, etc) est disposé sur un ensemble de 5 carte à dimensions normalisées Ces dernières sont reliées à un même bus généralement de type parallèle assurant les communications entre eux, les différentes cartes ainsi que le transport des données et l'alimentation électrique. L'un des bus les plus couramment utilisé est le MULTIBUSII (marque déposée par la Société INTEL communément appelé PSB (ce qui signifie Parallel System Bus) et normalisée suivant la norme IEEE 1296 (Institute of Electrical and Electronic Engineers). Un tel bus d'ordinateur est relié au réseau (FDDI ou TPDDI) par l'intermédiaire d'un système de transmission de données (qu'on peut appeler également dispositif passerelle de connexion) dont la fonction est d'adapter les conditions de transmission des informations sur le MULTIBUSII, aux conditions de transmission sur le réseau En effet, les modes de transmission des données, d'une part sur le bus PSB, d'autre part sur le réseau sont totalement différent, aussi bien en ce qui concerne le débit de transmission des25 informations, les protocoles de transmission utilisés, les codes d'écriture, les informations, le format, les caractères de commandes, etc La structure physique générale d'un système de transmission de données est rappelée à la figure 1 Elle est décrite plus en détail, ainsi que divers modes de réalisation de fonctionnement, dans l'une et l'autre des demandes de brevet NO 91 08908 déposée le 15 07 91 par BULL S A sous le titre "Dispositif universel de couplage d'un bus d'ordinateur à un contrôleur d'un groupe de périphériques" et NO 91 08907 déposée le même jour par la même demanderesse sous le titre "Système d'exploitation pour dispositif universel de couplage d'un bus d'ordinateur à une liaison spécifique d'un réseau". Un tel système de transmission de données FIM se compose de deux parties, à savoir d'une part, un dispositif universel de couplage GPU (sigle anglais de General Propose Unit) et 5 d'un dispositif adaptateur DEA. Le dispositif GPU est relié à PSB par un coprocesseur MPC, par exemple de type VL 82 c 389 fabriqué par la Société INTEL, lequel communique par mode message avec l'ordinateur ORD10 (non représenté pour simplifier la figure 1), ce mode étant défini dans la norme précitée IEEE 1296. Le dispositif DEA peut être disposé physiquement sur la même carte que le dispositif universel de couplage GPU Il est15 par ailleurs relié physiquement au réseau RE, d'une manière qui est par exemple celle décrite dans le brevet français NO 2 650 412 dont le titre est "Dispositif passerelle de connexion d'un bus d'ordinateur à un réseau fibre optique en forme d'anneau".20 Le dispositif GPU comprend les différents éléments constitutifs essentiels suivant: le coprocesseur MPC déjà cité, le microprocesseur COPU constituant de fait l'unité centrale du dispositif GPU, muni d'un bus interne B Il pour le transport des commandes destinées au dispositif adaptateur DEA Ce microprocesseur est associé30 respectivement à une mémoire programmable effaçable EPROX 1, une mémoire vive SRAMX et un gestionnaire d'interruption à savoir MFP 1 Tous ces éléments EPROM 1, SRAM 1, MFP 1, sont tous connectés au bus interne B Il, la mémoire de type vidéo-RAM à double port désignée par VRAM, le contrôleur d'accès direct mémoire DMAC, connecté d'une part au bus B 2, le reliant à la mémoire VRAM et d'autre part au bus B 3 le reliant au coprocesseur MPC, le bus Bl qui relie la mémoire VRAM au dispositif adaptateur DEA dont les éléments constitutifs seront décrits par la suite. Le microprocesseur CPU 1 est, dans l'exemple de réalisation décrit ici, de type 68030 fabriqué par le firme MOTOROLA Le bus interne B Il est un bus non multiplexé de 32 bits pour les données, et de 32 bits pour les adresses. La mémoire morte effaçable EPROMI a par exemple une capacité de 256 Kilo octets et elle contient les programmes d'auto- test et d'initialisation du dispositif universel de couplage GPU. Le système d'exploitation du microprocesseur CPUJ (Operating System) désigné par GPOS (sigle anglais de General Purpose Operating System) est contenu dans la mémoire statique SRAMî et est chargé à l'initialisation du dispositif de couplage GPU La capacité de cette mémoire est par exemple de 1 Méga- octet GPOS est décrit dans la demande NO 91 08907 précitée.25 On voit à la figure 1 que le contrôleur d'accès direct DMAC est connecté en série d'une part entre la mémoire VRAM et le coprocesseur MPC et d'autre part entre ce dernier et le bus BI du microprocesseur CPUI.30 Une description détaillée de la structure et du fonctionnement du contrôleur DMAC est donnée dans la demande de brevet français NO 91 15814 déposée le 19 12 91 par la compagnie demanderesse sous le titre "Contrôleur de35 transfert multiple de données entre une pluralité de mémoire et un bus d'ordinateur". Le microprocesseur CPUî est le cerveau du dispositif de couplage GPU: il initialise le transfert des données, réalise l'adaptation des protocoles, met en oeuvre son système d'exploitation et transfère les données entre DEA et l'ordinateur ORD et réciproquement tout en dialoguant avec DEA lequel il échange des commandes et des status de la 5 manière qui sera décrite plus loin en relation avec la description de l'invention. La description détaillée du rôle et du fonctionnement des autres éléments du dispositif de couplage est effectuée dans10 les trois demandes de brevet précitées. On connaît des exemples de réalisation d'un dispositif adaptateur tel que DEA Un tel exemple est décrit dans le brevet français NO 2 650 412 précité Un tel dispositif15 comprend un contrôleur de gestion de transfert CT, un contrôleur d'accès au réseau DAR et un dispositif d'adaptation physique au réseau DAPR. Le rôle du contrôleur de gestion de transfert CT est d'organiser le transfert des trames entre le dispositif GPU et le dispositif adaptateur et le réseau RE et réciproquement, tout en échangeant des commandes avec le microprocesseur CPUî du dispositif GPU Le contrôleur d'accès au réseau permet le transfert physique des données25 depuis le bus Bl vers le réseau RE via le dispositif d'adaptation physique DAPR et le bus B 4 lequel est physiquement connecté à Bi Le contrôleur d'accès au réseau CAR et le dispositif d'accès physique au réseau DAPR sont par exemple constitués par des éléments DP 83265, DP 83261,30 83251 ou 55, 83231,83241 de la Société National semi- conductors. Le contrôleur CT comprend un microprocesseur CPU 2, une mémoire EPROM 2, une mémoire statique SRAM 2, et un35 gestionnaire d'interruption MFP 2 Tous ces éléments sont reliés par le bus interne BI 2 du contrôleur de transfert CT. Il est bien évident que le microprocesseur CPU 2 est l'élément central du contrôleur de transfert CT et c'est lui qui organise le dialogue avec le microprocesseur CPUI par l'intermédiaire de commandes, d'une manière qui sera décrite en relation avec l'invention, dans la suite du texte. Dans le dispositif d'adaptateur DEA selon l'art antérieur, les données et les commandes passent par l'intermédiaire de deux bus séparés, les commandes passant par l'intermédiaire du bus interne BI 2 du contrôleur de transfert CT Par ailleurs, les commandes et les données transitent entre le dispositif adaptateur DEA et le dispositif de couplage GPU,10 par l'intermédiaire d'une interface de transfert composée de mémoires FIFO, une pour les données et une pour les commandes (non représenté à la figure 1). La présence d'une telle interface entre le dispositif de couplage GPU et le dispositif adaptateur DEA, diminue les performances du système de transmission de données quant à la vitesse de transfert des informations de l'élément DEA à l'élément GPU et vice versa Par ailleurs, du fait de la présence d'éléments FIFO, -des interruptions sont générées20 (par construction> à chaque échange de commandes entre les deux microprocesseurs CPUI et CPU 2. La présente invention permet de remédier à ces inconvénients en éliminant cet interface de transfert de type FIFO et en25 la remplaçant par des files de commandes disposées dans la mémoire VRAM Par ailleurs, on dispose dans la mémoire SRAM 2 du dispositif adaptateur DEA des modules logiciels indépendant les uns des autres qui peuvent communiquer d'une part entre eux et d'autre part avec le système de gestion du30 microprocesseur CP Ul par l'intermédiaire de boites à lettres disposées dans la mémoire SRAM 2 et/ou des files de commandes disposées dans la mémoire VRAM. Selon l'invention, le système de transmission de données entre un bus d'ordinateur et un réseau en forme d'anneau à haut débit comprenant: un dispositif universel de couplage relié au bus et communiquant par une interface avec un dispositif adaptateur 7 connecté au réseau par l'intermédiaire d'un contrôleur d'accès au réseau, le dispositif universel comprenant: un premier microprocesseur associé à une première mémoire, et exécutant un système d'exploitation contenu dans celle-ci, des moyens de transfert de trames depuis le bus vers le dispositif adaptateur et réciproquement, incluant une mémoire à double port disposée entre le bus et le dispositif adaptateur, le dispositif adaptateur comprenant un second microprocesseur de gestion de transfert des trames entre les moyens de transfert et le contrôleur d'accès et réciproquement20 est caractérisé en ce que l'interface est constituée d'une pluralité de files de commandes comportant chacune un ensemble de commandes dont au moins une partie concerne l'émission ou la réception de trames, ces files étant25 disposées à l'intérieur de la mémoire double port, le second processeur de gestion comportant une pluralité de modules logiciel indépendants les uns des autres pour gérer l'émission et la réception de trames spécifiques du réseau, les modules logiciels communiquant entre eux et avec le30 système d'exploitation du premier microprocesseur au moyen de boites à lettres incluses dans le second processeur et/ou des files de commandes contenues dans la mémoire double port. D'autres caractéristiques et avantages de la présente invention apparaitront dans la description suivante donnée à titre d'exemple non limitatif et en se référant aux dessins annexés. 8 Sur ces dessins: La figure 1 rappelle ce que sont les différents éléments constitutifs essentiels d'un système de transmission de données selon l'art antérieur, tel que décrit dans l'une ou l'autre des deux demandes de brevets précitées, La figure 2 montre les différents modules logiciels constituant le logiciel d'exploitation du dispositif adaptateur appartenant au système de transmission de données selon l'invention, La figure 3 composée des figures 3 a et 3 b montre comment est constituée l'interface entre le dispositif de couplage et le dispositif adaptateur d'une part et comment sont disposées les boites à lettres à l'intérieur de la mémoire du processeur de gestion du dispositif adaptateur, Les figures 4 et 5 montrent deux exemples de fonctionnement, pour deux types de trame déterminée du réseau FDDI, du dispositif adaptateur mettant en oeuvre deux modules logiciel parmi tous ceux qui composent le logiciel d'exploitation de ce dispositif. On considère les figures 1, 2, 3. La structure physique du système de transmission de données selon l'invention est celle montrée à la figure 1 A la différence du système de transmission de données (appelé30 dispositif passerelle de connexion) décrit dans le brevet français 2 650 412 précité, l'interface entre le dispositif universel de couplage GPU et le dispositif adaptateur DEA n'est plus constituée par des mémoires FIFO disposées entre GPU et DEA, mais par une pluralité de files de commandes,35 telles que F 1 à F 4 disposées à l'intérieur de la mémoire VRAM du dispositif GPU On peut voir ces files de commandes à la figure 3 a dans la partie supérieure droite de la mémoire VRAM Par ailleurs, le dispositif adaptateur DEA comporte une pluralité de modules logiciel ML 1, ML 2, 9 M Li, M Lg, ML Jo, indépendants les uns des autres et communiquant entre eux par l'intermédiaire de boites à lettres BALJ, BAL 2, BA Ln disposées dans la mémoire statique SRAM 2 du contrôleur de gestion CT (voir figure 2 et 3 b). Chacune des deux mémoires VRAM, SRAM 2 peut contenir une pluralité de zones mémoire, désignées sous le vocable anglo- saxon de buffer, pouvant contenir tout ou partie des trames de données qui transitent entre le bus PSB et le réseau RE.10 Ainsi, la mémoire double port VRAM comporte-t-elle une pluralité de zones mémoire BF 1 à B Fp, alors que la mémoire statique SRAM 2 comprend une pluralité de zones mémoire BFSJ à BF Sq La longueur et l'adresse de départ de chacune de ces zones mémoire est bien entendu variable au cours du temps et dépend, des évènements qui affectent le système de transmission de données, donc de la nature et de la longueur des trames qu'il est nécessaire de transférer depuis le bus PSB vers le réseau RE et réciproquement. Le dispositif adaptateur DEA permet donc de se connecter au réseau RE de type FDDI ou TPDDI, de recevoir ou d'émettre vers le réseau des trames de type LLC ou SMT, en assurant de façon autonome toutes réponses ou actions sollicitées par des évènements particuliers ou par des trames de type SMT.25 En d'autres termes, on peut dire que le dispositif adaptateur gère deux types de procédé, le premier concernant l'émission ou la réception de trames LLC, le second concernant l'émission ou la réception de trames SMT Pour ce faire, le dispositif adaptateur a besoin de traiter30 essentiellement trois types de commandes qui sont définies dans l'une ou l'autre des files de commandes Fi à F 4 montrées à la figure 3 a, et contenues dans la mémoire VRAM. Ces commandes sont: les commandes d'ordre associées à l'émission ou à la réception de trames LLC, les commandes de type SMT qui sont reçues et émises sous forme de trames de type SMT, pour effectuer des tests de conformité soit du réseau soit de l'une quelconque des stations du réseau y compris celle qui comprend le dispositif adaptateur présent, les commandes administratives qui permettent la gestion de la configuration du dispositif adaptateur. Ainsi qu'il a été dit plus haut, le dispositif adaptateur comprend une pluralité de modules logiciel, encore appelés10 tâches, qui communiquent entre elles au moyen des boites à lettres BAL 1 à BA Ln et/ou des files de commandes Fl à F 4. Une tâche est activée par un évènement physique qui peut être par exemple la réception d'une commande provenant de l'ordinateur ORD via le bus PSB ou encore la réception d'une trame, qu'elle soit de type LLC ou SMT Une tâche peut être également activée par une autre tâche. Toutes les commandes ont une structure identique au deux types de commandes montrées en annexe 1 Il s'agit d'une20 part de tout type-de commandes émises par l'ordinateur ORD, appelées commandes HOST, ou encore de commandes de type interne engendrées par tout module logiciel du dispositif adaptateur DEA. Une commande est constituée par une cellule de quatre mots de 32 bits chacun (soit 16 octets en tout) Un buffer (BF 1 à B Fp ou BFSI à BF Sq) peut être associé ou non à une commande. Les quatres mots sont désignés par MOTî à MOT 4. A l'annexe 1, chaque bit est désigné par le symbole b, et le rang du bit est indiqué Ce rang se lit verticalement de haut en bas Ainsi, le bit de rang 31 est le bit placé le plus à gauche et le bit de rang 0, le bit placé à droite. On considère le mot MOTî: Les bits b 26 à b 3 î indiquent le code propre à la commande. Aux valeurs suivantes respectives de b 24-b 25, correspondent les types d'opération suivants 00: opération illicite 01: requête : réponse Il: annonce Les bits b 8 à b 15 définissent l'émetteur de la commande qui peut être soit le système d'exploitation de GPU, soit l'un ou l'autre des modules logiciel DEA Qu'il s'agisse de GPU ou de l'un ou l'autre des modules logiciel, ils sont définis par une valeur particulière de l'ensemble de ces bits b 8 à b 15-15 Les bits bo à b 7 définissent le canal logique associé à la commande, les bits bo à b 5 étant égaux au zéro logique, le couple de bit b 7-b 6 ayant les valeurs suivantes 00 indique qu'il s'agit du canal logique propre à GPU, 01 indique qu'il s'agit du canal logique interne, indique qu'il s'agit du réseau il indique qu'il s'agit de la liaison série normalisée R 5232 connectée au dispositif adaptateur DEA, utilisée à des fins de maintenance (non représentée pour simplifier à la figure 1).30 En ce qui concerne le mot MOT 2 S'il s'agit d'une commande HOST (le canal logique est alors celui de GPU), les bits bo à B 31 définissent35 l'identificateur de la commande L'identificateur d'une réponse à cette commande est égal à l'identificateur de la requête correspondante. 12 S'il s'agit d'une commande interne (dans ce cas le canal logique est différent de GPU), les bits b 16 à b 3 l définissent l'identificateur de la commande et les bits bo à b 14 le numéro du buffer associé à cette commande, s'il y en5 a un Le bit b 15, s'il est égal à zéro, définit un buffer associé situé dans SRAM 1, c'est à dire l'un des buffers BFSî à BF Sq S'il est égal à 1, il s'agit d'un buffer associé situé en VRAM, c'est à dire l'un des buffers BF 1 à B Fp. En ce qui concerne le mot MOT 3: Les bits b 16 à b 3 l identifient les différentes options possibles d'une requête ou le status d'une réponse En effet, une requête peut s'effectuer de différentes façons.15 Ainsi, par exemple pour une requête de déconnexion, il y a plusieurs options possibles pour accomplir cette déconnexion. Les bits -bo à b 15 indiquent la longueur (en octets) du buffer associé à la commande Si cette longueur est nulle, la commande n'est pas associée à un buffer. En ce qui concerne le mot MOT 4 Les bits bo à b 3 l identifient l'adresse du buffer associé éventuellement à la commande. Deux canaux de commandes permettent l'émission et la réception de commandes Chaque canal est constitué de deux30 files Ces canaux sont les suivants (voir annexe ibis): le canal d'ordre permet l'émission et la réception de trames LLC Il est associé à deux files, à savoir la file Fi pour l'émission de trames et la file F 2 pour la réception de35 trames. le canal administratif permet l'envoi de commandes administratives à DEA Il est associé à deux files F 3 et F 4. 13 Une file telle que Fi à F 4 est une liste de commandes (rappelons qu'une commande est codée sur 16 octets) Le nombre d'éléments d'une file est une puissance de 2: il y a donc 2 N commandes par file A chaque file est associée un5 pointeur d'écriture PTFW et un pointeur de lecture PTFR. Les opérations de lecture ou d'écriture d'une commande se déroulent de la manière qui suit. Une interruption est associée à chacune des files Fi à F 4. Une interruption est générée seulement lorsque la file passe de l'état vide à l'état non vide (il est évident que l'état vide correspond à l'absence de commande inscrite dans la file).15 Pour mieux comprendre comment se déroule ces opérations de lecture ou d'écriture, on se référera à l'annexe 2. En ce qui concerne l'écriture, si l'on a: PTFR = (PTFW + 1) (modulo 2 n), la file est pleine. Si la file n'est pas pleine, on effectue alors les opérations suivantes25 a) on insère la commande à l'indice PTFW, b) on effectue l'opération logique PTFW = (PTFW + 1) (modulo 2 n) c) si PTFW = PTFR + 1, il faut signaler l'insertion de cette commande par une interruption, ce qui est le cas lorsque l'on passe d'une file vide à une file non vide. En ce qui concerne la lecture d'une commande Si PTFR = PTFW, la file est vide. Dans le cas contraire, on effectue les opérations suivantes: a) on lit la commande à l'indice PTFR. b) on effectue l'opération logique PTFR = (PTFR + 1) (mod 2 n). Afin de pouvoir s'approprier un buffer, soit en mémoire VRAM, soit dans la mémoire SRAM 2, il est indispensable de posséder une liste d'indice de buffers Cette liste comprend10 2 N mots de 16 bits Chaque mot représente l'indice d'un buffer disponible Il existe deux listes de buffers appelées BUFLJ, BUFL 2 qui sont disposées dans la mémoire SRAM 2 La première de ces listes concernent les buffers contenus dans la mémoire VRAM, c'est à dire les buffers BF 1 à B Fp, alors15 que la seconde liste concerne les buffers contenus dans la mémoire SRAM 2, c'est à dire les buffers BF 51 à BF Sq. A chaque liste de buffers sont associés respectivement un pointeur d'écriture PFWL, un pointeur de lecture PFRL et un20 compteur de buffers utilisés, indiquant le nombre total de buffers utilisés au sein de la liste, à savoir NBUF. On obtient un buffer de la manière suivante: Si le compteur de buffer a un contenu égal à la taille de la liste, celle-ci est pleine et cela signifie qu'il n'y a pas de buffer disponible Dans le cas contraire, on lit l'indice de buffer disponible à l'adresse définie par le pointeur PFWL qui indique le premier buffer libre Et on effectue30 ensuite l'opération logique: PFWL = (PFWL + 1) (modulo 2 n). Pour abandonner un buffer, on écrit l'indice de ce buffer qui devient donc disponible à l'adresse PFRL et on effectue ensuite l'opération logique: PFRL = (PFRL + 1) (modulo 2 n). Les boites à lettres BAL 1 à BA Ln constituent chacune une liste de 2 N commandes, chaque commande pouvant être ou non associée à un buffer Les buffers indiqués plus haut en VRAM ou SRAM 2 sont tous disponibles pour chacune des boites à5 lettres Le fonctionnement d'une boîte à lettre est donc tout à fait identique au fonctionnement d'une file de commande. Ainsi qu'il a été dit plus haut, toutes les commandes indiquent la longueur du buffer nécessaire à la réception ou à l'émission d'une trame Etant donné que l'organisation de la mémoire VRAM s'effectue en page de 4 kilo-octets maximum chacune, et que une trame suivant la norme FDDI peut avoir une longueur allant jusqu'à 4500 octets, il peut être15 nécessaire d'utiliser deux pages en mémoire VRAM pour mémoriser une trame en entier Dans ce dernier cas, le dispositif adaptateur édite alors deux commandes, la première contenant la longueur de la première portion de trame, la deuxième indiquant la longueur de la deuxième20 portion de trame - Le système de transmission de données selon l'invention contient quatre canaux d'interruption, GPU gérant deux canaux d'interruption appelés IRQ-Tx et IRQ-REQ qui25 signalent respectivement le passages des files de commandes Fl et F 4 de l'état vide à non vide, le dispositif adaptateur DEA gérant deux canaux d'interruption IRQ-Rx et IRQ-IND signalant respectivement le passage des files F 2 et F 3 de l'état vide à l'état non vide.30 Il n'y a aucun acquittement sur une émission de trame Cet acquittement est implicite: en effet, si une commande correspondant à cette émission a été lue, il est admis qu'elle est exécutée Lors de l'émission, GPU donne des35 adresses et des longueurs de buffer, dans les commandes correspondantes Si le pointeur de la file de commande évolue, cela signifie que la trame correspondante est émise et que le buffer correspondant associé est alors libéré On voit donc qu'une file de commande sert à la fois: à gérer la commande, à définir et gérer les emplacements de mémoire o doivent être mémorisées les trames ou portions de trames. En réception, les mêmes grandes lignes que celles définies ci-dessus sont appliquées Il y a une seule interruption dans chaque file de commandes, et celle-ci gère à la fois10 les commandes et les buffers associés Cette façon de procéder accroit la vitesse d'exécution du système de transmission de données. Les différents modules logiciel contenus dans la mémoire SRAM 2 du dispositif adaptateur DEA sont les suivants: 1 Le module Mil, encore appelé MODIT traite les interruptions physiques IT autres que celles relatives à l'émission et la réception de trames, ou que celles20 relatives aux différentes files de commandes On peut citer en particulier le traitement des interruptions issues des éléments constituant le contrôleur d'accès au réseau CAR, ou encore les interruptions issues de la liaison R 5232 En fonction de l'interruption analysée par ce module M Ll, ce25 dernier signale l'évènement à l'un ou l'autre des modules logiciel concerné éventuellement par ladite interruption, cet évènement étant signalé par l'intermédiaire de la boîte à lettres associée au module en question Le module est alors activé lorsque sa boîte à lettre passe de l'état vide à l'état non vide et il est désactivé lorsque sa boîte à lettres est vide. 2 Le module logiciel ML 2, encore appelé MOD-TX-CMD émet des commandes vers le dispositif de couplage GPU ou vers la liaison R 5232 Il gère le pointeur PTFW de la file de commande F 3 Il est activé lorsque sa boîte à lettres passe de l'état vide à l'état non vide et est désactivé lorsque cette dernière est vide. 3 Le module ML 3, encore appelé MODSPV est un module dit de supervision, qui traite les commandes administratives et les commandes SMT Ce module est activé lorsque lorsque la file F 4 passe de l'état vide à l'état non vide et lorsque simultanément sa boîte à lettres est non vide Il estdésactivé lorsque F 4 et sa boîte à lettres sont vides simultanément. Le module gère donc les pointeurs PTFR de la file F 4 Il est également responsable de l'analyse et de l'exécution des commandes de GPU autres que celles relatives à l'émission ou à la réception de trames de type LLC Ce module analyse également les trames SMT reçues et est responsable de la génération des réponses si cela s'avère nécessaire. 4 Le module ML 4 encore appelé MODCONX implémente un certain nombre d'automates définis dans la norme SMT Ces automates sont les automates ECM (Entity Coordination Management), PCM -(Physical Connexion Management), CFM (Configuration Management), et RMT (Ring Management) de ce standard SMT. L'automate ECM reçoit les demandes de connexion et déconnexion au réseau RE de type FDDI, demande issue du module ML 3,25 PCM réalise les connexions ou déconnexions physiques, CFM effectue les connexions électriques entre les éléments PHY(s) et MAC du contrôleur d'accès réseau CAR (définis dans la norme FDDI et dans les documents du constructeur de CAR, voir ci-dessus), RMT insère le MAC de la station dans l'anneau Il signale les changements d'état de l'anneau au module ML 2 (réseau connecté ou réseau déconnecté). le module ML 4 est activé par le passage de sa boîte à lettre de l'état vide à non vide, ou par des interruptions issues des éléments PLAYER ou BMAC du contrôleur d'accès au 18 réseau CAR (définis également dans les documents du constructeur et dans la norme FDDI) Le module est désactivé lorsque sa boîte à lettres est vide et que les automates précédents ont atteint un état stable. Le module ML 5, encore appelé MOD-RX-SMT traite la réception de trames SMT Il est activé lorsque le buffer correspondant de réception (celui o est reçu la trame SMT en question) passe de l'état vide à l'état non vide,et il10 est désactivé lorsque ce même buffer de réception est vide. Lorsqu'une trame SMT doit être traitée, une commande est insérée dans la -boite à lettres associée au module ML 3 Ce type de fonctionnement sera illustré plus en détail ci- après, en relation avec la figure 4.15 6 Le module ML 6, encore appelé MOD-TX-SMT gère l'émission de trames SMT Il est activé lorsque la boîte à lettre qui lui est associée est non vide ou encore lors de la fin d'émission d'une trame SMT Il est désactivé lorsque la20 boîte à lettres qui lui correspond est vide. 7 Le module ML 7, encore appelé MOD-RX-LLC traite la réception de trames LLC Il est activé lorsque le buffer de réception qui a été alloué à la trame en question passe de25 l'état vide à l'état non vide et est désactivé lorsque ce même buffer est vide Ce module gère le pointeur PTFW de la file de commande F 2 A chaque appel correspondant à une réception de trame, ce module examine la situation du pointeur PTFR de la file F 2, afin de réutiliser30 éventuellement des buffers de réception à nouveau disponibles. 8 Le module ML 8, encore appelé MOD-TX-LLC est activé par une interruption signalant la fin d'émission d'une trame LLC, ou d'un ensemble chaîné de trames LLC Il notifie à l'ordinateur ORD, par l'intermédiaire du pointeur PTFR de la file Fl, la disponibilité de buffers qui ont été préalablement utilisés Il détecte également l'insertion de 19 nouveaux messages dans la file Fi et active si nécessaire le module ML 9, ci-après décrit. 9 Le module ML 9, encore appelé MOD-CMD-TX traite les demandes d'émission en provenance de l'ordinateur ORD Il est activé lors de la transition de la file Fl de l'état vide à non vide Il est désactivé lorsque toutes les demandes d'émission en provenance de ORD ont été traitées. Ce module réalise par ailleurs toutes les opérations10 nécessaires à l'émission de trames LLC A ce sujet, on se référera à la demande de brevet 91 08908 précitée qui décrit ces opérations - Le module ML 1 O encore appelé MODFILE est chargé de la gestion des boites à lettres BALJ à BA Ln. On se réfère désormais aux figures 4 et 5 qui montrent deux exemples de fonctionnement de modules fréquemment utilisés et significatifs, à savoir les modules ML 5 et ML 2.20 On considère la figure 4, et on suppose que le dispositif adaptateur DEA reçoit une trame de type SMT provenant du réseau RE Cette trame arrive directement dans la mémoire VRAM et est par exemple stockée dans le buffer BF 1 Une25 interruption IT 1 avertit le module ML 5, à savoir MOD-RX-SMT qu'une trame est arrivée dans la mémoire VRAM dans le buffer BF 1 On passe ensuite à l'opération 2. 2 le module ML 5 transfère la trame de type SMT du buffer BF 1 dans un buffer libre BFSJ en mémoire SRAM Pour ce faire, le module ML 5 consulte la liste des buffers et choisit un buffer libre. 3 Durant cette opération le module M Ls émet une commande CMDJ o il indique l'emplacement du buffer BF 51 ainsi que la longueur de ce dernier On passe ensuite à l'opération 4. 4 Le module ML 5 transfère le contenu de la commande CMD 1 dans la boîte à lettre BALJ (supposée être celle du module de supervision MOD- SPV, module ML 3) Le module ML 3 effectue alors l'opération 5. ML 3 va lire le contenu de sa boite à lettres BAL 1 et trouve qu'il faut traiter une trame SMT qui se trouve dans le buffer BF 51, trame qui a une longueur déterminée. 6 Le module de supervision traite alors la trame de type SMT, suivant la norme FDDI et une fois que ceci est effectué passe à l'opération 7. 7 ML 3 libère le buffer BF 51 suivant les modalités indiquées plus haut. On se réfère désormais à la figure 5 qui décrit comment une commande émise par le dispositif adaptateur DEA est envoyée à GPU Dans ce cas, c'est le module ML 2 (MOD-TX-CMD) qui agit On suppose donc que, lors de l'opération il le processeur CPU 2 a émis une commande CMD 2 par l'intermédiaire20 de tout module (autre que ML 2), par exemple ML 1 Cette commande est supposée être une commande interne Elle est destinée à la file F 3. On passe à l'opération 12. 12 Lors de cette opération, le module ML 1 consulte la liste des buffers et s'alloue un buffer libre en mémoire VRAM, par exemple le buffer BF 2 qui recevra le contenu de la commande avant que celle-ci ne soit transférée dans la file de30 commande On passe ensuite à l'opération 13. 13 Lors de cette opération MLî transfère la commande dans la boite à lettres BAL 2 de ML 2 Une fois que ceci est fait, on passe à l'opération 14.35 14 Lors de cette opération ML 2 transfère le contenu de sa boîte à lettres dans la file F 3 Une fois que ceci est fait, la main passe au microprocesseur CPUî de GPU qui vient lire la commande dans la file F 3 et la transfère dans le buffer BF 2. ANNEXE 1 bbbbbbbb bbbbbbbb bbbbbbbb bbbbbbbb MOT 1 MOT 2 MOT 3 MOT 4 bbbbbbbb bbbbbbbb bbbbbbbb bbbbbbbb Commande interne N LI 3 r,9 TP RFU 00000000 00000000 STATUS/OPTION TP RFU B STATUS/OPTION Commande HOST ANNEXE 1 Ibis *******GPU * GPU * ******* Canal d'ordre Tx File = F 2 Wr Z >EZZ Rx File = Fl *******DEA * DEA * ******* Wr Rd Rd Canal administratif ADMRE Qfile = F 4 Wr H_ Wr ADMIND File= F 3 Rd Rd ANNEXE 2 PTFW-> vide vide COMO vide vide PTFW vide FR vide vide vide vide COMO COM 1 Insertion d'une commande,sans signalisation par interruption PTFW -> PTFW-> vide vide vide vide vide vide vide vide File Vide COM 4 COM 5 COM 6 vide COMO COM 1 COM 2 COM 3 File pleine -PTFR REVENDICATIONS 1 Système de transmission de données (STD) entre un bus (PSB) d'ordinateur (ORD) et un réseau (RE) en forme d'anneau à haut débit comprenant: un dispositif universel de couplage (GPU) relié au bus et communiquant par une interface avec un dispositif adaptateur (DEA) connecté au réseau par l'intermédiaire d'un contrôleur d'accès au réseau (CAR), le dispositif universel (GPU) comprenant: * un premier microprocesseur (CPU 1) associé à une première mémoire (SRAM 1), et exécutant un système d'exploitation contenu dans celle-ci, des moyens de transfert de trames (MPC, DMAC, VRAM) depuis le bus (PSB) vers le dispositif adaptateur (DEA) et réciproquement, incluant une mémoire à double port (VRAM) disposée entre le bus (PSB) et le dispositif adaptateur, ce dernier comprenant: * un second microprocesseur (CPU 2) de gestion de transfert de trames entre les moyens de transfert de trames et le contrôleur d'accès au réseau et réciproquement, caractérisé en ce que l'interface est constituée d'une pluralité de files de commandes (Fl à F 4) comportant chacune30 un ensemble de commandes dont au moins une partie concerne l'émission ou la réception de trames, ces files étant disposées à l'intérieur de la mémoire double port, le second processeur de gestion (CPU 2) traitant une pluralité de modules logiciel (ML 1 à ML 10) indépendant les uns des35 autres, pour gérer l'émission et la réception de trames spécifiques du réseau, les modules communiquant entre eux et avec le système d'exploitation du premier microprocesseur (CPU 1) au moyen de boites à lettres (BAL 1, etc) incluses dans le second processeur (CPU 2) et/ou des files de 26 commandes (Fl à F 4) contenues dans la mémoire double port (VRAM) 2 Système de transmission de données selon la revendication 1, dans lequel le réseau est de type FDDI, caractérisé en ce que les files de commandes comprennent: des commandes d'ordre associé à l'émission ou à la réception de trames de type LLC, des commandes de type SMT qui sont reçues et émises sous forme de trames SMT pour effectuer des tests de conformité soit du réseau, soit de l'une quelconque des stations de celui-ci,15 des commandes administratives qui permettent la gestion de la configuration du dispositif adaptateur. 3 Système de transmission selon la revendication 2, caractérisé en ce que, chaque commande est constituée par une cellule de quatre mots de 32 bits, une zone mémoire (BF 1 à B Fp ou BF 51 ou BF Sq) pouvant être associée ou non à cette commande, cette zone mémoire pouvant se trouver soit dans la mémoire à double port, soit dans une mémoire associée au25 second microprocesseur. 4 Système de transmission selon la revendication 2, caractérisé en ce qu'il comprend deux canaux de commandes permettant l'émission ou la réception de commande, chaque30 canal étant constitué de deux files de commandes, l'un pour l'émission et l'autre pour la réception de commande, le premier canal étant un canal d'ordre permettant l'émission et la réception de trames de type LLC, alors que le second canal est un canal administratif permettant l'envoi de35 commandes administratives au dispositif adaptateur. Système de transmission selon la revendication 4, caractérisé en ce que, il y a 2 N commandes par file, chaque 27 file étant associée à un pointeur d'écriture (PTFW) et à un pointeur de lecture (PTFR). 6 Système de transmission de données selon la revendication 1, caractérisé en ce que les boites à lettres (BAL 1, BA Ln) constituent chacune une liste de 2 N commandes, chaque commande pouvant être ou non associée à une zone mémoire, soit dans la mémoire double port, soit dans la mémoire associée au second microprocesseur.10 7 Système de transmission de données selon la revendication 1, caractérisé en ce qu'il comprend des canaux d'interruption signalant le passage des files de commande de l'état vide à l'état non vide.15 8 Système de transmission selon la revendication 1, caractérisé en ce que chaque file de commande permet: 1 de gérer la commande, 2 de définir et gérer les emplacements de zones mémoire o doivent être mémorisés les trames ou portions de trames concernées par la dite commande.