Brevet FR2691558A1 — publié le 19931126

DISPOSITIF DE GESTION DE LA PRIORITE D'ACCES A DES RESSOURCES COMMUNES, DE MODULES FONCTIONNELS REPARTIS DANS UNE PLURALITE D'UNITES LOCALES EN FORMANT DANS CHACUNE DE CELLES-CI, UNE 'DAISY CHAIN" LOCALE. La présente invention concerne un dispositif de gestion de la priorité d'accès à des ressources communes, de modules fonctionnels répartis dans une pluralité d'unités locales en formant dans chacune de celles-ci, une "daisy chain" locale. Elle s'applique notamment, mais non exclusivement, à l'interconnexion de plusieurs bacs renfermant chacun, un nombre limité de modules ou cartes d'instrumentation. Les modules de chaque bac sont interconnectés selon le principe de la "daisy chain", offrant ainsi une gestion de la priorité des modules du bac pour accéder à des ressources disponibles en local. Lorsque le nombre de modules à mettre en oeuvre dépasse la capacité d'un seul bac, il devient nécessaire d'utiliser plusieurs bacs interconnectés. Une première solution consiste à interconnecter les "daisy chains" de tous les bacs de façon à ne former qu'une seule "daisy chain". Si la mise en oeuvre de la "daisy chain" nécessite d'établir une communication entre modules, cette solution présente l'inconvénient de mobiliser les voies de communication de tous les bacs. Une autre solution consiste à faire intervenir un dispositif d'arbitrage qui interroge successivement tous les bacs activant ainsi la "daisy chain" de chaque bac pour déterminer le bac demandeur Cette solution présente l'inconvénient dêtre plus coûteuse en temps du fait que la recherche du module demandeur le plus prioritaire demande plusieurs interrogations. L'invention a pour but de supprimer ces inconvénients. Elle propose, d'une façon générale, un dispositif de gestion de la priorité d'accès à des ressources communes de modules fonctionnels répartis dans une pluralité d'unités locales qui forment dans chacune desdites unités, une "daisy chain" locale dans laquelle chaque module fonctionnel comprend un commutateur relié en série aux commutateurs des modules précédents et / ou suivants de la chaîne, ce commutateur présentant au moins deux états: un état fermé dans lequel il referme la chaîne en l'absence de demande émanant du module dans lequel il se trouve et un état ouvert dans lequel il interrompt la chaîne lorsqu'à la suite d'une demande, le module est dans l'attente d'une réponse émise par le premier module de la chaîne qui reçoit les demandes et a une fonction d'arbitre. Selon l'invention, ce dispositif est caractérisé en ce que: les unités locales sont interconnectées de manière à former une "daisy chain" externe fonctionnant sur un principe similaire à celui de la "daisy chain" locale, chaque unité locale comprend un coupleur ayant pour fonction: 2 - 3 2691558 soit d'assurer la continuité de la "daisy chain" externe lorsqu'aucun module de l'unité locale n'est demandeur, soit d'interrompre la "daisy chain" externe et de la connecter à la "daisy chain" locale lorsqu'un module de l'unité locale en a fait la demande et réciproquement, lorsqu'un module de l'unité locale a demandé une ressource disponible dans une autre unité locale. Un mode d'exécution de l'invention sera décrit ci-après, à titre d'exemple non limitatif, avec référence aux dessins annexés en lesquels La figure 1 est une représentation schématique d'une "daisy chain" formée par un ensemble de modules montés dans un même bac B; La figure 2 est le schéma de principe du dispositif de commutation permettant à chaque module d'agir sur la "daisy chain"; La figure 3 est le schéma de principe du dispositif de couplage permettant l'interconnexion de plusieurs bacs; La figure 4 est le schéma de principe de l'interconnexion de plusieurs bacs en "daisy chain" à l'aide de dispositifs de couplage correspondant à l'invention; et La figure 5 représente schématiquement un exemple de bus dont la structure correspond sensiblement au bus VME et sa connexion avec un module ou avec un dispositif de couplage. 4 - Un bac B tel que représenté par la figure 1 contient plusieurs modules ( 1, 2, 3, 4) interconnectés en "daisy chain" par le bus local BL (indiqué en traits interrompus). Chaque module comprend au moins trois bornes IN, RQ et OUT de connexion avec les autres modules. Le bus local BL est constitué d'au moins deux lignes La première ligne 5 relie les bornes RQ de chaque module à la borne IN du module A situé en début de chaîne et jouant le rôle d'arbitre Cette ligne est utilisée pour transmettre les demandes émanant des modules 2, 3 et 4 à l'arbitre A. La deuxième ligne constituée des éléments 6, 7, 8 relie la borne OUT de chaque module à la borne IN du module suivant, et forme ainsi la chaîne Cette ligne est utilisée pour transmettre les autorisations émanant du module arbitre A aux autres modules de la chaîne. Chaque module est muni d'un dispositif de commutation tel que représenté par la figure 2 constitué d'un double commutateur 9 présentant au moins 2 états: un état fermé dans lequel la borne IN est reliée à la borne OUT, et la borne RQ est ouverte indiquant au module arbitre A que le module n'a pas effectué de requête et un état ouvert dans lequel la borne IN n'est pas connectée à la borne OUT et un signal est envoyé sur la borne RQ indiquant au module arbitre A que le module est demandeur. Le fonctionnement de la "daisy chain" peut se décrire de la manière suivante: lorsqu'un module effectue une demande en envoyant un signal sur sa borne RQ, son dispositif de commutation 9 prend l'état ouvert Le module arbitre A reçoit cette demande et, s'il décide de la satisfaire, il envoie un signal sur sa borne OUT Ce signal est alors reçu et retransmis par chaque module de la chaîne jusqu'au premier module qui a ouvert la chaîne et donc effectué une requête. Ainsi, le module le plus prioritaire, c'est-à-dire le module servi en premier, correspond au demandeur situé le plus proche du module arbitre A. La figure 4 représente trois bacs BI, B 2, B 3 similaires au bac B représenté par la figure 1, interconnectés de manière à former une "daisy chain" analogue à celle représentée par la figure 1. Pour cela chaque bac doit disposer d'un dispositif de couplage Cl, C 2, C 3 qui permet de relier les bus locaux BL 1, BL 2 et BL 3 de chaque bac au bus externe BE (indiqué en traits interrompus) pour assurer la continuité entre les "daisy chains" locales et la "daisy chain" externe lorsque cela s'avère nécessaire. Selon le schéma représenté par la figure 4, chaque dispositif de couplage se comporte vis à vis du bus externe BE d'une façon similaire à un module d'un bac vis à vis de son bus local. Comme le coupleur Cl est situé en début de chaîne vis à vis du bus externe BE, il va jouer également le rôle d'arbitre du bus BE. Le dispositif de couplage tel que représenté par la figure 3 est composé de deux commutateurs 10 et 11. Le commutateur 10 permet de relier la borne IN' connectée au bus externe BE: - 6 - soit à la borne OUT' connectée au même bus lorsque le bac n'est pas destinataire, soit à la borne RQ" connectée au bus local BL du bac dans le cas contraire. Le commutateur 11 permet de relier la borne IN" connectée au bus local BL soit à la borne OUT" connectée au même bus en vue d'assurer la continuité de la "daisy chain" activée sur le bus local BL soit à la borne RQ' connectée au bus externe BE lorsqu'un module du bac contenant le coupleur a émis une demande à destination d'un module situé dans un autre bac. Le bus BX représenté par la figure 5 permet de constituer cinq "daisy chains" une première "daisy chain" à l'aide des bornes IACKIN, IACK et IACKOUT pouvant être affectée à la transmission des acquittements d'interruption et, quatre autres "daisy chains" à l'aide des bornes BGIN, BGREQ et BGOUT, chacune de ces bornes étant constituées de 4 fils pouvant être affectées au transfert des demandes BREQ et des autorisations d'accès BGIN, BGOUT au bus BX. Il regroupe également les 7 lignes IRQ de demande d'interruption, la ligne BUSY permettant d'indiquer que le bus est occupé, la ligne BERR indiquant qu'une erreur a été détectée sur le bus, la ligne DTACK permettant de valider un transfert de données, ainsi que les lignes utilisées au transfert de données DT et au transfert d' adrea QQ AD- Le principe énoncé par l'invention est particulièrement utile à l'acquittement des interruptions dans un système composé de bacs représentés par la figure 4, interconnectés par un bus externe BE du type représenté par la figure 5 et contenant chacun un ensemble de modules interconnectés par un bus local du même type. Dans un tel système, lorsqu'un module D demande une interruption, deux cas peuvent se produire: soit le module contrôleur C de l'interruption demandée se trouve dans le même bac que le module demandeur D tel que représenté par la figure 1, soit le module contrôleur C se trouve dans un autre bac que le module demandeur D tel que représenté par la figure 4. Le processus d'acquittement de l'interruption se déroule de la manière suivante dans les deux cas, le module contrôleur C de l'interruption activée demande l'accès au bus local BL en émettant un signal sur une des quatre lignes BREQ du bus BL. Ce signal arrive directement au module arbitre A situé en début de chaîne dans le bac. Lorsque le module arbitre A décide d'accorder l'accès au bus, il envoie un signal sur la borne BGOUT correspondant à la ligne BREQ utilisée pour la demande. Ce signal est reçu sur la borne BGIN correspondante et est retransmis par la borne BGOUT par chaque module du bac jusqu'au premier module demandeur du bus BL, suivant l'ordre dans lequel ils apparaissent dans la chaîne. 7 - 8 - Lorsque le module contrôleur C de l'interruption reçoit l'autorisation d'accès au bus, il le déclare occupé en émettant un signal sur la ligne BUSY du bus et écrit le numéro de l'interruption (de 1 à 7) sur les lignes de transfert d'adresses AD du bus. Il active en même temps le signal IACK d'acquittement d'interruption qui arrive directement au module arbitre A sur la borne IACKIN. L'arbitre A active la "daisy chain" associée au signal IACK en envoyant un signal sur sa borne IACKOUT connectée au bus local BL vers le module suivant dans la chaîne. Le processus de transmission du signal IACK est analogue à celui utilisé pour la transmission de l'autorisation de l'accès au bus. Dans le premier cas, c'est-à-dire, si le demandeur de l'interruption se trouve dans le même bac, le signal IACKIN est finalement reçu par le demandeur D de l'interruption, dont le numéro figure sur les lignes d'adresse AD du bus, situé le plus proche de l'arbitre A dans la chaîne. Le module demandeur D de l'interruption présente alors le vecteur de l'interruption sur les lignes de transfert de données du bus BL qu'il valide par le signal DTACK, permettant ainsi au contrôleur C de déclarer le bus libre en émettant le signal correspondant sur la ligne BUSY du bus BL. Ce processus correspond à celui défini par la norme VME. Dans le second cas, lorsque le module contrôleur C de l'interruption ne se trouve pas dans le même bac que le module demandeur D qui a activé l'interruption, le signal IACKIN est reçu par le module coupleur C 2 du bac B 2 o se trouve le module contrôleur C, qui adopte alors le même 9 comportement vis à vis du bus externe BE que celui d'un contrôleur d'interruption: le module coupleur C 2 demande l'accès au bus externe BE en envoyant un signal sur la borne BREQ du bus BE reçu directement par le module arbitre Cl du bus BE Lorsque celui-ci a décidé d'autoriser l'accès au bus BE, il active la "daisy chain" d'autorisation d'accès au bus BE entre les modules coupleurs de chaque bac en envoyant un signal sur la borne BGOUT connectée au bus BE. Lorsque le module coupleur C 2 reçoit l'autorisation d'accès au bus BE, il le déclare occupé en envoyant un signal sur la ligne BUSY, transfère le numéro d'interruption des lignes de transfert d'adresse AD du bus local BL 2 vers les lignes de transfert d'adresse AD du bus BE, envoie le signal IACK sur le BUS BE et se met en attente du vecteur de l'interruption. Le signal IACK arrive alors directement au module arbitre Cl via le bus externe BE Suivant que le module demandeur de l'interruption se trouve dans le bac Bl ou non, le module coupleur et arbitre Cl envoie le signal IACK, soit sur le bus local BL 1, soit sur le bus externe BE. Lorsque le module coupleur C 3 du bac B 3, contenant le module demandeur D, reçoit le signal IACKIN, il se comporte comme le demandeur de l'interruption vis à vis du bus externe BE et comme le contrôleur vis à vis du bus local BL 3: il demande l'accès au bus BL 3 en émettant un signal sur une des quatre lignes BREQ qui arrive directement au module arbitre A 3 Lorsque le module A 3 a décidé d'accorder l'accès au bus BL 3, il envoie un signal sur la borne BGOUT correspondante. Lorsque le module C 3 reçoit un signal sur sa borne BGIN correspondant à la ligne BREQ activée, il déclare le bus - BL 3 occupé en émettant un signal sur la ligne BUSY du même bus, transfère le numéro de l'interruption du bus BE vers le bus BL 3, et, envoie un signal sur la ligne IACK du bus BL 3 pour transmettre l'acquittement de l'interruption. Le signal IACK est alors reçu directement par le module A 3 qui active alors la "daisy chain" associée sur le bus BL 3. Lorsque le module demandeur D de l'interruption reçoit le signal IACK correspondant à l'interruption qu'il a demandée, il présente le vecteur de l'interruption sur les lignes de transfert de données DT du bus BL 3 qu'il valide par le signal DTACK permettant ainsi au contrôleur C de déclarer le bus libre en envoyant le signal correspondant sur la ligne BUSY. Le module coupleur C 3 transfère le vecteur de l'interruption du bus local BL 3 au bus externe BE. Le module coupleur C 2 transfère alors le vecteur de l'interruption du bus externe BE au bus local BL 2 qu'il valide en émettant le signal DTACK. Un avantage important de l'invention telle que précédemment décrite, consiste en ce que, durant l'acquittement par un contrôleur d'une interruption activée par un demandeur situé dans un autre bac, seuls les bus locaux aux deux bacs concernés ont été occupés. Le fonctionnement local des autres bacs n'a, par conséquent, pas été interrompu. il - REVENDICATIONS 1 Dispositif de gestion de la priorité d'accès à des ressources communes de modules fonctionnels répartis dans une pluralité d'unités locales qui forment dans chacune desdites unités, une "daisy chain" locale dans laquelle chaque module fonctionnel comprend un commutateur ( 9) relié en série aux commutateurs des modules précédents et / ou suivants de la chaîne, ce commutateur ( 9) présentant au moins deux états: un état fermé dans lequel il referme la chaîne en l'absence de demande émanant du module dans lequel il se trouve et un état ouvert dans lequel il interrompt la chaîne lorsqu'à la suite d'une demande, le module est dans l'attente d'une réponse émise par le premier module de la chaîne qui reçoit les demandes et a une fonction d'arbitre, caractérisé en ce que, d'une part les unités locales sont interconnectées de manière à former une "daisy chain" externe fonctionnant sur un principe similaire à celui de la "daisy chain" locale, et d'autre part, chaque unité locale (Bt, B 2, B 3) comprend un coupleur ayant pour fonction, soit d'assurer la continuité de la "daisy chain" externe lorsqu'aucun module de l'unité locale n'est demandeur, soit d'interrompre la "daisy chain" externe et de la connecter à la "daisy chain" locale lorsqu'un module de l'unité locale en a fait la demande et réciproquement, lorsqu'un module de l'unité locale a demandé une ressource disponible dans une autre unité locale. 2 Dispositif selon la revendication 1 caractérisé en ce que le susdit coupleur fait partie d'un module fonctionnel de la "daisy chain" locale et comprend le susdit commutateur ( 9). 12 - 3 Dispositif selon l'une des revendications 1 et 2 caractérisé en ce que les demandes émanant des modules fonctionnels ( 1, 2, 3, 4) d'une même unité locale (B) sont transmises au module fonctionnel ( 1) situé en tête de la "daisy chain" locale par l'intermédiaire d'une ligne locale ( 5) interne à la susdite unité locale (B). 4 Dispositif selon l'une des revendications 1 et 2 caractérisé en ce que les demandes émanant des coupleurs (Cl, C 2, C 3) situés dans les unités locales sont transmises au coupleur (Cl) de l'unité locale (Bl) située en tête de la "daisy chain" externe par l'intermédiaire d'une ligne externe aux unités locales. 5 Dispositif selon l'une des revendications précédentes caractérisé en ce que le susdit coupleur comprend deux commutateurs ( 10, 11), à savoir, un commutateur ( 10) qui permet de relier une borne IN' connectée à la "daisy chain" externe, soit à une borne OUT' connectée à la même "daisy chain" lorsque l'unité fonctionnelle n'est pas destinataire, soit à une borne RQ" connectée à la susdite ligne locale de l'unité fonctionnelle dans le cas contraire, et un commutateur ( 11) qui permet de relier une borne IN" connectée à la "daisy chain" locale, soit à une borne OUT" connectée à la même "daisy chain" en vue d'assurer la continuité de la "daisy chain" locale, soit à une borne RQ' connectée à la susdite ligne externe lorsqu'un module de l'unité fonctionnelle, contenant le susdit dispositif de couplage, a émis une demande à destination d'un module situé dans une autre unité fonctionnelle. 6 Dispositif selon les revendications précédentes caractérisé en ce que les modules fonctionnels d'une même unité locale peuvent être interconnectés de façon à former plusieurs "daisy chains" locales en parallèle couplées chacune à une "daisy chain" externe par l'intermédiaire du dispositif de couplage, 13 2691558 chaque "daisy chain" locale et externe ayant sa propre ligne de transmission des demandes au module situé en tête de chaîne, permettant ainsi de traiter simultanément plusieurs types de demandes. 5