DEVICE FOR THE DECENTRALIZATION OF THE MANAGEMENT OF A TRANSFER BUS COMMON TO SEVERAL UNITS OF A DATA PROCESSING SYSTEM

Abstract: 1. Device for decentralisation of the management of the data transfer bus common to several units of a data processing system, the units being able to consist of individual processors as well as of memories to which each processor may be connected, each unit having a control logic (12b) as well as means for initialising phases of calls for service (START) to other units or of response (RESPONSE) to calls for service requested by other units, each control logic (12b) being provided with one and the same priority circuit (12) which at one input receives the local call (RQiL) from the unit itself, each control logic being provided with an eligibility circuit (13) for delivery of an eligible call signal (RQiE) resulting from the conversion by the eligibility circuit (13) of a local call (RQiL) as a function of the specialisation of the unit in wich it is found and of the state of availability of the said data transfer bus, characterised in that the priority circuit (12) furthermore receives at other inputs - the whole of the external calls (RQk) transmitted by the other units, the control of the bus being conferred upon the calling unit whose priority circuit recognises the same as having the highest priority, - as well as the eligibility output supplying the eligible call signal (RQiE).

Description: DISPOSITIF POUR DECENTRALISER LA GESTION DU BUS DE TRANSFERT DE DONNEES COMMUN A PLUSIEURS UNITES D'UN SYSTEME DE TRAITEMENT DE L'INFORMATION La présente invention concerne un dispositif pour décentraliser la gestion d'un bus de transfert de données commun à plusieurs unités d'un système de traitement de l'information. Elle concerne plus particulierement un système de traitement de l'information comportant plusieurs processeurs individuels et au moins une mémoire centrale laquelle chaque processeur est connectable par un système de voies de transmission d'information encore dénommées bus, la liaison entre chaque processeur et la mémoire centrale s'effectuant. sans l'intermédiaire d'un autre processeur. Dans un systeme de traitement de l'information du type spécifié, le bus de transfert a pour but de transmettre les informations entre une unité émettrice et une unité réceptrice du système. Le système comprend une logique de commande du bus qui prend en charge toutes les demandestémanant des unités et relatives a l'utilisation du bus de transfert. L'utilisat-ion de ce bus s'effectue selon une priorité fixe. Chaque unité reçoit une priorité fixe et en cas de demandes simultanées le circuit prioritaire prend en charge la demande-émanant de l'unité ayant la priorité la plus élevée. La logique de commande du bus peut communiquer avec toutes les unités du système afin de fournir certaines informations et certains signaux sur l'étant et l'historique du système. Ce systeme connu presente au moins deux inconvénients. En cas de panne de la logique de commande du bus, toutes les unités du système s'arrêtent de fonctionner. D'autre part, la mise en communication des unités émettrices et réceptrices s'exécute par un échange de signaux d'adresse et d'accusé de réception qui prend du temps. Un objet de la présente invention est de fournir un système de traitement de l'information dans lesquels les inconvénients précités sont éliminés. Le système représenté Åa la figure 1 est composé des unités 1, 2 et 3 reliées chacune 9 un bus B qui leur est commun par les liaisons lî, 12, 13. Chaque unité possbde une logique de commande munie d'un meme circuit de priorité P. Les demandes de chaque unité de prise de la maltaise du bus B sont transmises a l'ensemble des autres unités par les circuits de priorit Pt Ainsi l'unité 1 avertit les unités 2 et 3 qu'elle est demanderesse par les liaisons 12 et 15, l'unité 2 avertit les unies 1 et 3 par les liaisons 11 et 13 et l'unité 3 avertit les unités 1 et 2 par les liaisons 14 et 16. Naturellement, à un instant donne, seule l'unité demanderesse qui est la plus prioritaire prend la maîtrise du bus B. Les unités utilisées peuvent être de différents types comme ceci est représenté la figure 2. Sur cette figure, le bus B relie des unités de commande de mémoire MMU12, 13 différentes antémémoires ou caches MCU6 8, ou mémoires tampon MTU4 et MTU10. Les mémoires tampons MTU4 et MTUlo relient les contrôleurs d'entrée-sortie IOC 5 et 11 au bus B alors que les caches 6 et 8 relient respectivement les organes de traitement de l'information ou processeurs 7 et 9 au bus B. La logique de commande qui est incorporée selon l'invention dans chaque unité est représentée a la figure 3. Cette logique se compose d'un circuit de priorité P12, d'un circuit d'éligibilité T13 de la demande locale de l'unité dans laquelle le circuit P est situe, et d'un registre SWATRl4. Le registre STATR14 reçoit sur son entrée 1 les signaux STAT dont les états représentent la disponibilité des lignes de données du BUS B. La sortie 2 du registre STATR est reliée à l'entrée 1 du circuit d'éligibilité T13 dont l'entrée 2 reçoit la demande RQiL locale. Le circuit T délivre sur sa sortie 3 le signal RQiE lorsqu'il a pu déterminer que la demande locale était éligible. Le signal RQiE est à la fois transmis vers l'entrée i du circuit de priorité P12 et vers les autres logiques de commandes des autres unités du systeme sur la ligne RQk. Le circuit de priorité P12 délivre sur sa sortie P un signal RQiP lorsque la demande locale qui est devenue éligible se trouve être la plus prioritaire, ce signal est alors transmis a l'organe de commande de l'unité locale qui reçoit ainsi l'autorisation de prendre la maîtrise du bus B. La fonction de la logique de commande est donc de transformer une demande locale en une demande éligible- après avoir analysé la disponibilité du bus B de transmission. La logique de commande reçoit toutes les demandes externes RQk sur les entrées 1 à k du circuit de priorité P12. Les priorités de toutes les demandes externes sont analyses et comparées au niveau de priorité de la demande locale par le circuit de priorité P12. Comme l'analyse s'opère de la même manière dans chaque unité, toutes les unités connaissent ainsi au même instant la demande de l'unité qui est la plus prioritaire. L'unité qui se reconnaît comme étant la plus prioritaire peut prendre la maîtrise du BUS B par le signal RQi,P émis par le circuit de priorité P. Le circuit de priorité P12 est représenté à la figure 4. Dans l'exemple, ce circuit peut analyser jusqu'à 5 demandes RQ1 a RO5, mais ce nombre pourrait être facilement généralisé à n. I1 se compose de 4 portes non ET 16, 18, 20 et 22, les portes 18 et 20 n'étant pas représentées et de 5 portes "ET" 15, 17, 19, 21 et 23, les portes 19 et 21 n'étant pas représentées. La demande RQ1 est appliquée à 11 entrée 1 d'une porte 1S dont la sortie délivre le signal RQ1P. Le signal RQ1P est appliqué à l'entrée 1 de toutes les portes "non et" 16 à 22. La sortie 2 de la porte nnon et" 16 est appliquée à 11 entrée 1 de la porte "et" 17 qui reçoit sur son entrée 2 la demande RQ2 et dont la sortie 3 transmet le signal RQ2P. Ce signal RQ2P est ensuite transmis à toutes les entrées 2 des portes "non et" 18 à 22. Un cablage identique est à réaliser pour la prise en compte des signaux RQ3 et RQ4 par les circuits non représentés. Le signal RQ3P obtenu doit être transmis a l'entrée 3 des portes "non et" 20 à 22 et le signal RQ4P doit être transmis à l'entrée 4 de la porte "non et" 22. La sortie 5-du circuit "non et" 22 est reliée a l'entrée 1 de la porte "et" 23 dont l'entrée 2 reçoit le signal RQ5. La sortie 3 de la porte ET 23 délivre le signal RQ5P. Avec ce circuit, la demande RQs est prioritaire dans la mesure où une demande quelconque RQ1 à RQ4 n'est pas présente. Cette condition est vérifiée par l'équation logique RQ5P = RQ5 e (RQ1P* + RQ2P* + RQ3P* + RQrP* Pour les signaux RQ1P à RQ4P les équations suivantes doivent être vérifiées. RQ4P = RQ4 . (RQ1P* + RQ2P + RQ3P*) RQ3P, =RQ3 . (RQ1P* + RQ2P*) RQ2P = RQ2 . (RQ1P*) RQ1P = RQ1 Les liaisons de la logique de commande avec les organes de commande d'une unité quelconque du système sont représentées ! la figure 5. Sur cette figurez l'organe de commande est représenté en 12bis. L'unité qui la contient s'organise autour d'un bus d'adresse (BUSA), d'un bus de commande (BUSC) et d'un bus de données (BUSD). Ces différents BUS sont communs avec les éléments correspondants du BUSB. L'organe de commande 24 délivre les signaux de commande nécessaires à la gestion du transfert des informations sur le BUSB lorsque l'unité est devenue maîtresse. I1 peut être constitué d'une mémoire morte dans laquelle on aura inscrit le microprogramme nécessaire au séquencement des informations sur le bus B, il sera possible d'utiliser un organe de commande du type de celui qui est décrit dans le livre intitulé "Microprogramming Principles and Practices" Samir S HUSSON -Prentice Hall Inc (1970) Page 189. L'organe de commande délivre les signaux CMD et STAT sur le BUSC, les commandes C1 et C2 ainsi que le signal de demande locale RQiL. I1 est synchronisé à partir d'une horloge HO commune a tout le système mais non représentée. Un registre d'instruction RI 25 connecté entre l'entrée 1 de l'organe de commande et le bus D permet le branchement sur 11 adresse de début des microprogrammes contenus dans l'organe de commande. Cette adresse de début est calculée à partir du code opération de l'instruction contenue dans le-registre d'instruction RI. Les signaux STAT transitent sur le bus C et sont reçus à l'entrée du registre STATR de la logique de commande 12 bis. La demande locale RQiL est également transmise à l'entrée 2 du circuit T13 de la logique de commande l2bis. Sur le BUSC transitent aussi toutes les demandes RQ faites par les autres unités du système, celles-ci sont appliquées aux entrées 1 k du circuit de priorité P12 de la logique de commande 12bis. Lorsque l'unité se reconnaît comme étant la prioritaire vis à-vis des autres demanderesses sa logique de commande délivre le signal RQiP qui est alors appliqué à l'entrée 1 de la porte ET33. Le signal RQiP est ensuite pris en compte par un basculeur START par action du signal de commande C1 sur l'entrée 2 de la porte ET33 ou par un basculeur REPONSE par action d'un signal C2 sur l'entrée 2 de la porte ET34. Les basculeurs START et REPONSE servent Åa initialiser un transfert d'information entre le BUSB et l'unité dans laquelle ils se trouvent. Ces basculeurs sont remis zéro respectivement par les signaux RS et RR transmis sur le BUSC. Les signaux START et REPONSE correspondant sqnt naturellement émis sur le BUSC. Le registre RDE30 est un registre de données; dans l'exemple, ce registre peut contenir 4 bytes. Ces 4 bytes sont chargés directement partir du BUSD et peuvent être déchargés sur une longueur quelconque sur le BUSD par le multiplexeur MUX28 commande par des signaux de cycle S2 S3 S4 et Sg émis par un séquenceur interne à l'unité du type représenté a la figure 6 Le déchargement a -lieu au cours d'une phase de transfert START et est commandé par le signal START appliqué sur l'entrée 2 d'une porte 29 dont l'entrée 1 se trouve reliée la sortie 5 du multiplexeur MUX28. Comme une instruction contient toujours une adresse, l'adresse contenue dans le registre RI est transférée sur le bus d'adresse BUSA au travers de la porte ET26 dont l'entrée 2 est reliée à la zone d'adresse du registre d'instruction, cette porte est commandée par un signal de cycle S1 émis par le séquenceur interne a l'unité du type représenté a la figure 6 et le signal START. Les phases START et REPONSE ont lieu au cours de l'exécution d'opérations élémentaires d'échange d'informations sur le BUS B. Un opération peut être définie comme un travail élémentaire que doit exécuter une unité, ce peut être par exemple une opération de lecture ou d'écriture de mémoire. Suivant sa nature, une opération peut s1 exécuter en une ou deux phases séparées. Lorsqu'une opération demande deux phases la premier est la phase "START" et la deuxième est la phase "REPONSE". Ces phases sont déclenchées l'aide des basculeurs correspondant de la figure 5. L'intervalle de temps qui sépare une phase START d'une phase REPONSE d'une même opération pourra judicieusement être utilisée pour effectuer d'autres opérations. Naturellement une phase START ou une phase REPONSE nécessite pour son exécution un temps plus ou moins grand suivant la nature de l'opération correspondante, ce temps est mesuré à partir du cycle élémentaire de l'horloge Ho du système. Les phase START et REPONSE vont donc s' exécuter en fonction du type d'opération effectué en un nombre de cycles d'horloge du système plus. ou moins important. Cette exécution est donc synchronisée a l'aide des séquenceurs des figures 6 et 7. La figure 6 représente le séquenceur utilisé dans chaque unité pour exécuter une séquence START. Il se compose d'un compteur binaire 36 a 3 basculeurs. Ce compteur progresse au rythme du signal d'horloge Ho du système appliqué sur son entrée CK. Sa progression est commandée par le signal START émis par le basculeur START. Les états de ce compteur sont transmis à l'entrée des portes ET 45 a 49 qui décodent de façon classique les cycles S1 a S5 de la phase START. Dans une phase START, l'unité émet des données a destination d'une autre unité. Cette émission peut avoir lieu sur un ou plusieurs mots. Pour une émission de un ou deux mots le basculeur B12 est positionné et active l'entrée 1 de la porte ET39. Pour une émission sur quatre mots, la bascule B4 est positionnée et active l'entrée 1 de la porte ET38. Les sorties 3 des portes 39 et 38 sont appliquées respectivement aux entrées 1 et 2 d'une porte OU 37 dont la sortie 3 délivre le signal R5 de remise à zéro du compteur 36. Les entrées 2 des portes 38 et 39 reçoivent respectivement les signaux S5 et S3 délivrés par les portes 47 et 49. Ainsi, une séquence START qui nécessite un transfert de 1 ou 2 mots se terminera Åa la fin du cycle S3 alors que celle qui aura nécessité un transfert de 4 mots prendra fin a la fin du cycle Sg. La décision de la longueur du transfert est naturellement prise par l'organe de commande qui délivre les signaux CMD. L'état des signaux CMD détermine la mise en position du basculeur B12 ou du basculeur B4, lorsque CMD3 = 1 le basculeur,B4 prend l'état 1 alors que lorsque CMD3 = O c'est le basculeur B12 qui prend l'état 1, cette commande a lieu pendant le cycle S2 du séquenceur. La figure 7 représente le séquenceur utilisé dans chaque unité pour exécuter une séquence REPONSE. I1 se compose d'un compteur binaire 50 a 3 basculeurs. Ce compteur progresse au rythme du signal d'horloge Ho appliqué sur son entrée Ck. La progression est commandée par le signal REPONSE émis par le basculeur REPONSE. Les états de ce compteur sont transmis a 1' entrée des portes ET 51 a 54 de façon a décoder les cycles R1 à R4. Dans une-séquence REPONSE, l'unité reçoit des données provenant d'une autre unite. La réception peut porter sur un ou plusieurs mots suivant la longueur du transfert défini par le champ CMD. Ce champ CMD a été transmis par l'unité qui a initialisé la séquence START et a été mémorisé dans le registre BCMD62. L'unité qui exécute une séquence réponse, répond a l'unité demanderesse en lui retournant son numéro d'identification UNID, ce qui permet a l'unité demanderesse d'identifier le message REPONSE qui lui est transmis. Cette identification a lieu dans le comparateur 56 qui compare pendant le cycle R1 le numéro UNID transmis par le répondeur au numéro i d'identification de unité. S'il y a identité entre les numéros, le message REPONSE concerne l'unité, le basculeur 55 est positionné à l'état 1, l'entrée des portes ET 58 et 59 ainsi que l'entrée 5 du registre de données RDL sont validées. Pour une réponse portant sur une mot, le compteur 50 est remis a zéro a la fin du cycle R1 par la sortie de la porte OU 57 dont l'entrée 1 est commandée par la sortie 4 de la porte ET 59 dont les entrées sont commandées par le champ CMD le signal R1 et la sortie Q- du basculeur 55. Le mot DT transmis est alors mémorisé dans la zone 1 du registre RDL 60. Pour une réponse portant sur quatre mots, les mots sont successivement mémorisés dans les zones 1 à 4 du registre RDL 60 au rythme des cycles R1 à R4, au travers du multiplexeur 61. Le compteur 50 est remis a zéro a la fin du cycle R4 par l'action de la porte 58 sur la porte OU 57. Le diagramme de la figure 8 illustre les opérations qu'une unité doit nécessairement effectuer pour élire une demande locale en fonction de sa spécialisation dans le système. Si la demande locale se produit au cours du cycle 1 d'une phase (étape 63) la demande locale sera éligible si elle satisfait aux conditions logiques représentées sur la figure 9 (Etape 64). Puis elle devra nécessairement satisfaire aux conditions logiques représentées la figure 10. Dans les autres cycles, autres que le cycle 1, l'étape 64 n'est pas a effectuer, par contre l'étape 65 est toujours réalisée quel que soit le cycle d'une phase. Ensuite en fonction du type de demandeur l'une ou l'autre des étapes 67, 68 ou 69 est exécutée. Si le demandeur est un contrôleur d'entrée-sortie, la demande doit satisfaire les conditions logiques montrées a la figure Il. Si le demandeur est un cache une différenciation est faite suivant le cas où ce cache est tenant ou non. S'il est tenant, la demande doit satisfaire les conditions'logiques de la figure 12, par contre s il n'est pas tenant x1 doit satisfaire celles de La figure 13. On remarquera suivant le diagramme de la figure 8 qu'une demande locale d'une unité de mémorisation MMU est toujours éligible sans conditions. Les conditions logiques et leur cablage correspondant illustres par les figures 9 a 13 ne sont donnés qu'a titre d'exemple et ne revêtent pas un caractère absolu, elles dépendent en fait de la structure physique des unités constituant le système de la figure 2. Sur la figure 9, le circuit OU 71 et la porte ET 72 indiquent que les demandes locales, d'écriture en mémoire MMU (WM) de (SWAPPING) (SW) ou d'écriture dans des registres (WR) ne sont éligibles sans condition s'il s'agit d'une phase REPONSE. Les circuits 73 et 74 indiquent que les demandes locales d'Interruption (INT) de TRAP (TRAP), d'invalidation (INV), de lecture de mémoire (RM) de l'écriture et d'effacement (R/C) de test (T/S), de lecture de registre (R/R), de lecture sans comparaison ne sont éligibles s'il s'agit d'une phase START, que pendant le cycle 1 d'une REPONSE. Les circuits 75 et 76 indiquent que les demandes locales d'écriture en mémoire wM, d'écriture dans des registres WR et de SWAPPING ne sont éligibles ctue pendant le cycle 1 d'une réponse d'écriture. Les circuits 77 et 78 indiquent que les demandes locales de lecture en mémoire (RM), de lecture et d'effacement (RC) de test (T/S) de lecture de registre (R/R) et de lecture dans comparaison (RWC) ne sont éligibles s'il s'agit d'une phase REPONSE que durant le cycle-l d'une réponse d'écriture. Les circuits de la figure 10 réalisent les conditions nécessaires pour rendre éligible les demandes locales en fonction de l'état des lignes de données. L'etat des lignes de données est connu par la valeur du contenu du registre STATR. Ce registre est constitué de deux basculeurs. L'état de ce registre est lu pendant n'importe quel cycle, un état 00 un cycle n signifie que les lignes de données deviennent disponibles au cycle n + 1, l'état 01 les rend disponible au cycle n + 2, l'état 10 les rend disponible au cycle n + 3 et l'état 11 les rend disponible au cycle n + 4. Le cablage des circuits de la figure 10 correspond à la table de vérité suivante : EMI10.1 <tb> Type <SEP> de <SEP> demande <SEP> STATR <SEP> 0 <SEP> : <SEP> 2 <tb> <SEP> locale <tb> EMI11.1 <tb> <SEP> II <SEP> I <tb> ( <SEP> Réponse <SEP> - <SEP> Ecriture <SEP> mémoire <SEP> (WM) <SEP> I <SEP> I <tb> <SEP> Swapping <SEP> (SW) <SEP> I <SEP> Indifférent <SEP> 1 <SEP> <tb> | <SEP> Ecriture <SEP> de <SEP> registre(WR) <SEP> I. <SEP> I <tb> I <SEP> I <SEP> I <tb> START <SEP> Interruption <SEP> (INT) <SEP> INdifférent <tb> 1 <SEP> TRAP <SEP> (TRAF) <SEP> î <SEP> <tb> I <SEP> Invalidation <SEP> (INV) <SEP> | <SEP> " <SEP> <tb> L <tb> I <SEP> I <SEP> I <tb> START <SEP> Lecture <SEP> de <SEP> mémoire <SEP> (RM) <SEP> I <SEP> Indifférent <SEP> t <SEP> <tb> | <SEP> Lecture <SEP> effacement <SEP> (RC) <SEP> ! <SEP> " <SEP> + <tb> I <SEP> Test <SEP> et <SEP> Marquage <SEP> (TS) <SEP> | <SEP> <tb> I <SEP> Lecture <SEP> de <SEP> registre <SEP> (RR) <SEP> l <SEP> N <SEP> <tb> | <SEP> Lecture <SEP> sans <SEP> compa- <SEP> ! <SEP> " <tb> 1 <SEP> raison <SEP> (RWC) <SEP> | <SEP> n <SEP> <SEP> 1 <SEP> <tb> | <SEP> I <SEP> I <SEP> I <tb> START <SEP> Ecriture <SEP> mémoire <SEP> cycle <SEP> différent <SEP> 1 <SEP> I <tb> Ecriture <SEP> registre <SEP> | <SEP> du <SEP> cycle <SEP> No <SEP> 2 <SEP> ! <SEP> OX <tb> I <SEP> Swapping <SEP> | <SEP> d'un <SEP> START <SEP> -- <SEP> I <SEP> í <SEP> <tb> 1. <SEP> 1 <SEP> <tb> I <SEP> j <SEP> cycle <SEP> No <SEP> 2 <SEP> d'un <SEP> | <SEP> Jamais <SEP> I <tb> START <SEP> éligible <tb> RESP <SEP> Lecture <SEP> mémoire <SEP> (RM) <tb> I <SEP> Lectre <SEP> et <SEP> effacement(RC) <SEP> + <SEP> | <SEP> <tb> I <SEP> Test <SEP> et <SEP> marquage <SEP> T/S <SEP> | <SEP> 00 <SEP> <SEP> j <SEP> <tb> I <SEP> Lecture <SEP> de <SEP> registre <SEP> . <SEP> <tb> Lecture <SEP> sans <SEP> comparaison <tb> La table de vérité suivante permet de rendre éligible les demandes locales d'un contrôleur d'entrée sortie (MTU). Le circuit logique correspondant est montre a la figure 11. EMI12.1 <tb> | <tb> I <SEP> Type <SEP> de <SEP> demande <SEP> j <SEP> STINR <SEP> j <SEP> CABYR <tb> I <SEP> I <tb> START <SEP> Interruption <SEP> (INT) <SEP> 0 <SEP> 0 <tb> j <SEP> START <SEP> Lecture <SEP> de <SEP> | <SEP> | <SEP> | <SEP> <tb> mémoire <SEP> (RM) <SEP> I <SEP> | <SEP> 1 <SEP> <SEP> l <SEP> <tb> Te <SEP> Test <SEP> et <SEP> mar- <SEP> (T/S) <SEP> ) <SEP> @ <SEP> <SEP> 0 <SEP> <SEP> j <SEP> o <SEP> j <SEP> <tb> <SEP> quage <SEP> <SEP> 1 <SEP> <tb> | <SEP> Lecture <SEP> de <SEP> registre <SEP> (RR) <SEP> | <tb> Lecture <SEP> sans <SEP> compa- <SEP> j <SEP> I <SEP> I <tb> raison <SEP> (RWC) <tb> I <SEP> I <SEP> j <SEP> i <SEP> j <tb> j <SEP> START <SEP> Ecriture <SEP> en <SEP> mémoire <SEP> (WM) <SEP> | <SEP> | <SEP> | <SEP> <tb> | <SEP> Ecriture <SEP> en <SEP> registre <SEP> (WR) <SEP> | <SEP> 0 <SEP> | <SEP> 0 <SEP> | <tb> STINR - 1 interdit l'émission des signaux START. La table de vérité suivante permet de rendre éligible les demandes locales émises par une unité de mémoire cache lorsqu'elle est tenante. Le circuit logique correspondant est représenté à la figure 12. EMI13.1 <tb> Type <SEP> de <SEP> demandes <SEP> STINR <SEP> CABYR <tb> RESP <SEP> Ecriture <SEP> Mémoire <SEP> (WM) <tb> <SEP> Lecture <SEP> Mémjoire <SEP> (RM) <SEP> X <SEP> X <tb> <SEP> Lecture <SEP> e <SEP> t <tb> effacement <SEP> (RC) <tb> <SEP> Test <SEP> et <SEP> marquage <SEP> (T/S) <SEP> 1 <SEP> I <tb> <SEP> START <SEP> Interruption <SEP> (INT) <tb> TRAP <SEP> (TRAP) <SEP> 0 <SEP> 0 <tb> Invalidation <SEP> (INV) <SEP> j <SEP> l <SEP> <tb> <SEP> START <SEP> Lecture <SEP> Mémoire <SEP> (RM) <tb> <SEP> Lecture <SEP> et <tb> <SEP> effacement <SEP> (RC) <tb> <SEP> Test <SEP> e <SEP> t <SEP> marquage <SEP> (T/S) <SEP> 0 <SEP> 0 <tb> Lecture <SEP> de <SEP> registre <SEP> (RR) <tb> Lecture <SEP> sans <SEP> compa- <SEP> I <SEP> j <SEP> <tb> <SEP> raison <SEP> (RWC) <tb> <SEP> START <SEP> Bcriture <SEP> Mémoire <SEP> (WM) <tb> <SEP> Bcriture <SEP> de <SEP> registre <SEP> (WR) <SEP> 0 <SEP> 0 <tb> <SEP> Swapping <SEP> (SW) <tb> <SEP> I <SEP> I <SEP> I <tb> La table de vérité suivante permet de rendre éligible les demandes localesémises par une unité de mémoire cache non tenante. Le, circuit logique correspondant est représenté sur la figure 13. EMI14.1 <tb> <SEP> Type <SEP> de <SEP> demandes <SEP> STINR <SEP> CABYR <tb> <SEP> I <SEP> I <SEP> I <SEP> I <tb> <SEP> RESP <SEP> Ecriture <SEP> Mémoire <SEP> (WM) <tb> <SEP> Lecture <SEP> Mémoire <SEP> (RM) <SEP> 0 <SEP> X <tb> <SEP> Lecture <SEP> et <tb> effacement <SEP> (RC) <tb> Test <SEP> et <SEP> marquage <SEP> (T/S) <tb> START <SEP> Interruption <SEP> (INT) <SEP> @ <SEP> @ <tb> I <SEP> TRAP <SEP> (TRAP) <SEP> í <SEP> o <SEP> | <SEP> O <SEP> t <SEP> <tb> <SEP> Invalidation <SEP> (INV) <tb> <SEP> I <SEP> I <SEP> I <SEP> I <SEP> <tb> <SEP> START <SEP> Lecture <SEP> Mémoire <SEP> (RM) <tb> <SEP> Lecture <SEP> et <tb> <SEP> I <SEP> effacement <SEP> (RC) <SEP> <RTI ID=14.10> l <SEP> I <SEP> I <tb> <SEP> Test <SEP> (T/S) <SEP> î <SEP> o <SEP> 1 <SEP> i <SEP> | <SEP> <tb> <SEP> Lecture <SEP> de <SEP> reqistre <SEP> (RR) <tb> <SEP> Lecture <SEP> sans <SEP> compa <tb> <SEP> I <SEP> raison <SEP> (RWC) <SEP> j <SEP> I <SEP> j <SEP> <tb> <SEP> START <SEP> Ecriture <SEP> Mémoire <SEP> (WM) <tb> <SEP> Ecriture <SEP> de <SEP> registre <SEP> (WR) <SEP> 0 <SEP> 0 <tb> <SEP> Swapping <SEP> (SW) <tb> Le fonctionnement du dispositif selon l'invention est illustré par les diagrammes de temps des figures 14 a 17. Sur la figure 14, l'unité prioritaire effectue une écriture d'un mot de données dans une unité de mémoire MMU. Sa logique de commande démarre une phase START comprenant les cycles élémentaires So a S3. Durant le cycle S1 l'adresse de la mémoire est envoyee par l'unité élue sur les lignes d'adresse du BUSA et le mot de commande CMD est egalement émis par l'organe de commande de l'unité pour signaler à l'unité de mémoire qu'une opération d'écriture est demandée. Durant le cycle S2, le champ CMD est de nouveau émis sur les lignes de commande du BUS B pour signaler à l'unité de mémoire qu'une opération d'écriture d'un mot est demandée et le mot de donnée DT est transmis par l'unité prioritaire vers l'unité de mémoire MMU. La réponse de l'unité de mémoire MMU intervient lorsque celle-ci devient a son tour prioritiare. Elle s'effectue selon la figure 14 en deux cycles Ro et R1. Durant le cycle R1, le mot UNID d'identification de l'unité qui attend ld reponse est emis sur les lignes de commandes et un code de contrôle d'erreur est envoyé afin de vérifier que l'écriture s'est effectuée dans de bonnes conditions. La figure 15 represente un cycle d'écriture de 'dieux mots dans une unité cache. Comme il s'agit d'une écriture de deux mots le signal STAT à la valeur Ol au cycle S1 puis la valeur OO au cycle S2, le transfert des données a lieu pendant les cycles S2 et S3. La réponse a lieu comme précédemment. La figure 16 correspond à une opération d'écriture dans une mémoire MMU de 4 mots. Dans ce cas, STAT a la valeur 11 du cycle S1, 10 au cycle S2, 01 au cycle S3 et 00 au cycle S4, le transfert des 4 mots a lieu pendant les cycles S2 à Ss. La réponse a lieu comme précédemment. La figure 17 représente un cycle de lecture d'une unité de mémoire MMU. La phase STAT est exécutée pour adresser la mémoire pendant le cycle SI, et commander la lecture au cycle S1 ainsi que la longueur du transfert pendant le cycle S2. Dans l'exemple de la figure 17, il s'agit d'une lecture de 4 mots en mémoire. Ces 4 mots sont transférés vers l'unité demanderesse pendant l'exécution de la phase REPONSE de la mémoire MMU. Au cycle R1, STAT est placé dans l'état 10 pour signaler que les lignes de données seront disponibles après le cycle R4. L'exemple qui vient d'être donné d'une réalisation préférée de l'invention n'est nullement limitatif. Il va de soi que tout homme de l'art bien au fait des techniques de traitement de l'information pourra concevoir d'autres modes de réalisation de l'invention sans pour autant sortir de son cadre.

Claims: REVENDICATIONS 1. Dispositif de décentralisation de la gestion du bus de transfert des informations commun à plusieurs unites d'un systdme de traitement de 1 in l'information, les unités pouvant être constituées par des processeurs individuels ainsi que par des mémoires auxquelles chaque processeur est connectable, chaque unité possédant une logique de commande l2bis ainsi que des moyens pour initialiser des phases de demande de service (START) vers d'autres unités ou de réponse (RESPONSE) a des demandes de service demandées par d'autres unités, chaque logique de commande 12bis étant munie d d'un même circuit de priorité P12 recevant sur une entrée, la demande locale RQiL de l'unité elle-même, et sur les autres entrées l'ensemble des demandes externes RQk émises par les autres unités, la maîtrise du bus étant accordée a l'unité demanderesse dont le circuit de priorité la reconnaît comme étant la plus prioritaire caractérisé en ce que chaque logique de commande est munie d'un circuit d'éligibilité T13 pour délivrer un signal RQiE en résultat de la transformation, par le circuit d'éligibilité lui-même, d'une demande locale en une demande éligible RQiE en fonction de la spécialisation de l'unité dans laquelle elle se trouve et de l'état de disponibilité du dit bus de transfert des informations, la sortie du dit circuit d'éligibilité délivrant le signal RQiE étant connectée a une entrée du dit circuit de priorité P12 dont les autres entrées sont connectées aux conducteurs du bus transmettant l'ensemble des dites demandes externes RQk. 2. Dispositif de décentralisation de la gestion du bus de transfert d'informations commun à plusieurs unités d'un système de traitement de l'information selon la revendication 1 caractérisé en ce que chaque logique de commande 12bis comprend en plus un registre 14 (STATR) associé au circuit T13 de transformation des demandes locales en demandes éligibles pour signaler a tout instant l'état de disponibilité du dit bus de transfert des informations. 3. Dispositif de décentralisation de la gestion du bus de transfert des informations commun à 'plusieurs unités d'un système de traitement de l'information selon les revendications 1 et 2 caractérisé en ce que le circuit d'éligibilité T13 comprend des premiers moyens 71 et 72 pour élire sans condition les demandes locales d'écriture en mémoire (WM), d'écriture dans des registres (WR) et d'échange (SW) lorsque ces demandes sont effectuées dans une phase de réponse (RESPONSE) commandée par les dits moyens d'initialisation. 4. Dispositif de décentralisation de la gestion du bus de transfert des informations commun à plusieurs unités d'un système de -traitement de l'information selon les revendications 1 2 et 3 caractérisé en ce que le circuit d'61igibilité T13 comprend des deuxièmes moyens 73 et 74 commandés dans le premier cycle d'une phase de réponse pour élire les demandes locales d'interruption (INT), (TRAP), d'invalidation (INV), de lecture de mémoire (RM), de test (T/S) de lecture de registre (R/R) de lecture sans comparaison (RWC) lorsque ces demandes ont été demandées dans une phase START. 5. Dispositif de décentralisation de la gestion du bus de transfert des informations commun b plusieurs unités d'un systeme de traitement de l'information selon les revendications 1 2 3 et 4 caractérisé en ce que le circuit d'éligibilité T13 comprend des troisièmes moyens 75 et 76 commandés dans le premier cycle d'une phase de réponse d'écriture pour élire les demandes locales d'écriture en mémoire (WM), d'écriture dans des registres (WR) et d'échange (su). 6. Dispositif de décentralisation de la gestion du bus de transfert des informations commun a plusieurs unités d'un système de traitement de l'information selon les revendications 1 2 3 4 et 5 caractérisé en ce que le circuit d'éligibilité T13 comprend des quatrièmes moyens commandés dans le premier cycle d'une phase de réponse pour élire les demandes locales de lecture- en mémoire (RM), de lecture et d?effacement (RC) de test (T/S), de lecture de registre (RR), et de lecture sans comparaison (RWC). 7. Dispositif de décentralisation de la gestion du bus de transfert des informations commun a plusieurs unités d'un système de traitement de l'information selon les revendications 1 2 3 4 5 et 6 caractérisé en ce que le circuit d'éligibilité TR13 comprend des cinquiemes moyens pour rendre éligible une demande locale en fonction de l'état du registre 14 ¯ (STATR) signalant le numéro de cycle d'une phase "réponse' ou wstart" durant lequel le dit bus de transfert des informations devient disponible. 8. Dispositif de décentralisation'de la gestion du bus de transfert des informations commun a plusieurs unités d'un système de traitement de l'information selon la revendication 7 caractérisé en ce que les cinquiemes moyens comprennent des premiers circuits (80, 81, 84, 85) pour rendre éligible les demandes d'écriture en mémoire (WM), d'échange (SW) ou d'écriture de registres (WR) dans une phase de réponse et pour rendre éligible les demandes d'interruption (INT), (TRAP) d'invalidation (INV),.'de lecture de mémoire (RM), de lecture d'effacement (RC) de test et marquage (T/S), de lecture de registre (R/R), de lecture sans comparaison (RWC) dans une phase START, l'éligibilité dans ces cas ayant toujours lieu quel que soit l'état du registre 14 signalant tout instant l'état de disponibilité du dit bus de transfert des informations. 9. Dispositif de décentralisation de la gestion du bus de transfert des informations commun à plusieurs unités d'un système de traitement de l'information selon les revendications 7 et 8 caractérisé en ce que les dits cinquièmes moyens comprennent des deuxiemes circuits (82, 86, 87) sensibles a un premier état particulier du registre 14, pour rendre éligible des demandes d'écriture de mémoire WM, d'écriture de registre ou d'échange (SW) seulement dans des cycles différents du deuxième cycle d'une phase START ainsi que des troisièmes circuits (83, 88) sensibles a un deuxieme état particulier du registre 14 pour rendre éligible les demandes de lecture en mémoire RM, de lecture et d'effacement (RC) de test (T/S), de lecture de registre RR, de lecture sans comparaison (RWC) seulement dans le cycle d'une phase de réponse qui suit celui dans lequel la demande est apparue. 10.- Dispositif de décentralisation de la gestion du bus de transfert des informations commun à plusieurs unités d'un systeme de traitement de l'information selon l'une quelconque des revendications précédentes caractérisé en ce que le circuit d'éligibilité T13 est constitué de sixièmes moyens spécifiques de l'unité demanderesse dans laquelle le circuit d'éligibilité est situé, autorisant l'éligibilité de demandes d'interruption (INT), de lecture de mémoire (RM), de test et de marquage (T/S), de lecture de registre (RR), de lecture sans comparaison (RWC), d'écriture de mémoire (WM) et d'écriture de -registre lorsque celles-ci sont faites par un contrôleur de mémoire de masse (MTU) durant une phase START et autorisant 11 éligibilité de demandes effectuées par une mémoire cache dans une phase START lorsque celle-ci concerne une interruption (INT), (TRAP), une invalidation (INV), une lecture de mémoire (RM) une lecture avec effacement (RC), un test (T/S), une lecture de registre (RR), une lecture sans comparaison (RWC), une écriture de mémoire (WM), une écriture de registre (WR) ou un échange (5W) ou dans une phase REPONSE lorsque celle-ci concerne une écriture de mémoire (WM), une lecture de mémoire (RM), une lecture avec effacement (RC) ou un test (T/S), et une mémoire cache non tenante.

Inventors: VINOT, DANIEL RENE, Vinot, Daniel René
Applicants: COMPAGNIE INTERNATIONALE POUR L'INFORMATIQUE CII - HONEYWELL BULL (DITE  CII-HB)
Application year: 1981
Main classification: G06F3
IPC codes: G06F13