Brevet FR2481488A1 — publié le 19811030

"Système de multiprocesseur équipé d'un bus de données/ adresses commun." La présente invention concerne un système de machine à calculer comportant un certain nombre de premiers proces- seurs qui sont connectés les uns aux autres par: a - un bus de données pour transporter chaque fois un mot de données de plusieurs bits en parallèle entre un pre- mier processeur et au moins un autre dispositif du système de machine à calculer 7 b - un bus de commande comportant un certain nombre de lignes de commande connectées en parallèle; chaque proces- seur étant pourvu de premiers moyens pour, avant la réalisa- tion d'un transport de données souhaité par ce processeur, appliquer son indice de priorité à plusieurs bits à un bus d'arbitrage à plusieurs bits interconnectant les proces- -seurs, et le bus d'arbitrage étant pourvu de deuxièmes mo- yens qui permettent, dans le cas de plusieurs indices de priorité reçus en même temps, par la formation d'une fonc- tion logique pour chaque niveau de signification de leurs bits, de déterminer parmi ces indices de priorité celui qui est le plus élevé et d'appliquer un signal d'accusé de ré- ception au processeur qui y est associé à l'exclusion des autres processeurs. Un tel système est un système de multi- processeur. Ledit autre dispositif peut comprendre un deu- xième processeur, une mémoire, ou un appareil d'entrée/ sortie. Le transport de données peut s'effectuer à partir du processeur demandeur ou peut être précisément orienté vers ce processeur. Les processeurs peuvent être de struc- ture très simple, par exemple il peut s'agir de micropro- cesseurs ou de processeurs plus importants. Les processeurs peuvent être fonctionnellement équivalents, mais cela n'est pas nécessaire: des processeurs "centraux" (cpu), des pro- cesseurs d'entrée-sortie et des processeurs à buts spé- ciaux, par exemple des générateurs de fonctions, tels que des multiplicateurs, peuvent être présents ensemble. Les indices de priorité sont maintenant éprouvés les uns par rapport aux autres pour pouvoir attribuer le bus de données au processeur présentant la priorité la plus élevée: le bus de données peut ainsi, en principe, être attribué à une succession rapidement changeante de "premiers" processeurs. Un système de machine à calculer conforme à celui décrit dans le préambule est décrit dans le brevet des Etats-Unis d'Amérique n0 3 710 351. Ce système donne un bus de données séparé de 4 bits de largeur et un bus d'arbitrage parallèle au premier et également de 4 bits de largeur. Les bits de l'indice de priorité sont amenés ensemble à un montage de portes bloquantes. Les portes bloquantes sont connectées par leur sortie à la ligne de bits du bus d'arbitrage qui a une signification correspondante, et une entrée de blocage est connectée à la ligne de bits de la signification supé- rieure suivante, si elle existe. Les lignes de bits forment chacune pour elle-même, une fonction OU câblée. Ainsi, lorsqu'un indice de priorité "plus élevé" d'un autre proces- seur est produit sur le bus d'arbitrage, ceci bloque la production d'autres bits d'un indice de priorité "inférieur". Lorsque la situation s'est stabilisée, le bit d'arbitrage porte l'indice de priorité le plus élevé qui est actif à ce moment et le bus de données est libéré pour le transport de l'information à partir du processeur à indice de priori- té le plus élevé qui compte à ce moment. Au cas o dans-le système précité on ne sait pas d'a- vance quels indices de priorité peuvent se présenter en tête, il faut chaque fois attendre jusqu'à ce que, pour chaque ligne de bits de la succession, tous les temps de passage des signaux par le bus d'arbitrage soient écoulés. Ceci peut durer assez longtemps ce qui, pour des'%altres'' (masters) changeant rapidement de la ligne de bus de don- nées, peut signifier une charge de gestion (overhead) ap- préciable. L'invention a pour but de réaliser une diminu- tion de ladite charge de gestion par le fait que, dans de nombreux cas, sur base d'un bit ou de quelques bits de priorité très significatifs, on peut déjà déterminer le processeur qui est le nouveau "maître" du bus de données. L'invention réalise ce but par le fait qu'elle est caracté- risée en ce que chaque processeur comporte: c - des moyens de détection pour un signal de démarra- ge pour, lors d'un transport de données souhaité par le- processeur, fournir son indice de priorité au bus d'arbi- trage, et un élément de tenue du cycle comportant une série d'un certain nombre de positions, qui est placé par ledit signal de démarrage, dans la première position de ladite série et par un signal de progression, dans une position suivante de la série; d - un élément comparateur pour, sous la commande d'une position de l'élément de tenue du cycle, comparer chaque fois l'indice de priorité propre dans son ensemble à l'indi- ce de priorité formé au moyen de ladite fonction logique sur ledit bus d'arbitrage et, en cas d'égalité, former un signal de "gagnant"; e) pour, sous la commande d'une posi- tion "pl" de ladite série de positions de l'élément de tenue ème du cycle, comparer chaque fois le p bit à partir du haut du niveau de signification de l'indice de priorité propre au bit correspondant formé sur le bus d'arbitrage et, en l'absence du dit signal de "gagnant", en cas d'égalité, former ledit signal de "progression", mais, en cas d'inéga- lité, désactiver ses dits premiers moyens; f - un second détecteur pour détecter dans ledit sys- tème de machine à calculer un quelconque signal de "ga- gnant" produit par un autre processeur et désactiver alors ses dits premiers moyens; g - des troisièmes moyens pour, sous la commande de son propre signal de "gagnant", réaliser le transport de données souhaité et former, au terme de ce transport, ledit signal de démarrage à appliquer à tous les premiers proces- seurs du système de machine à calculer. Dans de nombreux cas, le processeur gagnant de l'arbitrage sera déjà connu après quelques positions de l'élément de tenue du cycle. Il convient de noter que sous ce rapport, la signification des bits de l'indice de priorité est déterminée par l'ordre dans lequel ils sont comparés lors de l'arbitrage en ques- tion en tant que pième bit. Dans d'autres circonstances, par exemple lors d'un premier arbitrage qui suit, le niveau de signification peut à nouveau être différent. Il est avantageux que le bus de données fonctionne comme bus d'arbitrage à partir dudit signal de démarrage jusqu'au dit signal de "gagnant". Ceci donne une limitation du nombre de lignes nécessaires, ou la possibilité d'utili- ser un plus grand nombre de processeurs pour un même nombre de lignes. Le système connu mentionné plus-haut peut alors comporter 256 processeurs au lieu de 16, tandis qu'en outre, la capacité de transport (throughput) pour les données est presque doublée. Par ailleurs, dans le cas d'un bus de don- nées et d'un bus d'arbitrage séparés, le transport et l'ar- bitrage peuvent en principe se chevaucher dans le temps, ce qui n'est cependant pas le cas dans la réalisation indiquée du brevet des Etats-Unis d'Amérique n0 3 710 351 précité. Il est avantageux que pour un indice de priorité de n bits (pl... pn), dans lequel pl est le plus significatif, les indices de priorité soient choisis dans l'ensemble (pl... pi, pi + l... pj, pj +1... pn), o i > O, j> i j 4 n. dans lequel les bits (pl... pi) peuvent avoir une valeur arbitraire, les bits (pi + 1... pj) ont tous la plus basse valeur binaire et les bits(pJ + i... pn) ont tous la plus haute valeur binaire, i ayant une seule et même valeur pour tous les processeurs et j ayant une valeur qui peut être choisie, de sorte que l'ensemble contient au maximum un nombre P = 2. (n+l-i) d'éléments à utiliser et que le nom- bre de positions de ladite série est au moins égal à (i+l). Le nouveau maître de bus est ainsi connu en un très petit nombre de positions de l'élément de pilotage de cycle lors- que le nombre de processeurs n'est pas trop grand. Pour (n+l) processeurs, il peut déjà toujours être connu dans la position 1, pour 2n processeurs, déjà dans la position 2. Dans la description qui précède, par le terme valeur binai- re "la plus haute", on suppose une valeur qui masque une autre valeur binaire sur le conducteur correspondant du bus d'arbitrage. Pour une fonction OU, sur ce conducteur un "1" est donc la valeur la plus haute et pour une fonc- tion ET, le "0l" est précisément la valeur la plus haute. L'invention sera expliquée plus en détail avec réfé- rence aux dessins. On examinera tout d'abord plus en dé- tail la technique connue. On expliquera ensuite le déroule- ment global des choses pour une opération d'arbitrage. Puis on indiquera un choix avantageux des indices de priorité. Finalement, on décrira une forme d'exécution préférée, à l'aide notamment d'un certain nombre de diagrammes de temps et d'état. La figure 1 illustre les phases successives d'un échan- ge d'information; la figure 2 illustre un dispositif conforme à la tech- nique connue; la figure 3 illustre un exemple du déroulement des choses pour une opération d'arbitrage (globale); la figure 4 illustre un choix avantageux des indices de priorité; la figure 5 indique le nombred'indices de priorité possibles dans diverses situations; la figure 6 illustre la connexion des processeurs aux bus d'arbitrage et de commande; - la figure 7 est un organigramme d'une partie élémen- taire de l'arbitrage; - la figure 8 est un diagramme de temps d'un système de "colloque" (handshake) à trois fils; les figures 9a à 9f illustrent six diagrammes de temps de parties d'une opération d'arbitrage; les figures lOa à 10f illustrent six diagrammes d'état se rapportant aux divers processeurs. La figure 1 illustre, pour plus de clarté, les parties successives d'un échange d'information entre un processeur et un autre dispositif, par l'intermédiaire du bus de don- nées commun. Dans l'intervalle de temps 54 a lieu l'arbi- trage; cette opération répond à la question de savoir quel processeur peut disposer du bus de données. Dans l'interval- le de temps 56-a lieu h sélection. Le processeur qui dispo- se du bus de données (maître) sélectionne un ou plusieurs autres dispositifs en vue d'un échange d'information. Dans l'intervalle de temps 58 a lieu le transport d'information proprement dit; pendant cette opération, le processeur "maître" peut être aussi bien émetteur que récepteur. Dans l'intervalle de temps 60 ont lieu d'autres activités con- cernant le transfert d'information, par exemple le renvoi, d'un signal de confirmation. Les intervalles 58 et 60 peu- vent ainsi également alterner à chaque fois. Dans l'inter- valle de temps 62 a lieu la libération: la réservation du ou des autres dispositifs est terminée et le processeur "maître" émet un signal indiquant que le transport de l'in- formation est terminé. Dans l'intervalle de temps 64, rien ne se produit; cet intervalle est présent pour que d'autres processeurs puissent détecter ladite libération, de telle sorte qu'immédiatement après, une nouvelle phase d'arbitra- ge puisse être mise en route. Ce qui précède suppose que toutes les opérations soient réussies. Par contre, il est par exemple aussi possible que le dispositif à sélectionner ne soit, par exemple, pas disponible, auquel cas, les opéra- tions qui se déroulent pendant les intervalles de temps 58, 60 et 62 sont supprimés: seul le signal de libération pour les autres processeurs est encore produit. Du point de vue fonctionnel, l'invention se rapporte principalement aux évènements qui se déroulent dans l'in- tervalle 54 de la figure 1. Sous ce rapport, la figure 2, à titre de récapitulation, illustre une partie du dispositif décrit dans le brevet des Etats-Unis d'Amérique n0 3 710 351 et, en particulier, un processeur unique avec le bus d'ar- bitrage (20) d'une largeur de 4 bits. L'élément 22 produit, sur ses quatre sorties, l'indice de priorité du processeur en question. Le bit le plus significatif est amené directe- ment au bus d'arbitrage, les bits restants l'étant par l'intermédiaire des portes 24, 26, 28. Sept portes ET (24, 26, 28, 30, 32, 34, 36) sont prévues, certaines entrées inverseuses de ces portes étant identifiées par un petit rond. De plus, trois portes NON-OU (NOR) 38, 40, 42 sont prévues. Lorsque le processeur en question a un "1' comme bit de priorité le plus significatif, ce bit est amené à la ligne 44, puis à la porte 30 qui est cependant bloquée par sa deuxième entrée inverseuse. La porte 24 reçoit ainsi un "O" sur son entrée inverseuse, de sorte qu'elle devient passante pour le bit moins significatif suivant de l'élément 22. Lorsque le bit d'adresse le plus significatif du proces- seur en question est un "0" et qu'il n'y a pas d'autre pro- cesseur produisant un "1" pour la ligne 44, la porte (porte ET) 301 reçoit un "O" sur son entrée inverseuse, mais éga- lement un " O" sur son entrée non inverseuse, de sorte que sa sortie reste "0". Celle-ci est aussi amenée à l'entrée inverseuse de la porte 24 qui reste alors également passante pour le bit moins significatif suivant de l'indice de prio- rité. Lorsque,dans le cas mentionné en dernier lieu, un autre processeur produit un "1" sur la ligne 44 à titre de bit le plus significatif de l'indice de priorité, la porte fournit un "1" logique qui bloque ainsi la porte ET 24. Ce "1" est aussi amené aux portes NON-OU 38 et 40 qui produi- sent ainsi un "O" pour bloquer respectivement les portes 26 et 28. Finalement, la porte 42 donne un "O" sur la borne 52, ce qui signifie que le processeur en question ne peut pas fonctionner comme maitre du bus de données (ici non représenté). De la même manière, il est, par exemple, possible que le processeur en question ait un "O" à titre de bit le moins significatif de l'indice de priorité, tandis qu'un "1" logi- que apparait quand même sur la ligne 50. La porte 42 pro- duit donc alors un "O" logique sur la ligne 52. Ceci n'est cependant pas décisif, parce qu'il est possible que le pro- cesseur en question ait, par exemple, l'indice-de priorité "0010" et l'autre (unique) processeur actif, l'indice de 2481-488 priorité "0001". Dans ce cas, le signal doit donc tout d'abord se stabiliser sur la ligne 44;-ce signal est trans- mis par l'intermédiaire des portes 30 et 24 à la ligne 46: lorsque le signal se stabilise ensuite sur cette ligne, il passe par l'intermédiaire des portes 32, 38 et 26 à la ligne 48. Lorsque le signal présent sur cette ligne se stabilise, la porte 34 est bloquée pour fournir un "0" comme les por- tes 30 et 32, de sorte que la porte 40 reçoit trois signaux logiques "0". Le "1" produit passe à la porte 28, mais y est retenu. De la même manière, le "1" est maintenant bloqué dans la porte de l'autre processeur correspondant à la por- te 28, de sorte que la ligne 50 parvient au potentiel "0". Ce n'est qu'alors que la porte 36 produit un "0" logique, grâce à quoi la porte 92 produit un "1" logique sur la bor- ne 52, de sorte que ce processeur peut précisément devenir le maître du bus de données. Cette dernière partie suppose encore que les processeurs fonctionnent de manière synchro- ne. Il est clair qu'il peut s'écouler beaucoup de temps avant que l'arbitrage soit réalisé. Lorsque les processeurs ne fonctionnent pas de manière synchrone, il faut,en outre, toujours attendre le plus lent. La figure 3 illustre un exemple d'un cas d'arbitrage conforme à l'invention. Le bus d'arbitrage a une largeur de 8 bits et il y a cinq processeurs A... E qui désirent disposer du bus de données. La colonne 70 indique les cinq indices de priorité des processeurs. Par opposition à la figure 2, les conducteurs du bus d'arbitrage forment la fonction ET binaire et la valeur binaire "0" indique donc une priorité plus élevée que la valeur binaire "1". La si- xième ligne donne l'information que porte le bus d'arbitra- ge. L'arbitrage se déroule selon une séquence-de phases im- paires et paires qui sont commandées par les positions cor- respondantes d'un élément de pilotage de cycle non repré- senté. L'émission de l'indice de priorité démarre sous la com- mande d'un signal de démarrage. Dans la phase 1 (la première phase impaire) l'indice de priorité propre (colonne 70) est 248 1 488 comparé dans chaque processeur à l'indice formé sur le bus d'arbitrage. Dans cet exemple, cette comparaison ne donne nulle part une concordance. C'est pourquoi, tous les pro- cesseurs passent à la phase 2 (première phase paire). Dans la phase 2 (colonne 72) le bit le plus signifi- catif de l'indice de priorité est comparé dans chaque pro- cesseur au bit correspondant formé sur le bus d'arbitrage. Pour les processeurs A, C et D, il y a concordance et rien ne se produit. Pour les processeurs B et E,il y a différen- ce, ce qui indique clairement que ces processeurs ne pro- duisent certainement pas l'indice de priorité le plus haut sur le bus d'arbitrage. Sous la commande du signal de "différence" ainsi produit, ces processeurs cessent dès lors de fournir leur indice de priorité au bus d'arbitrage. Ceci est réalisé par un tampon de sortie dit à trois états "tri-state" qui a une position dans laquelle la sortie est terminée par une haute impédance. Une autre solution con- siste à fournir au bus d'arbitrage un pseudo-indice de priorité formé exclusivement de bits "1". L'état non actif des processeurs B et D est, en outre, indiqué par de petites croix. Ces processeurs peuvent maintenant passer dans un état d'attente. Il est, par ailleurs, possible qu'ils rem- plissent alors une autre tâche, par exemple par le fait qu'ils comportent plusieurs processus pouvant être exécutés et qu'un nouveau processus est activé. L'invention n'a au- cun rapport avec cette dernière possibilité. Les proces- seurs dans lesquels une concordance est détectée passent à la phase 3 (phase impaire suivante). Dans la phase 3 se déroule la même opération (colonne 74) que dans la phase 1. La comparaison ne fournit aucune concordance non plus, de sorte que les processeurs A, C, D passent à la phase 4. Dans la phase 4 se déroulent les mêmes opérations que dans la phase 2, mais c'est maintenant le bit le plus si- gnificatif b un près de l'indice de priorité qui intervient dans la comparaison (colonne 76). Pour les processeurs A et C, il y a concordance et ces processeurs passent à la phase 5. Pour le processeur D, il y a différence et ce pro- cesseur cesse dès lors de fournir son indice de priorité au bus d'arbitrage. Dans la phase 5 (colonne 78) se déroulent les mêmes opérations que dans les phases 1, 3, le passage du processeur D à l'état non actif modifiant l'information sur le bus d'ar- bitrage. Pour le processeur A, lors de la comparaison, une différence est maintenant détectée et ce processeur devrait donc passer à la phase 6 pour comparer le bit le plus si- gnificatif à deux près de l'indice de priorité au bit cor- respondant présent sur le bus d'arbitrage. Ceci donnerait à nouveau une concordance. En poursuivant de cette façon, ce n'est qu'à la phase 8 (lors de la comparaison du bit le plus significatif à trois près de l'indice de priorité) qu'une différence apparaîtrait, de sorte que le processeur A deviendrait non actif. Dans le cas présent, on détecte cependant dans le processeur C dans la phase 5, que l'indice produit sur le bus d'arbitrage est le même que l'indice de priorité propre (flèche 80) . Cette concordance signale que le processeur C est le "gagnant" de l'arbitrage en question. Le signal de "gagnant" est envoyé à tous les processeurs encore actifs dans l'arbitrage (dans ce cas donc seul le processeur A). Ce dernier est donc, comme les processeurs B, D, E précédemment, amené dans l'état non actif. Le pro- cesseur C peut ensuite passer aux opérations à exécuter dans l'intervalle 56 de la figure 1. Dans la forme d'exécu- tion décrite plus loin, les phases 1/2., 3/4, etc., seront chaque fois exécutées ensemble. Dans l'arbitrage conforme à la figure 3, la décision n'est tombée que dans la phase 5. La figure 4 indique le choix des indices de priorité pour pouvoir prendre cette décision déjà dans un stade précoce. On part d'un bus d'ar- bitrage présentant une largeur de 4 bits. La première colon- ne indique les cinq indices de priorité possibles pour for- cer une décision déjà dans la phase 1. Dans ce cas, les va- leurs "0" et "1" peuvent être interchangées. L'indice de priorité i'oooo" est donc en relation avec la priorité la plus élevée, l'indice "1111" avec la plus basse, lorsque le bus d'arbitrage produit à nouveau la fonction ET. Il est possible d'omettre des éléments dans certains processeurs. Ainsi, le processeur à indice de priorité "0000" peut se présenter luimême en tant que "gagnant" directement sans comparaison: les moyens de comparaison peuvent donc être supprimés. Le processeur à indice de priorité "0001" net doit comparer que le quatrième bit, le moins significatif, le processeur à indice de priorité "0111" ne doit réaliser la comparaison que pour les trois derniers bits. Dans bon nombre de cas pratiques, tous les processeurs comporteront cependant toujours tous les éléments pour former un système modulaire: c'est principalement lorsque les éléments d'ar- bitrage sont réalisés en un seul circuit intégré par pro- cesseur que ce facteur a de l'importance. Dans un système non modulaire, il y a plus de possibilités de pouvoir indi- quer un gagnant déjà dans la phase 1 avec cinq indices de priorité différents. La cinquième colonne donne donc cinq indices de priorité. Le processeur de la ligne 90 se pré- sente lui-même directement comme "gagnant". Le processeur de la ligne 88 ne détecte que si le bit le plus significa- tif sur le bus d'arbitrage correspond à son propre bit le plus significatif: s'il en est ainsi, il se présente lui- même comme "gagnant". Le processeur de la ligne 86 agit de même pour les deux bits les plus significatifs, celui de la ligne 84 pour trois bits et celui de la ligne 82 pour les quatre bits. D'une manière correspondant à celle de la première- co- lonne, la deuxième colonne de la figure 4-indique les indi- ces de priorité possibles pour lesquels la décision tombe au plus tard dans la phase 3. Le bit le plus significatif est ici au choix un 0 ou 1, tandis que pour les trois autres bits, seuls les motifs 000, 001, 011, 111 sont admissibles. - Ceci donne au total 8 indices de priorité différents. La troisième colonne de la figure 4 donne tous les indices de priorité possibles pour lesquels la décision tombe au plus tard dans la phase 5. Les deux bits les plus significatifs doivent être choisis arbitrairement entre O et 1, tandis que pour les deux autres bits, seuls les motifs 00, 01, 11 sont admissibles. Ceci donne au total 12 indices de priorité différents. La quatrième colonne donne tous les indices de priori- té possibles pour lesquels la décision tombe au plus tard dans la phase 7. Les 16 possibilités sont alors toutes admises. On a constaté que pour n bits (ici n = 4) dans les indices de priorité pour lesquels la décision doit tomber au plus tard dans la phase (2i+1), au total P = 2 (n+1-i) indices de priorité différents sont possibles. La figure 5 donne un tableau de ces indices. La pre- mière colonne donne le nombre de bits des indices de prio- rité. La rangée supérieure donne la valeur de i en rela- tion avec ce qui précède. La figure donne pour les deux pa- ramètres, le nombre d'indices de priorité admissibles. Pour n=5 et pour 32 indices de priorité, c"est la phase 9 qui fournit la décision et, pour anticiper ce moment, un plus grand nombre de bits de priorité est chaque fois nécessai- re, finalement, 31 bits de priorité sont nécessaires pour que la décision puisse tomber dans la phase 1. La figure 6 illustre une forme d'exécution préférée par un schéma synoptique. Le système comporte un bus de données 124 de 8 bits. Cette ligne est aussi utilisée comme bus d'arbitrage. Le système comporte, en outre, un bus de commande de 5 lignes 126, 128, 130, 132, 134 (A, B, M, X, Y). La ligne A est utilisée par le maître du bus de données en vigueur, pour indiquer qu'un nouvel arbitrage peut être mis en route. Le processeur qui s'est détecté lui-même comme "gagnant" utilise la ligne B pour le signaler à tous les autres processeurs. Les lignes de commande M, X, Y sont utilisées pour la réalisation d'un colloque de synchronisa- * tion (handshake) trifilaire. La ligne M est commandée par le maître du bus de données en vigueur. Au cas o ce maître agit comme émetteur de données, un signal indique que les données présentes sur le bus de données sont valides. La ligne X et la ligne Y forment chaque fois une fonction "ET câblée" des signaux formés sur ces lignes par les proces- seurs. Un "1" logique ainsi formé est utilisé pour faire démarrer une opération de synchronisation élémentaire (Handshake) suivante. Une telle synchronisation trifilaire est dé=:ite entre autrs daw la denund de brevet frmiças diposée le 13.02.1980 No 80 03 110 au nomi de NV HIIPS'GIOEIIAMFABRIEKEN. L'agencement représenté comporte deux processeurs. Des appareils périphériques passifs, de même que d'autres pro- cesseurs possibles, ne sont pas représentés pour plus de simplicité. Chaque processeur comporte un élément 120 ou 122 qui effectue l'arbitrage proprement dit. De plus, cha- que processeur comporte un dispositif de traitement de don- nées, respectivement 121 et 123, qui est connecté par l'in- termédiaire de la ligne 117 ou 119 au bus de données 124. Les lignes 113/117 et 115/119 peuvent ainsi concerner des connexions physiques communes pour chaque processeur. Les dispositifs de traitement de données 121 et 123 peuvent être de construction classique. Les éléments 120, 122 com- portent, en outre, une ligne de requête d'entrée 136 ou pour un signal de requête, pour pouvoir utiliser le bus de données 124 et une ligne d'accusé de réception (acknowledge) 138) ou 142 pour signaler que ladite requête est admissible en première instance et que le système peut donc passer à la phase 56 de la figure 1. Dans une autre réalisation, les éléments 120/121 et 122/123 peuvent chaque fois être réalisés dans un seul dispositif. La figure 7 illustre un organigramme de l'exécution d'une opération d'arbitrage. L'opération débute dans le bloc 150, il s'agit d'une opération de "démarrage". L'ini- tialisation des variables d'état dans chaque processeur s'effectue dans le bloc 152: ceci est du au fait que, lors de l'enclenchement de la tension d'alimentation, l'état dans lequel ces variables apparaissent est sans importance. Ce "démarrage à froid" est aussi effectué sous la commande d'un.signal de repositionnement "global" qui peut être ame- né en commun à tous les processeurs. Le système peut aussi pénétrer dans la boucle lorsque le maître" du bus de don- nées en vigueur émet un signal de démarrage (démarrage à chaud, bloc 151). Dans le bloc 154, les variables d'entrée sont détectées, c'est-à-dire les bits de l'indice de prio- rité qui sont présents sur le bus de données/arbitrage; ces bits sont stockés dans une mémoire vive ou un registre. Lors du parcours de la boucle de cette figure, ils ne sont - 10 de cette façon chaque fois stockés qu'une seule fois. Dans le bloc 156, les fonctions logiques décrites ci-après des diverses variables d'état sont formées au moyen d'une for- mation de fonction combinatoire. Dans le bloc 158, les va- leurs retouchées de ces variables d'état sont stockées dans une mémoire vive ou dans un registre. Dans le bloc 160, les signaux à émettre par le processeur sont retouchés. Lorsque le processeur en question est "perdant", il retire son indice de priorité du bus d'arbitrage. Lorsque le processeur en question est "gagnant", il le signale à tous les autres processeurs. Les phases 2, 4... sont exécutées de cette façon, tandis qu'une phase " 0" correspondant du point de vue fonctionnel aux premières est aussi exécutée. Dans le bloc 160 est détecté si le processeur en question va par la suite fonctionner comme "maitre" du bus de données: ce bloc comporte donc les phases 1, 3... précitées-. En rela- tion avec ce qui précède, il convient de noter, en outre, que le résultat du traitement dans le bloc 160 ne dépend pas de ce que font es aires processeurs dans le bloc 158, de sorte que ladite phase "0" est, certes dans le temps, "avant" le bloc 160 mais "après" celui-ci du point de vue fonctionnel. Dans le bloc 162 est détecté si un quelconque (autre) pmcewseur s'est identifié lui-même comme "maître" du bus. S'il en est ainsi (Y), l'arbitrage est terminé et le système peut passer aux intervalles suivants (56 et au- tres sur la figure 1) d'une opération de transfert de don- nées, au moyen d'une action d'arrêt (164). Au cas o aucun maitre" n'est identifié, le système revient au bloc 154 pour parcourir une nouvelle fois la boucle. La figure 8 illustre un diagramme de temps d'un systè- me de colloque (handshake) trifilaire pour lequel les li- gnes M, X et Y de la figure 6 sont utilisées. La commande de la ligne M est assurée par le "maître" du bus seul; la commande des lignes X, Y est assurée par tous les autres processeurs communiquant ensemble; ceci peut aussi dans cer- tains cas ne concerner qu'un seul processeur. Un cycle est chaque fois amorcé par une transition de signal sur la li- gne M. Pour un flanc descendant sur la ligne M, tous les autres processeurs produisent un flanc de signal positif sur la ligne Y. La relation causale est indiquée par une flèche. Après l'extinction des phénomènes d'enclenchement, la ligne Y porte alors un signal de haut niveau. Des lignes en traits interrompus indiquent que certains des autres pro- cesseurs réagissent déjà plus tôt. Par le fait que la ligne Y forme aussi la fonction ET logique de tous les signaux qui y sont produits, ceci ne se remarque qu'à la réaction du dernier sous la forme d'une variation de potentiel de la ligne. Lorsque le processeur "maître" détecte la transi- tion sur la ligne Y, il produit lui-même un flanc montant sur la ligne M. Tous les autres processeurs réagissent alors par un flanc de signal sur la ligne X et aussi par un-flanc de signal descendant sur la ligne Y. Tous les autres pro- cesseurs se chargent toujours de ne produire chacun une haute tension que sur, au maximum, une des deux lignes X, Y. Les intervalles désignés par une flèche O.K. sont caracté- risés par le fait que l'état du bus de données ou du bus d'arbitrage est alors défini: tous les autres processeurs ont appliqué leur information de sortie sur le bus ou en ont reçu l'information. Un tel colloque de synchronisation trifilaire est bien connu, étant donné qu'il est utilisé dans le "IEEE 488 BUS STANDARD". Pour plus de simplicité, dans la description qui précède, la pente finie des transi- tions de signaux est négligée. Les figures 9a à 9f illustrent ensuite six diagrammes de temps se rapportant à des signaux dans une opération d'arbitrage. Les figures 10a à 10f illustrent six diagrammes d'état se rapportant aux divers processeurs qui prennent part à une telle opération d'arbitrage. En premier lieu, la figure 9f indique l'interaction entre le module d'arbitrage proprement dit (par exemple, l'élément 120 sur la figure 6) et le dispositif de traite- ment de données suivant (par exemple l'élément 121). La pre- mière ligne indique le signal de requête sur la ligne 136; la deuxième ligne, le signal d'accusé de réception sur la ligne 138. Le signal de requête passe à un haut niveau pour faire démarrer la phase d'arbitrage (54 de la figure 1). Lorsque l'opération de transport (phases 56, 58, 60) est ac- cordée, le signal sur la ligne d'accusé de réception passe à un haut niveau. Après la fin de l'opération de transport, le signal de requête est bas: la phase de libération peut alors débuter (62). Lorsque cette phase est aussi terminée, le signal d'accusé de réception est bas et l'amorce d'une opération d'arbitrage suivante (64) peut être lancée, cette opération démarrant lorsque la ligne de requête passe au niveau haut. La formation du signal ACK résulte des positions S8, S9 sur la figure lOc (voir plus loin). Parmi les processeurs, il y en a un qui, au moyen d'un signal câblé fixe, est prédestiné à être le maitre initial. Cet état initial est, par exemple, activé par un signal de repositionnement global, par exemple après enclenchement de la tension d'alimentation. Tous les processeurs sont ainsi placés dans la combinaison de positions Si, S6, S8, S1o, S15, S22, qui est illustrée sur les figures lOa à 10f. Dans chacune de ces figures prises isolément, les positions peuvent être définies par un certain nombre de bits de re- gistre, un état logique dans un registre étant détecté de la manière classique au moyen d'un décodeur qui y est con- necté. Les cinq positions de la figure lOa seront ainsi ren- dues par au moins 3 bits de registre. Lorsque le signal de repositionnement est terminé, l'arbitrage peut débuter, après que tous les processeurs aient aussi pris les six po- sitions de départ mentionnées plus haut. Auparavant, dans tous les processeurs, la ligne de sortie A est activée au moyen d'un "1"; les lignes B, M et X sont également activées par un "1" (figure 9a qui indique le démarrage de l'arbi- trage). Après un signal de "repositionnement", Y est aussi toujours égal à 1, ce qui est indiqué par une ligne inter- rompue sur la figure 9a. De plus, le bus d'arbitrage est piloté sur les huit lignes par un "1": D(0:7) =l. Après la fin du signal de repositionnement (RESET),tous les proces- seurs passent de la position Sl à la position S2 (Al est vrai, c'est-à-dire que la ligne A porte un "1", et l'initia- lisation du module en question est aussi achevée, c'est-à- dire que I est vrai). Ceci est indiqué sur la figure 10a qui indique le déroulement global des choses se rapportant aux stades successifs de la décision au sujet de l'arbitra- ge. La position S2 signifie alors: "je suis prêt à pouvoir prendre une décision". La position Sl a le caractère d'une position d'attente. Le processeur "maître" initial passe ensuite de la position S10 à la position S12 parce que la position S9 n'est pas vraie. En effet, I=IM=X=Y=i, tandis qu'il a quitté la position Sl, (Si). Le maître s'est ainsi manifesté comme tel et il ressort du tableau de la figure 10d que dans la position S12, le signal sur la ligne A devient "0" (voir aussi la figure 9a). En général, la figure S0d se rapporte a la partie "maître" du système de synchronisation trifilai- re. Le maître initial passe ensuite de la position S15 à la position S16, parce qu'il a quitté la position S10 (S10)est vrai) et qu'en outre, I et IM sont vrais. Dans la position S16, le "maître initial" envoie un "0" sur la ligne Y et cette transition est indiquée par une ligne interrompue sur la figure 9a. Tous les autres processeurs passent alors aussi de la position S15 à la position S16, parce que I et Y1 sont tous deux "vrais". L'initialisation de tout le système d'arbitrage est ainsi terminée: la position S15 ne joue ensuite plus aucun rôle. Lorsqu'un signal de requête est produit à ce moment l'arbitrage débute. Le déroulement des choses décrit ci-après est réalisé, aussi bien lorsqu'un seul processeur que lorsque plusieurs processeurs produisent un signal de requête. Lorsqu'une requête est produite, le processeur en question passe de la position S16 à la posi- tion S17. La figure loe correspondante illustre plus spé- cialement la partie "non maître" du système de synchronisa- tion trifilaire. Dans la position S17, le signal présent sur la ligne X est aussi égal à zéro. La figure 9a illustre en traits pointillés que ceci est réalisé par les divers processeurs avec des temps de retard différents et, en ou- tre, des pentes finies. Tous les processeurs qui ne produi- sent pas de signal de requête passent ensuite de la posi- tion S2 à la position Si et ce aussi longtemps que dure l'arbitrage (ceci vaut aussi pour le maitre). Simultanément, les processeurs d'arbitrage passent de la position S6 à la position S7, parce qu'ils possèdent aussi bien la position S2 que la position S17. La position S7 commande l'applica- tion au bus d'arbitrage de l'indice de priorité complet, voir figure 9a, ligne inférieure, o les traits parallèles obliques indiquent que les signaux présents sur les diver- ses lignes du bus d'arbitrage peuvent varier à différents moments et dans des sens différents. Lorsque ces signaux se sont stabilisés, certaines lignes du bus d'arbitrage peu- vent porter un signal haut et d'autres un signal bas. (Ceci est indiqué directement en dessous de la figure 9a par une double ligne continue). Tous les processeurs qui partici- pent à l'arbitrage passent alors (avec des retards diffé- rents) de la position S17 à la position S18 (figure 10e), à la suite de quoi ils rendent à nouveau haut le signal présent sur la ligne Y, car les positions S7 et S2 sont "vraies". Un peu plus tôt (sur base des positions S6 et S), les pro- cesseurs qui ne participent pas à l'arbitrage étaient aussi passés à la position S18, de sorte que quelque temps après, le signal présent sur la ligne Y devient à nouveau "1" (fi- gure 9a), puis tous les processeurs passent de la position S22 à la position S23. Les positions S23 jusque S30 y com- pris forment alors pour ainsi dire un compteur. De plus, le processeur "maitre" passe de la position S12 à la posi- tion S13, grâce à quoi la ligne M devient basse (figure 9a). Tous les processeurs passent ensuite de la position S18 à la position S19 et les processeurs participant à l'arbi- trage passent à la position S3 (les autres sont en effet dans la position Si). En S3 est prise la décision concer- nant le "gagnant" ou les "perdants" dé l'arbitrage. A cet effet, les fonctions combinatoires "g" et "h" sont tout d'abord évaluées. Ces deux fonctions sont définies dans la partie encadrée de la figure 1Ga. La fonction "g" indi- que si le bit de l'indice de priorité indiqué par la posi- tion du compteur de la figure lof diffère du bit en ques- tion présent sur le bus d'arbitrage. La fonction "h" indi- que s'il y a précisément égalité entre tous les bits de l'indice de priorité proprement dit (pO... D17) et les bits correspondants présents sur le bus d'arbitrage (Q10 15.. D17). La fonction logique h.g. ne peut donc pas être vraie. Les figures 9b et 9c donnent les diagrammes de si- gnaux respectivement pour une phase de décision "impaire" et pour une phase de décision "paire" de l'arbitrage. Ces décisions ne se distinguent l'une de l'autre que par la polarité du signal sur la ligne M et par l'échange-des modèles des signaux sur les lignes X et Y. - Lorsque la fonction "g" est vraie et que le processeur se trouve dans la position S19, cela signifie qu'il ne peut jamais devenir gagnant de l'arbitrage et qu'il revient donc à la position Si. Lorsque la fonction "h" est vraie et que le processeur se trouve dans la position S19, c'est lui le gagnant et il passe à la position S5. Au cas o aucune des deux fonctions "g", "h" n'est vraie et que le proces- seur se trouve dans la position S19, la situation pour le processeur en question reste sans décision et il passe à la position S4 (un autre processeur peut alors parfaite- ment encore s'être identifié comme "gagnant" et être passé à la position S5). Les figures 9b, 9c indiquent la situation dans laquelle aucun "gagnant" n'est identifié. Sur la figure 9b, le si- gnal présent sur la ligne M passe tout d'abord à un bas ni- veau (voir aussi la figure 9a). En ce qui concerne les processeurs encore participants, il se produit ce qui suit. A partir de la position S19, ils passent tout d'abord à la position S16 parce que S4 est vrai: le signal présent sur la ligne X passe à nouveau à "1". Au préalable, lorsque donc les lignes X et Y sont toutes deux à un bas niveau, un ou plusieurs processeurs participants peuvent reprendre leur indice de priorité, grâce à quoi le potentiel des différen- tes lignes du bus d'arbitrage peut se modifier. Ceci est indiqué sur la figure 9b de la même manière que sur la fi- gure 9a. Sous la commande de la position S16, les proces- seurs qui participent encore passent de la position S4 à la position S3 (pour un tour de décision suivant) et de la position S23 à la position $24 (cette dernière opération modifie le numéro d'ordre du bit auquel la fonction "9" se rapporte). Le processeur "maître" passe alors de la posi- tion S13 à la position S12, car la ligne X est haute et la ligne Y basse: la ligne M devient ainsi à nouveau haute et la phase de décision impaire (première, troisième, etc.) est terminée: lorsque la ligne M devient à nouveau haute, cela indique également le début de la phase- de décision paire suivante (deuxième, quatrième, etc.). Tous les processeurs encore participants passent tout d'abord de la position S16 à la position S17 (Ai et S2 ne sont pas vrais):la ligne X devient à nouveau basse: à partir de la position S17, la décision proprement dite est maintenant prise pour le passage aux positions Si, S4, S5. A ce moment, (au cas o aucun gagnant n'est présent), dans la position S18, le signal présent sur la ligne Y passe à nouveau à 1, et dans la position S13, le signal présent sur la ligne M passe à nouveau à 0, ce qui termine la phase de décision paire. Sous la commande de la position S18 on atteint aussi encore la position S25. Ainsi, lors du parcours des positions S16 à S19 incluse, deux opérations de décision sont chaque fois réalisées. Lorsque, dans ce qui précède, un autre processeur dé- tecte qu'il est le gagnant, il atteint la position S5, à la suite de quoi le signal présent sur la ligne B devient bas: ceci est illustré par une ligne interrompue sur les figures 9b, 9c. Lorsque ceci se produit, les autres proces- seurs en atteignant les positions S17 et S19 abandonnent directement la position S3 et passent à la position Sl. Ils passent en outre, sur la figure 10e, ou bien directement à la position S16 (sous la commande de la position S4) ou bien, par l'intermédiaire des positions S18, S19, à la position S16, comme expliqué ci-après plus en détail. Les figures 9d, 9e indiquent la fin de l'arbitrage res- pectivement pour une phase de décision impaire et pour une phase de décision paire. La figure 9d forme ainsi la suite de la figure 9b: la décision est donc tombée tandis que tous les processeurs participants se trouvaient dans les positions S3, S7, S8 et S19. Le processeur gagnant passe donc à la position S5, à la suite de quoi le signal présent sur la ligne B devient nul: ce processeur revient ensuite aussi dans la position de départ S6, à la suite de quoi il retire son indice de priorité du bus d'arbitrage. Tous les autres processeurs passent à la position Q16, soit sous la commande de la position S4, soit sousla commande de la po- sition S6. Ils atteignent cette dernière position, par le fait que, à partir de la position S3, 'il est possible d'at- teindre d'abord la position Sl et ainsi à nouveau la posi- tion S6. La ligne X passe ainsi au niveau "1". L'ancien "maître" de l'arbitrage passe maintenant de la position S13 à la position S12, grâce à quoi la ligne M devient haute. Tous les processeurs passent maintenant à la position S17, à la suite de quoi la ligne X devient baisse. Ils atteignent ensuite la position S18 parce que S6 est vrai et que S2 n'est pas vrai, et la ligne Y devient haute. L'ancien mai- tre de l'arbitrage passe maintenant à la position S14 et fait passer le signal sur la ligne M à un bas niveau. Sous la commande de ce signal, tous les processeurs qui partici- pent encore passent à la position S19 puis à la position S16, à la suite de quoi la ligne Y devient d'abord basse, puis la ligne X devient haute. L'ancien maitre peut mainte- nant passer à la position S14A dans laquelle il rend à nou- veau la ligne A haute. Ceci a pour conséquence que tous les processeurs passent à la position S22 (figure lof) et que l'ancien maître passe à la position S10. Il rend ainsi la ligne M à nouveau haute et ne peut dès lors plus être iden- tifié comme maître. Le nouveau maitreest ainsi connu et peut passer à la phase de sélection décrite plus haut. Une autre conséquence encore est que tous les processeurs par- viennent dans la position S2(excepté le nouveau maitre qui se trouve dans la position S-.- Finalement, le nouveau maître parvient dans la position S9 dans laquelle il produit le signal d'accusé de réception pour son propre dispositif de traitement de données (figure 1Oc). De plus, le nouveau maitre parvient, sous la commande de la position S9 et par l'intermédiaire de la position SlO, dans la position Sll. Une opération d'arbitrage suivante peut être mise en route lorsque disparaît le signal de requête du dispositif de traitement de données qui appartient au nouveau maître. Il se produit alors un nouveau démarrage conformément à la fi- gure 9a, le signal présent sur la ligne Y étant cependant bas depuis le début. Les transitions suivantes apparaissent alors encore: S9 - SB, S5 > S2, Sll 2 S12. La figure 9e est un pendant de la figure 9d, mais pour le cas o le gagnant se désigne lui-même dans la position S17. Dans ce cas, seules les positions S18 et S19 doivent être parcourues avant que la position S16 soit atteinte. Le déroulement des opérations est donc alors un peu plus rapide. REVENDICATIONS - 1.- Système de machine à calculer comportant un cer- tain nombre de premiers processeurs (120/121, 122/123) qui sont connectés les uns aux autres par: a - un bus de données (124) pour transporter chaque fois un mot de données de plusieurs bits en parallèle entre un premier processeur et au moins un autre dispositif du système de machine à calculer; b - un bus de commande (126, 128, 130, 132, 134) com- portant un certain nombre de lignes de commande connectées en parallèle; chaque processeur étant pourvu de premiers moyens (S7) pour, avant la réalisation d'un transport de données souhaité par ce processeur, appliquer son indice de priorité à plusieurs bits à un bus d'arbitrage à plusieurs bits interconnectant les processeurs, et le bus d'arbitrage étant pourvu de deuxièmes moyens qui permettent, dans le cas de plusieurs indices de priorité reçus en même temps, par la formation d'une fonction logique pour chaque niveau de signification de leurs bits, de déterminer parmi ces indices de priorité celui qui est le plus élevé et d'appli- quer un signal d'accusé de réception au processeur qui y est associé, à l'exclusion d'autres processeurs, caractérisé en ce que chaque processeur comporte: - c - des moyens de détection (Si) pour un signal de dé- marrage pour, lors d'un transport des données souhaité. par le processeur, fournir son indice de priorité au.bus d'ar- bitrage, et un élément de tenue du cycle (figure 9f) compor- tant une série d'un certain nombre de positions qui est pla- cé par ledit signal-ide démarrage dans la première position de la dite série et par un signal de progression dans une position suivante de la série: d - un élément comparateur pour, sous la commande d'une position de l'élément de tenue du cycle, comparer chaque fois l'indice de priorité propre dans son ensemble à l'indice de priorité formé au moyen de ladite fonction logique sur ledit bus d'arbitrage et en cas d'égalité, former un signal de "gagnant" (S5); * e - pour, sous la commande d'une position "p" de ladi- te série de positions de l'élément de tenue du cycle, com- parer chaque fois le p e bit à partir du haut du niveau de signification de l'indice de priorité propre au bit correspondant formé sur le bus d'arbitrage et en l'absence dudit signal de "gagnant" en cas d'égalité, former ledit signal de progression (S4), mais en cas d'inégalité désac- tiver (Si) ses dits premiers moyens: f - un second détecteur pour détecter dans ledit sys- tème de machine à--calculer un quelconque signal de "gagnant" (B=0) produit par un autre processeur et désactiver alors ses dits premiers moyens; g - des troisièmes moyens ( 117,-119) pour, sous la commande de son propre signal de "gagnant" réaliser le transport de données souhaité et former, au terme de ce transport ledit signal de démarrage à appliquer à tous les premiers processeurs du système de machine à calculer. 2.- Système de machine à calculer suivant la revendi- cation 1, caractérisé en ce que le bus de données-fonction- ne comme bus d'arbitrage à partir dudit signal de démarrage jusqu'au dit signal de "gagnant". 3.- Système de machine à calculer suivant la revendi- cation 1 ou 2, caractérisé en ce que pour un indice de priorité de n bits (pl... pn), dans lequel pl est le plus significatif, les indices des priorités sont choisis dans l'ensemble: (pl... pi, pi+l... pj, pj.+l... pn), o i > 0, j > i j