Brevet FR2632096A1 — publié le 19891201

SYSTEME DE MICROCALCULATEUR A BUS MULTIPLE AVEC ARBITRAGE D'ACCES AUX BUS La présente invention concerne l'arbitrage d'accès au bus dans un micro-calculateur à bus multiple. Les informations fondamentales concernant le microprocesseur 80386, ses caractéristiques et son utilisation dans des systèmes de microcalculateur comprenant des sous-systèmes de mémoire antémérmoire, sont décrites dans les publications suivantes de Intel Corporation: "Introduction to the 80386" d'avril 1986 et "80386 Hardware Reference Manual (1986)". Les caractéristiques et les performances de fonctionnement de l'unité de commande d'antémémoire 82385 sont décrites dans la publication de Intel Corporation "82385 High Performance 32-Bit Cache Controller" (1987). Les systèmes de micro-calculateur comprenant un sous-système d'antémémoirc sont, en ce qui concerne leur architecture, très différents des systèmes de micro-calculateur sans sous-système d'antémémoire. Les systèmes de micro-calculateur à sous-système d'antémémoire fonctionnent comme des dispositifs à double bus. Plus particulièrement, dans les systèmes de micro-calculateur à sous-système d'antémémoire, il y a un premier bus (appelé le bus local CPU) qui interconnecte l'unité CPU, la mémoire antémémoire et l'unité de commande d'antémémoire. D'autres dispositifs sont connectés à un bus différent (bus de système). Ces autres dispositifs comprennent, par exemple, la mémoire principale, des dispositifs E/S et un appareil auxiliaire. Outre les dispositifs indiqués précédemment, le bus de système peut aussi être connecté à l'unité de commande d'antémémoire. Le sous-système d'antémémoire soulage principalement le bus de système d'une proportion importante d'accès en mémoire qui seraient autrement assurés par le bus de système en l'absence du sous-système d'antémémoire. C'est à dire que, dans la mesure o l'unité CPU peut obtenir des informations de la mémoire antémémoire, pour ce cycle particulier, l'unité CPU ne requiert alors pas d'accès au bus de système. En conséquence, d'autres dispositifs peuvent pendant la même période de temps, utiliser le bus de système pour d'autres opérations. On s'attend à ce que cela entraîne une réduction significative des cycles de bus de système qui sont réellement utilisés par l'unité CPU. En général, l'unité de commande d'antémémoire est connectée à la fois au bus de système et au bus local CPU et une des fonctions de l'unité de commande d'antémémoire est de superviser le superviseur d'arbitrage qui, dans les systèmes à un seul bus, est supervisé par l'unité CPU. L'une des unités de commande d'antémémoire disponibles, l'unité 82385, a la possibilité de fonctionner dans un mode principal ou dans un mode asservi. Lorsque l'unité 82385 est utilisée en mode principal et supervise le superviseur d'arbitrage, il n'y a plus aucun mécanisme pour l'unité CPU, qui prétende à l'utilisation de la ressource du bus de système. En conséquence, un objet de la présente invention est de fournir un mécanisme par lequel une unité CPU dans un système de micro- calculateur à bus multiple comprenant, un élément de commande d'antémémoire supervisant le superviseur d'arbitrage, peut accéder à la ressource du bus de système selon l'attribution du mécanisme d'arbitrage. Le superviseur d'arbitrage répond à des signaux de requête d'arbitrage qui sont mis en commun à partir d'une pluralité de dispositifs. Lorsque le superviseur d'arbitrage reconnaît qu' un ou plusieurs dispositifs ont requis la ressource commune, il signale le début d'une période d'arbitrage en changeant l'état d'un conducteur (ARB/GRANT) qui est accessible à tous les dispositifs prétendants. Lorsque les dispositifs prétendants voient le changement d'état de ce conducteur pour signaler le début d'une période d'arbitrage, les dispositifs génèrent des signaux correspondant à leurs niveaux de priorité et excitent une pluralité de conducteurs d'arbitrage attribués à cette fonction avec ces signaux. La connexion entre la pluralité de dispositifs et les conducteurs d'arbitrage est agencée de façon que les conducteurs prennent la valeur de priorité du circuit dont la priorité est la plus élevée excitant les conducteurs d'arbitrage. Chaque dispositif peut donc reconnaître en comparant la valeur de priorité sur les conducteurs d'arbitrage à sa propre valeur de priorité, s'il y a un dispositif quelconque à priorité plus élevée disputant l'accès au bus. A la fin d'une période d'arbitrage prédéterminée, le conducteur ARB/GRANT change d'état. Ceci commence la période d'attribution pendant laquelle le dispositif prétendant dont la valeur de priorité était la valeur de priorité sur les conducteurs d'arbitrage, assure la commande de la ressource commune pour amorcer un cycle de bus. De plus, comme décrit dans les applications décrites ci dessus, il y a encore un autre conducteur attribué à un signal PREEMPT qui peut être généré pour forcer un dispositif ayant obtenu accès à la ressource de système, à terminer son accès. Ainsi, un dispcsitif qui a obtenu accès à la ressource de système et qui utilise cette ressource, à la reconnaissance d'une préemption revendiquée, est requis d'amorcer une terminaison ordonnée de son utilisation de la ressource de système. Lorsque le dispositif qui bénéficie ainsi de la préemption, achève son utilisation de la ressource commune, le superviseur d'arbitrage commence une nouvelle période d'arbitrage comme décrit ci dessus. Dans les systèmes de micro-calculateur à sous-système d'antémémoire, les cycles d'unité CPU accédant à l'antémémoire (et ainsi ne demandant pas l'accès au bus de système), sont des cycles de durée minimale ou des cycles à état d'attente zéro. Lorsque des cycles de l'unité CPU s'étendent au delà de ce minimum, ils signalent des exigences de l'unité CPU vis à vis du bus de système. Ainsi, des cycles de l'unité CPU de durée plus longue que le minimum, signalent les besoins de l'unité CPU en ce qui concerne le bus de système relativement à la ressource commune. Selon la présente invention, l'unité CPU comprend des moyens pour générer un signal PREEMPT qui provoquera la terminaison par tout dispositif ayant obtenu accès au bus au travers du mécanisme d'arbitrage, de cet accès comme on l'a déjà décrit. Comme on le décrira ultérieurement, la génération par le CPU du signal PREEMPT est commandée par la détection d'un cycle d'unité CPU de durée plus longue que celle requise pour une adresse d'antémémoire. Cependant, l'utilisation par l'unité CPU de la ressource de système est agencée pour être conservée autant de temps que possible. Plus particulièrement, lorsqu'un dispositif qui a obtenu accès au bus par un arbitrage reconnaît une préemption et initie une terminaison ordonnée de son accès au bus, il signale sa terminaison de l'utilisation du bus. Le superviseur d'arbitrage répond à cette indication en générant une nouvelle période d'arbitrage. Si l'unité CPU est le dispositif qui a généré la préemption pour requérir le déconditionnement du bus, elle répondra différemment au début de la période d'arbitrage par rapport à tout autre dispositif prétendant à l'accès au bus. Au début de la période d'arbitrage, chacun des autres dispositifs prétendant accéder au bus, place sa valeur de priorité sur les conducteurs d'arbitrage. L'unité CPU n'entame absolument pas ce procédé. Au début de la période d'arbitrage, l'unité CPU commence en fait à utiliser le bus. Dans une réalisation effective de la présente invention, la période d'arbitrage minimale est de 300 nanosecondes. Cependant, un cycle de bus à état d'attente zéro est inférieur à 300 nanosecohdes. En conséquence, chaque fois que l'unité CPU s'octroie la préemption et obtient ainsi accès au bus de système, elle peut en fait compléter un cycle simultanément au déroulement du procédé d'arbitrage. Selon la présente invention, on réalise un système de micro-calculateur à bus multiple comprenant un processeur et un sousAsystème 2'antémémoire connectés ensemble par un bus local CPU, une mémoire à accès aléatoire, un superviseur d'arbitrage et une pluralité d'autres unités fonctionnelles interconnectées par un bus de système, des moyens connectant ledit bus local CPU et ledit bus de système, ledit bus local CPU et ledit bus de système comprenant tous les deux une pluralité de conducteurs attribués à l'arbitrage de l'accès audit bus de système par au moins certaines de ladite pluralité d'unités fonctionnelles, l'un de ladite pluralité de conducteurs délivrant un signal de préemption et une source de signaux de préemption avec des entrées répondant à un cycle de bus local CPU dépassant une durée minimale, ladite source de signaux de préemption ayant une sortie connectée audit bus local CPU pour revendiquer un signal de préemption effectif à n'importe quelle unité fonctionnelle avec accès audit bus de système pour limiter la durée dudit accès en réponse à la réception dudit signal de préemption. Une réalisation de la présente invention sera maintenant décrite à titre d'exemple, en se reportant aux dessins ci joints dans lesquels: La figure 1 est une vue générale d'un système de micro-calculateur classique pouvant utiliser la présente invention. La figure 2 est une représentation schématique détaillée de la majorité des composants d'un système de micro-calculateur classique pouvant utiliser la présente invention. La figure 3 montre comment Je superviseur d'arbitrage et l'unité CPU sont connectés par rapport à un système de micro-calculateur à bus unique. La figure 4 montre comment le superviseur d'arbitrage, l'unité CPU et l'unité de commande d'antémémoire sont interconnectés selon les enseignements de la présente invention. La figure 5 illustre l'appareil associé à l'unité CPU pour générer un signal PREEMPT. La figure 6 illustre la logique associée à l'unité CPU pour générer un signal CPUREQ qui est utilisé pour générer un signal PREEMPT par l'unité CPU. La figure 7 est un schéma chronologique illustrant plusieurs cycles d'arbitrage et d'attribution dont l'un donne accès au bus de système par un dispositif générique et un autre donne accès au bus de système par l'unité CPU par l'intermédiaire d'un signal PREEMPT. La figure 8 montre le rapport existant entre le superviseur d'arbitrage central 335 et des arbitres 336 associés à d'autres dispositifs. Les figures 9 et 10 ensemble forment une représentation schématique d'un superviseur d'arbitrage 335, et La figure 11 est un schéma chronologique expliquant le fonctionnement de la figure 8. La figure 1 représente un système de micro-calculateur classique dans lequel la présente invention peut être utilisée. Comme le montre la figure, le système de micro-calculateur 10 comprend un certain nombre de composants qui sont interconnectés. Plus particulièrement, une unité de système 30 est raccordée à et commande une unité de contrôle (telle qu'un affichage vidéo classique). L'unité de système 30 est aussi raccordée à des dispositifs d'entrée comme un clavier 40 et une souris 50. Un dispositif de sortie comme une imprimante 60 peut aussi être connecté à l'unité de système 30. Finalement, l'unité de système 30 peut comprendre une ou plusieurs unité d'entraînement de disques comme l'unité d'entraînement de disques 70. Comme on le décrira ci dessous, l'unité de système 30 répond à des dispositifs d'entrée comme le clavier 40 et la souris 50 et à des dispositifs d'entrée/sortie comme l'unité d'entraînement de disques 70 pour délivrer des signaux pour commander des dispositifs de sortie comme l'unité de contrôle 20 et l'imprimante 60. Naturellement, il est évident pour l'homme de l'art que d'autres composants classiques peuvent aussi être connectés à l'unité de système 30 pour fonctionner en interaction avec celle ci. Selon la présente invention, le système de micro-calculateur 10 comprend (comme on le décrira plus particulièrement ci dessous) un sous-système de mémoire antémémoire de façon qu'il y ait un bus local CPU pour interconnecter un processeur, une unité de commande d'antémémoire et une mémoire antémémoire qui elle-même est connectée par l'intermédiaire d'une mémoire intermédiaire à un bus de système. Le bus de système est interconnecté à et fonctionne en interaction avec les dispositifs E/S comme le clavier 40, la souris 50, l'unité d'entraînement de disques , l'unité de contrôle 20 et une imprimante 60. De plus, selon les enseignements de la présente invention, l'unité de système 30 peut aussi comprendre un troisième bus dont l'architecture est à micro-canal (TM), pour assurer l'interconnexion entre le bus de système et d'autres dispositifs d'entrée/sortie. La figure 2 est une représentation schématique illustrant les divers composants d'un système de micro-calculateur à double bus. Un bus local CPU 230 (comprenant des composants de données, d'adresses et de commande) permet la connexion d'un microprocesseur 225 (comme une unité 80386), d'une unité de commande d'antémémoire 260 (qui peut comprendre une unité de commande d'antémémoire 82385) et une mémoire antémémoire à accès aléatoire 255. Une mémoire intermédiaire 240 est aussi connectée sur le bus local CPU 230. La mémoire intermédiaire 240 est elle-même connectée au bus de système 250 et comprend aussi des composants d'adresses, de données et de commande. Le bus de système 250 est disposé entre la mémoire intermédiaire 240 et une autre mémoire intermédiaire 253. Le bus de système 250 est aussi connecté à un élément de commande et de chronologie de bus 265 et à une unité de commande DMA 325. Un bus de commande d'arbitrage 340 raccorde l'élément de commande et de chronologie de bus 265 et le superviseur d'arbitrage 335. La mémoire principale est aussi connectée au bus de système 250. La mémoire principale comprend un élément de commande de mémoire 351, un multiplexeur d'adresses 352 et une mémoire intermédiaire de données 353. Ces éléments sont interconnectés avec des éléments de mémoire 360 à 364 comme le montre la figure 2. Une autre mémoire intermédiaire 267 est connectée entre le bus de système 250 et un bus planaire 270. Le bus planaire 270 comprend des composants d'adresses, de données et de commande, respectivement. Sont raccordés le long du bus planaire 270 divers adaptateurs E/S et autres composants comme l'adaptateur d'affichage 275 (qui est utilisé pour commander l'unité de contrôle 20), une horloge 280, une mémoire à accès aléatoire supplémentaire 285, un adaptateur RS 232 290 (utilisé pour des opérations E/S en série), un adaptateur d'imprimante 295 (qui peut être utilisé pour commander l'imprimante 60), une unité de chronologie 300, un adaptateur de disquettes 305 (qui coopère avec l'unité d'entraînement de disques 70), une unité de commande d'interruption 310 et une mémoire permanente 315. La mémoire intermédiaire 253 fait fonction d'interface entre le bus de système 250 et un bus de fonction optionnel comme le bus à micro-canal (TM) 320 représenté par les prises d'enfichage de micro-canal (TM). Les dispositifs comme la mémoire 331 peuvent être raccordés au bus 320. Les figures 8-11 sont utiles à l'explication du mécanisme d'arbitrage. En se reportant maintenant à la figure 8, on va décrire la relation existant entre le superviseur d'arbitrage 335 et une unité d'arbitrage local 336 représentant toutes les unités d'arbitrage local. En général, lorsqu'un dispositif désire accéder au bus de système 250 pour transférer des données, une unité d'arbitrage local 336 recevra un signal de requête du dispositif particulier auquel l'unité d'arbitrage est attribuée. Le signal de requête est converti en un signal /PREEMPT qui est généré par l'arbitre local et transmis au superviseur d'arbitrage 335 et à chacun des arbitres locaux par la ligne /PREEMPT du bus d'arbitrage. On notera que dans la réalisation particulière de l'invention, les lignes /PREEMPT sont mises ensemble en état OU et il est ainsi inutile que le superviseur d'arbitrage 335 connaisse le dispositif particulier qui génère la requête. Le superviseur d'arbitrage 335 génère le signal ARB/GRANT/ à un instant approprie comme déterminé par le signal de mémoire HLDA et +REFRESH issu de l'unité de commande de révision (non représentée) bien connue de l'homme de l'art en réponse à un signal /PREEMPT issu d'un ou de plusieurs arbitres locaux 336. HLDA est un signal de la paire HLDA et HRQ (ou HOLD) qui dans un système à bus unique, a été échangée entre le superviseur d'arbitrage 335 et l'unité CPU. Dans les systèmes à bus double, ces signaux sont échangés entre le superviseur d'arbitrage et l'unité de commande d'antémémoire comme en 260 de la figure 2. Ainsi, lorsque l'un quelconque des dispositifs désire prétendre à l'utilisation du bus de système 250, il génère un signal de requête à son arbitre local correspondant 336 qui génère alors un signal /PREEMPT sur la ligne /PREEMPT du bus d'arbitrage. Puis, à l'instant approprié, lorsque le bus devient disponible comme déterminé par les signaux HOLD et +REFRESH issus de l'unité de commande de révision, le superviseur d'arbitrage 336 génère l'état +ARB du signal ARB/GRANT/ sur le bus d'arbitrage à chacun des arbitres locaux 336. En réponse à l'état +ARB, chacun des arbitres locaux 336 qui désire accéder au bus de système 250 applique son niveau de priorité sur les lignes respectives ARB0-ARB3 du bus d'arbitrage. Puis, chacun des arbitres locaux désirant accéder au bus de système 250 compare son niveau de priorité désigné au niveau de priorité sur le bus d'arbitrage et cesse lui-même de prétendre au bus dans le cas o son niveau de priorité est inférieur à celui porté par le bus d'arbitrage. Ainsi, à la fin du cycle d'arbitrage, celui seulement des arbitres locaux qui a le niveau de priorité le plus élevé pendant ce cycle d'arbitrage reste en attente du bus et obtient ainsi la commande du bus lorsque l'état GRANT/ est reçu du superviseur d'arbitrage 336 sur la ligne ARB/GRANT. On se reportera maintenant aux figures 8 et 9 pour une description plus détaillée des circuits du superviseur d'arbitrage 336 tel qu'illustré. Le superviseur d'arbitrage 336 comprend une chaîne de chronologie en couronne de Johnson modifiée comprenant les compteurs 31 à 34 et la porte OU 35, la porte OU 36, la porte ET négatif 37, l'inverseur 38 et la porte OU 39. En supposant que le bus est à l'état de repos et que l'unité CPU 225 "possède" le bus mais ne l'utilise pas, le fonctionnement du circuit sera décrit ci après en se reportant au schéma chronologique de la figure 11. Dans l'état indiqué ci dessus, le signal ARB/GRANT/ est alors actif au niveau bas et les niveaux de priorité d'arbitrage ARB0 à ARB3 ont tous une valeur de un. La chaîne de chronologie en anneau de Johnson modifiée est maintenue restaurée par le signal +HLDA au travers de la porte OU 36 et de la porte ET négatif 37. Lorsqu'un dispositif a besoin d'accéder au bus, le signal /PREEMPT est activé. Comme le montre la figure 10, le signal /PREEMPT passant à l'état actif, provoque le passage au niveau positif de la sortie de la porte, ce qui représente un signal PROCESSOR HOLD REQUEST (REQUETE MAINTIEN PROCESSEUR) (+PROC HRQ). Les signaux +ARB0 à +ARB3 et un signal +GRANT sont aussi appliqués en entrée à la porte OU de la figure 10 pour permettre à l'unité CPU 225 de ne pas gêner les transferts au bus par les autres dispositifs. Le signal +PROC HRQ provoque le déconditionnement du signal +HLDA, ce qui provoque le retrait du signal de restauration (la sortie de la porte OU 36) des compteurs 30 à 33. Il doit être entendu que les entrées -SO, -Si, -CMD et -BURST doivent être inactives afin que le signal HLDA retire les signaux de restauration des compteurs 31 à 34 indiqués précédemment, comme illustré à la figure 11. Le signal -S0 représente le cycle WRITE (ECRITURE) et le signal -Si représente le cycle READ (LECTURE). Le signal -CMD est généré par le bus principal courant un certain temps spécifié après -SO ou -Si. Pendant les cycles READ, le signal -CMD ordonne au dispositif asservi de placer des données READ sur le bus et pendant les cycles WRITE, le signal -CMD est activé pour la validation des données WRITE. A l'impulsion d'horloge suivante (20MHz), après que +HLDA ait été déconditionné, la sortie du compteur 31 est conditionnée, ce qui provoque le passage de la sortie de la porte OU 39 au niveau haut (+ARB) indiquant une période de chronologie d'arbitrage. La sortie de la porte OU 39 reste au niveau haut jusqu'à ce que la sortie du compteur 33 passe au niveau bas, quelquefois après que la sortie du compteur 34 soit passée au niveau haut. Ceci établit une impulsion de chronologie de 300 nanosecondes pour le signal ARB/GRANT. La sortie du compteur 34 reste conditionnée jusqu'à ce que le dispositif commence un cycle de bus en activant soit -SO, soit S1. La sortie est alors restaurée et les compteurs 31 à 34 sont prêts à commencer à nouveau le compte chronologique à la fin du cycle de bus courant. Si aucun dispositif ne demande le service du bus, le bus revient à l'état de repos et la commande est renvoyée au processeur. HLDA est réactivé et le bus est maintenant disponible pour des opérations commandées par le processeur. La figure 3 montre l'interconnexion entre une unité CPU 80836 comme le microprocesseur 225, et le superviseur d'arbitrage 335 dans un système de micro-calculateur à bus unique. Le signal de sortie ARB/GRANT/ issu du superviseur est le signal indiquant si le mécanisme d'arbitrage est en état d'arbitrage (pendant lequel des dispositifs prétendant accéder à la ressource de système placent leur niveau de priorité sur les conducteurs d'arbitrage) ou dans une phase d'attribution (dans laquelle le dispositif obtenant l'accès à la ressource commune peut utiliser cette ressource à l'exclusion d'autres dispositifs qui peuvent avoir prétendu à cet accès). Un autre signal d'entrée au superviseur d'arbitrage 335 est le signal PREEMPT qui a déjà été décrit. Finalement, l'entrée au superviseur d'arbitrage 335 représenté par ARBl/80-3 forme les conducteurs d'arbitrage qui, pendant la phase d'arbitrage, sont commandés par des dispositifs prétendant à l'accès avec leurs propres niveaux de priorité. Les connexions d'entrée/sortie sur le côté gauche du superviseur d'arbitrage 335 montre son interconnexion avec l'unité 80386 dans un système de micro-calculateur à bus unique courant. Les signaux HLDA et HRQ (quelquefois référencés HOLD) sont des mécanismes d'échange par lesquels le superviseur d'arbitrage 335 peut demander l'accès à la ressource de système à l'exclusion de l'unité 80386 (HRQ). Lorsque l'unité 80386 accuse réception (HLDA), le superviseur d'arbitrage 335 peut répartir l'accès à la ressource. Dans les systèmes de microcalculateur à bus unique, l'unité CPU ne peut pas obtenir la préemption de sa propre initiative. Ceci entraîne le risque indésirable de voir l'unité CPU exclue de la ressource commune par un dispositif qui peut s'imposer brusquement. La figure 4 est une représentation schématique montrant des interconnexions sélectionnées dans un système de micro-calculateur à double bus qui utilise l'unité CPU 80386 et une unité de commande d'antémémoire 82385. Les connexions d'entrée/sortie sur le c6té droit du superviseur d'arbitrage 335 de la figure 4 sont identiques à celles de la figure 3 et ne seront pas décrites ici. Le point important illustré à la figure 4 est que la supervision du superviseur d'arbitrage 335 est maintenant mise en oeuvre par l'unité de commande d'antémémoire 82285, puisque c'est à cet élément que sont appliqués les signaux HRQ et HLDA. En l'absence d'un autre agencement quelconque, l'unité CPU 80386 pourrait être gelée hors utilisation de la ressource commune. La présente invention fournit cet autre mécanisme et le fait dans une large mesure sans affecter d'autres dispositifs accédant à la ressource commune. Les figures 5 et 6 montrent comment le signal CPREEMPT et son antécédent CPUREQ sont générés. En se reportant tout d'abord à la figure 6, on voit que la logique peut être considérée comme faisant partie de l'unité de commande d'antémémoire 260. La logique est prévue pour générer le signal CPUREQ qui peut être considéré comme une entrée de signal de commande à la partie de commande de la mémoire intermédiaire 240. Le signal de commande CPUREQ est développé depuis les entrées représentées à gauche comprenant /BUSYCYC 386, READYI, CLK, RESET et /(M/IO & A31). Le dernier signal est l'adresse décodée au coprocesseur. Les signaux BUSYCYC 386, READYI et /(/M/IO & A31) sont des signaux de niveau bas actifs de façon que par exemple, lorsque la bascule 601 est conditionnée (par une entrée de niveau haut à son entrée D), sa sortie soit au niveau haut et le signal CPUREQ au niveau bas (actif). Outre la bascule 601, la logique de la figure 6 comprend une porte OU 602, trois portes ET 603-605 et les inverseurs 606-608. Essentiellement, les entrées de la porte ET 603 détectent un cycle de l'unité 80386 qui s'étend au delà de l'état d'attente nulle et qui n'est pas en même temps un cycle attribué au coprocesseur. Une fois que la condition est détectée, la bascule 601 est conditionnée et ne peut être restaurée qu'à un instant d'horloge CLK2 lorsque la condition est terminée. Les portes 604 et 605 sont prévues pour restaurer la bascule 601 lorsque CLK est au niveau haut et que READYI est au niveau bas (actif) . Cette condition est rencontrée lorsqu'un cycle de bus d'unité CPU est achevé. Un cycle de bus local CPU s'étendant au delà de l'état d'attente zéro (et qui n'est pas aussi un cycle attribué au coprocesseur) est un cycle qui requiert l'accès au bus de système. En conséquence, le signal CPUREQ dans ces circonstances devient actif, c'est à dire passe au niveau bas. L'effet de ce signal est montré à la figure 5. La figure 5 montre la logique qui est associée au bus de système 250. Comme le montre la figure 5, l'élément de commande de la mémoire intermédiaire 240 présente une sortie CPUREQ (qui est commandée par le même signal que celui de la figure 6). Le signal CPUREQ constitue une entrée d'une porte 501 dont la sortie /CPREEMPT est en effet un signal PREEMPT généré par l'unité 80386. Comme on le voit à la figure 5, le signal /CPREEMPT est raccordé au conducteur PREEMPT qui est l'une des entrées du superviseur d'arbitrage 335 (voir la figure 3 ou 4). Le signal /CPREEMPT est généré par la logique représentée à la figure 5 comprenant les portes 501-503. Une seconde entrée de la porte 501 est constituée de la sortie de la porte 503 dont l'une des entrées est le signal ARB/GRANT/ (identique à la sortie du superviseur d'arbitrage 335). L'autre entrée est ENCPUPREEMPT. Ce dernier signal est une sortie de l'unité 80386. Lorsqu'il est inactif, ce signal empêchera /CPREEMPT de devenir actif. Ainsi, lorsque le signal ENCPUPREEMT est inactif, l'unité 80386 ne peut pas obtenir préemption. Le signal ENCPUPREEMPT peut être commandé par un commutateur commandé par l'utilisateur ou par un commutateur logiciel suivant les demandes des autres dispositifs du système et/ou du logiciel. Dans des circonstances normales, le signal ENCPUPREEMPT sera actif, ce qui conditionne ainsi l'unité 80386 pour obtenir préemption. Lorsque le signal ARB/GRANT/ indique que le procédé d'arbitrage est en phase d'attribution (et que le signal ENCPUPREEMPT est actif), la sortie de la porte 503 sera active. Une sortie active de la porte 503 en même temps qu'un signal CPUREQ actif, permettra la production d'un signal /CPREEMPT actif. La porte 503 évitera la génération d'un signal /CPREEMPT actif pendant la phase d'arbitrage et ne permettra qu'un signal /CPREEMPT actif pendant la phase d'attribution du procédé d'arbitrage. La porte 502 est utilisée pour surveiller l'état des conducteurs d'arbitrage et évitera la génération d'un signal /CPREEMPT actif si tous les conducteurs sont actifs (au niveau haut), indiquant qu'il n'y a pas d'autres dispositifs en arbitrage pour le bus, c'est à dire que l'unité CPU possède la ressource commune. En conséquence, par la logique représentée aux figures 5 et 6, pour des cycles sur le bus local CPU qui ne sont pas attribués au coprocesseur et qui dépassent une durée minimale (état d'attente zéro), l'unité CPU peut accéder ou accédera par préemption si le mécanisme d'arbitrage est dans sa phase d'attribution. L'effet de cette préemption sera maintenant décrit en se reportant aux figures 7A-7E. Les figures 7A-7E illustrent: 1) L'utilisation du bus de système par un dispositif fonctionnant par rafales (a-d). ?63290 2) La préemption de ce dispositif par un dispositif classique par l'utilisation du signal PREEMPT (b-h). 3) L'acquisition du bus par l'unité CPU par l'utilisation du signal!/CPREEMPT (k-o), et 4) Simultanément à l'utilisation du bus par l'unité CPU, l'arbitrage pour l'utilisation du bus par un autre dispositif (m). A titre d'exemple, on supposera plus particulièrement qu'un dispositif fonctionnant par rafales a obtenu la commande du bus de système comme illustré en (a) de la figure 7D. Lorsqu'un autre dispositif le long du bus de système applique PREEMPT (b), le dispositif à rafales qui commande actuellement, complète sont transfert en cours comme illustré en (c), figure 7C. A l'achèvement du transfert courant, le dispositif à rafales qui abandonne la commande du bus de système, retire -on signal en rafale de la ligne de rafales comme montré en (d) de la figure 7D. Ce dispositif à rafales ne participera pas au cycle d'arbitrage suivant. Le superviseur d'arbitrage 335 place alors le signal ARB/GRANT/ dans l'état ARB (e) - Figure 7A. La même transition représente le début d'un autre cycle d'arbitrage et l'arbitrage pour le bus de système en (f) - Figure 7B. Après le passage du signal ARB/GRANT/ au niveau bas, la commande du bus de système est attribuée au nouveau dispositif comme illustré en (g) - Figure 7A. Le nouveau dispositif qui a obtenu la commande du bus de système retire alors son signal PREEMPT en réponse au signal GRANT comme montré en (h) - Figure 7E. a63309& Un peu plus tard, dans l'exemple des figures 7A-7E et en se basant sur des conditions réfléchies sur le bus local CPU 230, l'unité CPU applique le signal /CPREEMPT qui est réfléchi en PREEMPT(k) - Figure 7E. Comme on l'a déjà expliqué, ceci provoquera un nouveau cycle d'arbitrage commençant comme illustré en (1) - Figure 7Ai Le cycle d'arbitrage, comme représenté à la figure 7A, s'étend à partir de (1-o). Pendant ce cycle d'arbitrage, l'unité CPU utilise en fait le bus de système et au début de ce cycle, l'unité CPU déconditionne son signal PREEMPT (n) - Figure 7E. Pendant l'utilisation du bus de système par l'unité CPU, d'autres dispositifs qui peuvent prétendre accéder au bus de système, sont en arbitrage pour cette ressource commençant en (m) - Figure 7B. A la fin du cycle de CPU, lorsque l'unité CPU a fini d'utiliser le bus de système (o), un nouvel arbitrage a été complété si bien qu'immédiatement après, un autre dispositif quelconque (s'il y en a qui prétendent accéder au bus de système) peut utiliser cette ressource pendant la période commençant à (o) - Figure 7A. Le signal /CPREEMPT n'est actif que lorsqu'un cycle de bus CPU s'étend au delà d'une durée prédéterminée (au delà d'un état d'attente zéro, par exemple). Pendant la phase d'arbitrage (ARB/GRANT/niveau haut), la commande d'antémémoire de CPU 260 est libérée de l'état de maintien par le superviseur 335 passant HRQ au niveau bas et peut fonctionner sur un cycle ou plus. L'achèvement d'un cycle CPU autorisé à utiliser le bus de système par l'utilisation du mécanisme PREEMPT, est détecté par l'activité de READYI avec CLK au niveau haut. En raison de la logique de la figure 6, dans ces conditions, la bascule 601 est restaurée et CPUREQ devient inactif. Les équations logiques qui ont été indiquées ci dessus, sont reproduites ci dessous. Dans ces équations, les symboles ont les significations suivantes: Symbole Définition / Négation := Terme enregistré A, égal à = Terme combinatoire A, égal à & ET logique + OU logique Signaux logiques ARB1/80-3' Requêtes arbitrage ARB/GRANT Attribution arbitrage /(/M/IO & A31) Adresse coprocesseur math décodée /CPREEMPT Voir figure 5 /CPUREQ Voir figure 6 ENCPUPREEMPT Bit programmable pour conditionner ou déconditionner l'unité CPU en ce qui concerne la génération de /CPREEMPT PREEMPT Défini dans les applications dépendantes, modifié dans cette application dans la mesure o il peut être généré par /CPREEMPT Co {(. cZZ - e- çn dd: 4-> m _.-0 _++ _ + + _ + ++ ?632096 + LEAB & WBS & CLK /MISSI:=MISS1 & BUSCYC385 & CPUNA & /BADS & /(BW/R) & CLK & NCA (8) + MISSI & BUSCYC385 & /BADS & /(BW/R) & CLK & NCA & /BREADY + /MISSl & /CLK + /MISSI & BREADY /PIPECYC385: = PIPECYC385 & /BADS & /BUSCYC385 & CLK & /BREADY (9) + PIPECYC385 & /MISSI & BT2 & /BUSCYC385 & CLK & /BREADY + /PIPECYC385 & /CLK /PIPECYC386:= (10) PIPECYC386 & /ADS & CLK & /CPUREADY & /RESET & /BUSCYC386 + /PIPECYC386 & /CLK & /RESET /CPUREADY=/READYO & /(W/R) (11) + /BRDYEN & /BREADY & MISSI & /BUSCYC385 + /READYO387 + /BREADY385 & (W/R) & /LEAB + /READYO & (W/R) & NCA + /RDY387PAL 26320?96 Dans les équations logiques précédentes, les signaux suivants sont décrits ou répertoriés dans les publications de Intel citées précédemment. ADS BADS BRDYEN BREADY (BW/R) actuellement répertorié BW/R, les parenthèses sont utilisées pour indiquer que le terme complet constitue un signal CLK READYO RESET WBS (W/R) actuellement répertorié W/R, les parenthèses sont utilisées pour indiquer que le terme complet constitue un seul signal ADS, lorsqu'il est actif, indique une adresse valide sur le bus local CPU 230. BADS, lorsqu'il est actif, indique une adresse valide sur le bus de système 250. BRDYEN est une sortie de l'unité 82385 qui est un antécédent des signaux READY. BREADY est un signal d'état "prêt" issu du bus de système 250 et passé au bus local CPU 230. BW/R définit un signal Write (Ecriture) ou Read (Lecture) du bus de système 250. CLK est un signal de chronologie de processeur qui est en phase avec le processeur 225. READYO est une autre sortie de l'unité 82385 sur la ligne des signaux d'état "prêt". RESET devrait être apparent. WBS indique l'état de la mémoire intermédiaire d'écriture. (W/R) est le signal classique Write ou Read pour le bus local CPU 230. Les équations (1)-(11) définissent: 263207e' BREADY385 BT2 BUFWREND BUSCYC385 BUSCYC386 CPUNA LEAB MISSi PIPECYC385 PIPECYC386 CPUREADY en termes de signaux définis, les signaux décrits ou répertoriés dans les publications Intel citées précédemment et NCA, NACACHE, READYO387 et RDY387PAL. BREADY385 est un signal similaire à BREADY qui dans une réalisation effective, a été modifié pour adaptation à une antémémoire de 64K. Dans le cas d'une antémémoire de 32K (comme recommandé par le fabricant), BREADY peut être utilisé à la place de BR]ADY385. BT2 réfléchit l'état du bus de système 250. L'état BT2 est un état défini dans les publications Intel. BUFWREND représente la fin d'un cycle d'écriture en mémoire intermédiaire. BUSCYC385 réfléchit aussi l'état du bus de système 250. Il est au niveau haut pour les états de bus BTI, BT1, BT1P et au niveau bas pour les états de bus BT2, BT2P et BT2I (ce sont à nouveau des états de bus référencés dans les publications Intel citées précédemment). 26330?6 BUSCYC386 est au niveau haut pendant les états TI, T1, T1P, T2I du bus local CPU 230 et au niveau bas pendant T2. Il est aussi au niveau bas pendant T2P à moins que T2I n'apparaisse en premier. CPUNA est un signal à l'unité 80386 permettant une opération enchaînée. LEAB est le signal de conditionnement de verrouillage (dans la mémoire intermédiaire 240) pour des écritures postées. MISS1 est actit pour définir le premier cycle d'un cycle double de traitement de lectures de 64 bits dans des dispositifs à possibilité d'antémémoire. PIPECYC385 est actif pendant BT1P (qui est un état de bus répertorié dans les publications de Intel citées précédemment. PIPECYC386 est au niveau bas pendant l'état TIP du bus local CPU 230. CPUREADY est l'entrée d'état "prêt" à l'unité 80386. NCA est un signal crée par le décodage du composant d'adresse sur le bus local CPU 230 pour réfléchir, lorsqu'il est actif, un accès sans possibilité d'antémémoire. La possibilité d'antémémoire est déterminée par un composant étiquette (A31 à A17) et des, informations programmables définissant les étiquettes (s'il y en a) qui se- réfèrent aux adresses à 2632 C possibilité d'antémémoire par opposition aux adresses sans possibilité d'antémémoire. NACACHE est un signal similaire au signal BNA. BNA est un signal généré par le système requérant une adresse suivante depuis le bus local CPU 230 et est référencé dans les publications d'Intel citées précédemment. NACACHE ne diffère de BNA que par le fait que BNA est crée pour une antémémoire de 32K tandis que NACACHE est crée pour une antémémoire de 64K. Aussi longtemps que la mémoire antémémoire est de 32K comme indiqué dans les publications de Intel, le signal NACACHE auquel on se réfère ici pourra être remplacé par le signal BNA. READYO387 est la sortie d'état "prêt" du coprocesseur math 80837. RDY387PAL est une sortie de logique externe utilisée dans le cas o un coprocesseur math 80387 n'est pas installé pour empêcher l'absence du coprocesseur math de gêner les opérations du système. Il apparaît ainsi qu'en utilisant la présente invention dans un système de micro-calculateur à double bus utilisant un processeur 80386 et une unité de commande d'antémémoire 82385, le processeur peut conditionnellement être prioritaire pour utiliser le système dans certaines circonstances spécifiées. Plus particulièrement, pour des cycles de bus local dépassant une durée prédéterminée, le processeur peut appliquer un signal /CPREEMPT à condition qu'il y ait d'autres utilisateurs prétendant accéder à la ressource et que l'option de préemption ait été conditionnée (ENCPUPREEMPT). Cependant, lorsque la préemption devient effective (comme signalé au processeur par le superviseur d'arbitrage), deux évènements se déroulent alors simultanément. Le premier évènement est que le processeur accède au bus de système. Cet accès ne gênera pas les autres utilisateurs potentiels du bus puisque pendant la période d'accès du processeur, d'autres utilisateurs prétendants sont dans une phase d'arbitrage. Ainsi, simultanément à l'accès au bus de système par le processeur, d'autres utilisateurs peuvent être en arbitrage pour 1' accès à la phase d'attribution suivant l'utilisation du bus par le processeur. En conséquence, en utilisant la présente invention, on permet au processeur d'utiliser le bus de système même si d'autres dispositifs d'utilisateur prétendent simultanément accéder au bus. En faisant chevaucher l'utilisation du bus par le processeur et la phase d'arbitrage (appliquée en entrée par d'autres dispositifs), on améliore l'utilisation et l'efficacité du bus REVENDICATIONS 1. Un système de micro-calculateur à bus multiple caractérisé en ce qu'il comprend un processeur et un sous-système d'antémémoire connectés ensemble par un bus local CPU, une mémoire à accès aléatoire, un superviseur d'arbitrage et plusieurs autres unités fonctionnelles connectées ensemble par un bus de système, des moyens raccordant ledit bus local CPU et ledit bus de système, ledit bus local CPU et ledit bus de système comprenant tous les deux plusieurs conducteurs attribués à l'arbitrage de l'accès audit bus de système par au moins certaines desdites plusieurs autres unités fonctionnelles, l'un desdits plusieurs conducteurs délivrant un signal de préemption, et une source de signaux de préemption avec des entrées répondant à un cycle de bus local CPU dépassant une durée minimale, ladite source de signaux de préemption ayant une sortie connectée audit bus local CPU pour revendiquer un signal de préemption effectif à n'importe quelle unité fonctionnelle avec accès audit bus de système pour limiter la durée dudit accès en réponse à la réception dudit signal de préemption. 2. Un système de micro-calculateur à bus multiple selon la revendication 1 dans lequel le superviseur d'arbitrage comprend une source d'un signal d'attribution d'arbitrage ledit système comprenant en outre, des moyens répondant audit signal de préemption pour préparer une phase d'arbitrage, des moyens pour amorcer une phase d'arbitrage en réponse à un signal représentant la fin de l'utilisation courante du bus par des utilisateurs et des moyens pour signaler une nouvelle phase d'arbitrage audit processeur. 3. Un système de micro-calculateur à bus multiple selon la revendication 2 dans lequel ledit processeur répond aux signaux de signalisation provenant dudit superviseur d'arbitrage et représentant une nouvelle phase d'arbitrage, tandis que ledit signal de préemption est revendiqué pour accéder immédiatement audit bus de système. 4. Un système de microcalculateur à bus multiple selon la revendication 3 dans lequel ladite source de signaux de préemption répond en outre à un signal programmable pour, dans un état dudit signal programmable, permettre la production dudit signal de préemption et dans un autre état, interdire la production dudit signal de préemption. 5. Un système de micro-calculateur à bus multiple selon l'une quelconque des revendications précédentes comprenant en outre un bus de fonction optionnel connecté à travers ledit bus de système et lesdits moyens raccordant ledit bus local CPU et ledit bus de système, au dit bus local CPU, de telle sorte que les dispositifs couplés audit bus de fonction optionnel arbitrent l'accès audit bus de système et répondent audit signal de préemption issu de ladite source de signaux de préemption pour terminer un accès de bus en réponse à la réception dudit signal de préemption. 6. Un système de micro-calculateur à bus multiple selon la revendication 1 dans lequel ladite pluralité de conducteurs comprend un conducteur d'attribution d'arbitrage portant un signal d'attribution d'arbitrage, pour établir une phase d'arbitrage pour arbitrer l'accès parmi plusieurs dispositifs lorsque ledit signal est dans un état et une phase d'attribution pour l'utilisation du bus de système par le dispositif gagnant ladite phase d'arbitrage, et dans lequel ladite unité CPU comprend des moyens pour accéder audit bus de système dans la phase d'arbitrage suivant immédiatement le revendication dudit signal de préemption.