FR 2668275 A1 19920424 FR 9012826 A 19901017 CONTROLEUR DE COMMUNICATION ENTRE UN ORDINATEUR ET UNE PLURALITE DE TERMINAUX, APPARTENANT A UN RESEAU DE TYPE CSMA/CD La présente invention concerne un contrôleur de communication entre un ordinateur et une pluralité de terminaux, appartenant à un réseau local de type à méthode d'accès à test de porteuse et détection de collision Ce type de réseau est plus fréquemment désigné par son sigle anglo-saxon CSMA/CD L'invention est plus particulièrement applicable aux réseaux locaux de type ETHERNET, CHEAPERNET, ou encore STARLAN. Les réseaux de transmission de données, encore appelés réseaux de télécommunications ou réseaux de communications, sont constitués par une pluralité d'unités, généralement appelées "équipement terminal de traitement de données 11, en abrégé, ETTD (Data Terminal Equipment, en langue anglaise, en abrégé, DTE) Elles sont encore appelées terminaux ou stations par commodité de langage Un ordinateur relié à un tel réseau est considéré comme un terminal Les terminaux communiquent entre eux par l'intermédiaire d'un support de transmission qui est constitué, par exemple, par deux paires de fils téléphoniques (l'une pour l'émission, l'autre pour la réception), ou encore un câble coaxial. Les différents terminaux d'un réseau émettent des messages d'information et reçoivent ceux émis par les autres Un message est constitué par un ensemble de blocs élémentaires d'informations comprenant un nombre déterminé d'informations binaires Ces blocs sont encore appelés trames (frame, en langue anglaise). Chaque trame est structurée et comporte des informations définissant le début et la fin de celle- ci, l'adresse du terminal auquel est destiné le message, l'adresse du terminal émetteur, la longueur des données, les données utiles, etc Les réseaux locaux (local area network, en langue anglaise, en abrégé LAN) sont des réseaux limités à un emplacement géographique de surface restreinte, o les distances entre les différentes stations varient de quelques mètres ou dizaines de mètres à quelques kilomètres. Les réseaux locaux de type CSMA/CD sont d'un usage fréquent dans la pratique courante Ils ont été normalisés par le Comité IEEE de l'Institute of Electrical and Electronic Engineers, sous la forme d'une norme dite 802 3 (reprise par l'I S O, Organisation Internationale de Normalisation, sous la forme de la norme ISO 8 802 3), dont les dispositions essentielles sont les suivantes un ETTD en tant qu'émetteur de données est, soit silencieux, soit en train d'émettre des données, un ETTD, lorsqu'il est silencieux, peut, en tant que récepteur, soit détecter un silence, soit recevoir des données provenant d'un ou plusieurs autres ETTD Si les données reçues proviennent simultanément de plusieurs d'entre eux, la valeur de celles-ci est sans signification, ce qui est le cas lorsqu'on est en présence d'une collision (Pour une station déterminée, on rappelle qu'une collision est définie par la présence simultanée du propre signal d'émission de la station et d'un signal émis par une autre). un ETTD qui est en train d'émettre peut, en tant que récepteur, soit détecter que son émission se déroule normalement (sans collision), soit qu'une collision a lieu. La norme précitée définit également le format des trames et le protocole régissant le dialogue entre les différentes stations Ce protocole définit les règles d'accès à celles-ci. Dans la pratique courante actuelle, parmi les réseaux locaux de type CSMA/CD, on connaît notamment, d'une part les réseaux locaux de type ETHERNET ou CHEAPERNET pour lesquels le débit de transmission des données est de 10 Mbits/s, et d'autre part les réseaux locaux de type STARLAN, pour lesquels le débit de transmission des données est de 1 Mbit/s. Pour les réseaux locaux de type ETHERNET ou CHEAPERNET, le support de transmission normalisé est un câble coaxial d'impédance caractéristique 50 Ohms En ce qui concerne les réseaux de type STARLAN, le support de transmission normalisé est constitué par deux paires de fils téléphoniques. On sait qu'un ordinateur est constitué d'une part, d'un ou de plusieurs processeurs centraux, de processeurs d'entrée/sortie, de mémoires vives et mémoires mortes associées à l'ensemble de ces processeurs, de contrôleurs d'entrée/sortie, d'autre part de différents organes phériphériques tels que des mémoires à disques ou périphériques d'entrée/sortie permettant l'échange de données avec l'extérieur (terminaux à écran, imprimantes, etc), ces organes périphériques étant associés à des contrôleurs de périphériques. d L'ensemble des éléments constitutifs précités (en dehors des périphériques) est disposé sur un ensemble de cartes (boards en anglais) dont les dimensions sont normalisées. Ces cartes sont reliées généralement à un même bus de type parallèle qui assure les communications entre les différents processeurs et le transport des données entre les différentes cartes ainsi que l'alimentation électrique de celles-ci. Un bus couramment utilisé dans la pratique actuelle est le bus appelé MULTIBUS II dont la marque est déposée par la Société INTEL L'architecture d'un tel bus est structurée autour d'un bus principal de type parallèle normalisé suivant la norme IEEE 1296 Ce bus principal est habituellement désigné par PSB. La tendance du développement technologique des réseaux, l'utilisation de terminaux de plus en plus nombreux, conduisent à développer au sein même des ordinateurs, des contrôleurs de communication programmés, dont le rôle est de réduire la charge de l'unité centrale de l'ordinateur en effectuant une partie de la gestion, d'une part des messages émis par les différents terminaux appartenant à l'ordinateur vers le réseau de télécommunications auquel cet ordinateur est relié, et d'autre part des messages provenant des terminaux du réseau Dans la pratique courante, un tel contrôleur de communication est réalisé autour d'un microprocesseur connecté à une ou plusieurs mémoires, qui comprend un logiciel de base (plus simple que celui de l'unité centrale) contenant des modules spécialisés permettant de gérer le bus commun aux différents éléments constitutifs de l'ordinateur et la ligne de transmission du réseau, et ayant des facilités pour constituer les files d'attente de messages (dans la mémoire associée au microprocesseur) Ce logiciel doit en outre permettre l'exécution simultanée d'un grand nombre de processus et pour cela gérer rapidement de nombreuses interruptions, ce qui implique des mécanismes de changement de contexte du microprocesseur très performants, ainsi que des niveaux multiples d'interruption Un tel logiciel, qu'on peut appeler logiciel de communication, est par exemple le logiciel appelé CNS utilisé dans les produits de la série DN- 7 XXX de la Société BULL S A, et également dans les produits CNS-AO et CNS-A 1 de la série d'ordinateurs DPS-7000 de la même Société. Dans le cas o l'ordinateur comprend un bus de type MULTIBUS II, le processeur de communication lui est relié Il est disposé sur une carte connectée au bus PSB par l'intermédiaire d'un contrôleur, par exemple de type MPC-82389 (fabriqué par la Société INTEL) communiquant par mode message avec les autres éléments constitutifs fonctionnels de l'ordinateur. L'utilisation à grande échelle de bus de type MULTIBUS II étant encore récente, il n'existe pratiquement pas de contrôleur de communication relié à un ordinateur muni d'un MULTIBUS II d'une part, et d'autre part relié à un ou plusieurs réseaux de type CSMA/CD. La présente invention concerne précisément un contrôleur de communication entre au moins un ordinateur associé à un bus de type MULTIBUS II et une pluralité de terminaux reliés entre eux par l'intermédiaire d'au moins un réseau de type CSMA/CD, permettant de traiter simultanément le transfert d'un grand nombre de trames venant de ou allant vers le réseau, en réalisant l'adaptation des débits entre les informations circulant sur le bus et les informations circulant sur le réseau. Selon l'invention, le contrôleur de communication entre au moins un ordinateur associé à un bus et une pluralité de terminaux d'au moins un réseau local de type à méthode d'accès à test de porteuse et détection de collision (CSMA/CD), reliés entre eux par l'intermédiaire d'au moins une liaison comprenant au moins un canal de données supporté par au moins un support de transmission, comprenant: une unité de base reliée au bus, qui gère et effectue le transfert des trames sur chacun des canaux de la liaison (le canal), une unité périphérique reliée d'une part à l'unité de base et d'autre part au support de transmission, qui transmet les données au réseau ou reçoit celles provenant de ce dernier, est caractérisé en ce que l'unité de base comprend un premier processeur de commande de transfert des trames depuis le bus vers le réseau et réciproquement, connecté au bus et associé à une première mémoire de stockage des trames avant leur transfert, qui gère le transfert des trames vers les différents canaux affectés à celles-ci (le canal affecté à celles-ci), un second processeur communiquant avec le premier réalisant, à l'émission, dans un premier temps, la division des trames provenant du bus en trames de type CSMA/CD, et effectuant, à l'émission et à la réception, le transfert de chacune des trames CSMA/CD ainsi constituées, canal par canal (sur ledit canal), depuis la première mémoire jusqu'à l'unité périphérique, et réciproquement, la partie périphérique comprenant un contrôleur CSMA/CD pour l'ensemble des canaux (le canal), piloté par le second processeur et relié au support de transmission, et comprenant au moins une mémoire de stockage de trames CSMA/CD, ces dernières étant stockées dans celle-ci avant émission vers le réseau par le contrôleur CSMA/CD, ou avant leur transfert vers la première mémoire sous la conduite du second processeur, en réception. D'autres caractéristiques et avantages de la présente invention apparaîtront dans la description suivante donnés à titre d'exemples non limitatifs et en se référant aux dessins annexés. Sur ces dessins la Figure 1 est un schéma très simplifié du système informatique comportant le contrôleur de communication selon l'invention, la Figure 2 montre la structure matérielle du contrôleur de communication selon l'invention, la Figure 3 montre le schéma de la partie périphérique du contrôleur de communication selon l'invention, la Figure 4 montre la structure de l'ensemble logiciel et micrologiciel du contrôleur de communication selon l'invention, la Figure 5 est formée des Figures 5 a et 5 b La Figure 5 a est l'organigramme simplifié du fonctionnement d'un module micrologiciel affecté à un canal de données de la liaison, permettant le transfert de trames sur ce canal, alors que la Figure 5 b montre la table de description du module micrologiciel dont l'organigramme simplifié est montré à la Figure 5 a, la Figure 6 montre le mécanisme suivant lequel le logiciel et chacun des micrologiciels affectés à chacun des canaux communiquent entre eux, les Figures 7 et 8 illustrent le fonctionnement du contrôleur de communication selon l'invention, lors de l'émission ou la réception de trames, les Figures 9 et 10 sont des chronogrammes relatifs aux différentes opérations successives effectuées par le contrôleur de communication selon l'invention, d'une part à l'émission et d'autre part à la réception de trames. On considère la Figure 1 qui montre un système informatique SI comprenant au moins un ordinateur ORD 1 relié à un ensemble de k réseaux de types différents, RE 1, RE 2,,* R Ek par l'intermédiaire d'une pluralité de k liaisons de types différents. La structure du système SI montrée à la Figure 1 a été volontairement simplifiée et comprend l'ordinateur ORDJ, un serveur SERV de communication avec les réseaux RE à R Ek, gérant et effectuant le transfert des trames depuis l'ordinateur ORDI vers les réseaux et réciproquement Il convient de remarquer que ce serveur peut également relier d'autres ordinateurs aux différents réseaux précités, à savoir par exemple, l'ordinateur ORD 2 représenté en traits interrompus à la Figure 1. Le serveur SERV comprend une unité centrale SCOM qui administre et gère le serveur Elle charge notamment tous les logiciels et micrologiciels associés à chacune des cartes constituant le serveur dans celles-ci, lors de leur initialisation. le bus PSB de préférence de type MULTIBUS II, un ensemble CCR de contrôleurs de communication permettant de relier le serveur (et par suite ORD 1) aux différents réseaux R Ek Il comprend notamment le contrôleur de communication selon l'invention CCS permettant de le relier, dans l'exemple de réalisation décrit ici, à deux réseaux de type CSMA/CD, à savoir RE 1, RE 2 pouvant être, par exemple, un réseau de type ETHERNET et un réseau de type STARLAN, ou encore un réseau de type CHEAPERNET et un réseau de type STARLAN, ou encore deux réseaux de type ETHERNET ou deux réseaux de type CHEAPERNET, etc Le serveur SERV est ici considéré comme terminal des deux réseaux RE 1-RE 2 communiquant avec les autres terminaux de chacun de ceux-ci. Le contrôleur de communication CCS peut également être relié par l'intermédiaire d'un autre contrôleur de communication identique CC 51 à deux autres réseaux RE 11-RE 1 12 de type CSMA/CD, (ou de plusieurs autres contrôleurs de communication CC 52, CC 53 etc à d'autres réseaux CSMA/CD, RE 21-RE 22, RE 31-RE 32 etc) CC 51 étant également connecté par l'intermédiaire de son unité de base (voir plus loin) à PSB. ORD, peut être relié soit directement au bus PSB, par l'intermédiaire d'un coprocesseur MPC 82389, soit, de préférence, par l'intermédiaire d'un coupleur central de communication CCC, surtout dans le cas o plusieurs ordinateurs ORDJ, ORD 2, etc sont reliés au serveur SERV (CCC est représenté en pointillé à la Figure 1). Dans ce cas, le coupleur CCC a une structure analogue à CCS et est donc relié à ORD, par l'intermédiaire de sa partie périphérique (voir plus loin). Les trames provenant de ORD 1 destinées aux réseaux RE 1- RE 2 parviennent par l'intermédiaire de PSB au contrôleur de communication CCS Celui-ci divise chacune de celles-ci en une pluralité de paquets de données (le terme anglo-saxon correspondant à paquet de données est buffer L'un ou l'autre de ces termes sera indifféremment employé dans la suite du texte), gère et effectue le transfert de cet ensemble de trames sur chacun des deux canaux de données qui correspondent l'un au premier réseau RE,, l'autre au second réseau RE 2, Ces deux canaux sont désignés par C 1 et C 2 Du point de vue fonctionnel, on considérera donc dans la suite du texte que le contrôleur de communication CCS (et par suite ORD 1) est relié par l'intermédiaire d'une liaison comportant deux canaux C 1 et C 2 à un réseau RE formé par l'association des réseaux RE 1 et RE 2 s On considère désormais les Figures 2 et 3. Le contrôleur de communication CCS selon l'invention comprend, ainsi qu'on peut le voir à la Figure 2, une unité de base BA et une unité périphérique PER. L'unité de base BA comprend une interface IF 1 avec le bus PSB, de type MULTIBUS II, définie par la norme IEEE P 1296, par exemple constituée par le MPC 82389 (voir plus haut), un premier microprocesseur M Pl de type 68030 de la Société MOTOROLA, associé à une première mémoire vive MV 1, de 4 Mégaoctets de capacité, un second microprocesseur MP 2, par exemple de type 68000 de la Société MOTOROLA, associé à une seconde mémoire vive MV 2 de 512 Kilooctets de capacité. une interface IF 2 permettant le dialogue entre le premier et le second microprocesseur MP, et MP 2, assurant l'adaptation physique des signaux transitant sur le bus interne BI 1 du premier microprocesseur M Pl avec ceux qui transitent sur le bus interne BI 2 du second microprocesseur MP 2, un contrôleur de type DMA (accès direct mémoire, ou encore direct access memory en anglais). L'unité périphérique PER comprend: un contrôleur de type CSMA/CD, à savoir CONT, piloté par le second microprocesseur MP 2 de l'unité de base BA, un premier et un second dispositif de connexion physique respectivement au premier réseau RE 1 et au second réseau RE 2, à savoir DAPR 1, DAPR 2. Le contrôleur CONT se compose en fait de deux contrôleurs CONT 1 et CONT 2 de type CSMA/CD, dont le premier est connecté par l'intermédiaire du dispositif d'adaptation physique DAPR 1 au premier réseau RE 1 et dont le second est connecté par l'intermédiaire du dispositif d'adaptation physique DAPR 2 au second réseau RE 25 Le premier contrôleur CONT 1 comprend: un circuit intégré CE 1 d'émission et de réception pour réseau de type CSMA/CD, une troisième mémoire vive RAM 1 de 64 kilobits de capacité, connectée à CE, et au bus BI 2 par un bus du même type que ce dernier. Le circuit intégré CE, est dans un exemple de réalisation préféré de l'invention, constitué par un circuit de la firme NATIONAL SEMICONDUCTORS appelé circuit SNIC ayant la référence 83901 chez ce constructeur. Ce circuit intégré permet d'émettre des trames respectant la norme 8802 3 précitée ou de recevoir des trames provenant du réseau RE 1 conforme à cette norme. En particulier, un tel circuit intégré permet de réaliser les dispositions essentielles de la norme qui ont été rappelées ci-dessus concernant, d'une part les problèmes de l'émission, et d'autre part ceux de la réception de trames et de la détection des collisions. Un tel circuit comprend donc un circuit d'émission, un circuit de réception, un circuit détecteur de porteuse et un circuit détecteur de collision, ainsi qu'un dispositif d'encodage et de décodage qui permet d'émettre les trames selon par un exemple un code de type Manchester, ou de recevoir des trames émises suivant ce code Pour plus de détails concernant la composition du circuit intégré CE,, on se reportera aux fiches techniques du constructeur. Si le réseau RE 1 est de type ETHERNET, CE, est associé à à une prise 15 points normalisée propre aux réseaux de ce type, à savoir COE 1 Cette prise est montée sur la carte (board en anglais) qui porte le contrôleur de commumnication CCS Cette prise est alors reliée, de manière connue, par une liaison multifilaire MF 1 à un transceiver TRE 1 normalisé de type ETHERNET, lui-même relié au câble coaxial CX 1 par un raccordement également normalisé (non représenté pour simplifier la figure 3) Ce transceiver est extérieur à CCS. Lorsque le réseau est de type CHEAPERNET, CE 1 est connecté à RE 1 par l'intermédiaire d'un transceiver de type CHEAPERNET normalisé, désigné par CAC 1, disposé sur la carte portant CCS, et d'un connecteur en T normalisé COC 1, lui-même relié au câble coaxial CX 2. CO Ci est extérieur à la carte portant CCS. Les deux câbles CX 1 et CX 2 sont identiques et ont une impédance caractéristique de 50 ohms. L'ensemble formé par la prise 15 points COE 1 et le transceiver CAC,, constitue le dispositif d'adaptation physique DAPR 1. Il convient de préciser que, du point de vue fonctionnel, le contrôleur CONT 1 est connecté soit à un réseau de type ETHERNET, soit à un réseau de type CHEAPERNET, mais il n'est jamais connecté simultanément à un réseau de type ETHERNET ou un réseau de type CHEAPERNET En conséquence, le réseau RE 1 est donc fonctionnellement, soit un réseau de type ETHERNET, soit un réseau de type CHEAPERNET. Le contrôleur CONT 2 comprend: un circuit intégré CE 2 pour l'émission ou la réception de trames de type, soit ETHERNET, soit CHEAPERNET, soit encore STARLAN, la quatrième mémoire vive RAM 2 connectée à la fois au circuit intégré CE 2 et au bus interne BI 2 du second microprocesseur MP 2, pour un bus de même type que ce dernier, un encodeur pour trames de type ETHERNET ou CHEAPERNET, à savoir CDE, un encodeur pour trames de type STARLAN, à savoir CDS. Le circuit intégré CE 2 est dans un exemple de réalisation préféré de l'invention constitué par un circuit de type NIC de la firme NATIONAL SEMICONDUCTORS précitée ayant la référence 8390. Du point de vue fonctionnel, l'ensemble constitué par CE 2 et CDE, d'une part, et CE 2 et CDS d'autre part, joue exactement le même rôle que le circuit intégré CE 1 du contrôleur CONT 1, le premier ensemble émettant ou recevant des trames de type ETHERNET ou CHEAPERNET, alors que le second ensemble émet ou reçoit des trames de type STARLAN. Le dispositif d'adaptation physique DAPR 2 comprend: un transceiver CHEAPERNET CAC 2, disposé physiquement sur la carte qui forme le contrôleur de communication CCS, une prise 15 points COE 2, une prise STARLAN 8 points CO 52. La prise COE 2 est reliée d'une part à l'encodeur CDE et d'autre part au transceiver ETHERNET TRE 2 lui-même connecté par raccordement normalisé (non représenté pour simplifier la figure 3) au câble coaxial CX 3 d'impédance caractéristique 50 ohms COE 2 est portée par la carte qui forme CCS et TRE 2 est extérieur à celle-ci Le transceiver CAC 2 est relié au réseau RE 2 par l'intermédiaire d'un connecteur en T connecté lui- même au câble coaxial CX 4 d'impédance caractéristique 50 ohms CAC 2 est porté par la carte formant CCS et COC 2 est extérieur à celle-ci. La prise STARLAN CO 52, portée par la carte qui forme CCS est reliée, d'une part à l'encodeur CDS et d'autre part au réseau RE 2 par l'intermédiaire d'une paire de fils téléphoniques LE 2-LR 2 Les coaxiaux CX 3-CX 4, identiques entre eux, sont identiques à CX 1-CX 2. Par ailleurs, il est évident que les connecteurs en T CHEAPERNET COC 1 et COC 2 sont identiques entre eux, alors que les prises 15 points COE 1, COE 2, sont identiques entre elles. De la même façon que pour le contrôleur CONT 1, le contrôleur CONT 2 est connecté fonctionnellement soit à un réseau de type CHEAPERNET, soit à un réseau de type ETHERNET, soit à un réseau de type STARLAN, sans jamais être connecté simultanément à trois réseaux de ce type. En d'autres termes, le réseau RE 2 est fonctionnellement, soit un réseau de type CHEAPERNET, soit un réseau de type ETHERNET, soit un réseau de type STARLAN, alors qu'il comporte les trois types de supports physiques propres à chacun de ces réseaux. Le premier processeur M Pl commande le transfert des trames circulant sur le bus PSB destinées à l'un ou l'autre des deux réseaux RE 1 ou RE 2: à ce titre, il les reçoit et les stocke dans sa mémoire vive MV 1 en attendant qu'elles soient réellement transférées vers l'un ou l'autre des deux réseaux précités. Réciproquement, il reçoit dans sa mémoire vive MV, les trames provenant de l'un ou l'autre de ces deux réseaux, avant de les envoyer via le bus PSB vers ORD 1 ou ORD 2. A l'émission, le premier processeur découpe chacune des trames en une pluralité de paquets de données (buffers) tels que BF 1, BF 2,, B Fn M Pl alloue à chacun de ceux-ci un emplacement physique déterminé dans la mémoire vive MV 1 Dès que l'un des deux canaux de données Cl ou C 2 (voir plus haut) est disponible, le premier processeur demande au second processeur MP 2 d'effectuer le transfert de la trame en question depuis la mémoire vive MV 1 vers le contrôleur CONT puis le réseau RE 1 ou RE 2, dans le canal approprié, par exemple Cl, puis d'envoyer cette trame vers l'un ou l'autre des deux réseaux RE 1 ou RE 2 à travers les bus internes Bl J, et BI 2 et l'interface IF 2 Il est clair que le premier processeur M Pl procède de même avec chacune des trames, pour chacun des canaux C 1 et C 2 En d'autres termes, le premier processeur gère le transfert de chacune des trames qu'il reçoit de PSB ou de l'un des deux réseaux R El-RE 2, à travers les deux canaux Ci et C 2 affectés à chacune et ce, tant à l'émission qu'à la réception En réception, des emplacements physiques en MV, sont alloués, par MP 2, aux différents buffers constituant chaque trame, désignés par exemple par BF 101 à B Fmr ces emplacements étant différents de ceux alloués à BF 1, B Fn' A l'émission, le second processeur MP 2, ayant reçu la demande de transfert de la part du premier processeur M Pl, effectue le transfert de la trame en question, buffer par buffer, dans le canal qui a été affecté à celle-ci, depuis la première mémoire MV 1 jusqu'à la partie périphérique PER, o les buffers de celle-ci sont stockés dans l'une des deux mémoires vives RAM 1 ou RAM 2, suivant que la trame en question, que nous désignerons sous le terme générique de trame bus est destinée à l'un ou l'autre des deux réseaux RE, ou RE 2. A partir des différents buffers d'une trame bus,le second processeur MP 2 constitue des trames dites trames CSMA/CD ayant une longueur comprise entre une longueur minimum et une longueur maximum fixée par la norme 8802 3 précitée Ainsi, une trame CSMA/CD est constituée à partir de plusieurs buffers stockés dans la mémoire MV 1 par le premier processeur MP 1 Dans un exemple de réalisation préféré de l'invention, tout buffer stocké dans la mémoire MV 1 et formé par le premier processeur Mpi a une longueur donnée paramétrable, par exemple 200 octets, alors que la longueur maximum d'une trame CSMA/CD est de 1500 octets Une trame CSMA/CD peut donc être, par exemple, formée par l'association de huit buffers MP 2 dispose la suite de ces derniers, de telle sorte qu'ils soient disposés physiquement à la suite les uns des autres dans la mémoire RAM 1. Dès que le contrôleur CONT reçoit de la part du second processeur MP 2 l'ordre de transférer vers l'un ou l'autre des deux réseaux RE 1 ou RE 2 une trame CSMA/CD, l'un ou l'autre des deux circuits intégrés CE, ou CE 2 va chercher les données formant la trame CSMA/CD stockée dans la mémoire vive RAM 1 ou RAM 2 et les transfère sur le réseau RE 1 ou RE 2 en respectant les dispositions de la norme 8802 3 précitée. En réception, le second processeur MP 2 effectue le transfert de la trame CSMA/CD provenant de l'un des deux réseaux RE 1-RE 2 dans le canal approprié en allant la chercher dans la mémoire vive RAM 1 RAM 2 o elle a été stockée par l'un des deux circuits intégrés CE 1, CE 2 Le second processeur redécoupe la trame CSMA/CD reçue en un certain nombre de buffers dont la longueur maximale est de 200 octets, ces buffers étant envoyés par ce dernier depuis l'une ou l'autre des deux mémoires vives RAM 1, RAM 2 vers la première mémoire MV 1, dans les emplacements de cette dernière qu'il a alloués à cet effet. Le but de la présence des deux mémoires vives RAM 1 ou RAM 2 est en fait d'adapter les vitesses entre le débit CSMA/CD sur l'un ou l'autre des deux réseaux RE 1, RE 2, qui est le plus fréquemment de 10 Mégabits/s et la vitesse de traitement des trames et des buffers les constituant par M Pl et MP 2 Ipso facto, elles assurent l'adaptation entre, d'une part les débits sur les réseaux RE 1-RE 2, et d'autre part sur le bus PSB. Le premier et le second processeur MP 1, MP 2, exécutent leur travail sur instructions respectivement d'un logiciel de communication CNS (voir plus haut) et d'un micrologiciel AML. Lors de la mise sous tension du contrôleur de communication CCS, le logiciel de communication CNS et le micrologiciel AML qui sont implantés sur les mémoires à disque MD du serveur SERV, sont chargés dans chacunedes mémoires vives MV, et MV 2, respectivement. Ce chargement s'effectue à travers le bus PSB Bien entendu, il a lieu une fois que la carte correspondant au contrôleur de communication CCS a été initialisée. Cette initialisation s'effectue sous la conduite d'un programme micrologiciel stocké dans une mémoire programmable de type PROM implantée dans l'unité de base BA et non représentée à la Figure 1 et à la Figure 2 pour simplifier. Le logiciel de communication est en fait le système d'exploitation du contrôleur de communication CCS (il constitue l'operating system selon la terminologie anglo-saxonne) Ce logiciel organise le travail de liaison entre le bus PSB et le micrologiciel AML qui est chargé plus spécialement d'effectuer le transfert de chacune des trames dans les canaux Cl, C 2 aussi bien à l'émission qu'à la réception. On considère la Figure 4 qui montre de façon fort schématique les liaisons existant entre le logiciel de communication CNS et le micrologiciel AML. Le micrologiciel AML comprend un noyau NY, une interface de communication IC, permettant le dialogue entre le logiciel de communication CNS et le micrologiciel AML, ainsi qu'une pluralité de modules micrologiciels, encore appelés tâches, à savoir TCO, TC 1, TC 2 Les modules TC 1, TC 2 correspondent chacun aux deux canaux Cl, C 2 définis plus haut Ils sont donc chargés d'effectuer le transfert des trames affectées à chacun de ces canaux depuis la mémoire MV 1 vers la partie périphérique PER et réciproquement La tâche TCO est propre à la carte portant le contrôleur CCS Elle est utilisée pour remettre à O l'ensemble des composants constituant la carte CCS. Chaque tâche correspondant à un canal est une tâche indépendante des autres Le déroulement des tâches est organisé en temps réel par le noyau NY. Le micrologiciel AML qui reçoit ses commandes du logiciel CNS, est vu par celui-ci comme un ensemble de trois tâches indépendantes Néanmoins, les tâches TCO, TC 1, TC 2, peuvent fonctionner simultanément sous la conduite du noyau NY Chacune d'elles a donc des liaisons directes avec ce dernier mais n'en a aucune avec les autres. Le module IC gère l'interface avec le logiciel CNS Il acquitte les demandes provenant de celui-ci et les aiguille vers les différentes tâches correspondant aux différents canaux pour que celles-ci soient exécutées. Symétriquement, il se charge des transferts d'état ou de données provenant des canaux correspondant à chacune des tâches, destinées au logiciel CNS. Les échanges entre l'unité de base BA et l'unité périphérique PER se définissent par des descripteurs de commande (voir figure 6) Un descripteur de commande correspond à une trame déterminée soit à l'émission, soit à la réception, et définit les opérations qui doivent être accomplies sur celles-ci (voir plus loin). Les descripteurs de commande occupent dans la mémoire M Vi des emplacements déterminés par le logiciel de communication CNS Les adresses physiques de ces emplacements et les emplacements correspondants eux- mêmes ne sont pas libérés tant que les trames associées à ces descripteurs de commande ne sont pas acquittées (n'ont pas été envoyées en totalité s'il s'agit d'une émission ou n'ont pas été reçues en totalité s'il s'agit d'une réception) Ainsi, à une trame bus TR 1, à l'émission, correspond une descripteur de commande COM 1 (voir Figure 6) A une trame bus TR 2 correspond une descripteur de commande COM 2 A une trame TR 101, de type CSMA/CD, en réception, correspond une descripteur de commande COM 101, etc Pour un même canal Cl ou C 2, les descripteurs de commande sont chaînés par l'intermédiaire de pointeurs de chaînage. Autrement dit, le descripteur de commande COM 1 est chaîné au descripteur COM 2 par un pointeur de chaînage PC 1, le descripteur COM 2 est chaîné au descripteur COM 3 par un pointeur de chaînage PC 2 Un pointeur de chaînage n'est autre que l'adresse logique occupée par le descripteur de commande qui suit le descripteur contenant le pointeur de chaînage Ainsi le pointeur de chaînage PC 1 indique l'adresse logique du descripteur COM 2 et le pointeur de chaînage PC 2 indique l'adresse logique du descripteur COM 3, etc On suppose que la trame TR 1 comprend (voir également Figure 6) les buffers BF 1, BF 2,, B Fn et que la trame TR 101 est composée des buffers BF 101 à B Fm A chaque buffer correspond un emplacement physique déterminé en mémoire défini par un descripteur de buffer Ainsi, aux buffers BF 1 à B Fn correspondent les descripteurs de buffer DB 1 à D Bn De même, aux buffers BF 101 à B Fm correspondent les descripteurs de buffer DB 101 à D Bm Bien entendu, les descripteurs de buffer occupent dans la mémoire MV 1 o ils sont situés des emplacements physiques différents des buffers auxquels ils sont associés Ainsi, DB 1 occupe-t-il en mémoire un emplacement différent du buffer BF 1 etc. Par ailleurs, par abus de langage, l'homme de l'art affecte la même dénomination aux buffers qu'aux emplacements physiques qui leur sont affectés en mémoire MV 1 Ainsi, par exemple, BF 1 désigne aussi bien un buffer ou paquet de données que l'emplacement physique o il est stocké en mémoire MV 1 Contenant et contenu ont donc la même désignation et ceci vaut également pour les descripteurs de commande et descripteurs de buffer. Chaque descripteur de commande comprend un pointeur vers le descripteur du premier buffer physique de la trame correspondante Ainsi, le descripteur de commande COM 1 contient le pointeur PB 1 définissant l'adresse du descripteur de buffer DB 1, c'est-à-dire l'adresse de l'emplacement physique occupé par ce descripteur dans la mémoire MV 1 De même, le descripteur de commande COM 2 contient le pointeur PB 2 définissant l'emplacement physique du descripteur de buffer correspondant au premier buffer de la trame TR 2, etc. Chaque descripteur de buffer contient un pointeur vers le descripteur de buffer suivant Ainsi, le descripteur de buffer DB 1 contient le pointeur PCB 1 définissant l'adresse, c'est-à-dire l'emplacement physique occupé par le descripteur de buffer DB 2 Ce pointeur est désigné par PCB 1. En conclusion, un descripteur de commande, tel que COM 1, COM 2, COM 101, etc, comprend: un pointeur de chaînage vers un autre descripteur de commande tel que PC 1, PC 2, etc Ce pointeur est destiné à être utilisé par l'interface de communication IC et se trouve en tête du descripteur, un pointeur vers le descripteur du premier buffer physique, tel que PB 1, PB 2, etc, le nombre total d'octets que contient la trame formée par la chaîne de buffers BF 1 à B Fn, ou BF 101 à B Fm, etc, correspondant au descripteur de commande en question, un index indiquant le début réel des données dans le premier buffer physique, c'est-à-dire par exemple, l'adresse physique du début des données dans le premier buffer physique BF 1, dans la mémoire MV 1, un indicateur précisant si la commande est une commande immédiate: les commandes immédiates sont des commandes qui n'impliquent pas l'utilisation de paquets de données destinés à être transférés vers le réseau ou provenant de celui-ci Ces commandes immédiates peuvent être par exemple une commande d'activation d'un canal en vue d'une réception ou une commande de désactivation de ce même canal en réception, dès qu'une trame a été complètement reçue et transmise vers ORD 1 (ou ORD 2) par le bus PSB. un champ status qui indique le résultat de l'exécution de la commande, c'est-à-dire si la commande a été ou non correctement exécutée, un champ de bits de commande comportant le code de la commande: il existe plusieurs types de commandes qui seront définies ci-dessous et auxquelles correspond un code déterminé. Outre les commandes immédiates (activation de canal en réception et désactivation de canal) définies ci- dessus, existent deux autres types de commandes, à savoir une commande pour l'émission de données et une commande de purge des commandes relative à l'émission de données, lorsque l'émission sur un canal doit être, pour une raison ou une autre, stoppée Cette commande de purge est une commande immédiate. Il convient de préciser que le format des descripteurs de commande est défini lors de l'initialisation de la carte portant le contrôleur de communication CCS et est défini par la tâche TC 0, c'est-à-dire le module micrologiciel correspondant au canal C O Une fois ce format défini lors de l'initialisation du contrôleur de communication CCS, il est immuable. Le format des descripteurs de buffer tels que DB 1 à D Bn ou DB 101 à D Bm est défini par le logiciel de communication CNS Il comprend: un pointeur de chaînage vers le descripteur de buffer suivant, par exemple le pointeur de chaînage PCB 1 Ce pointeur est une adresse logique, définissant l'emplacement mémoire o se trouve le descripteur de buffer correspondant c'est-à-dire DB 2. un index définissant l'emplacement physique occupé en mémoire par le début du buffer correspondant, par exemple le début du buffer BF 1 pour le descripteur DB 1. De même, le descripteur de buffer DB 2 contient un index définissant le début de l'emplacement physique occupé en mémoire par le buffer BF 2. En fait, cet index de début est obtenu de la manière suivante: L'adresse définissant l'emplacement physique occupé en mémoire MV 1 par le buffer BF 2 par exemple (le raisonnement est valable pour les autres buffers), qu'on peut également définir comme l'adresse physique du buffer BF 2 est obtenue en ajoutant à l'adresse logique définie par le pointeur PBF 2 de ce même buffer contenu dans le descripteur associé DB 2, une grandeur logiquea 1 Ainsi, on peut écrire, si 12 est l'index de début de BF 2, 12 = PBF 2 + 1: l'index définissant la fin de l'emplacement physique occupé par le buffer physique correspondant DB 1, par exemple, contient donc l'index définissant l'emplacement physique de la fin du buffer BF 1. la taille totale en nombre d'octets du buffer correspondant DB 1, par exemple, contient donc le nombre total d'octets de données contenus dans le buffer BF 1. Il convient de préciser qu'en ce qui concerne aussi bien les descripteurs de commande que les descripteurs de buffer, toute adresse logique est aussi une adresse physique. La première mémoire MV 1 contient également plusieurs zones mémoire fonctionnant suivant le principe des mémoires FIFO Ces zones mémoire sont définies par le logiciel de communication CNS MV 1 contient en fait, 3 zones mémoire FIFO, à savoir FG, FREC, FREP (figures 7 et 8) Chacune de ces zones mémoire FIFO contient un certain nombre d'éléments, à savoir p éléments Chaque élément contient l'adresse d'un descripteur de commande et le numéro de canal correspondant à la commande définie par ce descripteur Le logiciel CNS, pour chaque zone mémoire FIFO, définit donc l'adresse de début de cette zone mémoire, l'index de l'élément de tête, c'est-à-dire l'adresse de l'élément de tête, l'index de l'élément de queue, c'est-à-dire l'adresse de l'élément de queue, ainsi que le nombre d'éléments contenus dans cette zone mémoire FIFO Ainsi, par exemple, la zone mémoire FIFO FG contient les p éléments E 1, E 2, E 3,, Ep (voir figure 7) Le logiciel CNS définit donc l'adresse du début DEB de la zone FIFO FG, l'index de l'élément de tête E 1, l'index de l'élément de queue Ep et le nombre p d'éléments Il en est évidemment de même pour les zones mémoires FIFO FREC, FREP qui contiennent le même nombre d'éléments p. L'élément E 1 contient donc l'adresse du descripteur de commande COM 1 ainsi que le canal correspondant à la commande définie par ce descripteur, par exemple, le canal C 1 L'élément E 2 contient l'adresse du descripteur de commande COM 2 et l'adresse du canal correspondant, ici C 1 (voir plus haut) L'élément E 3 contient l'adresse du descripteur de commande COM 3 et le canal correspondant, à savoir Ci,, et ainsi de suite pour les éléments E 3 à Ep. La seconde mémoire MV 2 contient également outre l'ensemble des microprogrammes qui ont été définis plus haut, un certain nombre de zones mémoire FIFO, en nombre égal au nombre de canaux de données, à savoir C 1, C 2 Elle contient donc 2 zones mémoire FIFO, à savoir FC 1, FC 2 (voir Figure 7). Chacun des FIFO FC 1, FC 2 contient l'adresse des descripteurs de commande correspondant au canal associé, ainsi que le numéro de ce canal Ainsi, le FIFO FC 1 contient l'adresse du descripteur de commande COM 1, et le numéro du canal correspondant à ce descripteur de commande, c'est-à-dire le canal C 1, ainsi que l'adresse de COM 2 et le numéro du canal C 1, etc Les informations que contiennent chacun des FIFO FC 1, FC 2, telles que définies ci-dessus, sont transférées dans celles-ci depuis la mémoire FIFO FG de MV dans les conditions qui seront décrites plus loin, en liaison avec le fonctionnement du contrôleur de communication CCS selon l'invention. On considère désormais les Figures 5 a et 5 b. On considère la Figure 5 a qui est un schéma logique simplifié des différentes opérations O 01 à OP 5 mises en oeuvre lors de l'exécution de chacune des tâches TC 1, TC 2 v L'opération OP, est une opération d'initialisation de la tâche effectuée par le noyau NY. L'opération OP 2 qui succède à l'opération O Pl permet d'établir chacune des procédures pouvant être mise en oeuvre par la tâche TC 1 (ou TC 2), c'est-à-dire soit une procédure d'émission de trames soit une procédure de réception de trames soit une procédure d'activation ou de désactivation du canal correspondant Lors de cette opération, la tâche va chercher les adresses des procédures permettant de traiter soit les commandes du logiciel CNS, lors d'une demande d'émission, soit les adresses des procédures traitant les actions induites par une interruption du processeur MP 1, lorsqu'il est nécessaire de recevoir une trame provenant du réseau R El-RE 2 (RE) Lors de l'opération OP 3, la tâche se met en attente d'événement Cet événement peut être soit une commande du logiciel CNS, par exemple lorsque celui-ci veut émettre une trame vers le réseau RE, soit une interruption du microprocesseur MP 2, pour une réception de trame provenant de RE Dans le premier cas (commande du logiciel CNS) on a à faire à l'événement EV Oi Dans le second cas, on a à faire à l'événement EV 1. La façon dont les événements E Vo ou EV 1 se déroulent est exposée en détail plus loin dans la description en liaison avec les Figures 6, 7, 8, 9, 10. Lorsque l'une ou l'autre des opérations OP 4 ou OP 5 est terminée on revient à l'opération OP 3. La mémoire MV 2 contient également une table de description TDT de chaque tâche TC 1, TC 2 Cette table de description, montrée à la figure 5 b, est créée dynamiquement à chaque lancement de l'une des tâches TC 1, TC 2, c'est-à-dire qu'elle est établie chaque fois que le noyau NY fait appel à l'une des tâches TC 1 ou TC 2 TDT comprend les quatre grandes parties suivantes Partie PRCH cette partie définit le protocole utilisé sur le canal, ici le protocole propre aux réseaux CSMA/CD défini par la norme ISO 8802 3. Partie CEVO: cette partie contient les adresses des procédures traitant l'événement E Vo Elle est construite lors de l'opération OP 2 d'établissement de la procédure. Partie CEV 1: cette partie contient les adresses des procédures traitant l'événement EV 1 Elle est construite lors de l'opération OP 2. Partie PCA: cette partie contient les informations nécessaires à la tâche T Ci (TC 1, TC 2 > pour la gestion des buffers d'une trame. Le contrôleur DMA comporte au moins un registre contenant une pluralité de descripteurs de buffers DB Ai pour l'émission, DB Aj pour la réception, qui sont constitués de la manière suivante A l'émission, pour chaque trame CSMA/CD, chaque descripteur de commande DB Ai contient, pour chaque buffer B Fi constituant cette trame, l'adresse de ce buffer en mémoire MV 1, la longueur en octets de celui- ci, et d'autre part l'adresse que ce buffer occupera dans l'une ou l'autre des deux mémoires RAM 1, RAM 2 du contrôleur CONT C'est le second processeur MP 2 qui va chercher dans le descripteur de buffer D Bi correspondant au buffer B Fi, l'adresse de ce buffer dans la mémoire MV 1 ainsi que sa longueur en octets et les inscrit dans le descripteur de buffer DB Ai des registres du contrôleur DMA Par ailleurs, MP 2 alloue au buffer B Fi un emplacement déterminé dans l'une ou l'autre des deux mémoires RAM 1, RAM 2 et inscrit dans le descripteur de buffer DB Ai l'adresse de cet emplacement. En réception, le second processeur MP 2 divise chaque trame CSMA/CD en un certain nombre de buffers ayant une longueur fixe de 200 octets, c'est-à-dire ayant un format compatible avec les buffers de MV 1 Pour chacun de ces buffers, le second processeur MP 2 fait correspondre un emplacement déterminé B Fj auquel correspond un descripteur de buffer D Bj dans la première mémoire MV 1 Le second processeur MP 2 incrit dans le descripteur de buffer DB Aj 1 ' adresse de l'emplacement physique du buffer B Fj dans la mémoire MV 1 et la longueur de celui-ci (longueur fonction du résultat de la division de la trame reçue en une pluralité de buffers par MP 2) ainsi que l'adresse de l'emplacement physique occupé par ce buffer dans la mémoire RAM 1 (ou RAM 2). Il convient de préciser que chacune des mémoires RAM 1, RAM 2 est en fait divisée en deux zones mémoires, à savoir ZE 1, ZR 1 pour RAM 1 et ZE 2, ZR 2 pour RAM 2. Les zones ZE, et ZE 2 sont celles o sont stockées les trames destinées à l'émission, alors que les zones ZR 1 et ZR 2 sont destinées aux trames reçues. La capacité mémoire des zones ZE 1, ZE 2 est très sensiblement inférieure à la capacité mémoire des zones ZR 1, ZR 2 Ceci est dû au fait qu'il est possible de maîtriser le débit d'émission des différentes trames, alors qu'il est impossible de maîtriser le débit des trames arrivant en réception puisque CCS n'est pas maître du rythme et du débit d'émission des différents terminaux raccordés à l'un ou l'autre des deux réseaux RE 1, RE 2 ' Le fonctionnement du contrôleur de communication CCS sera mieux compris à la lumière des explications fournies ci-dessous en relation avec les Figures 6 à 10. On considère donc un événement EV O et on suppose que l'on veut émettre depuis CCS une trame bus TR 1 composée par exemple de 15 buffers BF 1 à BF 15 et qu'elle est émise par le canal C 1, grâce à la tâche TC 1 L'émission de la trame TR 1 comporte les différentes phases successives suivantes: lere phase PH 1 _: Le premier processeur M Pl prépare, sous les instructions du logiciel de communication CNS, à partir de l'instant to (Figure 9) le descripteur de commande COM 1 Les informations contenues dans ce dernier vont occuper en mémoire MV 1 un emplacement physique préparé à cet effet par CNS, lors de l'initialisation de la carte portant le contrôleur CCS Ainsi qu'il a été dit plus haut, à ce descripteur de commande COM 1 correspond une pluralité de descripteurs de buffer DB 1 à DB 15 correspondant chacun aux buffers BF 1 à BF 15 Les descripteurs de buffer sont donc préparés par le premier processeur MP 1 (Les emplacements physiques réservés aux descripteurs de buffer sont préparés, de même que les emplacements physiques des descripteurs de commande lors de l'initialisation de CCS) Par ailleurs, les octets correspondant aux 15 buffers de la trame TR 1 sont stockés dans chacun des emplacements physiques correspondant aux buffers BF 1 à BF 15 Dès que le descripteur de commande COM 1, les descripteurs de buffers BF 1 à BF 15 sont préparés, on passe à la phase PH 2. Phase PH 2: Le logiciel CNS met dans le FIFO FG, dans le premier élément E 1, l'adresse du descripteur de commande COM 1, ainsi que le n du canal correspondant, ici celui du canal Cl, c'est-à-dire 1 Une fois que l'élément E 1 est rempli par ces informations, le premier processeur M Pl envoie une interruption ITREQ au second processeur MP 2 à l'instant t 1 En ce qui concerne l'émission de la trame TR 1, le logiciel de communication CNS a fini momentanément son travail On passe alors à la phase PH 3 (instant tl). Phase PH 3: Lors de cette phase, les instructions exécutées par le processeur MP 2 sont celles de l'interface de communication IC Dès que l'interruption ITREQ a été reçue par MP 2, ce dernier transfère les informations contenues dans l'élément E 1 de FG dans FC 1 Il est clair qu'on peut transférer dans n'importe lequel des deux FIF Os de MV 2, à partir de FG, des informations contenues dans les éléments de ce dernier correspondant à des descripteurs de commande associés à l'un ou l'autre des deux canaux C 1, C 2 En effet, le processeur M Pl sous la conduite de CNS peut préparer plusieurs trames autres que TR 1, à savoir les trames TR 2, TR 3, etc, avec leurs descripteurs de commande et descripteurs de buffer associés Par ailleurs, pour un même canal, qu'il s'agisse de C 1 ou C 2, on peut transférer simultanément plusieurs adresses de descripteurs de commande ainsi que le n de canal correspondant dans FC 1, FC 2 correspondant à ces canaux C 1 ou C 2 Dès que le transfert de ces informations dans FC 1 et FC 2 est effectué, on passe à la phase PH 4 (instant t 2). Phase PH 4: L'interface de communication IC prévient la tâche TC 1 correspondante Les instructions fournies par celle-ci vont être effectuées par le second processeur MP 2 La tâche TC 1 va chercher l'adresse du descripteur de commande COM 1 dans FC 1, puis va analyser le descripteur de commande lui-même dans la mémoire MV 1 pour examiner la nature de la commande et savoir s'il s'agit d'une émission, d'une réception ou encore d'une commande immédiate La tâche TC 1 trouve dans ce descripteur de commande l'adresse du descripteur de buffer DB 1, va chercher dans celui-ci l'adresse du buffer correspondant BF 1 Elle met alors l'adresse de ce dernier dans le descripteur de buffer DBA 1 du contrôleur DMA Elle y met également le nombre d'octets correspondant à BF 1 qu'elle trouve dans le descripteur DB 1 La tâche TC 1 continue ainsi à chercher les adresses des buffers BF 2 à BF 8 dans les descripteurs de buffer DB 2 à DB 8 et transfère ces informations, ainsi que le nombre d'octets correspondant à ces buffers, dans les descripteurs de buffer DBA 2 à DBA 8 de DMA. Lorsque le descripteur de buffer DBA 8 est rempli, la tâche TC 1 constate que l'ensemble des buffers BF 1 à BF 8 constitue une trame de type CSMA/CD, le nombre total d'octets de ces 8 buffers étant supposé inférieur à 1500 La tâche TC 1 transfère les buffers BF 1 à BF 8 dans la mémoire vive, par exemple RAM 1, du contrôleur CONT 1. Elle indique alors à ce dernier l'adresse du début de la trame CSMA/CD ainsi constituée par les buffers BF 1 à BF 8 dans la mémoire RAM 1, et la longueur de cette trame, ces informations étant stockées par le contrôleur CONT 1 dans l'un des registres faisant partie du circuit intégré CE 1 On passe alors à la phase suivante PH 5 (instant t 3). Phase PH 5: La tâche TC 1 remplit les descripteurs de buffer DBA 9 à DBA 15 du contrôleur DMA de la même manière qu'elle avait rempli les descripteurs DBA 1 à DBA 8 Elle y inscrit donc les adresses des buffers BF 9 à BF 15 ainsi que le nombre d'octets que ceux-ci contiennent, et ce à partir des informations qu'elle trouve dans les descripteurs de buffer DB 9 à DB 15 de la mémoire MV 1 On suppose que les 7 buffers BF 9 à BF 15 constituent une seconde trame de type CSMA/CD, leur longueur totale étant supposée inférieure à 1500 octets On voit, par conséquent, que la trame bus TR 1 donne naissance à deux trames de type CSMA/CD Dès que les descripteurs de buffer DBA 9 à DBA 15 sont remplis, la tâche TC 1 procède au transfert des buffers BF 9 à BF 15 dans la mémoire vive RAM 1 Elle transfère également dans les registres du contrôleur CONT 1 (les registres du circuit intégré CE 1) l'adresse du début en mémoire RAM 1 de cette seconde trame de type CSMA/CD, ainsi que sa longueur en octets On passe ensuite à la phase PH 6 (instant t 4). Phase PH 6 _: Le contrôleur CONT 1 (en fait le circuit intégré CE 1) piloté par le microprocesseur MP 2 sous les instructions de TC 1 émet vers le réseau RE 1, successivement, les deux trames de type CSMA/CD constituées par les buffers BF 1 à BF 8 d'une part, BF 9 à BF 15 d'autre part On passe ensuite à la phase PH 7 (instant t 5). Phase PH 7: Dès que les deux trames CSMA/CD correspondant à la trame bus TR 1 sont émises, c'est-à-dire dès que le dernier buffer BF 15 de la seconde trame CSMA/CD est émis, la tâche TC 1 envoie dans le FIFO FREP de MV 1 le contenu de FC 1, c'est-à-dire l'adresse du descripteur de commande COM 1, plus le n du canal correspondant C 1. Parallèlement, la tâche envoie l'état d'émission de la trame bus TR 1 dans le descripteur de commande COM 1 En effet, ce descripteur comprend un endroit prévu à cet effet, vide au départ, c'est-à-dire au moment o CNS prépare COM 1 (voir phase PH 1). Une fois cela effectué TC 1 envoie au premier processeur M Pl un signal signifiant que l'émission de la trame bus TR 1 est terminée, ce signal étant appelé CPUREQ et étant émis à l'instant t 6 M Pl va alors lire dans FREP le contenu de FC 1 (voir ci-dessus) puis va lire le status du descripteur de commande correspondant CM 1 dans MV 1, c'est-à-dire l'état d'émission de TR 1, autrement dit, si TR 1 a été correctement émise ou non. Si TR 1 a été correctement émise, on passe alors à la phase PH 8 Sinon, on réémet la trame TR 1, à partir de l'opération PH 1. Phase PH 8: La tâche TC 1 va chercher dans FC 1 s'il existe une adresse d'un autre descripteur de commande et le n du canal correspondant Si cela est le cas, on passe à la phase PH 1 pour l'émission d'une autre trame bus, par exemple, TR 2 (descripteur de commande COM 2) Si cela n'est pas le cas, on passe à l'opération OP 3, c'est-à- * dire que la tâche TC 1 est mise en position d'attente d'événement. Il est clair que la tâche TC 2 peut travailler en parallèle avec TC 1. On considère désormais l'événement EV 1 et on suppose que le contrôleur CCS reçoit de l'un ou l'autre des deux réseaux RE 1 ou RE 2, une trame de type CSMA/CD, à savoir, par exemple, TR 101 comprenant 8 buffers BF 101 à BF 108 On suppose en outre que le processeur M Pl autorise, sur instruction de CNS, l'activation du canal C 1 en réception La réception de la trame TR 101 se déroule selon les phases successives suivantes: Phase PH 1 l (à partir de l'instant T 0): On suppose que la trame TR 101 provient du réseau RE 1 et est stockée par le contrôleur CONT 1 dans sa mémoire vive RAM 1 Le circuit intégré CE 1 de ce dernier prévient le second processeur MP 2 que cette trame est stockée dans la mémoire RAM 1 La tâche TC 1 correspondant au canal C 1, vient s'allouer en mémoire MV 1, un emplacement libre pour un descripteur de commande correspondant à la trame TR 101 O, soit COM 101, puis un emplacement libre pour un descripteur de buffer et met dans le descripteur de commande l'adresse de l'emplacement physique occupé par le premier descripteur de buffer, désigné par DB 101, puis s'alloue en MV 1 en tout 8 descripteurs de buffer, à savoir DB 101 (déjà nommé) à DB 108 Il convient ici de préciser que la mémoire MV 1 comprend une table de remplissage des divers emplacements mémoire qu'elle comporte Cette table est accessibledirectement, aussi bien par M Pl que MP 2 Ce dernier peut donc s'allouer des buffers, descripteurs de commande, descripteurs de buffer, en MV 1, sans en référer à MP 1 La tâche TC 1 chaîne entre eux ces descripteurs de buffer de la même manière qu'étaient chaînés entre eux DB 1, DB 2, etc Elle s'alloue également 8 buffers correspondant chacun à un descripteur de buffer, à savoir BF 101 à BF 108 On passe ensuite à la phase PH 12 (instant T 1). Phase PH 12: La tâche TC 1 va chercher l'adresse du début de la trame T Ro 101 stockée dans la mémoire RAM 1 ainsi que sa longueur en octets dans les registres du circuit intégré CE 1 o ces informations sont inscrites lors de l'arrivée de ladite trame dans RAM 1 Ayant à sa disposition de telles informations, la tâche TC 1 est dès lors à même de découper la trame en un nombre déterminé de buffers, ici 8 dans l'exemple de réalisation choisi, à savoir BF 101 à BF 108 A chacun de ceux-ci, la tâche fait correspondre un descripteur de buffer DBA 101 à DBA 108 dans le registre du contrôleur DMA Dans chacun de ces descripteurs, la tâche inscrit l'adresse occupée par le buffer correspondant dans la mémoire RAM 1, l'adresse que ce buffer doit occuper en mémoire M Vl, ainsi que sa longueur en octets Dès que chacun des descripteurs de buffer (DBA 101 à DBA 108) est rempli par la tâche TC 1, on passe à la phase suivante PH 13- Phase PH 13: (à partir de l'instant T 2) Les informations de la trame TR 1 o O sont transférées par la tâche TC 1 de la mémoire RAM 1 à la mémoire MV 1 dans les emplacements physiques de buffers BF 101 à BF 108. Lorsque le dernier buffer BF 108 est transféré dans l'emplacement physique qui lui correspond en mémoire MV 1, le contrôleur DMA émet une interruption de fin de réception ITFIN TC 1 vient mettre dans le descripteur de commande COM 101 l'état de la trame reçue, c'est-à- dire indique si cette trame a été correctement reçue et présente ou non des erreurs, ainsi que le nombre total d'octets que celle-ci contient On passe ensuite à la phase suivante PH 14 Phase PH 14:(à partir de l'instant T 3) La tâche TC 1 met dans le FIFO FREC de la première mémoire MV 1 l'adresse du descripteur de commande COM 101 ainsi que le n de canal correspondant à ce dernier, c'est-à-dire 1 On passe ensuite à la phase PH 15. Phase PH 15: (à partir du temps T 4) La tâche TC 1 libère les descripteurs de buffer qui avaient été préparés pour la réception de la trame TR 101 et qui n'ont pas été utilisés Dès qu'ils sont libérés, le processeur MP 2 émet vers le premier processeur M Pl une interruption CPUREQ à l'intant T 5 qui signifie que la totalité de la trame TR 101 est transférée dans MV 1 Cette dernière est alors à la disposition du logiciel CNS, pour son transfert vers le bus PSB M Pl va alors lire FREC et va ensuite lire le descripteur de commande correspondant COM 101 dans MV 1 et connaitre la nature de l'opération à effectuer sur la trame reçue TR 101 (envoi via PSB vers ORD 1 ou ORD 2, ou CC 51 etc, ou demande de réémission de la trame au terminal émetteur, si cette dernière comporte des erreurs). REVENDICATIONS 1 Contrôleur de communication (CCS) entre au moins un ordinateur (ORD 1, ORD 2) associé à un bus (PSB) et une pluralité de terminaux d'au moins un réseau local de type à méthode d'accès à test de porteuse et détection de collision (CSMA/CD), reliés entre eux par l'intermédiaire d'au moins une liaison comprenant au moins un canal de données (Cl, C 2) supporté par au moins un support de transmission (CX 1, CX 2, CX 3, CX 4, LE 2 LR 2), comprenant: une unité de base (BA) reliée au bus (PSB), qui gère et effectue le transfert des trames (TR 1, TR 2, TR 101) sur chacun des canaux de la liaison (le canal) (Cl, C 2), une unité périphérique (PER) reliée d'une part à l'unité de base (BA) et d'autre part au support de transmission, transmettant les données au réseau ou les recevant de celui-ci, caractérisé en ce que l'unité de base (BA) comprend un premier processeur de commande (MP 1) de transfert des trames depuis le bus (PSB) vers le réseau (RE 1-RE 2) et réciproquement, connecté au bus et associé à une première mémoire (MV 1) de stockage des trames avant leur transfert, qui gère le transfert de celles-ci vers les différents canaux (le canal) affectés (S) à celles- ci, un second processeur (MP 2) communiquant avec le premier et réalisant, à l'émission, dans un premier temps, la division des trames provenant du bus en trames de type CSMA/CD, et effectuant, à l'émission et à la réception, le transfert de chacune des trames CSMA/CD ainsi constituées (TR 1, TR 101), canal par canal (sur le canal), depuis la première mémoire (MV 1) jusqu'à l'unité périphérique (PER), et réciproquement, la partie périphérique (PER) comprenant un contrôleur CSMA/CD (CONT) pour l'ensemble des canaux (le canal), piloté par le second processeur (MP 2) et relié au support de transmission, comprenant au moins une mémoire de stockage de trames CSMA/CD (RAM 1, RAM 2), ces dernières étant stockées dans cette mémoire avant émission vers le réseau par le contrôleur CSMA/CD, ou avant leur transfert vers la première mémoire sous la conduite du second processeur (MP 2), en réception. 2 Contrôleur de communication (CCS) selon la revendication 1, caractérisé en ce que à l'émission, le second processeur (MP 2) transfère les données, sur chaque canal (sur le canal) paquet par paquet (buffer par buffer) depuis la première mémoire (MV 1) jusqu'à la mémoire de stockage de trames (RAM 1, RAM 2). 3 Contrôleur de communication (CCS) selon l'une des revendications 1 ou 2, caractérisé en ce que le second processeur (MP 2) en réception, découpe chaque trame reçue (TR 101 o) en un nombre déterminé de paquets (buffers) (BF 101 à BF 108) avant de transférer chacune des trames, buffer par buffer, canal par canal, depuis la mémoire de stockage de trame (RAM 1, RAM 2) jusqu'à la première mémoire MV 1. 4 Contrôleur de communication (CCS) selon l'une des revendications 1, 2, 3, caractérisé en ce que le premier processeur (MP 1) exécute son travail sur instruction d'un logiciel de communication (CNS) qui est inscrit, lors de l'initialisation du contrôleur (CCS) dans la première mémoire (MV 1). Contrôleur de communication (CCS) selon la revendication 4, caractérisé en ce que, à l'émission, le premier processeur (MP 1) reçoit les trames venant du bus (PSB), les divise en une pluralité de paquets (BF 1, , BF 15) qu'il stocke de manière aléatoire dans la première mémoire (MV 1) en une pluralité d'emplacements physiques différents, avant que ces paquets ne soient transférés par le second processeur (MP 2) vers la mémoire de stockage et regroupés dans celle-ci par ce dernier, pour former au moins une trame de type CSMA/CD. 6 Contrôleur de communication (CCS) selon l'une des revendications 4, 5, caractérisé en ce que le second processeur (MP 2) exécute son travail sur instruction d'une architecture micrologicielle (AML) qui est inscrite lors de l'initialisation du contrôleur de communication dans une seconde mémoire (MV 2) associée au second processeur (MP 2). 7 Contrôleur de communication (CCS) selon la revendication 6, caractérisé en ce que l'architecture micrologicielle (AML) comprend un noyau (NY), une interface de communication (IC), permettant le dialogue entre le logiciel de communication (CNS) et l'architecture (AML), et une pluralité de modules micrologiciels, ou tâches (TCO, TC 1, TC 2) en nombre au moins égal à celui des canaux, chaque canal étant associé à un module, lequel effectue le transfert des trames affectées à ce canal, depuis la première mémoire (MV 1) vers la partie périphérique (PER) et réciproquement, chaque module ou tâche étant indépendant des autres, son déroulement étant organisé en temps réel par le noyau (NY). 8 Contrôleur selon la revendication 7, caractérisé en ce que l'interface de communication (IC) communique, d'une part avec le noyau (NY), et d'autre part avec le logiciel de communication (CNS), acquitte les demandes provenant de ce dernier et les aiguille via le noyau (NY) vers les différentes tâches (TC 1, TC 2) correspondant aux différents canaux pour que ces dernières soient exécutées. 9 Contrôleur selon l'une des revendications 7 et 8, caractérisé en ce que les échanges entre l'unité de base (BA) et l'unité périphérique (PER) se définissent par des descripteurs de commande (COM 1, COM 2, C O M 101), correspondant à l'émission à une trame bus déterminée et en réception à une trame CSMA/CD déterminée et définissant les opérations devant être accomplies sur cette trame, laquelle est stockée dans la première mémoire (MV 1). Contrôleur selon la revendication 9, caractérisé en ce que chaque descripteur de commande (COM 1, COM 101) pointe sur un descripteur de buffer (DB 1, D Bn) définissant les caractéristiques du premier buffer (BF 1) de la trame associé au descripteur de commande (COM 1), chacun des buffers d'une trame étant associé à un descripteur de buffer, les descripteurs de buffer étant chaînés entre eux par des pointeurs de buffer (PCB 1, PCB 2,) définissant chacun l'adresse logique du descripteur de buffer chaîné à celui comportant ce même pointeur, chacun des descripteurs de buffer pointant vers le buffer correspondant par un pointeur de buffer définissant l'adresse logique de ce buffer en première mémoire (MV 1), les emplacements physiques des descripteurs de buffer et des buffers étant définis par le premier processeur (MP 1)