Brevet FR2482331A1 — publié le 19811113

La présente invention se rapporte à un procédé d'arbitration centralisée, ainsi qu'à un arbitreur centralisé pour un système multiprocesseur. On connaît d'après l'article des pages 154 à 158 du numéro d'avril 1978 de la revue "Computer Design" un dispositif dVarbi- tration pour un système multiprocesseur comportant plusieurs unités de traitement identiques9toutes reliées au même bus. Cet arbitreur connu, du type synchrone, permet d'établir une priorité tournante entre les différentes unités de traitement afin qu'aucune d'entre elles ne monopolise le bus, et afin que le trai- tement réalisé par le système multiprocesseur soit le plus rapide possible. L'arbitreur connu comporte essentiellement une mémoire morte dans laquelle sont programmées toutes les configurations possibles de demandes de réservation du bus et d'états corres- pondants. La taille de cette mémoire morte est fonction du nombre d'unités de traitement coopérant avec elle. Si le nombre d'unités de traitement est peu élevé, la capacité-de la mémoire morte nécessaire pour réaliser l'arbitreur est corrélativement faible, etl'arbitreur est donc peu onéreux et facile à réaliser. Par contre, si le nombre d'unités de traitement est élevé, il faut utiliser plusieurs mémoires, et la réalisation de l'arbitreur devient complexe et onéreuse. La présente invention a pour objet un procédé d'arbitration de plusieurs unités de traitement permettant une détermination simple et rapide des priorités, ainsi qu'un dispositif arbitreur pour la mise en oeuvre de ce procédé, ce dispositif devant être le moins encombrant et onéreux possible, et le plus simple possible à réaliser. Le procédé d'arbitration conforme à la présente invention consiste à répartir les unités de traitement en plusieurs groupes ou "niveaux" comportant, de préférence, le même nombre d'unités de traitement chacun, à attribuer selon un cycle prin- cipal à chacun de ces niveaux une seule ou plusieurs priorités, 248233 1 et à attribuer selon des cycles secondaires, une seule ou plusieurs priorités à chacune des unités de traitement à l'intérieur de chaque niveau. Selon un aspect préféré du procédé de la présente invention, on attribue, pour le cycle principal, une seule priorité à chacun des niveaux, et ce selon un ordre déterminé, fixé à l'avance, et on attribue, pour les cycles secondaires, dans chaque niveau, une seule priorité à chacune des unités de traitement, et ce selon un autre ordre déterminé, fixé à l'avance. Selon un autre aspect du procédé de l'invention, on répartit, dans chaque niveau ou dans certains d'entre eux, les unités de traitement en plusieurs sous-niveaux, on attribue, selon un cycle principal, à chacun des niveaux une seule ou plusieurs priorités, on attribue, selon des cycles secondaires, une seule ou plusieurs priorités à chacun des sous- niveaux, et on attribue, selon des cycles tertiaires, une seule ou plusieurs priorités à chacune des unités de traitement à l'intérieur de chaque sous-niveau. Selon un autre aspect du procédé de l'invention, on modifie en cours de traitement l'ordre des priorités du cycle principal et/ou des cycles secondaires et/ou des cycles tertiaires. Le dispositif arbitreur conforme à l'invention, coopérant avec p.n unités de traitement, ces unités de traitement étant réparties en p niveaux comportant chacun n unités de-traitement, et comportant pour chaque niveau un arbitreur élémentaire connu en soi dont les entrées sont reliées à des sorties "bus request" correspondantes des unités de traitement et dont les sorties sont reliées à des entrées "bus grant" correspondantes de ces mêmes unités de traitement, comprend p circuits OU à n entrées chacun, ces n entrées étant reliées respectivement, pour chacun des p circuits OU aux n sorties "bus request" des n unités de traitement de chacun des p niveaux, les sorties des p circuits OU étant reliées, par l'intermédiaire d'un registre, à p premières entrées d'une mémoire d'attribution de priorités aux niveaux dont une autre entrée est reliée, par l'intermédiaire du même registre, à toutes les sorties "bus busy", reliées ensemble, des p.n unités de trai- tement, et dont m autres entrées sont reliées-, par l'intermédiaire du même registre, à m sorties de cette mémoire, m étant égal à la partie entière, augmentée d'une unité, du logarithme à base 2 du nombre p, un dispositif de validation étant interposé, pour chacun des p niveaux, entre les n sorties de l'arbitreur élémen- taire et les entrées "bus grant" correspondantes des unités de traitement, p sorties de la mémoire d'attribution de priorités de niveaux étant reliées chacune à une borne de validation d'un dis- positif de validation correspondant, et une autre sortie de ladite mémoire étant reliée simultanément à toutes les entrées "bus clear" des p.n unités de traitement. De préférence, la mémoire d'attribution de priorités aux niveaux est une mémoire morte. Selon une variante de l'invention, l'une ou plusieurs des mémoires du dispositif arbitreur sont des mémoires vives reliées, de façon connue en soi, à un dispositif permettant d'en modifier le contenu. Selon encore une autre variante de l'invention, le dispositif arbitreur comprend dans chaque niveau et/ou pour l'ensemble des niveaux plusieurs mémoires mortes différentes reliées à un dispo- sitif sélecteur permettant de sélectionner l'une d'entre elles. La présente invention sera mieux comprise à l'aide de la description détaillée d'un mode de réalisation pris comme exemple non limitatif et illustré par le dessin annexé, sur lequel la figure 1 est un bloc-diagramme simplifié d'un système multiprocesseur conforme à la présente invention, et - la figure 2 est un schéma détaillé de l'arbitreur du système de la figure 1. Le système multiprocesseur partiellement représenté sur la figure I comporte un ensemble l de p.n unités de traitement iden- tiques réparties en p niveaux comportant chacun n unités de trai- tement. De préférence, si le nombre (p.n) est un carré parfait, on choisit p = n, et dans le cas contraire, on choisit p le plus voisin possible de n, p pouvant être supérieur ou inférieur à n. Dans le cas représenté sur la figure 1, les unités de traitement sont référencées UC I à UCI.n pour le premier niveau, UC2.1 à UC pour le deuxième niveau, et ainsi de suite jusqu'au 2.n niveau de rang p pour lequel les unités de traitement sont réfé- rencées UC à UCp n2 les niveaux de rang I à p étant respecti- p p' vement référencés NI à Np. Chacune des unités de traitement de l'ensemble I comporte, en particulier, deux sorties et deux entrées destinées à être reliées à un dispositif arbitreur centralisé 2 commun à toutes les unités de traitement. Les deux sorties sont référencées BR (Bus Request, c'est-à-dire demande d'utilisation du bus) et BB (Bus Busy, c'est-à-dire bus occupé), et les deux entrées sont référencées BG (Bus Grant, c'est-à-dire dire bus accordé) et BC (Bus Clear, c'est-à-dire dégagement du bus). Les sorties BR des unités de traitement UC.1 à UCp.n sont reliées chacune à une entrée correspondante de l'arbitreur 2, ces entrées étant respectivement référencées BR1.I à BRp. Les entrées BG des unités de traitement UC à U.C sont reliées chacune 1.1 p.n à une sortie correspondante de l'arbitreur 2, ces sorties étant respectivement référencées BGi. à BG.n Ii p.n Les sorties BB de toutes les unités de traitement sont reliées ensemble et à une entree commune BBA de l'arbitreur 2. Les sorties BC de toutes les unités de traitement sont reliées ensemble et àune entrée 'commune BCA de l'arbitreur 2. On a partiellement représenté sur la figure 2 le schéma d'un mode de réalisation de l'arbitreur 2 dans le cas o le nombre (p.n) d'unités de traitement est de 16, cas o l'on choisit p = n = 4. Pour la clarté du dessin, seules les entrées BR I. à BR.4 et les sorties BG I. à BG.4 relatives au niveau I ont été représentées, les circuits tels que les circuits 3 à 6 reliant ces entrées à ces sorties étant identiques pour tous les niveaux. Les quatre entrées BR i. à BR.4 de l'arbitreur 2 sont reliées aux quatre premières entrées d'un registre 3 à sept entrées. Les sept sorties du registre 3, correspondant respectivement à ses sept entrées, sont reliées à sept entrées d'adressage d'une mémoire morte 4. La mémoire morte 4 comporte sept sorties dont les quatre premières sont reliées à des entrées correspondantes d'un second registre 5. Les trois autres sorties de la mémoire 4 sont reliées respectivement aux trois autres entrées du registre 3. Les quatre 2 482331 sorties du registre 5, correspondant à ses quatre entrées, sont reliées à quatre entrées correspondantes d'un quadruple amplifi- cateur logique (connu sous la dénomination "buffer") 6 à trois états. Les quatre sorties de l'amplificateur logique 6, corres- pondant à ses quatre entrées, sont référencées BG 1O à BG 4 respectivement. Les quatre entrées BR I à BR 4 sont également reliées aux quatre entrées d'un circuit OU référencé 7. La sortie du circuit 7 est reliée à une borne ENI qui est elle-même reliée à la première entrée d'un registre 8 à sept entrées. Les trois entrées suivantes du registre Q sont reliées à des bornes EN2 à EN4 qui sont elles- mêmes reliées chacune, à la sortie d'un circuit OU (non représenté), luimgme relié de la même façon que le circuit 7 aux entrées BR relatives aux niîveaux 2 à 4 respectivement. Une autre entrée du registre 8 est reliée à une borne d'entrée référencée BBA. Les sept sorties du registre 8 sont reliées à sept entrées d'adressage d'une mémoire morte 9 à sept sorties. Les quatre premières sorties de la mémoire 9 sont reliées à des bornes VGI à VG4 respectivement. La borne VGI est reliée à l'entrée G de commande de validation commune aux quatre amplificateurs logiques composant le quadruple amplificateur 6. Les bornes VG2 à VG4 sont reliées, de la m&me façon que la borne VGI, aux bornes G des ampli- ficateurs (non représentés), tels que l'amplificateur 6, pour les niveaux 2 à 4. Une autre sortie de la mémoire 9 est reliée à une borne de sortie référencée BCA. Les deux dernières sorties de la mémoire 9 sont reliées aux deux dernières entrées du registre 80 Les entrées RZ de remise à zéro des registres 3, 4 et 8 sont reliées ensemble à une borne commune 10, elle-même reliée à un circuit (non représenté) produisant une impulsion de remise à zéro à la mise sous tension du système multiprocesseur. Les entrées CK de signaux d'horloge des registres 3 et 8 sont reliées ensemble et à une borne 11, et l'entrée CK de signaux d'horloge du registre 5 est reliée à une borne 12. Les bornes Il et 12 sont reliées à un générateur de signaux d'horloge approprié fournissant des signaux de façon expliquée ci-dessous. On va maintenant expliquer le fonctionnement du dispositif décrit cidessus, en rappelant d'abord brièvement le fonctionnement d'un arbitreur connu. Lorsqu'une des unités de traitement du système multiprocesseur doit émettre ou recevoir des données par l'intermédiaire du bus de données, par exemple pour communiquer avec une autre unité de trai- tement, elle émet un signal appelé "bus request", par exemple un niveau logique "I", sur une sortie appropriée, en vue de faire con- naître son intention d'utiliser le bus. Si plusieurs unités de traitement du système multiprocesseur réclament simultanément l'utilisation du bus, il faut les départager en leur attribuant un ordre de priorité. Si l'on attribuait la priorité toujours à la même unité de traitement, et si cette unité de traitement avait un très grand nombre de données à envoyer ou à recevoir par l'inter- médiaire du bus de données, les autres unités de traitement ne pourraient pas utiliser le bus en temps opportun, par exemple pour dialoguer avec l'unité de traitement en train d'émettre ou de recevoir, ce qui ralentirait considérablement la vitesse de trai- tement du système multiprocesseur. Pour remédier à cet inconvénient, il a été proposé, dans l'article précité de "Computer Design", un arbitreur centralisé attribuant cycliquement, selon un ordre fixe, la priorité à chacune des unités de traitement du système. Si, à un instant donné, l'une des unités de traitement occupe le bus et si à cet instant une ou plusieurs autres unités-de traitement réclament l'utilisation du bus en émettant un signal "bus request", l'arbitreur retire la priorité à l'unité de traitement en train d'émettre ou de recevoir dès la fin de l'opération élémentaire qu'elle exécute, et attribue, dans l'ordre fixe précité, la priorité aux unités de traitement ayant émis le "bus request", pour l'exé- cution à chaque fois d'une seule opération élémentaire. Lorsque toutes ces autres unités de traitement ont exécuté leur opération élémentaire, la priorité revient à la première unité de traitement citée qui exécute l'opération élémentaire suivant celle après laquelle la priorité lui a été retirée par suite de l'émission de signaux "bus request". Ensuite a lieu un second cycle d'opé- rations élémentaires, dans le même ordre fixe précité. Si entre- temps de nouvelles autres unités de traitement émettent un signal "bus request", la priorité leur est accordée dès qu'arrive leur tour dans le cycle d'opérations élémentaires en cours. Bien entendu, le programme de fonctionnement du système multiprocesseur est prévu pour que le traitement qu'il doit faire puisse être effectivement réalisé dès que chacune des unités de traitement ayant émis un "bus request" a effectué le minimum possible d'opérations élémen- taires. Ainsi, le système multiprocesseur réalise son traitement' dans le temps minimal. Le système multiprocesseur connu décrit ci-dessus fonctionne de façon très satisfaisante, mais l'encombrement et le prix du dis- positif de mémoire de l'arbitreur deviennent prohibitifs lorsque ce système comporte un grand nombre d'unités de traitement. Ainsi, si le système multiprocesseur comporte par exemple seize unités de traitement, on doit disposer d'une mémoire de 2M mots (2.10 I mots) de 21 éléments binaires chacun. Par contre, toujours dans le cas de seize unités de traitement, le dispositif arbitreur de l'invention, décrit ci-dessus en référence aux figures I et 2 du dessin, et comportant quatre niveaux de quatre unités de trai- tement chacun ne nécessite qu'une mémoire de 128 mots de 7 élé- ments binaires pour chacun des quatre niveaux, et une mémoire de 128 mots de 7 éléments binaires pour l'arbitration des niveaux, soit au total cinq mémoires de 128 mots de 7 éléments binaires, ce qui, même avec les treize registres et les quatre portes OU nécessaires en plus des mémoires, est nettement moins encombrant et cher que la solution connue. Dans le dispositif de l'invention décrit ci-dessus, le fonctionnement de l'élément arbitreur à l'intérieur de chaque niveau (arbitreur comportant les éléments tels que ceux réfé- rencés 3, 4 et 5) est connu en soi d'après l'article de "Computer Design" mentionné ci-dessus, et ne sera donc pas décrit plus en détail. Par contre, on va décrire en détail, en référence à la figure 2, le fonctionnement de l'élément d'arbitreur commun à tous les niveaux, et comportant les éléments 7, 8, 9 et 6. Dès qu'un "bus request" apparaît sur l'une des bornes BR, par exemple dans le niveau 1, et qu'une impulsion d'horloge arrive sur la borne 11, la mémoire 4 est adressée à une adresse déterminée par la configuration des signaux sur les bornes BR1 1 à BR I1, et sur les trois dernières sorties de la mémoire 4 qui représentent l'état futur. En outre, ledit "bus request" produit un "I" à la sortie du OU 7, donc à l'entrée ENI du registre 8. Si aucune autre unité de traitement n'occupe le bus, un "O" est présent sur la borne BBA. La programmation de la mémoire 9 se fait de façon analogue à celle de la mémoire 4, à la seule différence que dans la mémoire 4 on prévoit entre chaque état "demande" (ou "request") un état "attente" (comme dans le cas de l'article précité de "Computer Design"), ce qui nécessite pour cette mémoire 4 trois entrées (pour l'état présent) et trois sorties (pour l'état futur), alors que dans le cas de la mémoire 9, à quatre demandes de niveau, apparaissant sur les quatre premières entrées de la mémoire 9, on fait correspondre quatre états que l'on code en binaire, ce qui ne nécessite que deux éléments binaires, et en plus on tient compte de l'état du bus de la façon suivante. Lorsqu'au moins un "" apparaît sur l'une des quatre premières entrées de la mémoire 9, si le bus est occupé, c'est-à-dire si un "1" apparaît sur la borne BBA et est transmis à la mémoire 9, la mémoire 9 doit produire un "I" sur la borne BCA pour permettre à l'unité de traitement occupant le bus de terminer son opération élémentaire. Si le bus n'est pas occupé, c'est-à-dire si un "O" est présent sur la borne BBA et est transmis à la mémoire 9, un "1" doit apparaître sur la sortie VG correspondant au niveau dont l'état est le plus proche, dans l'ordre fixe déterminé, de celui du niveau auquel.appartenait le dernier utilisateur du bus. Tant qu'un "I" est présent sur la borne BRA, la mémoire 9 doit rester dans l'état correspondant à l'attribution du bus à l'unité de traitement qui en est actuellement maître quel que soit le nombre de "bus request" en attente. La mémoire 9 doit alors pro- duire un "1" sur la borne BCA pour signaler à l'unité de trai- tement occupant le bus qu'elle doit le libérer le plus t8t possible, c'est-à-dire dès l'achèvement de l'opération élémen- taire en cours. Lorsque cette opération est achevée l'unité de traitement en question envoie un "0" sur la borne BBAo Quand le signal sur la borne BBA repasse à "O", s'il n'y a aucun "bus request" en attente, la mémoire 9 doit rester dans l'état o elle était précédemment. S'il y a un seul "bus request" en attente, la mémoire 9 doit passer dans l'état associé au niveau corres- pondant et produire un "I" sur la sortie VG correspondante. Enfin, toujours dans le cas o un "0" apparaît sur la borne BBA, s'il y a plusieurs "bus request" en attente, la mémoire 9 doit passer dans l'état correspondant à la demande de niveau la plus proche du dernier maître du bus et produire un "1"' sur la sortie VG correspondante. A partir de ces données, l'homme de l'art peut programmer très facilement la mémoire 9. Comme précisé ci-dessus, à l'apparition d'un "bus request" sur l'une des bornes BR 1I à BRI 4p et dès qu'un signal d'horloge est appliqué à la borne 11, les mémoires 4 et 9 sont adressées en fonction de ce "bus request" et de l'état précédent. Dès qu'un "0" apparaît sur la borne BBA, la sortie VGI présente un "1" qui valide le dispositif 6. Aussit8t après, un signal d'horloge est renvoyé sur la borne 12, et la configuration, comportant un seul "1" correspondant audit '"bus request", des quatre premières sorties de la mémoire 4 est transférée à l'entrée du dispositif 6. Or, comme le dispositif 6 a été validé par la sortie VGI, la configuration se présente sur les bornes BG.1 à BG] 4, et le V"1' de cette configuration accorde la priorité à l'unité de traitement venant de la demander. Si plusieurs "bus request" apparaissent dans un niveau, par exemple le niveau 1, et aucun dans les autres niveaux, la première priorité est accordée à l'unité de traitement qui suit, dans l'ordre fixe prédétenrminé, celle ayant eu en dernier la priorité. Ainsi, par exemple, si dans le niveau 1, l'ordre fixe des priorités est UC 1., UCi.2, UC] 3 et UC o4, si avant l'instant considété o apparaissent simultanément des "bus request" pour les unités de traitement UC I'l UCI.3 et UCI.4, l'unité de traitement UC1o3 a eu la priorité en dernier, l'arbitreur va accorder la priorité respectivement à UC.4, UC 1I et UC.3 à chaque fois pour effectuer une opération élémentaire. Si après ce cycle secondaire les "bus request" subsistent, l'arbitreur procède à un ou plusieurs autres cycles secondaires, et le cas échéant modifie ces cycles en fonction de la disparition de certains des "bus request" et/ou de l'apparition de nouveaux autres. Tant que des "bus request" subsistent dans le niveau considéré, un "1" apparaît sur la sortie VG correspondant à ce niveau à chaque impulsion d'horloge appliquée sur la borne 11. En outre, chaque transition d'une priorité à la suivante est précédée de l'apparition d'un "1" sur la borne BCA et suivie de l'apparition d'un "1" sur la borne BBA. Dans le cas le plus général, c'est-à-dire lorsque plusieurs "bus request" sont produits par des unités de traitement appar- tenant à des niveaux différents, la priorité est attribuée selon un cycle principal par la mémoire 9, à raison d'une seule priorité par niveau, et selon un cycle secondaire pour chacun des niveaux par la mémoire 4 correspondante. Ainsi, par exemple dans le cas d'un système à seize unités de traitement, si toutes ces unités émettent un "bus request", et en-supposant que la mémoire 9 attribue la première priorité au niveau 3, et que dans chaque niveau la première priorité est attribuée à la seconde unité de traitement, l'ordre des priorités étant partout l'ordre numérique croissant, les priorités seront accordées dans l'ordre suivant UC32, tC4.2' Uc12, UC22' UC33, UC4.3, U1.3 3.1, 4.I1 UC 1 et UC21. Bien entendu, si des "bus request" subsistent après ce cycle complet de seize attributions de priorités, un autre cycle complet a lieu, et si certains des "bus request" disparaissent, le cycle complet est raccourci en conséquence sans autre modification de son ordre. Ainsi, si par exemple les "bus request" émis par les unités de traitement UC4.3 et UC 3 disparaissent, la portion correspondante du cycle complet devient:... UC1 2' UC2.2' UC3.3, UC2.3, UC3 4, UC4.4,.... On voit que la priorité passe directement de UC 3 à UC2.3p les parties du cycle complet précédant l'attri- bution de la priorité à UC3.3 et suivant l'attribution de la priorité à UC2.3 n'étant pas perturbées. On remarquera que le passage de la priorité de UC 3 à UC2.3 est aussi rapide que tous les autres passages, la vitesse de passage n'étant fonction que de la fréquence des signaux d'horloge appliqués à l'arbitreur. 248233 1 Dans le cadre de l'invention, il est également possible de modifier à tout moment l'ordre des priorités par exemple en rem- plaçant l'une ou plusieurs des mémoires mortes de l'arbitreur par d'autres mémoires programmées différemment. Ces autres mémoires peuvent être commutées par tout dispositif approprié commandé manuellement ou par le système multiprocesseur lui-même. Il est également possible d'utiliser des mémoires vives au lieu de mémoires mortes, le contenu de ces mémoires vives étant modifié par des moyens appropriés connus. Toujours dans le cadre de l'invention, on peut utiliser pour réaliser les registres tels que le registre 5 des registres à entrée de validation, ce qui permet de supprimer les dispositifs tels que 6, les sorties VG étant alors reliées aux entrées de vali- dation respectives de ces registres. D'autre part, un ou plusieurs niveaux peuvent être subdivisés en sous-niveaux, un arbitreur élémentaire coopérant avec les unités de traitement de chaque sous-niveau, des arbitreurs de sous-niveaux, réalisés de la même façon que l'arbitreur de niveaux, attribuant la priorité aux différents arbitreurs élémentaires, et l'arbitreur de niveaux attribuant la priorité aux différents arbitreurs de sous-niveaux. Enfin, il est bien entendu que l'invention n'est pas limitée à l'application à un système multiprocesseur, mais peut s'appliquer à tout système dans lequel il faut arbitrer entre plusieurs sous- ensembles utilisant une voie de communication commune. REVENDICATIONS 1. Procédé d'arbitration centralisée de plusieurs unités de traitement d'un système multiprocesseur, caractérisé par le fait que l'on répartit les unités de traitement en plusieurs groupes ou "niveaux"-comportant le même nombre d'unités de traitement chacun, que l'on attribue, selon un cycle principal, à chacun de ces niveaux une seule ou plusieurs priorités, et que l'on attribue, selon des cycles secondaires, une seule ou plusieurs priorités à chacune des unités de traitement à l'intérieur de chaque niveau. 2. Procédé selon la revendication 1, caractérisé par le fait que les niveaux comportent des nombres différents d'unités de traitement. 3. Procédé selon l'une quelconque des revendications précé- dentes, caractérisé par le fait que l'on répartit, dans chaque niveau, ou dans certains d'entre eux, les unités de traitement en plusieurs sousniveaux, que l'on attribue, selon un cycle principal, à chacun des niveaux une seule ou plusieurs priorités, que l'on attribue, selon des cycles secondaires, une seule ou plusieurs -priorités à chacun des sous- niveaux, et que l'on attribue, selon des cycles tertiaires, une seule ou plusieurs priorités à chacune des unités de traitement à l'intérieur de chaque sous-niveau. 4. Procédé selon l'une quelconque des revendications pré- cédentes, caractérisé par le fait que l'on modifie en cours de traitement l'ordre des priorités du cycle principal et/ou des cycles secondaires et/ou des cycles tertiaires. 5. Dispositif arbitreur coopérant avec p.n unités de trai- tement d'un système multiprocesseur, ces unités de traitement étant réparties en p. niveaux comportant chacun n unités de traitement, et comportant pour chaque niveau un arbitreur élé- mentaire connu en soi dont les entrées sont reliées à des sorties "bus request" correspondantes des unités de traitement et dont les sorties sont reliées à des entrées "bus grant" corres- pondantes de ces mêmes unités de traitement, caractérisé par le fait qu'il comprend p circuits OU (7) à n entrées chacun, ces entrées étant reliées respectivement, pour chacun des p circuits OU aux n sorties "bus request" (BR) des n unités de traitement (UC) de chacun des p niveaux, les sorties des p circuits OU étant reliées, par l'intermédiaire d'un registre (8), à p premières entrées d'une mémoire (9) d'attribution de priorités aux niveaux dont une autre entrée est reliée, par l'intermédiaire du même registre, à toutes les sorties "bus busy" (BBA), reliées ensemble., des p.n unités de traitement, et dont m autres entrées sont reliées, par l'intermédiaire du meme registre, à m sorties de cette mémoire, m étant égal la partie entière, augmentée d'une unité, du logarithme à base 2 du nombre p, un dispositif de vali- dation (6) étant interposé, pour chacun des p niveaux, entre les n sorties de l'arbitreur élémentaire (3, 4, 5) et les entrées "bus grant (BG) correspondantes des unités de traitement, p sorties de la mémoire d'attribution de priorités de niveaux étant reliées chacune à une borne de validation (G) d'un dis- positif de validation correspondant (6), et une autre sortie de ladite mémoire étant reliée simultanément à toutes les entrées "bus clear" (BCA) des p.n unités de traitemento 6o Dispositif selon la revendication 5, caractérisé par le fait que la mémoire d'attribution de priorités aux niveaux est une mémoire morte. 7. Dispositif selon l'une quelconque des-revendications 5 et 6, caractérisé par le fait que l'une ou plusieurs des mémoires du dispositif arbitreur sont des mémoires vives reliées, de facon connue en soi, à un dispositif permettant d'en modifier le contenu. 8. Dispositif selon l'une quelconque des revendications 5 et 6, caractérisé par le fait qu'il comprend dans chaque niveau et/ou pour l'ensemble des niveaux plusieurs mémoires mortes dif- férentes reliées à chaque fois à un dispositif sélecteur per- mettant de sélectionner l'une d'entre elles. 9. Dispositif selon l'une quelconque des revendications 5 à 8, caractérisé par le fait que l'un ou plusieurs des niveaux sont subdivisés en sous-niveaux.