Brevet FR2463951A1 — publié le 19810227

L'invention se réfère à un dispositif de gestion d'une liaison bidirectionnelle entre un appareil périphérique et un ordinateur, ce dispositif comportant un microprocesseur. Un ordinateur coopère avec divers types d'appareils périphériques pour pouvoir recevoir les données de base en vue d'un calcul désiré et pour pouvoir émettre les résultats de ce calcul. Parmi les appareils périphériques, on peut citer les machines à écrire, les bandes magnétiques ou un petit calculateur local servant de source de données pour l'ordinateur ou d'interface avec un réseau de transmission numérique. Chaque appareil périphérique est équipé d'un coupleur, qui assure la synchronisation avec l'ordinateur et l'adaptation des potentiels logiques. On a déjà conçu des dispositifs de gestion d'une liaison entre un tel coupleur et l'ordinateur à l'aide d'un microprocesseur, ou micro-ordinateur, qui est relié du point de vue commande à l'appareil périphérique et à l'ordinateur, et par lequel transitent les données dans les deux sens. L'utilisation d'un tel microprocesseur a l'avantage d'une grande flexibilité d'application, car l'adaptation à un certain type d'appareil périphérique est obtenue au niveau du logiciel (Software), c'està-dire de la microprogrammation du microprocesseur. Cependant, un tel microprocesseur doit être très puissant pour pouvoir gérer le trafic de données entre un ordinateur et un périphérique puissant. En outre, l'inscription de toutes les données à transférer dans un registre ou une mémoire du microprocesseur avant la ré-émission introduit un retard notable dans la transmission, qui parait d'autant plus inutile qu'une grande partie des données en transit n'est pas modifiée. L'invention vise un dispositif de gestion d'une liaison bidirectionnelle entre un appareil périphérique et un ordinateur à l'aide d'un microprocesseur, ce dispositif n'introduisant un retard sur les signaux à transmettre que lorsque les données sont à modifier. Ainsi, la puissance du microprocesseur et le retard subi par les données en transit sont réduits. L'invention a pour objet un dispositif de gestion d'une liaison bidirectionnelle entre un appareil périphérique et un ordinateur, ce dispositif comportant un microprocesseur, caractérisé par le fait que la liaison est constituée d'un bus de données, auquel ont accès l'entrée/sortie de l'ordinateur, l'entrée/sortie de l'appareil périphérique et l'entrée et la sortie "données" dudit microprocesseur. Ci-après, l'invention sera décrite plus en détail à l'aide d'un exemple de réalisation en référence à la figure unique qui montre sous forme schématique un dispositif de gestion selon l'invention. Le dispositif selon l'invention est inséré entre l'entrée/sortie d'un ordinateur (borne 1) et l'entrée/sortie d'un appareil périphérique (borne 2). La liaison entre ces deux bornes est constituée par un bus bidirectionnel 3, auquel sont également reliées l'entrée 4 et la sortie 5 d'un microprocesseur 6 d'une structure classique. Le bus 3 est susceptible de transmettre des données sous forme de neuf bits en parallèle, dont huit constituent un mot de données, et dont le neuvième bit est un bit d'imparité. Le microprocesseur 6 comporte une mémoire de commande 7, qui est une mémoire morte, permettant de stocker 2000 microinstructions de 28 bits chacune. Cette mémoire est associée dtune part à un registre 8 d'instructions, et d'autre part à un organe de calcul d'adresses 9. Le registre 8 commande par son contenu la suite des instructions. Ces commandes sont symbolisées sur la figure par des flèches qui sont associées à des inscriptions d'une lettre K suivie de chiffres, qui indiquent certains bits du contenu du registre dtinstructions 8. La partie "données" du microprocesseur 6 comporte en particulier une mémoire locale 10, deux registres de calcul 11 et 12 et un organe de traitement d'informations 13. En outre, on y voit un registre 14 pour les bits de poids fort de l'adresse de la mémoire locale 10, les bits de poids faible étant définis directement par les derniers quatre bits du registre 8. L'organe de traitement d'informations 13 permet de faire les opérations logiques ou arithmétiques sur l'une ou les deux données arrivant sur ces entrées 4 et 15. L'entrée 4 est constituée par l'entrée données du microprocesseur 6, et l'entrée 15 est reliée à la sortie d'un multiplexeur 16, qui transmet soit les informations sortant du registre 12 de calcul, soit huit bits du registre 8. Le contenu du registre 11 peut soit être rangé dans la mémoire locale 10, soit être émis sur le bus 3 à travers un multiplexeur 17 et la sortie 5 du microprocesseur. Le registre 12 peut être relu sur l'entrée 15 de l'organe de traitement. En outre, la sortie du registre 12 est reliée à une borne 18, par laquelle on émet des informations d'adresses sur le coupleur associé. Les bits de poids fort du registre 12 peuvent en outre être chargés dans le registre 14 qui définit un bloc de la mémoire locale. La commande de l'organe de traitement d'informations en fonction du contenu du registre 8 autorise ou non le contrôle de parité sur le bus. L'information issue de l'organe de traitement d'informations 13 peut être rangée dans le registre 11 ou dans le registre 12 ou elle sera perdue, selon la micro-instruction en vigueur. Les deux registres 11 et 12 peuvent être décalés d'un bit à gauche ou à droite. Ils sont considérés dans ce cas comme un registre unique de seize bascules. Le décalage est toujours un décalage logique ouvert. La mémoire locale 10 est composée de 256 cellules pour neuf bits chacune. Elle est adressée pour les quatre poids faibles directement par quatre bits de la micro-instruction, et pour les quatre bits de poids fort par le registre 14. Durant un cycle d'horloge, on peut accéder à la mémoire locale soit en lecture, soit en écriture. Le registre 14 permet de préserver lors d'un appel de sousprogramme ou d'un changement de traitement le numéro courant du bloc au travail en vue d'une commande ultérieure de retour. Le multiplexeur 17 sélectionne et émet sur ordre d'une microinstruction soit les signaux sortant de la mémoire locale adressée 10, soit le contenu du registre 11, pour être émis sur le bus. Le bus 3 est en technologie "trois états". On trouve donc des émetteurs et des récepteurs tout le long de son parcours. Parmi les émetteurs, on trouve le multiplexeur 17 (sortie 5), l'ordinateur (à travers la borne 1) et l'appareil périphérique (à travers la borne 2). Les récepteurs sont l'organe de traitement 13 (à travers la borne 4) et également l'ordinateur et le périphérique (à travers les bornes 1 et 2). Un seul des émetteurs du bus 3 peut être validé à la fois. En effet, les commandes d'émission sont issues d'un seul champs de la micro-instruction. Seul l'émetteur de l'appareil périphérique peut théoriquement entrer en conflit avec les deux autres, mais sa commande étant validée seulement lorsqu'il y a dialogue avec le microprocesseur, le contrôle d'exclusivité à ce niveau reste sous la responsabilité du microprogramme. L'organe de traitement d'informations 13 est toujours récepteur du bus 3, que celui-ci soit validé ou non. Le microprogramme exploite ou non le bus et contrôle ou non la parité en fonction de ce qui est demandé à l'organe de traitement d'informations 13. La liaison avec le coupleur à travers la borne 18 est une ligne unidirectionnelle à huit bits en parallèle, et permet la transmission des ordres ou adresses. Le coupleur répond par un acquittement, qui arrive par une borne 19 sur l'organe de calcul d'adresses 9. Le fonctionnement du dispositif selon l'invention est le suivant Si un transfert direct de données vers un périphérique est souhaité, l'ordinateur s'adresse d'abord au microprocesseur, qui est associé à ce périphérique. Dès que le microprocesseur est disponible, il invite l'ordinateur à lui communiquer - à travers la borne 4 - l'ordre de transfert. Le microprocesseur exécute ensuite cet ordre en signalant à travers la borne 18 au périphérique que les données, c'est-à-dire un octet de-bits, qui se trouvent sur le bus 3, sont à sa disposition. Le périphérique, resp. le coupleur répond par un acquittement à travers la borne 19. Si plusieurs octets sont à transférer en suite, le microprocesseur invite, après la réception du premier acquittement, l'ordre nateur à livrer un nouvel octet sur le bus 3. Puis il signale au périphérique concerné la disponibilité de cet octet, et ainsi de suite. On constate donc qu'en cas de transfert direct d'une succession d'octets vers un périphérique, ces données transitent sur le bus sans être mémorisées temporairement dans la mémoire du microprocesseur. Le bus 3 est donc "transparent" pour les données et le microprocesseur ne sert qu'à surveiller le transit. Bien sur, ces données peuvent faire, lors de leur transit sur le bus, l'objet d'une vérification du bit de parité par le microprocesseur, qui se trouve alors en dérivation sur le bus. Cette "transparence" du bus, c'est-à-dire sa capacité de faire transférer des données directement sur un périphérique, n'empoche pas le dispositif selon l'invention d'agir classiquement. Dans ce cas, le microprocesseur reçoit de l'ordinateur des données, il les mémorise et modifie par ses propres moyens de calcul et sous commande d'un microprogramme adéquat, et il remet enfin ces données modifiées sur le bus 3 pour que le périphérique les regoive. Le microprocesseur comporte en outre un décodeur 20 recevant certains éléments d'une micro-instruction et délivrant des signaux de commande pour provoquer des actions isolées dans des ensembles logiques externes. Par un organe indicateur 21, on peut, sous la commande de la micro-instruction en vigueur, faire valoir certains signaux externes pour modifier la suite des micro-instructions dans le cas d'un branchement conditionnel. Grâce à un dispositif de priorité 22, on peut interrompre un microprogramme en cours de traitement en préservant son contexte, et initialiser le traitement plus prioritaire correspondant à la demande de suspension en cours. Cette suspension n'est autorisée qu'à certains endroits du microprogramme. La structure du microprocesseur n'a été exposé ci-dessus qu'à titre d'exemple, et on peut, sans sortir du cadre de l'invention, utiliser un microprocesseur différent, en particulier en ce qui concerne le format des informations et les détails opératifs, pourvu que le branchement de ce microprocesseur par rapport au bus 3 ne soit pas modifié. Sous ces conditions, l'avantage principal de l'invention, à savoir la transparence et la rapidité du bus 3 reliant les bornes 1 et 2, est assuré. Lorsque les informations peuvent transiter entre les bornes 1 et 2 sans changement, le microprocesseur se contente d'observer cette opération de transit et de vérifier l'imparité des différents mots. Le microprocesseur n'émet les informations sur le bus 3 (à travers la sortie 5) que lorsque le microprogramme en cours exige une intervention. REVENDICATIONS 1/ Dispositif de gestion d'une liaison bidirectionnelle entre un appareil périphérique et un ordinateur, ce dispositif comportant un microprocesseur, caractérisé par le fait que la liaison est constituée d'un bus (3) de données, auquel ont accès l'entrée/sortie (1) de l'ordinateur, l'entrée/sortie de l'appareil périphérique (2) et l'entrée (4) et la sortie "données" (5) dudit microprocesseur (6). 2/ Dispositif selon la revendication 1, caractérisé par le fait, que l'entrée "données" (4) du microprocesseur (6) est reliée en permanence à l'organe de traitement d'informations (13) du microprocesseur (6). 3/ Dispositif selon l'une des revendications 1 et 2, caractérisé par le fait que le microprocesseur (6) est relié par des lignes de commande unidirectionnelles à l'appareil périphérique et à l'ordinateur, de façon de pouvoir émettre et recevoir des commandes et/ou conditions.