Brevet FR2489986A1 — publié le 19820312

La présente invention est relative à une unité fonction- nelle d'entrée-sortie pour un ordinateur électronique, qu'on appellera par la suite module, comprenant une pluralité d'unités d'interface entrée-sortie et de circuits auxiliaires. Chaque unité d'interface réalise une voie de communication entre l'unité logique centrale (CPU) de l'ordinateur et une unité périphérique par rapport à l'ordinateur (ou vice-versa) ainsi que l'échange des données. Les opérations de transfert des données entre la mémoire centrale ou la CPU d'un ordinateur et les unités périphériques, â-travers les circuits d'interface, requièrent l'exécution d'une série d'instructions. Pour ne pas engager inutilement la CPU il convient de déléguer la gestion de ces opérations à des organes décentrés qui interagissent directement avec les cir- cuits d'interface. Ces organes décentrés, dits par la suite unités de contrôle, ont de préférence une structure simple, ce qui limite toutefois le nombre des circuits d'interface que chaque unité de contrôle peut gérer. La partie entrée-sortie de l'ordinateur prend ainsi une structure modulaire dans laquelle chaque module contient au moins une pluralité d'unités d'inter- face et l'unité de contrôle qui les gère; le message envoyé par la CPU contient l'adresse du module, celle de l'interface du module et l'instruction pour l'unité de contrôle de faire accom- plir une opération en activant le microprogramme approprié. Le module d'entrée-sortie pour un ordinateur électronique suivant la présente invention prévoit une pluralité de circuits d'interface connectés en parallèle entre eux à un bus intérieur bidirectionnel, des moyens pour la gestion d'une.pluralité de canaux unidirectionnels aptes à connecter directement les unités périphériques à la mémoire centrale, une unité de con- trôle qui, en réponse aux instructions envoyées à travers un bus de commandes par l'unité logique centrale, dite par la suite CPU, engendre les micro-ordres pour l'exécution des cycles d'entrée-sortie, et est caractérisée par le fait qu'elle compend: - une unité d'interface des données apte à connecter un bus de données bidirectionnel, connectée à la CPU, à un couple de bus intérieurs unidirectionnels; - une unité de gestion de périphériques qui, en réponse à des messages envoyés par la CPU à travers le bus des données bidirectionnel et l'un des bus unidirectionnels engendre le code de l'instruction à exécuter et sélectionne l'unité périphérique à laquelle ledit code est destiné; qui en réponse à une requête envoyée par un des circuits-d'interface ou par les moyens pour la gestion des canaux pour l'accès direct des unités périphéri- ques à la mémoire centrale engendre un code de requête qu'elle envoie à la CPU à travers un bus de commandes bidirectionnel; - une unité de terminaison qui gère lessignalisations d'erreur émises par d'autres circuits du module et par ses proprescircuits de contrôle, engendrant une requête transmise à la CPU à travers l'unité de gestion des périphériques; - une unité de découplement de bus apte à découpler entre eux les deux bus unidirectionnels et à les connecter au bus bidirectionnel auquel sont connectées les unités d'interface et l'unité de terminaison; - une unité de priorité apte à envoyer à l'unité de gestion des périphériques le code de l'unité d'interface la plus prioritaire et/ou les moyens pour l'accès direct à la mémoire, qui demandent à être connectés à la CPU, autorisant l'émission de la requête correspondante. L'invention sera mieux décrite avec référence à un exemple de réalisation illustré dans les figures ci-jointes dans les- quelles La figure 1 représente le diagramme à blocs d'un module suivant l'invention. 3. La figure 2 montre les circuits de contrôle de la correc- tion formelle des données. La figure 3 montre les circuits pour déterminer la priori- té. La figure 4 montre un diagramme à blocs simplifié de l'unité de terminaison UT. La figure 5 montre un diagramme à blocs simplifié de l'unité de gestion des périphériques UGP. Dans le diagramme à blocs de la figure 1 on a indiqué les blocs fonctionnels suivants: - interface des commandes IC: elle est intéressée par les signaux qui dirigent l'échange de signalisations et/ou d'instructions, à travers le bus de commandes BC, entre la CPU et le module; - unité de contrôle du module UCM: gère l'exécution des différents cycles d'entrée-sortie engendrant des micro- ordres MO qui, indiqués globalement dans la figure comme COM avec les instructions émises par l'interface des commandes IC, pilotent les autres organes du module: un exemple de réalisa- tion de l'unité UCM est illustré dans la demande de brevet déposée enFrance le 13 AOUT 1981 sous le NI 81 15686 - interfaces périphériques IP (IP1...... IPn: réalisent une voie de connexion entre la CPU et les périphériques P; un exemple de réalisation de ces dernières est illustré dans la demande de brevet déposée en France le 9 juillet 1981 sous le n0-81/13479 au nom de la demanderesse. - unité de priorité UP: identifie parmi les périphériques qui envoient la requête I le plus prioritaire, attribuant la priorité maximale à la requête de signalisation d'erreur du module d'entrée-sortie; - interface des données ID: connecte le bus général GB aux bus unidirectionnels IDB et ODB; DM: gère une pluralité de canaux unidirectionnels pour l'accès direct à la mémoire centrale; un exemple de réalisation de ce dernier est illustré dans la demande de brevet déposée en France le 9 juillet 1981 sous le n0 81/13478 au nom de la demanderesse; - unité de gestion des périphériques UGP: engendre le signal de sélection SI des interfaces périphériques et le code opératif CI des instructions à exécuter et, en réponse à la requête la plus prioritaire, elle engendre le code de requête RIC à envoyer à la CPU à travers l'interface des commandes BC; - unité de terminaison UT: gère les signalisations d'erreur engendrées dans le cadre du module; elle contient le registre de commande et le registre d'état du module, sembla- bles à ceux qui sont présents dans les unités d'interface IP; - unité de découplement de bus UDB-: découple entre eux les bus ODB et IDB connectés au bus bidirectionnel IOB auquel sont connectées les interfaces IP et l'uiiité de terminaison UT. Dans la figure 2 on a illustré schématiquement les unités d'interface des données ID-, de découplement de bus UDB et, uniquement en ce qui concerne la partie relative au contrôle de l'exactitude formelle des données, celle de terminaison UT. Chaque mot de données comprend un nombre préétabli de bits significatifs suivis d'au moins un bit de parité:'le diagramme de la figure 2 montre les circuits qui vérifient -là correction formelle des données échangées avec la CPU. Les bits significatifs des données envoyées sur le bus IOB par une interface périphérique IP sont envoyés aux circuits générateurs de parité GP1 et GP2 appartenant respectivement à l'interface des données ID et à l'unité de terminaison UT, à laquelle sont-aussi envoyés les bits de parité envoyés par IP: les bits de parité PA engendrés par GP2 sont comparés par le circuit-CP3 de l'unité de teminaison UT à ceux qui sont envoyés par IP, provoquant si cela est nécessaire l'alarme IOE, et par le circuit CP2 de l'interface des données ID à ceux qui sont fournis par CP1, provoquant si cela est nécessaire l'alarme IBE. Puisque même les interfaces périphériques IP sont munies de circuits pour le contrôle de la parité -(non indiqués dans la figure) une erreur éventuelle est signalée par l'interface périphérique IP et par l'unité de terminaison UT, mais elle ne peut pas se propager à la CPU parce que la parité de la donnée est régénérée par GP1 comparée à l'interface des données ID avec celle qui est engendrée par GP1 et ajoutée aux bits signi- ficatifs (émis par l'interface IP) avant d'envoyer la donnée à la CPU à travers le bus général GB. Les données provenant du bus général GB sont controlées en parité par le circuit CP1 de l'interface des données ID, qui peut engendrer le signal d'erreur GBE, par le circuit CP3 de l'unité de terminaison UT qui en compare la parité à celle qui est fournie par le circuit GP2 engendrant éventuellement le signal d'erreur IOE et, si elles sont destinées à une interface périphérique IP, par les circuits de contrôle de la parité de l'interface même. Une donnée erronée provenant du bus général GB active donc les circuits de contrôle de tous les organes du module auquel elle parvient. Même l'unité de terminaison UT échange des données avec le bus général GB dont elle reçoit la parole de commande, qui est écrite dans le registre de commande et auquel elle envoie le contenu du registre d'état: la parole de commande est contrôlée par les circuits CP1 et CP3 suivant les modalités illustrées précédemment, le contenu du registre d'état arrive, à travers les bus IOB et IDB au générateur GP2 de l'unité de terminaison UT qui en engendre la parité PA pour le circuit CP2 (le circuit CP3 est interdit). Tous les signaux d'erreur engendrés dans le module par- viennent à l'unité de terminaison UT o ils sont mémorisés dans le registre d'état et o ils provoquent l'émission de messages pour la CPU. Toutes les émissions de données et de commandes sur le bus général GB et sur le bus des commandes BC sont réalisées au moyen de stades pilotes de liane D et de récepteurs de ligne R, comme cela est aussi indiqué dans la figure pour les données. L'interface des commandes IC comprend donc les stades pilotes et les récepteurs utilisés pour l'échange de signaux avec la CPU. La disposition de circuit qui permet de mettre en évidence la plus prioritaire des requêtes I envoyées par les interfaces périphériques IP sera maintenant décrite avec référence au diagramme de la figure 3. Elle comprend une pluralité de cir- cuits décentrés PC, présents dans toutes les interfaces péri- phériques IP et dans l'unité de teminaison UT, et une partie centralisée indiquée dans la figure 1 par les blocs UP et, en partie, UGP. La requête RQ engendrée à l'intérieur de l'interface périphérique IP affiche,- en l'absence du signal i, les bistables FB et (à la première impulsion de l'horloge de synchronisme FS) FF qui engendre I interdisant la porte 1 et rendant apte la porte 2. Toutes les requêtes parviennent à un codeur à priorité PE qui fournit à chaque instant le code associé à son entrée la plus prioritaire; ce code, mémorisé dans le registre PRR, arrive au décodeur DEC qui active le fil SI correspondant à l'interface IP la. plus prioritaire en le rendant apte. Dans l'interface IP le signal SI passe dans la porte 2 pour constituer le signal de requête IRQ qui demeure jusqu'à ce que la CPU accueille la requête et envoie le signal IAK, ou bien jusqu'à ce qu'une autre interface plus prioritaire active son propre signal I. L'arrivée au codeur PE d'un signal I transmis par une interface plus prioritaire fait tomber le signal SI (et par conséquent IRQ) tandis que demeure la requête I qui sera acceptée à peine la CPU aura satisfait les requêtes envoyées par des dispositifs plus prioritaires. Les requêtes de DMA émises par les unités d'interface sont prioritaires par rapport aux requêtes I: elles confluent dans un codeur à priorité PD dont la sortie DP pilote un mul- tiplexeur MX qui la-connecte au registre PRR à peine la CPU a achevé le cycle en cours à l'instant o est émise une requête de DMA. Le module même, à travers l'unité de terminaison UT, accé- de aux codeurs PE et PD, dont il occupe l'entrée à laquelle est attribuée la priorité maximale. La requête de module est donc toujours prioritaire. La priorité d'une interface dépend uniquement de sa posi- tion physique dans le module et le fonctionnement correct du circuit de priorité est indépendant de la présence effective de toutes les plaques à circuit imprimé portant lep circuits d'interface. On obvie ainsi à l'un des principaux inconvénients présentés par une disposition de circuit de type connu dans laquelle un signal se propage d'un circuit à l'autre à partir du plus prioritaire, s'arrêtant lorsqu'il trouve une requête cette disposition de circuit, n'est pas seulement plus lente parce qu'il faut tenir compte du temps de propagation du signal, mais elle requiert aussi que toutes les plaques soient présentes ou que les plaques éventuellement emportées, pour quelque motif que ce soit, soient remplacées par des plaques appropriées qui garantissent la continuité électrique du circuit de priorité. Dans une forme préférée de réalisation les codeurs à priorité PE, PD relatifs aux requêtes I et aux requêtes de DMA, et le multiplexeur MX constituent le bloc.UP (figure 1) tandis que le registre PRR et'le décodeur DEC sont compris dans l'unité de gestion des périphériques UGP. Dans la figure 4 on a reporté un diagramme à blocs sim- plié de l'unité de terminaison UT. Le mot de commande envoyée par la CPU pour caractériser le module en l'autrorisant, ou pas, à remplir certaines fonc- tions, DMA, etc. arrive au bus IOB, est contrôlé en parité (GP3, CP3, signal d'alarme IOE) et, sur commande de la CPU, est écrit dans le registre RCM. Les signaux d'alarme engendrés par tous les organes d'auto- contrôle dont sont pourvues les unités fonctionnelles qui com- posent le module confluent dans le registre d'état RSM o ils sont mémorisés: la présence d'au moins une alarme active l'additionneur S qui engendre le signal RQ pour le circuit de priorité PC, non illustré dans le détail parce qu'il est essen- tiellement analogue à celui qui est présent dans les circuits d'interface IP dans la figure 3. La CPU peut demander de recevoir, à travers les bus IOB, IB et GB, le contenu du registre d'état (mot d'état). L'unité de terminaison comprend aussi un décodeur DEM qui, en réponse au code opératif CI des instructions que le module doit exécuter, active une de ses sorties IST; soit le décodeur DEM, soit le circuit de priorité CP sont rendus aptes par la présence d'un signal sur le fil SI. 8. La figure 5 montre un diagramme à blocs simplifié de l'unité de gestion des périphériques UGP, o on a indiqué - le registre SCR qui mémorise les adresses envoyées par la CPU à travers les bus GB et ODB: ces adresses sont décodées, en activant un des fils de sélection SI, par le même décodeur DEC auquel accède le registre PRR (figure 3); - le registre ISR qui mémorise le code opératif CI des instructions envoyées au module par la CPU; - la logique de génération des requêtes SRQ qui, en répon- se aux requêtes IRQ engendrées par le module ou par les inter- faces et à celles de DMA (DRQ) engendre les requêtes RIC à envoyer à la CPU. Dans une forme préférée de réalisation la logique SRQ comprend une ROM adressée par les requêtes IRQ et DRQ. Sans sortir des limites de l'invention il est possible pour le technicien de modifier le nombre et les fonctions remplies par les unités qui composent le module; citons uni- quement à titre d'exemple le fait de réunir en une seule unité fonctionnelle les. éléments centralisés (PE, PD, MX, PRR, DEC) du circuit de priorité ou bien le registre ISR et le décodeur DEM. REVENDICATIONS 1. Module d'entré-sortie d'un ordinateur électronique comprenant une pluralité de circuits d'interface connectés en parallèle entreeux à un bus intérieur bidirectionnel, des moyens pour la gestion d'une pluralité de canaux unidirectionnels aptes à connecter directement les unités périphériques à la mémoire centrale, une unité de contrôle qui, en réponse aux instructions envoyées à travers un bus de commandes par l'unité logique centrale, dite par la suite CPU, engendre les micro- ordres pour l'exécution des cycles d'entrée-sortie caractérisé par le fait qu'élle comprend: - une unité d'interface des données (ID) apte à connecter un bus de données bidirectionnel (GB), connecté à la CPU, à un couple de bus intérieurs unidirectionnels (IDB, ODB); - une unité de gestion des périphériques (UGP) qui, en réponse à des'messages envoyés par la CPU à travers le bus des données bidirectionnel (GB) et l'un des bus unidirectionnels (ODB) engendre le code (CI) de l'instruction à exécuter et sélectionne (SI) l'unité périphérique (IP) a laquelle ledit code (CI) est destiné; qui, en réponse à une requête (IRQ) envoyée par un des circuits d'interface (IP) ou par les moyens (DMA) pour la gestion des canaux pour l'accès direct des unités périphériques à la mémoire centrale engendre un code de requête (RIC) qu'elle envoie à la CPU à travers un bus de commandes (BC) bidirectionnel; - une unité de terminaison (UT) qui gère les signalisa- tiors d'erreur émises par d'autres circuits du module et par ses propres circuits de contrôle, engendrant une requête (IRQ) - transmise à la CPU à travers l'unité de gestion des périphé- riques (UGP); - une unité de découplement de bus (UDB) apte à découpler entre eux les deux bus unidirectionnels (IDB, ODB) et à les connecter au bus unidirectionnel (IOB) auquel sont connectées les unités d'interface (IP) et l'unité de terminaison (UT); - une unité de priorité (UP) apte à envoyer à l'unité de gestion des périphériques (UGP) le code (PR) de l'unité d'interface (IP) la plus prioritaire et/ou les moyens d'accès direct à la mémoire (DMA) qui demandent à être connectés à la CPU, autorisant l'émission de-la requête correspondante (IRQ, DRQ). 2. Module d'entrée-sortie suivant la revendication 1, caractérisé par le fait que l'unité de terminaison (UT) accède à l'unité de priorité (UP) avec la priorité la plus élevée, que les moyens d'accès direct à la-mémoire (DMA) sont prioritaires par rapport aux unités d'interface '(IP) et que l'ordre de priorité entre circuits analogues (IP ou DMA) n'est déterminée que par leur position dans le cadre. 3. Module d'entrée-sortie suivant la revendication 1, caractérisé par le fait que l'interface des données (ID) comprend: - au moins un couple de stade pilote de ligne (D)- récep- teur de ligne (R) apte à découpler entre eux les deux bus unidirectionnels (IDB, ODB) en les connectant au bus des données (GB); - un premier circuit pour le contrôle de parité (CP1), apte à vérifier l'exactitude formelle des données provenant du bus des données (GB) et à engendrer un premier signal d'erreur (GBE) - un premier générateur de parité (GP) qui, en réponse aux bits significatifs d'un mot de données provenant du bus bidirectionnel (IOB), engendre au moins un bit de parité qui est ajouté aux bits significatifs avant l'envoi du mot de don- nées au bus des données (GB); - un deuxième circuit pour le contrôle de la parité (CP2) qui compare la sortie du premier générateur de parité (GP1) aux (au) bits (PA) émis (o) par l'unité de terminaison (UT) engendrant un deuxième signal d'erreur (IBE). 4. Module d'entrée-sortie suivant la revendication 1, caractérisé par le fait que l'unité de terminaison (UT) et les unités d'interface (IP) comprennent un circuit de priorité (PC) constitué par - un premier bistable (FB) affiche par le signal présent à la sortie d'une première porte (1) à la première entrée duquel est appliqué un signal de requête (RQ) engendré dans le cadre de l'unité (IP, UT); - un deuxième bistable (FF) dont l'entrée des données est connectée à la sortie du premier bistable (FB), dont l'en- trée de synchronisation est.connectée à une horloge de synchro- nisme (FS) et dont la sortie (I) est appliquée à la deuxième entrée, inversée, de la première porte (1) et à une première entrée d'une deuxième porte (2); - la deuxième porte (2) dont une deuxième entrée est connectée à la sortie du premier bistable (FB) et dont une troisième entrée est connectée au fil de sélection (SI) de l'luiité d'interface (IP) ou de terminaison (UT), le signal de sortie de la deuxième porte (2-) constituant la requête (IRQ) envoyée à l'unité de gestion des périphériques (UGP); -.une troisième porte (3) autorisée par le signal présent sur le fil de sélection (SI) de l'unité d'interface (IP) ou de terminaison (UT) à faire passer un signal (IAK) émis par la CPU, après avoir reçu la requête, pour remettre à zéro le premier bistable (FB); caractérisé en outre parle fait que les sorties (I) de tous les circuits de priorité (PC)-sont connectées aux entrées d'un premier codeur à priorité (PE) dont la sortie est connectée à une première entrée d'un multiplexeur (MX) à la deuxième entrée duquel il est connecté à la sortie (DP) d'un deuxième codeur à prorité (PD) aux entrées duquel sont appliquées les requêtes (DMA) d'accès direct à la mémoire émises par les unités d'interface (IP)et par le fait que la sortie (PR) du multiple- xeur (MX), mémorisée dans un premier registre (PRR), parvient à un premier décodeur (DEC) qui active un des fils de sélection (SI). 5. Module d'entrée-sortie suivant les revendications 2 et 4 caractérisé par le fait que la'sortie (I) de l'unité de terminaison (UT) est connectée aux entrées les plus priori- taires du premier (PE) et du deuxième (PD) codeur à priorité. 6. Module d'entrée-sortie suivant les revendications 1, 3 et 4, caractérisé par le fait que l'unité de terminaison (UT) comprend: - un deuxième circuit générateur de parité qui, en réponse aux bits significatifs d'un mot de données provenant du bus bidirectionnel (IOB), engendre au moins un bit de parité (PA) envoyé au deuxième circuit pour le contrôle de parité (CP2) de l'unité d'interface des données (ID) et à un troisième circuit pour le contrôle de parité (CP3); - le troisième circuit pour le contrôle de parité (CP3) qui compare la sortie (PA) du deuxième circuit générateur de parité (GP2) aux (au) bits de parité du mot de données provenant du bus bidirectionnel (IOB), engendrant un troisième signal d'erreur (10E); - un registre de commande (RCM) apte à mémoriser un mot de commande envoyé par la CPU; - un registre d'état (RSM) apte à mémoriser les signaux d'erreur engendrés dans le module et dont le contenu (mot.d'état) est envoyé à la CPU en réponse à une instruction envoyée par la CPU même; - un circuit additionneur (S) qui, en réponse à la présen- ce d'au moins une erreur mémorisée dans le registre d'état (RSM), engendre le. signal de requête (RQ) pour le circuit de priorité (PC); - un deuxième décodeur (DEM), autorisé par le signal présent sur le fil de sélection (SI) de l'unité de terminaison (UT) et apte à décoder le code (CI) de l'instruction mémorisée dans l'unité de gestion des périphériques (UGP). 7. Module d'entrée-sortie suivant les revendications 1, 4 et 6 caractérisé par le fait que l'unité de gestion des péri- phériques (UGP) comprend: - le premier registre (PRR); - un deuxième registre (SCR) apte à mémoriser les adresses envoyées au module par la CPU à travers le bus des données (GB); - le premier décodeur (DEC) aux entrées duquel sont connectées les sorties du premier (PRR) et du deuxième (SCR) registre; - un troisième registre (ISR) apte à mémoriser les codes (CI) des instructions envoyées au module par la CPU; - une logique de génération de requêtes (SRQ) qui, en réponse aux requêtes (IRQ) engendrées par les unités d'inter- face (IP) et de terminaison (UT) et aux requêtes (DRQ) envoyées par les moyens d'accès direct à la mémoire (DMA), engendre un code de requête (RIC) à envoyer à la CPU. 8. Module ddentrée-sortie suivant la revendication 1 caractérisé par le fait que la logique de génération de requêtes (SRQ) comprend une mémoire limitée à la lecture (ROM) adressée par lesdites requêtes (IRQ, DRQ).