Brevet FR2053063A1 — publié le 19710416

La présente invention se rapporte à des systèmes d'ordinateurs digitaux et concerne plus particulièrement Tin système- à unités de traitement multiples dans lequel un nombre quelconque d'unités de traitement peut être ajouté au système» 5 On connait "bien les systèmes d'ordinateur à unités de trai tement multiples dans lesquels plusieurs unités de traitement partagent la même mémoire et les mêmes dispositifs d'entrée/sortie, Les imités de traitement multiples permettent l'exécution simultanée d'un certain nombre de programmes; cependant, dans les sys-10 tèmes antérieurs, généralement une unité de traitement opère en imité de traitement "chef d'orchestre" ou unité de traitement "maîtresse" pour traiter le programme de commande principal et attribuer les opérations spécifiques à une ou plusieurs unités de traitement "asservies" associées. Dans un tel agencement, les 15 fonctions d'exécution sont effectuées par l'unité de traitement maîtresse et toutes les autres unités de traitement fonctionnent simplement comme des extensions périphériques de l'imité de traitement maîtresseo Cependant, afin de prévoir un système complètement modulaire 20 dans lequel on peut incorporer un nombre quelconque d'unités de traitement, comptant me ou plusieurs de ces imités, dans le système, il est souhaitable que la mise en oeuvre, du hardware de chacune des unités de traitement soit identique. Ce qui signifie que chaque unité de traitement doit avoir une capacité égale pour 25 traiter tous les programmes y compris le maître programme de commande auquel incombe la responsabilité d'établir un programme de travail et d'attribuer les ressources du sytème. La présente invention s'applique à un système d'ordinateur à unités de traitement multiples, dans lequel un nombre quelcon-30 que d'unités de traitement identiques peut être incorporé dans le système sans avoir à modifier le hardware. Chaque unité de traitement a une capacité égale qui lui permet d'opérer sur l'un quelconque des programmes y compris les maîtres programmes de commande. De façon succincte, ceci est réalisé, en prévoyant un 35 jeu 70 25856 2 2053063 peut interroger l'une quelconque des ressources du système par l'intermédiaire du jeu de barres commun. Un circuit de priorité sous la forme d'une "boucle fermée reliant chacune des unités de traitement, fournit un bit de circulation qui est reçu de façon 5 séquentielle par chacune des unités de traitement,, Seule l'unité de traitement en possession du bit de circulation à accès au jeu de barres commune Pour une meilleure compréhension de l'invention, on se référera au dessin ci-joint dans lequel la figure unique est un 10 schéma synoptique d'un mode de réalisation préféré de l'invention. En se référant en détail au dessin, celui-ei représente un système d'ordinateur digital qui comporte un certain nombre d'unités de traitement identiques, trois d'entre elles étant indiqué de façon générale en 10, 12 et 14. le nombre de telles uni-15 tés de traitement dans le système peut varier d'un à un nombre quelconque requis I dans la limite de capacité prévue du système. Chaque unité de traitement peut être du type, par exemple, de celui décrit dans le Brevet n° 3.200*379 qui comporte la possibilité de rechercher des instructions à partir d'une mémoire 20 centrale (non représentée) et de conserver en mémoire chaque instruction dans un registre de commande 16 en vue de son exécution par l'unité de traitement. L'unité de traitement comporte normalement une imité arithmétique et un certain nombre de registres et de circuits de commande associés pour réaliser les 25 commandes. Deux registres, qui constituent normalement les deux positions les plus élevées d'une mémoire à empilage destinée à stocker des opérandes dans l'unité de traitement sont indiquées en 18 et 20, et sont normalement référencées respectivement sous le nom de Registre-A et Registre-B. 30 Chacune des unités de traitement est agencée de manière à communiquer avec le reste du système de l'ordinateur par l'intermédiaire d'un jeu de barres de balayage 22 auxquelles sont connectés les dispositifs de commande périphériques qui commandent le transfert de donnée entre les divers dispositififa 35 entrée/sortie et la mémoire centrale. Trois de ces dispositifs périphériques sont indiqués en 24, 26 etN28. Un exemple de tels dispositifs est l'unité de multiplexage décrite dans le Brevet n° 3.408.632. L'interrogation d'un dispositif particulier périphérique 40 à travers le jeu de barres de balayage par l'une quelconque des 70 25856 3 2053063 unités de traitement est initiée par une instruction spéciale qui peut être soit une instruction de balayage d'entrée soit une instruction de "balayage de sortie, lorsqu'une telle instruction est reçue dans le registre de commande 16 alors que l'intruction 5 suivante d'un programme est en cours d'exécution par une unité de traitement particulière, elle est décodée et fournit un signal de sortie sur l'une des deux lignes qui part du registre 16, indiquée respectivement comme ligne dé balayage d'entrée et ligne de balayage de sortie0 l'une ou l'autre de ces- instructions fait 10 que le contenu du registre 18 est appliqué au jeu de barres de balayage par l'intermédiaire d'un circuit 30 en réponse à la sortie d'un circuit OU 29 auquel sont connectées les lignes de balayage d'entrée et de balayage de sortie» le circuit ET 30 détecte si l'une ou l'autre des lignes de balayage de sortie et 15 de balayage d'entrée sont vraies et il détecte aussi si une ligne prioritaire est vraie0 Comme il sera expliqué ci-après, la ligne prioritaire sera vraie seulement dans une seule unité de traitement à la fois pour la commande di*. circuit prioritaire» le contenu du registre - A 18 est appliqué par l'intermédiai-20 re du jeu de barres de balayage 22 à chacun des dispositifs périphériques et de façon plus spécifique est appliqué à lin décodeur d'adresses dans chacun des dispositifs périphériques, tel qu'indiqué en 32 dans le dispositif périphérique 24» Si le contenu du registre - A 18 comporte l'adresse du dispositif pé-25 riphérique particulier, la sortie du décoder 32 est vraie. Par l'intermédiaire de dispositifs de commande appropriés, tels que le circuit ET 34 et le circuit ET 36, le décodeur 32 peut établir la connexion des lignes d'entrée ou de sortie du dispositif périphérique pour être connecté au jeu de barres de balayage 22 „ En 30 fonction de l'information enregistrée dans le registre -A 18, les dispositifs périphériques peuvent répondre d'un certain nombre de façons à l'interrogation posée par 1'usité de traitement d'une façon décrite plus en détail dans la demande de Brevet n° 35 déposée le : sous le titre : au noms de : A„ Hauck, William C. Price, et Jacob F„ Yigil. Au cours de l'opération de balayage de sortie, le contenu du registre—B est transféré par l'intermédiaire de portes vers 40 le jeu de barres de balayage 22 au moyen d'un circuit ET 36 qui 70 25856 4 2053063 est excité par la ligne âe balayage de sortie a partir d'un registre de commande 16» L'information du régistr-e -B 20 appliquée au jeu de barres de balayage est couplée par l'intermédiaire du circuit ES 36 et du dispositif périphérique particulier excité 5 par le contenu du registre--A 18, tel que détecté par le décodeur >2 dans les dispositifs périphériques respectifs» De façon analogue, lors d'une opération de balayage d'entréej la sortie du circuit ET 34 est couplée par le jeu de barres de balayage 22 au registre - B 20 par l'intermédiaire d'un circuit ET 38„ Le 10 circuit ET 38 est excité par la ligne de balayage d'entrée à partir du registre.16» Ainsi, chacune des unités de traitement a la possibilité d'interroger un des dispositifs périphériques de façon indépendante« Par exemple, chaque unité de traitement peut initier une opération d'entrée/sortie entre un dispositif 15 périphérique et une mémoire centrale en réponse à un ordre de commande du balayage de sortie ou peut interroger l'état des périphériques, le type d'-unité périphérique, ou les voies disponibles entrée/sortie en réponse à l'ordre de commande d'un balayage d'entrée, suivant un moyen décrit de façon plus spécifique dans 20 la demande de brevet mentionnée ci-dessus. • L'agencement du jeu de barres de balayage décrit ci-dessus donne à toutes les unités de traitement les possibilités d'exécuter le programme de commande maître puisque toutes' les unités de traitement ont un accès égal à toutes les ressources du sys— 25 tème. Ceci permet d'avoir un système, en ce qui coniceme le hardware, complètement modulaire, de sorte, que la dimension du système peut être augmentée sans aucune limite. Cependant, étant donné que plus d'une unité de traitement peut être en cours d'exécution, du maître programme de commande en même' temps il 30 est possible que plus d'une unité de traitement nécessitent les services du jeu de barres de balayage à un instant donné. De telles possibilités contradictoires sont résolues par un circuit prioritaire spécial qui conserve le principe d'une utilisation complète de modules pour le système. 35 Le circuit prioritaire est agëncé de telle sorte que chaque unité de traitement connectée à l'unité de traitement suivante, selon une chaîne 40 en boucle fermée. Le circuit prioritaire porte à l'intérieur de chaque unité de traitement'un circuit bas cul eur 42. Le circuit basculeur dans une seule des unités "de traitement 40 à la fois est remis en 1, le circuit basculeur correspondant dans 25856 5 2053063 chacune des autres unités de traitement étant remis à 0, le circuit basculeur 42 est normalement remis à 0 lorsque l'unité de traitement associée n'effectue pas une interrogation vers le jeu de barres de balayage 22. Dans ce but, les lignes de balayage de 5 sortie et de balayage d'entrée sont appliquées à un inverseur 44, la sortie de l'inverseur étant couplée au circuit basculeur 42 par l'intermédiaire d'un circuit ET 46. l'autre entrée du circuit ET 46 est dérivée du circuit basculeur prioritaire dans l'unité de traitement précédente de la chaîne par l'intermédiaire d'un 10 inverseur 48. Ainsi, si le registre de commande 16 ne contient pas un ordre de commande de balayage d'entrée ou de balayage de sortie, le circuit basculeur 42 est remis à 0 et demeure bloqué jusqu'à ce que la ligne prioritaire de l'unité de traitement 12 de la chaîne devient "vraie"„ Cette ligne est, non seulement 15 appliquée à l'inverseur 48, mais est aussi appliquée au circuit basculeur 42 pour faire passer la bascule en 1 en réponse à l'impulsion d'horloge suivante, chaque fois que la ligne d'entrée de la chaîne devient vraie. • Qaund le circuit basculeur 42 passe en 1, une ligne de 20 sortie indiquant que le circuit basculeur 42 est passant excite le circuit ET 30 et excité aussi le circuit ET 50 auquel est aussi appliquée la sortie de l'inverseur 44» Ainsi, si le registre 16 contient un ordre de commande de balayage de sortie ou de balayage d'entrée quand le circuit basculeur 42 est remis en 1, 25 le circuit ET 30 couple la sortie du registre - A 18 au jeu de barres de balayage 22 de la façon décrite ci-dessus. Le circuit basculeur 42 demeure ainsi jusqu'à ce que la sortie du circuit ET 46 devienne vraie, ce qui indique que les instructions de balayage d'entrée et de balayage de sortie ne se trouvent pas 3D dans le registre de commande 16» L'impulsion d'horloge suivante remet alors le circuit basculeur 42 à 0. Si le registre 16 ne contient pas d'ordre de commande de balayage d'entrée ou de balayage de sortie la porte ET 50 devient vraie, ce qui fournit un signal de sortie à l'unité de traitement suivante. La sortie 35 sur la chaîne demeure vraie jusqu'à la prochaine impulsion d'horloge qui bloque le circuit basculeur 42, mais la même impulsion d'horloge dans l'unité de traitement suivante dans la chaîne rend passante le circuit basculeur correspondant. Ainsi, effectivement, on fait passer un bit le long de la chaîne d'une 40 unité de traitement à l'autre ce qui rend passant de façon séquen— 70 25856 6 2053063 tielle chacun des circuits "basculeurs pour chaque intervalle d5impulsion d'horloge à moins que l'unité de traitement particulière ait reçu une instruction de balayage de sortie du registre de commande 16. Dans ce dernier cas, le hit demeure dans cette 5 unité de traitement particulière jusqu'à ce que l'instruction soit exécutée et remplacée par une nouvelle instruction dans le registre de commande 16. L'on voit de la description qui précède qu'un seul agencement prioritaire est prévu dans lequel un nombre d'unités de 10 traitement peut être augmenté de façon quelconque en incorporant chactme des unités de traitement dans la chaîne en "boucle fermée. Seule une unité de traitement à la fois peut interroger le jeu de barres de balayage 22. La présente invention n'est pas limitée aux exemples de réa-15 lisation qui viennent d'être décrits, elle est au contraire susceptible de variantes et de modification qui apparaîtront à l'homme de l'art. 7 2053063 PJSYîSjSICAgIGHS 1o Système d'ordinateur modulaire, caractérisé en ce qu'il comporte un certain nombre à5unités de traitement, un certain nombre de dispositifs périphériques, un jeu de barres commun con-5 necté à chacune des unités de traitement et des dispositifs périphériques, des moyens dans chacune des -unités de traitement pour coupler des signaux d'adresses au jeu de barres commun, des moyens dans chacun des dispositifs périphériques pour décoder les signaux d'adresses sur les jeux de barres communs, afin de mettre en oeu-10 vre de façon sélective certains des dispositifs périphériques particuliers en réponse aux signaux d'adresses décodés, les dispositifs périphériques mis en oeuvre étant en communication avec les unités de traitement par l'intermédiaire des jeux de barres communs et des moyens pour établir une priorité afin de contrôler 15 les moyens de couplage des signaux d'adresses, lesdits moyens de priorité comportant des dispositifs pour mettre en oeuvre les moyens de couplage des signaux d'adresses dans une seule unité ds traitement à la fois. 2„ Système selon la revendication 1, caractérisé en ce que 20 lesdits moyens de priorité comportent en outre des moyens destinés à mettre en oeuvre lesdits moyens de couplage de3 signaux d'adresses de façon séquentielle dans chacune des unités de traitement„ 3o Système selon la revendication 1, caractérisé en ce que 25 les moyens de priorité comportent dans chaque unité de traitement, des moyens pour conserver en mémoire un bit binaire, des moyens pour transmettre ledit bit dans les unités de traitement associées à tme autre Unité de traitement, lesdits moyens de mise en oeuvre comportant des dispositifs qui répondent à la présence dudit bit 30 dans les moyens de mémoire» 4o Système d'ordinateur modulaire, caractérisé en ce qu'un certain nombre d'unités de traitement sont disposées pour trans -férer des données de façon individuelle vers ou à partir d'un certain nombre de dispositifs, par l'intermédiaire d'un jeu de 35 barres commun, comportant, dans chaque unité de traitement, des dispositifs pour stocker un groupe de bits qui identifie quelques uns des dispositifs éloignés choisis, des dispositifs générateurs d'un signal de sortie qui indique qu'un transfert est demandé, un circuit basculeur de commande de priorité qui fournit un signal 40 de sortie qui indique que l'unité de traitement associée a priorité, 25856 8 2053063 des moyens» qui, en réponse au signal de transfert et au signal 4e priorité destinés à transférer par l'intermédiaire de portes le contenu desdits moyens de stockage vers chacun des dispositifs éloignés par l'intermédiaire dudit jeu de barres commun, 5 des dispositifs connectait lesdits "basculeurs de priorité des •.mités de traitement sur une "boucle3 des dispositifs aiguillant successivement chacun des circuits "foasculeurs vers la boucle en position ouverte ou fermée3 un seul circuit basculeur étant passant à la fois .et des moyens qui répondent au signal de trans-10 fert dans l'unité de traitement particulière destiné â inhiber 1® blocage du circuit basculeur de priorité.