Brevet FR2643476A1 — publié le 19900824

La présente invention concerne un procédé et un dispositif pour transférer des données entre divers com- posants d'un système informatique. Plus précisément, la présente invention concerne un bus informatique perfectionné possédant des fonctionnalités de mémoire virtuelle. Dans un système informatique classique, une unité centrale de traitement (CPU) lit et écrit des données en direction ou en provenance de périphériques et autres com- posants constituant le système informatique. Ces communica- tions entre composants sont fréquemment réalisées au moyen d'un bus qui assure l'interconnexion de tous les composants du système informatique. La vitesse à laquelle le bus transfère directement les données limite la vitesse d'en- semble du système informatique. Les restrictions de proto- cole ou de "poignée de main" sont des contraintes courantes pesant sur la vitesse du transfert des données entre com- posants reliés au bus. Ces restrictions imposent qu'une séquence d'évènements prédéterminés ait lieu dans des limites temporelles spécifiées avant de pouvoir procéder à un échange effectif de données entre les composants reliés au bus. Ainsi, il est souhaitable de disposer d'un bus à grande vitesse et à large bande, qui fonctionne rapidement pour minimiser le temps de calcul requis par une tâche par- ticulière. Le protocole utilisé par le bus doit être conçu de manière à être aussi efficace que possible et à minimiser le temps nécessaire au transfert des données. Par ailleurs, de nombreux systèmes utilisent le principe de la mémoire virtuelle pour accroltre les possibilités du système informatique. Comme on le sait, les techniques de mémoire virtuelle permettent à une unité centrale de trai- tement d'adresser une mémoire plus importante que celle qui est physiquement présente dans la mémoire principale du système informatique. Lorsque l'unité centrale de traitement a besoin de lire ou d'écrire des données dans la mémoire principale, elle produit une adresse virtuelle pour ces don- nées. Cette adresse virtuelle est traduite en une adresse physique par une unité de gestion de mémoire (MMU). L'a- dresse physique est ensuite appliquée à la mémoire prin- - 'U43476 cipale pour lire ou écrire les données à cette adresse. Du fait que le temps nécessaire pour que l'unité centrale de traitement accède à la mémoire principale est habituellement très inférieur au temps d'accès à un composant périphérique (tel qu'un lecteur externe de disque), on peut ainsi ac- croitre la vitesse globale d'exécution du programme. L'unité de gestion de la mémoire reçoit une adresse vir- tuelle produite par l'unité centrale de traitement et la traduit en une adresse physique correspondante située dans la mémoire principale. Si la donnée de traduction n'est pas présentement mémorisée dans l'unité de gestion de la mé- moire, l'unité de gestion de la mémoire transfère alors dans sa mémoire, depuis la mémoire principale ou un autre périphérique, la donnée de traduction appropriée. Les unités de gestion de mémoire assurent également des fonctionnalités telles que des domaines adressables- multiples pour des pro- cessus distincts, le partage de mémoire entre processeurs et la protection de certains emplacements mémoire en n'auto- risant pour ces zones que certaines opérations telles qu'une lecture, une écriture ou une exécution. Dans le domaine des systèmes informatiques, on connaît des systèmes à mémoire virtuelle de types très variés, qui sont très couramment em- ployés dans les configurations informatiques récentes. Le US-A-4 550 368 décrit un tel type d'unité de gestion de mémoire. - Une autre limitation liée à Un bus informatique est la taille du bus proprement dit. Essentiellement, un bus est un ensemble de lignes reliant les divers composants d'un sys- tème informatique. Outre les lignes d'adresse et les lignes de données, le bus comprend habituellement des lignes de signal d'horloge, des lignes d'alimentation et d'autres lignes de signaux de commande. En règle générale, on peut accroître la vitesse du bus par simple addition de lignes supplémentaire au bus. Ceci permet au bus de véhiculer un plus grand nombre de données à un instant donné. Cependant, plus le nombre de lignes augmente, plus le coût du bus s'élève. Il est donc souhaitable d'avoir un bus qui fonc- tionne aussi rapidement que possible, tout en conservant une taille de bus qui rende celui-ci suffisamment économique. Compte tenu de ces limitations, la présente invention propose un bus perfectionné à grande vitesse avec fonction- nalité de mémoire virtuelle. Essentiellement, ce bus selon l'invention, qui est du type comprenant une pluralité de lignes permettant de véhi- culer des signaux entre des agents constitués par des unités de traitement des données, comprend des moyens de pilotage, reliés à chacun des agents, pour amener les lignes à un premier niveau de tension correspondant à un premier état numérique, et à un second niveau de tension correspondant à un second état numérique, ainsi que des moyens de pola- risation, reliés à la pluralité de lignes, pour maintenir ces lignes au second niveau de tension après que ces lignes aient été amenées par les moyens de pilotage à ce second niveau de tension. Le bus est applicable en particulier dans les systèmes informatiques qui utilisent des périphériques. Ce bus permet un transfert de données à grande vitesse par utilisation d'un principe de mémoire virtuelle. En outre, la présente invention réduit au minimum le nombre de lignes nécessaires pour la réalisation du bus. La présente invention réduit également au minimum la durée pendant laquelle un péri- phérique donné doit attendre avant de pouvoir accéder au bus et exécuter un transfert de données. Le bus comporte une pluralité de lignes comprenant des lignes d'adresse, des lignes de données et diverses lignes de commande ou de contrôle. Diverses unités de traitement des données, que l'on désignera sous le terme d"'agents", sont reliés au bus. Il est prévu un contrôleur pour contrôler l'accès des agents au bus. Une unité de gestion de la mémoire et un verrou d'a- dresse virtuelle sont reliés au bus afin de mettre en oeuvre le principe d'adressage virtuel de la présente invention. En cours de fonctionnement du bus, on transfère par le bus des données entre des agents. Un agent demandeur appli- que une adresse virtuelle sur les lignes de données du bus. Cette adressse virtuelle est convertie en une adresse physique par l'unité de gestion de la mémoire. Cette adresse physique est appliquée aux lignes d'adresse du bus. L'agent demandeur applique une séquence prédéterminée de signaux de commande et l'agent récepteur, qui mémorise les.données, applique les données demandées sur les lignes de données. La présente invention propose également un procédé pour transférer des données dans un système informatique entre des composants processeurs constituant des agents reliés sélectivement à un bus, caractérisé par les étapes consistant à transmettre un signal de requête de bus d'un agent accédant à un agent contrôleur, transmettre un signal d'attribution de bus de cet agent contrôleur à cet agent accédant, appliquer une adresse virtuelle à une première pluralité de lignes, traduire cette adresse virtuelle en une adresse physique correspondante, appliquer cette adresse physique à une seconde pluralité de lignes, appliquer un signal de validation d'adresse à une troisième pluralité de. lignes, et appliquer un signal de transfert de données à une quatrième pluralité de lignes, de manière à transférer les données sur la première pluralité de lignes entre l'agent accédant et un emplacement mémoire correspondant à ladite adresse physique. Selon un autre aspect de la présente invention, ce procédé comprend les étapes consistant à transmettre, sur une ligne de requête de bus, un signal de requête de bus d'un agent demandeur à un agent contrôleur, transmettre, sur une ligne d'attribution de bus, un signal d'attribution de bus de cet agent contrôleur à cet agent demandeur lorsque le bus est inactif, appliquer, à des lignes de données appar- tenant au bus, une adresse virtuelle depuis l'agent deman- deur, verrouiller cette adresse virtuelle dans un agent formant verrou d'adresse virtuelle, transmettre cette adresse virtuelle du verrou d'adresse virtuelle à une unité de gestion de la mémoire, traduire cette adresse virtuelle en une adresse physique au moyen de données de traduction mémorisées dans l'unité de gestion de la mémoire, appliquer cette adresse physique sur des lignes d'adresse appartenant au bus, appliquer un signal de validation d'adresse à l'agent accédant, transmettre, sur des lignes de confir- mation appartenant au bus, un signal de confirmation à l'agent accédant, et appliquer lesdites données sur les lignes de données, de manière à transférer à grande vitesse lesdites données entre-l'agent accédant et un emplacement mémoire correspondant à l'adresse physique. La présente invention permet également d'empêcher que n'apparaissent des situations inextricables en cours de fonctionnement du bus. A cet effet, le procédé selon l'invention comprend les étapes consistant à transmettre une adresse virtuelle d'un agent accédant à une unité de gestion de la mémoire, reliée au bus, cette unité de gestion de la mémoire comprenant des moyens de mémorisation destinés à conserver des données de traduction permettant de traduire l'adresse virtuelle en une adresse réelle, transmettre un signal de réexécution de l'unité de gestion de la mémoire à l'agent accédant au cas o l'unité de gestion de la mémoire ne possède pas les données de traduction nécessaires correspondant à l'adresse virtuelle conservée dans lesdits moyens de mémorisation, donner le contrôle du bus à l'unité de gestion de la mémoire, transférer, d'un périphérique externe à l'unité de gestion de la mémoire, les données de traduction corres- pondant à l'adresse virtuelle, retransmettre l'adresse virtuelle à l'unité de gestion de la mémoire depuis l'agent accédant, traduire cette adresse virtuelle en une adresse physique, et transférer les données de l'agent accédant vers un emplacement mémoire correspondant à cette adresse phy- sique. Ainsi, si un agent demandeur délivre une adresse vir- tuelle à l'unité de gestion de la mémoire et que l'unité de gestion de la mémoire ne possède pas les données de traduction nécessaire pour produire une adresse physique, l'unité de gestion de la mémoire va alors délivrer un signal de "réexécution". Ce signal permet à l'agent demandeur de "se mettre en retrait" et suspend temporairement le proces- sus de transfert des données en cours. L'unité de gestion de la mémoire peut alors prendre le contrôle du bus et aller chercher les données de traduction appropriées. Après que l'unité de gestion de la mémoire ait obtenu les données de traduction nécessaires, on reprend le processus de transfert des données. Sans le signal de rééxécution, l'unité de gestion de la mémoire serait incapable de prendre le con- trôle du bus. Ceci pourrait aboutir à une situation inex- tricable, o aucune donnée ne serait transférée, conduisant à un "gel" du bus. La présente invention inclut également un processus dans lequel certaines lignes du bus peuvent être mises à un troisième état, et sont toujours pilotées actives et inactives (signal appliqué et supprimé par pilotage actif) avant de passer au troisième état. Ceci diffère des structures de bus antérieures, o le signal des lignes étaient supprimés passivement au moyen de résistances d'at- traction du niveau vers le haut ou vers le bas. Le processus de fonctionnement à trois états de la présente invention réduit la consommation énergétique et permet de piloter directement le bus par des composants-CMOS. On va maintenant décrire un exemple de réalisation de l'invention, en référence aux figures annexées. La figure 1 est une représentation schématique d'un système informatique utilisant le mode de réalisation préféré de la présente invention. La figure 2a illustre, de façon schématique, les diverses sous-structures de bus formant le bus à grande vitesse de la présente invention. La figure 2b illustre la structure des lignes de confirmation de la présente invention. La figure 3 est un chronogramme montrant les protocoles de séquencement destinés aux signaux de commande à trois états utilisés par la présente invention. - La figure 4 est un chronogramme montrant le protocole de pilotage destinés aux lignes de signal à trois états autres que les lignes de commande utilisées par la présente inven- tion. La figure 5 montre, sots forme de tableau, les réponses de confirmation codées possibles d'un agent auquel on a accédé. La figure 6 montre sous forme de tableau les signaux possibles des lignes de transfert et leurs significations. La figure 7a est un chronogramme d'un cycle de lecture de l'unité centrale de traitement pour le transfert de données sur le bus. La figure 7b est un chronogramme d'un cycle d'écriture de l'unité centrale de traitement pour le transfert de données sur le bus. La figure 8a est un chronogramme d'un cycle d'écriture d'un composant à accès direct mémoire pour le transfert de données sur le bus. La figure 8b est un chronogramme d'un cycle de lecture d'un composant à accès direct mémoire pour le transfert de données sur le bus. La figure 9 est un chronogramme d'un cycle d'écriture mémoire en salve. La figure 10 est un chronogramme d'un cycle de réexécution tel qu'utilisé par la présente invention. On va décrire un bus perfectionné à grande vitesse, utilisable particulièrement au niveau des puces des systèmes informatiques utilisant des techniques de mémoire virtuelle. Dans la description qui va suivre, pour les besoins de l'explication on donnera des valeurs particulières de tailles mémoire, de configurations binaires, de nombres, de vitesses de transfert de données, etc. pour permettre une compréhension complète de la présente invention. L'homme du métier comprendra cependant que la présente invention peut être mise en oeuvre sans ces détails particuliers. Inver- sement, dans d'autres cas, des circuits et des composants bien connus n'ont été représenté que sous forme de schémas par blocs afin de ne pas alourdir inutilement la description de la présente invention. - 8 Si l'on se réfère tout d'abord à la figure 1, on y a représenté les composants principaux d'un système informa- tique utilisant la présente invention. Une unité centrale de traitement 12 communique avec les éléments du système infor- matique par l'intermédiaire du bus 10. Le bus 10 comporte une pluralité de lignes distinctes qui véhiculent des signaux de données et de commande en direction de divers composants du système informatique. Le système illustré figure 1 comporte en outre une mémoire principale 16, un composant vidéo 18, un composant à accès direct mémoire (DMA) 20, un coprocesseur 22, une interface de disque 24 et une interface de réseau 25. Si on le souhaite, on peut ajouter au système des unités supplémentaires, par exemple des accélérateurs ou de la mémoire supplémentaire. Pour les besoins de la présente invention, tous les périphériques et composants informatiques qui sont reliés au bus 10 de la présente invention, seront désignés sous le terme générique d"'agents", avec la référence numérique générique 26. La présente invention vise à permettre divers éléments du système informatique de communiquer entre eux. On a constaté que la présente invention convient particulièrement à la communication au niveau de la puce entre composants à hautes performances. Il est souvent souhaitable, cependant, que le système informatique communique avec d'autres systèmes. Il se peut que ces systèmes n'utilisent pas les mêmes protocoles de communication que ceux utilisés par le système de bus de la présente invention. Le système informatique peut alors être pourvu d'un bus d'entrée/sortie distinct 60. Ce bus d'entrée/sortie 60 peut utiliser l'un quelconque des divers processus de communication bien connus de la tech- nique. Bien sûr, il sera clair pour l'homme du métier que le système de bus de la présente invention peut être utilisé pour communiquer avec des composants externes, si ces com- posants utilisent ou comprennent les protocoles de séquen- cement de la présente invention. La présente invention comporte également un contrôleur/ arbitre 14 relié au bus 10. Comme on le décrira plus en détail ci-dessous, le contrôleur 14 exécute diverses fonc- tions, notamment le contrôle et l'attribution de l'accès au bus 10 entre les divers agents. Le contrôleur effectue ceci en appliquant un signal d'attribution de bus sur la ligne d'attribution de bus 49. Chaque agent relié au bus possède une ligne de requête de bus, une ligne de sélection de bus et une ligne d'attribution de bus propres reliant le con- trôleur/arbitre 14 et l'agent correspondant. Lorsqu'un agent a besoin de prendre le contrôle du bus, il applique un signal sur sa ligne de requête de bus 49. Le contrôleur 14 reçoit toutes ces requêtes, leur affect des priorités et les mémorise, attend que le bus soit au repos et applique un signal d'attribution de bus sur la ligne d'attribution de bus 49 à l'un des composants demandeurs. Dans le mode de réalisation préféré, le contrôleur utilise un processus d'arbitrage des priorités à permutation circulaire. L'homme du métier comprendra cependant que l'on pourrait utiliser des processus d'arbitrage différents et qu'il ne s'agit là que d'un choix d'exécution. Par exemple, le contrôleur 14 pourrait répartir les attributions de bus sur la base "premier demandeur/premier servi". Inversement, on pourrait affecter à chaque agent un numéro de priorité propre et le contrôleur 14 pourrait affecter les attributions de bus à l'agent demandeur de plus forte priorité. Le contrôleur empêche également l'apparition de situations inextricables, qui apparaîtraient lorsque deux ou plusieurs agents cherchent à accéder en même temps au bus 10. Ceci est obtenu par utilisation d'un protocole de "réexécution" qui sera décrit plus bas. Comme on le décrira, la présente invention propose un bus à grande vitesse de transfert parallèle des données, à faible consommation énergétique et comportant un nombre minimal de lignes. En outre, la présente invention réduit au minimum le temps nécessaire pour qu'un agent donné puisse obtenir l'accès au bus. Bien que la figure 1 illustre un processeur et des périphériques particuliers reliés au bus , l'homme du métier comprendra aisément que la structure de la présente invention permet d'interconnecter des unités de traitement et des périphériques très variés dans divers systèmes utilisant la structure de bus décrite ici. Le mode de réalisation préféré du bus est conçu pour être réalisé en technologie CMOS. C'est pourquoi on -optimise certaines spécifications énergétiques et certains protocoles de séquencement pour réduire la consommation énergétique et permettre un fonctionnement efficace avec des composants CMOS. L'homme du métier comprendra aisément que ces spéci- fications peuvent être modifiées sans sortir du cadre de la présente invention. Dans toute la description qui suit, certaines lignes de bus seront décrites comme étant "actives au niveau haut" ou "actives au niveau bas". Cette terminologie est utilisée ici pour indiquer si un signal de bus particulier est, ou n'est pas, appliqué et significatif en ce qui concerne le fonc- tionnement du bus. On comprendra cependant que le fait qu'une ligne de bus donnée soit active au niveau haut ou- active au niveau bas n'est qu'un simple choix d'exécution. Bien que le mode de réalisation ait été conçu pour maximiser la vitesse de transfert des données et minimiser la con- sommation énergétique, on comprendra que l'on ne sort pas du cadre de la présente invention en modifiant la structure du bus par changement d'une ligne active au niveau haut en une ligne active au niveau bas. De même, comme cela sera décrit plus en détail ci- dessous, le mode de réalisation préféré du bus est complè- tement synchrone. Tous les signaux du bus changent sur le front montant des impulsions d'horloge. Il est souhaitable d'avoir un système synchrone en raison du fait que les vitesses élevées de transfert des données nécessitent des vitesses d'horloge élevées, et qu'il est plus facile de détecter les fronts des impulsions d'horloge & grande vitesse. On comprendra que l'utilisation du front montant des impulsions d'horloge est un simple choix d'exécution, et que l'on pourrait aussi bien réaliser la présente invention de façon entièrement synchrone en utilisant les fronts descendants des impulsions d'horloge. Si l'on se réfère maintenant à la figure 2a, on y a représenté le mode de réalisation préféré de la présente invention, qui comporte un bus 10 comprenant 96 lignes dif- férentes. Comme on l'a illustré, le bus est relié aux divers agents 26 qui forment le système informatique illustré figure 1 (notamment la mémoire principale 16, le port vidéo 18 et le lecteur de disque 24). Le bus 10 comporte une ligne d'horloge 40 qui distribue aux divers agents 26 le signal d'une horloge centralisée. Le bus 10 comporte également des lignes d'adresse physique 42 et des lignes d'adresse virtuelle/données 43. Dans le mode de réalisation préféré, il y a 28 lignes d'adresse physique et 32 lignes d'adresse virtuelle/données. Cependant, on peut utiliser un nombre différent de ces lignes en fonction de la taille des données à transférer. Il est prévu une ligne d'échantillonnage d'a- dresse ("strobe") 41, qui permet à un agent récepteur d'échantillonner l'adresse présente sur les lignes d'adresse physique 42. Lorsque le bus 10 est en fonctionnement, divers signaux de protocole sont appliqués à des instants donnés pour assurer un transfert exact des données entre les agents 26. A cet effet, la présente invention prévoit des lignes de taille de transfert 44 qui indiquent la largeur (en octets) des données à transférer, ainsi que des lignes de confir- mation 46 qui permettent à un agent auquel a accédé l'unité centrale de traitement 12, ou à un autre agent, de confirmer une demande de données. Comme on l'expliquera, l'agent auquel on a accédé délivre ces réponses sous un format codé. On applique un signal sur la ligne d'erreur mémoire 47 si un agent auquel on demande des données détecte une erreur au cours du transfert. Le bus 10 comporte également des lignes de contrôle du bus permettant de n'avoir, à un instant quelconque donné, qu'un seul agent 27 en train de piloter le bus. Comme expliqué précédement, la ligne de requête de bus 47 et la ligne d'attribution de bus 49 sont propres à chaque agent. On a également des lignes de requête d'interruption 50 qui permettent à un agent d'interrompre le fonctionnement du bus. Ceci peut être nécessaire lorsqu'un agent a besoin d'achever une tâche de priorité élevée et qu'il est inca- pable d'obtenir un accès normal au bus en raison d'un 264'3476 transfert de données en cours d'exécution. Dans le mode de réalisation préféré, on a prévu sept lignes de requête d'interruption. L'homme du métier comprendra aisément que l'on peut cependant prévoir un nombre plus ou moins impor- tant de ces lignes sans sortir du cadre de la présente invention. Par exemple, si l'on estime que les agents n'in- terrompront que rarement le bus, il peut n'y avoir qu'une seule ligne de requête d'interruption, partagée entre tous les agents. Il est prévu une ligne de restauration de bus 51, qui est utilisée pour restaurer le bus. La restauration peut être nécessaire lors de la mise en service initiale ou en cas d'apparition d'une erreur. Enfin, les lignes d'ali- mentation 52 délivrent la tension et le courant nécessaires au fonctionnement du bus. La plupart des lignes qui constituent le bus sont des lignes numériques qui peuvent être amenées soit à un niveau haut ("un") soit à un niveau bas ("zéro"). Cependant, dans le mode de réalisation préféré, il est également prévu des lignes de contrôle pilotées selon un protocole particulier. Dans de nombreux systèmes de l'art antérieur, on peut appliquer un signal aux lignes numériques en les amenant à un état actif au niveau bas. Lorsque l'on doit supprimer le signal sur la ligne, l'agent cesse de piloter la ligne au niveau bas et des résistances d'attraction du niveau vers le haut font retourner la ligne à son état haut normal. La vitesse à laquelle la ligne retourne à son état inactif (haut) est fonction de la capacité de la ligne et de la valeur de la résistance d'attraction du niveau vers le haut. Comme illustré figure 3, chaque fois que l'on applique un signal pouvant prendre trois états, le pilote de ce signal commence par attirer le signal au niveau bas (signal appli- qué). Après avoir appliqué le signal, le pilote va amener le signal au niveau haut (inactif) avant de s'arrêter. Les signaux de contrôle pouvant prendre trois états possèdent des résistances résistances d'attraction du niveau vers le haut qui maintiennent les signaux au niveau inactif après arrêt des pilotes. Du fait des caractéristiques à faible consommation en courant continu des composants CMOS, il n'est pas -possible de prévoir des résistances d'attraction active du niveau vers le haut qui font passer les signaux du niveau actif au niveau inactif en un faible intervalle de temps. C'est pourquoi on utilise le protocole proposé par la présente invention. Les résistances sur les lignes pouvant prendre trois états ne font pas passer l'état du signal d'actif en inactif. Elles maintiennent simplement le signal - à son niveau inactif. Par pilotage, tout d'abord vers le bas puis vers le haut, des signaux pouvant prendre trois états, on évite le problème des signaux "flottants" qui apparait dans de nombreux systèmes de bus de l'art antérieur. Une autre caractéristique de la présente invention est le fait qu'aucune ligne donnée, considérée isolément, ne peut être pilotée par deux agents pendant le même cycle d'hor- loge. Ceci évite le problème du pilotage chevauchant entre plusieurs pilotes. Le protocole de séquencement de cette caractéristique est illustré figure 4.. Sur le front montant du premier cycle d'horloge, le pilote de l'agent qui en train de piloter une ligne donnée s'arrête. Si la ligne est une ligne pouvant prendre trois états elle sera maintenue à son niveau de troisième état par sa résistance passive. La ligne se trouvera à son niveau de troisième état à la fin du premier cycle d'horloge. Lorsquel'on détectera le front montant du second cycle d'horloge, le pilote du second agent se mettra en marche et amènera la ligne au niveau voulu. On va maintenant décrire le fonctionnement du bus, en référence à la figure 1 et aux figures 5 à 10. De nombreuses tâches peuvent être accomplies au moyen du bus 10. Bien que l'on ne puisse pas indiquer en détail chacune de ces tâches, le fonctionnement d'ensemble du bus pourra être expliqué en référence à divers exemples. On comprendra donc que les exemples qui vont suivre ne sont donnés qu'à des fins illus- tratives, et n'ont en aucune manière pour objet de limiter les modes de fonctionnement qui peuvent être obtenus avec le bus 10. Supposons par exemple que l'unité centrale de traitement 12 doive lire des données conservées dans la mémoire prin- cipale 16. On a illustré figure 7a un chronogramme de ce processus. L'unité centrale de traitement 12 génère une adresse virtuelle correspondant à la donnée à lire. Comme illustré figure 1, cette adresse virtuelle est transmise directement à l'unité de gestion de la mémoire 30. L'unité de gestion de la mémoire 30 traduit l'adresse virtuelle en une adresse physique au moyen de l'un quelconque des divers procédés connus pour mettre en oeuvre cette technique, et transmet l'adresse physique au bus 10 sur les lignes d'a- dresse physique 42. Comme illustré figure 7a, simultanément au pilotage de l'adresse physique sur les lignes d'adresse physique 42, l'unité centrale de traitement applique éga- lement les niveaux appropriés sur les lignes de taille de transfert 44. Les lignes de taille de transfert 44 donnent à la mémoire 16 un signal codé représentant la largeur (en octets) des données à transférer sur le bus 10. Dans le mode de réali- sation préféré, on dispose de trois lignes de taille de transfert. La figure 6 montre les diverses combinaisons pos- sibles de la manière dont on peut piloter les lignes de taille de transfert, avec leur signification correspondante en ce qui concerne la largeur du transfert des données. Dans le mode de réalisation préféré, le bus 10 peut prendre en compte des transferts de données de 1, 2, 3, 4 ou 16 octets. L'homme du métier comprendra aisément que l'on peut cepen- dant prévoir des configurations de codage différentes et des tailles correspondantes de transfert de données différentes, et qu'il ne s'agit là que d'un choix d'exécution. Les lignes de données 43 de la présente invention ont une largeur de 32 bits. Le bus 12 peut donc transférer simultanément jusqu'à 4 octets de données. Comme on l'expliquera plus complètement ci-dessous, si les lignes de taille de transfert indiquent un transfert de 16 octets, le bus 10 exécutera alors des transferts multiples de 4 octets. Le contrôleur 14 applique un signal sur la ligne de sélection de bus 53. Lorsque le contrôleur 14 applique un signal sur la ligne d'échantillonnage d'adresse 41, la mémoire 16 reconnaît que l'on est en train d'accéder à elle et répond par un signal de confirmation (ACK) sur les lignes de confirmation 46. Comme illustré figure 2b, les lignes de confirmation 46 sont constitués de trois lignes distinctes: confirmation pour 8 bits 55, confirmation pour 32 bits 56, et erreur 57. Un agent auquel on a accédé (dans le présent exemple, la mémoire 16) a le choix entre quatre réponses possibles. Il peut donner l'ordre à l'unité centrale de traitement 12 (ou à un autre agent demandant l'accès) d'attendre, délivrer une réponse "réexécution" (que l'on décrira plus bas) , achever le cycle si une situation d'erreur est présente, ou confirmer le transfert des données, tout en indiquant simul- tanément la taille du port de l'agent auquel on a accédé. La figure 5 est un tableau donnant les réponses codées uti- lisées par le mode de réalisation préféré. Comme on l'a illustré, le bus 10 peut prendre en compte des agents ayant des tailles de port de 8, 16 et 32 bits (1, 2 et 4 octets). L'homme du métier comprendra aisément que l'on pourrait utiliser une configuration de codage différente, et qu'il ne s'agit là que d'un choix d'exécution. En outre, il entre dans le cadre de la présente invention de permettre l'utilisation de composants ayant des tailles de port différents - par exemple 4 bits ou 64 bits. Dans le mode de réalisation préféré, les lignes de confirmation sont actives au niveau bas. Après avoir appliqué un signal sur les lignes de confirmation 46, au cycle d'horloge suivant la mémoire 46 les amène au niveau haut avant de les mettre à leur troisième état, comme décrit précédement en référence à la figure 3. A réception du signal de confirmation, le contrô- leur 14 supprime le signal de la ligne d'échantillonnage d'adresse 41 (qui est un signal actif au niveau bas). Un cycle d'horloge après avoir appliqué un signal sur les lignes de confirmation 46, la mémoire 16 applique sur les lignes de données 43 des données valides et maintient les données valides sur ces lignes de données 45 pendant un cycle d'horloge complet. Après avoir appliqué le signal sur les lignes de données 43, la mémoire 16 les met à leur troisième état, mettant fin au cycle de lecture. Supposons, pour les besoins de cet exemple, que l'unité centrale de traitement soit en train d'inscrire des données dans la mémoire 16. Le chronogramme de ce processus est illustré figure 7b. L'unité centrale de traitement 12 applique les signaux sur les lignes d'adresse physique 42, les lignes de taille de transfert 44, et applique les données sur les lignes de données 43. Le contrôleur 14 applique, sur la même impulsion d'horloge, un signal sur la ligne de sélection de bus 53 et sur la ligne d'échan- tillonnage d'adresse 54. Pratiquement en même temps, l'unité centrale de traitement 14 applique sur les lignes de données les données à inscrire dans la mémoire 16. Lorsque la ligne d'échantillonnage d'adresse 41 et les lignes de sélection de bus 53 sont validées sur le front montant du même cycle d'horloge, la mémoire 16 répond par un signal de confirma- tion, comme décrit plus haut. A réception d'un signal de confirmation valide, le contrôleur supprime le signal de la ligne d'échantillonnage d'adresse 41 et l'unité centrale de traitement 12 supprime le signal des lignes de données 44. Comme illustré figure 1, l'unité centrale de traitement 12 est directement reliée à l'unité de gestion de la mémoire 30. En conséquence, dans le présent mode-de réalisation, l'unité centrale de traitement 12 délivre directement les adresses virtuelles à l'unité de gestion de la mémoire, court-circuitant ainsi le verrou d'adresse virtuelle 28 et le bus 10. Cependant, on remarquera que l'unité centrale de traitement 12 peut être directement reliée au bus 10 exactement de la même façon que n'importe quel autre agent 26, de telle sorte que ces adresses virtuelles sont appli- quées aux lignes de données 43 de la même manière que dans l'exemple décrit ci-dessous concernant le composant à accès direct mémoire 20. La figure 8a illustre un chronogramme pour un composant à accès direct mémoire inscrivant directement des données en mémoire. Comme illustré, le composant à accès direct mémoire demande l'accès au bus en appliquant un signal sur la ligne de requête de bus 48. Comme décrit précédemment, la ligne de requête 48 ici considérée est une ligne active au niveau bas. Le contrôleur attend que le bus soit inactif et déli- vre, en fonction de la règle d'arbitrage décrite plus haut, un signal d'attribution de bus à l'agent ayant émis la requête. Au cycle d'horloge immédiatement consécutif, le composant à accès direct mémoire supprime le signal de la ligne de requête de bus et applique une adresse virtuelle sur les lignes de données 43. Au même moment, le composant à accès direct mémoire indique la taille du transfert comme expliqué plus haut à propos de la figure 6 et applique un *signal sur la ligne de lecture. Le fait d'amener l'adresse virtuelle sur les lignes de données permet, de façon caractéristique de la présente invention, d'obtenir divers avantages par rapport à l'art antérieur. Tout d'abord, tous les agents reliés au bus sont capables d'accéder à la mémoire par l'intermédiaire de l'unité de gestion de la mémoire. Cette technique élimine le besoin de recourir à un ensemble distinct de lignes d'adresse virtuelle pour le bus. De la sorte, le nombre total de lignes du bus est moindre, ce qui réduit la com- plexité et les coûts de fabrication. Comme illustré figure 1, les lignes de données/adresse virtuelle 43 sont reliées au verrou d'adresse virtuelle 28. Lors du premier cycle d'horloge, après qu'un maitre du bus (par exemple, l'unité centrale de traitement 12) se soit vu attribuer le bus, le maître applique l'adresse virtuelle aux lignes de données 43. Le verrou d'adresse virtuelle 28 mémorise la valeur de l'adresse virtuelle. Cette adresse virtuelle est alors transférée dans l'unité de gestion de la mémoire 30 qui la convertit en une adresse physique corres- pondant à une adresse réelle de la mémoire principale 18. Comme illustré figure 8a, après avoir été traduite l'adresse physique est appliquée sur les lignes d'adresse physique par l'unité de gestion de la mémoire 30. Pratiquement en même temps que l'unité de gestion de la mémoire applique l'a- dresse physique, le contrôleur 14 applique un signal sur les lignes de sélection de bus 53 et d'échantillonnage d'adresse 41. En réponse à des signaux d'échantillonnage d'adresse 41, de sélection de bus 53 et d'adresse physique 42 qui sont simultanément valides, le composant esclave reprend le cycle d'écriture et l'achève par application du signal de confir- mation sur la ligne 46. Une fois que l'esclave a appliqué le signal de confirmation sur la ligne 46, le contrôleur 14 va supprimer le signal d'attribution de bus après achèvement du cycle. Lorsque le signal d'attribution de bus est supprimé, le composant maître n'a plus le contrôle du bus, et cesse de piloter tous les signaux après le cycle suivant, mettant ainsi fin au cycle d'écriture. La figure 8b est un chronogramme pour une lecture en mémoire par un composant à accès direct mémoire. Comme illustré, le composant à accès direct mémoire 20 applique un signal de requête de bus sur la ligne de requête de bus 48. Lorsque le bus est inactif, le contrôleur 14 délivre un signal d'attribution de bus conformément à la règle d'arbi- trage exposée plus haut. Ensuite, le composant à accès direct mémoire supprime le signal sur la ligne de requête de bus 48 et applique aux lignes de données 43 l'adresse vir- tuelle de l'emplacement mémoire o la donnée doit être ins- crite. En même temps, le composant à accès direct mémoire applique le signal sur les lignes de taille de transfert 44 et amène au niveau haut la ligne de lecture 45. Après que l'adresse virtuelle ait été amenée sur les lignes de données, le composant à accès direct mémoire 20 met à leur troisième état les lignes de données, comme expliqué plus haut à propos de la figure 3. L'unité de gestion de la mémoire 30 traduit l'adresse virtuelle en une adresse physique et applique cette adresse physique aux lignes d'adresse physique 42. Lorsque l'on applique un signal sur les lignes d'adresse physique, le contrôleur 14 applique un signal sur les lignes d'échantillonnage d'adresse 41 et de sélection de bus 53. En réponse, la mémoire 16 répond par un signal de confirmation valide sur les lignes de confirmation 46. Après qu'un signal de confirmation valide ait été appli- qué, le composant à accès direct mémoire 20 amène sur les lignes de données 43 la donnée à inscrire. Simultanément, le contrôleur 14 supprime le signal de la ligne d'attribution de bus 49. Au cycle d'horloge suivant, le composant à accès direct mémoire met à leur troisième état les lignes de données, les lignes de taille de transfert et le verrou d'adresse, achevant ainsi le cycle de lecture à accès direct mémoire. La présente invention permet d'utiliser un mode de transfert à large bande par salves, grâce auquel l'unité centrale de traitement 12 ou un autre agent 26 inscrit ou lit dans la mémoire 16 une pluralité d'octets. La figure 9 montre un chronogramme pour une telle opération de lecture par l'unité centrale de traitement. L'agent 26 qui est en train de transférer des données dans la mémoire demande le contrôle du bus 10 en appliquant un signal de requête de bus sur la ligne de requête de bus 48. Lorsque le bus 10 est inactif, le contrôleur 14 délivre un signal d'attribution de bus, conformément aux procédures d'arbitrage de la présente invention qui ont été décrites plus haut. Une fois que l'attribution du bus est effective, l'agent 26 qui avait délivré le signal de requête de bus devient maître du bus et a le contrôle du fonctionnement du bus 10. Au cycle d'hor- loge qui suit immédiatement l'attribution du bus, le maître du bus supprime le signal de la ligne de requête de bus 48 et amène au niveau haut la ligne de signal de lecture 45. Pratiquement en même temps, le maître du bus applique une adresse virtuelle sur les lignes de données 43. Le maître du bus indique que le transfert consistera en 16 octets en appliquant sur les lignes de taille de transfert 44 un signal conforme à la configuration de codage indiquée ci- dessus à propos de la figure 6. L'adresse virtuelle est convertie en une adresse physique par l'unité de gestion de la mémoire 30 et elle est appliquée sur les lignes d'adresse physiques 42. En ce point, la mémoire doit répondre par un signal valide sur la ligne 46 de confirmation pour 32 bits (active au niveau bas). A réception d'un signal de confirmation valide, le maitre du bus applique les quatre premiers octets sur les lignes de données 43 pour inscription dans la mémoire 16. La mémoire 16 répond en amenant la ligne 46 de confirmation pour 32 bits au niveau haut puis au niveau bas. La mémoire - 2643476 16 incrémente également automatiquement l'adresse à laquelle sera transféré le groupe de quatre octets suivant. Après que la ligne 46 de confirmation pour 32 bits ait été amenée au niveau bas, le maître du bus verrouille sur les lignes de données 43 un nouveau groupe de quatre octets de données pour inscription ou lecture à la nouvelle adresse mémoire. On répète ce processus pour chaque groupe de quatre octets. Après que quatre groupes de données ait été transférés, le contrôleur 14 supprime le signal de la ligne d'attribution de bus 49. Le maître du bus supprime alors le signal de la ligne d'échantillonnage d'adresse 41 et met à son troisième état la ligne de lecture 45 et les lignes de taille de transfert 44. La mémoire met à son troisième état la ligne 46 de confirmation pour 32 bits, mettant ainsi fin au cycle d'écriture. La présente invention met également en oeuvre un proto- cole de "réexécution" permettant d'avorter et de reprendre ultérieurement un cycle quelconque en cours. Ceci permet la résolution des situations inextricables entre l'unité cen- trale de traitement et les composants à accès direct mémoire, et permet de donner aux agents une latence de lec- ture importante sans verrouiller les autres requêtes de bus. Les situations inextricables peuvent survenir lorsqu'un agent peut être à la fois agent esclave et maitre du bus et ne peut pas achever un accès esclave à un instant donné. L'agent 26 doit détecter cette situation et appliquer une confirmation de réexécution en pilotant de la manière illus- trée figure 5 la ligne 55 de confirmation pour huit bits et la ligne 57 d'erreur. Le contrôleur 14 répondra en mettant fin au cycle en annulant la ligne de sélection de bus 53 et en répétant le cycle ultérieurement. Avant de répéter le cycle, les autres maîtres du bus pourront utiliser le bus 10. Un exemple de cycle de réexécution a été illustré figure 10. Le protocole de réexécution est utile pour plusieurs raisons. En premier lieu, il permet à des agents autres que l'unité centrale de traitement 12 d'accéder par l'inter- médiaire de l'unité de gestion de la mémoire 30 à la mémoire principale 16. Supposons qu'un agent transmette une adresse virtuelle à l'unité de gestion de la mémoire 30 par l'inter- médiaire du verrou d'adresse virtuelle 28. Si l'adresse physique correspondante n'est pas déjà mémorisée dans l'uni- té de gestion de la mémoire 30, les données de traduction de l'unité de gestion de la mémoire délivrent un signal de reexécution de la manière décrite plus haut. L'agent deman- deur va alors "se mettre en retrait", permettant à l'unité de gestion de la mémoire 30 d'aller chercher les données de traduction appropriées. L'unité de gestion de la mémoire 30 exécute ce transfert sur le bus 10. L'agent demandeur peut alors tenter à nouveau l'opération avec, dans l'unité de gestion de la mémoire 30, les données nécessaires pour per- mettre la traduction de l'adresse virtuelle en une adresse physique. Sans le protocole de réexécution, l'unité de ges- tion de la mémoire serait incapable de traduire l'adresse virtuelle en une adresse physique. L'unité de gestion de la mémoire 30 serait incapable d'obtenir le contrôle du bus. Ceci pourrait amener à une situation inextricable o le bus 10 viendrait "geler" le système, empêchant tout transfert de données. La caractéristique de réexécution permet également de réduire au minimum l'intervalle de temps pendant lequel un agent donné devra attendre avant de pouvoir obtenir l'accès au bus. Cette période d'attente est appelée "temps de latence du bus". La latence du bus apparait lorsqu'un agent donné accède à un esclave avec un temps d'accès important, bloquant tous les autres agents. Ceci peut survenir lors- qu'un agent auquel on a accédé a besoin d'une durée importante pour délivrer au bus les données demandées. Tout agent ayant un temps de latence de bus supérieur à une durée prédéterminée (N) doit répondre par une confirmation de réexécution avant l'écoulement du temps imparti. Si l'agent auquel on a accédé à besoin pour répondre d'une durée supé- rieure à N cycles, le cycle courant (lecture ou écriture) est alors avorté et on ira servir les requêtes de bus en attente. Après avoir servi les requêtes en attente, on redé- marre le cycle originel. Pendant la durée de la réexécution, l'agent auquel on accède verrouille toute ligne d'adresse et de données sur laquelle un signal est présent, car ces signaux ne sont pas valides après suspension du cycle de réexécution. REVENDICATIONS 1. Un procédé pour transférer des données dans un système informatique entre des composants processeurs constituant des agents (26) reliés sélectivement à un bus (10), carac- térisé par les étapes consistant à: transmettre un signal de requête de bus d'un agent accédant à un agent contrôleur, - transmettre un signal d'attribution de bus de cet agent contrôleur à cet agent accédant, - appliquer une adresse virtuelle à une première plura- lité de lignes (43), - traduire cette adresse virtuelle en une adresse phy- sique correspondante, - appliquer cette adresse physique à une seconde plura- lité de lignes (42), - appliquer un signal de validation d'adresse à une troi- sième pluralité de lignes, - appliquer un signal de transfert de données à une quatrième pluralité de lignes, et de manière à transférer les données sur la première pluralité de lignes entre l'agent accédant et un emplacement mémoire correspondant à ladite adresse physique. 2. Le procédé de la revendication 1, dans lequel le bus comporte en outre une ligne de signal d'horloge (40) reliée à chacun des agents. 3. Le procédé de la revendication 2, dans lequel les signaux sur le bus changent de façon synchrone sur le front montant d'un signal d'horloge appliqué sur ladite ligne de signal d'horloge. 4. Le procédé de la revendication 1, comprenant en outre une étape consistant à transmettre à l'agent accédant un signal de confirmation sur des lignes de confirmation (46) appartenant au bus avant d'appliquer les données aux lignes de données. 5. Un procédé pour transférer des données dans un système informatique entre des composants processeurs constituant des agents (26) reliés sélectivement à un bus (10), carac- térisé par les étapes consistant à: - transmettre, sur une ligne de requête de bus, un signal de requête de bus d'un agent demandeur à un agent con- trôleur, - transmettre, sur une ligne d'attribution de bus, un signal d'attribution de bus de cet agent contrôleur à cet agent demandeur lorsque le bus est inactif, - appliquer, à des lignes de données (43) appartenant au bus, une adresse virtuelle depuis l'agent demandeur, - verrouiller cette adresse virtuelle dans un agent formant verrou d'adresse virtuelle (28), - transmettre cette adresse virtuelle du verrou d'adresse virtuelle à une unité de gestion de la mémoire (30), - traduire cette adresse virtuelle en une adresse phy- sique au moyen de données de traduction mémorisées dans l'unité de gestion de la mémoire, - appliquer cette adresse physique sur des lignes d'adresse (42) appartenant au bus, - appliquer un signal de validation d'adresse à l'agent accédant, - transmettre, sur des lignes de confirmation (46) appar- tenant au bus, un signal de confirmation à l'agent accédant, et appliquer lesdites données sur lesdites lignes de données (43), de manière & transférer à grande vitesse lesdites données entre l'agent accédant et un emplacement mémoire corres- pondant à l'adresse physique. 6. Le procédé de la revendication 5, dans lequel le bus comporte en outre une ligne de signal d'horloge (40), et dans lequel les signaux sur le bus changent de façon synchrone sur un front montant d'un signal d'horloge appli- qué sur cette ligne de signal d'horloge. 7. Le procédé de la revendication 5, dans lequel l'agent contrôleur attribue l'accès au bus en fonction d'un ordre de priorité avec permutation circulaire. 8. Le procédé de la revendication 6, dans lequel les lignes d'adresse sont au nombre de trente-deux et les lignes de données sont au nombre de vingt-huit. 9. Un procédé pour transférer des données entre les agents d'un système informatique comprenant des agents (26) sélectivement reliés à un bus (10) , caractérisé en ce qu'il comprend les étapes consistant à: - transmettre une adresse virtuelle d'un agent accédant à une unité de gestion de la mémoire (30), reliée au bus, cette unité de gestion de la mémoire comprenant des moyens de mémorisation destinés à conserver des données de traduc- tion permettant de traduire l'adresse virtuelle en une adresse réelle, transmettre un signal de réexécution de l'.unité de gestion de la mémoire à l'agent accédant au cas o l'unité de gestion de la mémoire ne possède pas les données de traduction nécessaires correspondant à l'adresse virtuelle conservée dans lesdits moyens de mémorisation, - donner le contrôle du- bus à l'unité de gestion de la mémoire, - transférer, d'un périphérique externe à l'unité de gestion de la mémoire, les données de traduction corres- pondant à l'adresse virtuelle, - retransmettre l'adresse virtuelle à l'unité de gestion de la mémoire depuis l'agent accédant, - traduire cette adresse virtuelle en une adresse physique, et - transférer les données de l'agent accédant vers un emplacement mémoire correspondant à cette adresse physique. 10. Le procédé de la revendication 9, dans lequel le bus comporte une pluralité de lignes, comprenant des lignes- de données (43) et des lignes d'adresse (42) reliées à chacun des agents. Il. Le procédé de la revendication 9, dans lequel l'adresse virtuelle est transmise à l'unité de gestion de la mémoire sur les lignes de données (43), et l'adresse physique est appliquée aux lignes d'adresse (42) par l'unité de gestion de la mémoire. - 12. Le procédé de la revendication 11, dans lequel le bus comporte en outre une ligne de signal d'horloge (40) reliée à chacun des agents et à une horloge de bus, et dans lequel tous les signaux de ces lignes du bus changent de façon synchrone sur un front montant d'un signal d'horloge délivré par l'horloge de bus sur la ligne de signal d'horloge. 13. Un bus à grande vitesse pour transférer des données, ce bus (10) comprenant une pluralité de lignes (40-53) permettant de véhiculer des signaux entre des agents (26) constitués par des unités de traitement des données, carac- térisé en ce qu'il comprend: - des moyens de pilotage, reliés à chacun des agents, pour amener les lignes à un premier niveau de tension correspondant à un premier état numérique, et à un second niveau de tension correspondant à un second-état numérique, et - des moyens de polarisation, reliés à la pluralité de lignes, pour maintenir ces lignes au second niveau de tension après que ces lignes aient été amenées par les moyens de pilotage à ce second niveau de tension. 14. Le bus de la revendication 13, dans lequel les moyens de polarisation comportent au moins une résistance. 15. Le bus de la revendication 14, dans lequel la résistance est une résistance d'attraction du niveau vers le niveau haut, qui attire le niveau de tension des lignes jusqu'au second niveau de tension. 16. Le bus de la revendication 15, comprenant en outre une ligne de signal d'horloge (40) reliée aux agents, avec une horloge maîtresse telle que les changements de niveau de tension aient lieu de façon synchrone sur un front montant d'un signal d'horloge appliqué sur la ligne d'horloge par cette horloge maîtresse. 17. Le bus de la revendication 16, comprenant en outre une ligne de requête de bus reliant les agents à un contrôleur de bus et permettant à un agent de transmettre un signal de requête de bus à ce contrôleur par la ligne de requête de bus et au contrôleur d'attribuer l'accès au bus selon un ordre de priorité prédétermine. 18. Le bus de la revendication 17, dans lequel l'ordre de priorité prédéterminé comporte un protocole de priorité à permutation circulaire.