FR 2628235 A1 19890908 FR 8902570 A 19890228 (i) RÉPUBLIQUE FRAN AISE N de publication: 2 628 235 (à n'utiliser que pour les INSTITUT NATIONAL commandes de reproduction) DE LA PROPRIÉTÉ INDUSTRIELLE D Ne d'enregistrement national 89 02570 PARIS Int Cl4: G 06 F 12/08, 13/38. @ DEMANDE DE BREVET D'INVENTION A1 ) Date de dépôt: 28 février 1989. Demandeur(s): ARDENT COMPUTER CORPORATION. - us. ) Priorité: US, 1 e mars 1988, n 162.749. Inventeur(s): Jon Rubinstein; Glen S. Miranker: Ri- chard Lowenthal. 4 Date de la mise à disposition du public de la demande BOPI "Brevets " no 36 du 8 septembre 1989. ) Références à d'autres documents nationaux appa- rentés: Division demandée le 12 juin 1989 bénéficiant de la date de Q Titulaire(s) dépôt du 28 février 1989 de la demande initiale n 89 02570 {art 14 de la loi du 2 janvier 1968 modifiée). ( Mandataire(s): Cabinet Regimbeau, Martin, Schrimpf. Warcoin et Ahner. _ Procédé de transmission d'informations dans un système informatique, notamment un système à antémémoires. () Ce procédé permet d'accéder aux informations de la mémoire principale d'un système informatique et de mémoriser ces informations dans une antémémoire 18 associée à un processeur 23. r Le procédé comporte les étapes de: demande d'un premier I " mot d'information; application, en réponse à cette demande, î ' d'un bloc d'information sur un bus système 10. ce bloc d'infor- mation comportant n mots d'information: et réception de cha- i cun de ces n mots d'informations. t De cette manière, on reçoit un bloc d'informations en ré- ponse à une demande correspondant seulement à un mot. ! Le microprocesseur utilise un système de réitération d'accès J mémoire qui peut être utilisé par le système informatique si les [L données demandées par le microprocesseur sont reçues de V manière erronée. N Le bus système a une largeur correspondant à un certain multiple n de la taille d'un mot Dans le cas de la présente invention, le processeur ne demande qu'un seul mot de don- nées. La mémoire délivre le mot de données demandé sous forme d'un élément dans un bloc de données, le bloc de données ayant une longueur de n données élémentaires. IL. D Vente des fascicules à l'IMPRIMERIE NATIONALE, 27, rue de la Convention - 75732 PARIS CEDEX 15 La présente invention concerne les procédés permettant d'accroître la cohérence des antémémoires entre plusieurs éléments d'un système informatique. Dans les systèmes informatiques, on peut utiliser une antémémoire pour augmenter la vitesse d'accès à certaines données ou à certains programmes fréquemment utilisés. Une antémémoire est une mémoire très rapide, généralement capable de suivre la vitesse de fonctionnement de l'unité centrale de traitement. Elle sert de tampon entre l'unité centrale de traitement et la mémoire principale, plus lente. Généralement, on conserve dans l'antémémoire les données fréquemment utilisées et l'unité centrale de traitement y accède au cours d'opérations de lecture. Une opération d'écriture provoquera une inscription dans l'antémémoire, et, à un certain moment, une inscription dans la mémoire principale. On utilise généralement deux procédés pour mettre à jour la mémoire principale à partir de l'antémémoire: l'antémémoire à recopie directe ou à recopie secondaire. Dans un système d'antémémoire à recopie directe, toute inscription dans l'antémémoire provoque une inscription homologue dans la mémoire principale, pratiquement au même moment que l'inscription dans l'antémémoire. Dans un système d'antémémoire à recopie secondaire, on met à jour la mémoire principale par les nouvelles données à un moment qui n'a pas nécessairement de rapport avec celui de l'inscription dans l'antémémoire. Un exemple d'antémémoire à recopie secondaire sera décrit plus bas à propos des protocoles intelligents de gestion des antémémoires. L'utilisation d'une antémémoire nécessite que, à un certain moment, l'antémémoire et la mémoire principale correspondent exactement. Dans le cas d'un système à unité centrale de traitement unique ne comportant pas d'unités à exécution simultanée des tâches, ceci n'est pas un problème essentiel. En revanche, lorsque plusieurs altérateurs de mémoire (c'est-àdire des unités, telles que des unités centrale de traitements, qui sont capables de modifier le contenu de la mémoire) partagent une mémoire unique, la cohérence de l'antémémoire devient un problème majeur. Par exemple, si une donnée est lue par le processeur n 1 dans son antémémoire puis est ensuite lue par le processeur n 2 dans son antémémoire et que la donnée est ensuite mise à jour par le processeur n 1, il est nécessaire que le processeur n 2 mette à jour ou invalide sa propre version de la donnée, sinon la donnée ne sera pas cohérente du processeur n 1 au processeur n 2. On connait plusieurs procédés permettant d'assurer la cohérence des antémémoires dans le cas o plusieurs processeurs partagent une mémoire principale unique et possèdent des antémémoires distinctes. L'un de ces procédés consiste à assurer par logiciel la cohérence des antémémoires. Habituellement, les algorithmes logiciels destinés à assurer la cohérence des antémémoires utilisent un repérage temporel des données de la mémoire principale et de celles de l'antémémoire. Les algorithmes logiciels présentent un certain nombre d'inconvénients, notamment la consommation de cycles d'horloge pour assurer la cohérence des antémémoires, l'accroissement de la complexité du logiciel système et de la place occupée par le repérage temporel ou son équivalent dans chaque bloc de données de la mémoire. Un second procédé utilise des protocoles de bus ou protocoles d'antémémoire intelligents qui permettent, en gardant trace de toutes les rubriques altérées de l'antémémoire (c'est-à-dire des rubriques qui ont été mises à jour), d'être sûr que toutes les antémémoires du système restent cohérentes. Il ne peut y avoir qu'une seule version altérée d'un groupe particulier de données dans le système. Si un processeur qui ne possède pas la version altérée essaye de lire la donnée, le système doit faire en sorte que la version altérée soit inscrite dans la mémoire avant de permettre au second processeur de lire la donnée. Ceci aboutit à des complications diverses, telles que le besoin pour le système de savoir o réside chaque version de la donnée, et le besoin de faire respecter certaines règles telles que l'interdiction de toute lecture de donnée dans une antémémoire dès lors que celle-ci contient une version altérée de la donnée. La complexité est encore accrue par l'utilisation de plusieurs bus de données et de bus maîtres sans antémémoires. Un troisième procédé permettant d'assurer la cohérence des antémémoires consiste à utiliser des cirucuits de surveillance de bus avec des antémémoires à recopie directe. Généralement, il y a un circuit de surveillance de bus associé à chaque unité centrale de traitement possédant une antémémoire. Le circuit de surveillance de bus est responsable de la surveillance des transactions d'écriture sur le bus système et de la détermination du point de savoir si la transaction d'écriture doit mettre à jour ou invalider la donnée dans l'antémémoire de son processeur. Par ailleurs, dans un système informatique typique utilisant une antémémoire, il est intéressant de pouvoir, au moyen d'une instruction unique, aller chercher plusieurs mots dans la mémoire principale pour les placer dans l'antémémoire. Ceci permet généralement d'améliorer la gestion du bus et de la mémoire. Par exemple, au cours de l'exécution d'. un programme on accède généralement de manière séquentielle aux instructions, les instructions de saut étant relativement rares par rapport aux instructions exécutées en séquence. C'est pourquoi on améliore l'efficacité du système si l'on va chercher un bloc d'instructions. On sait concevoir des systèmes qui peuvent aller chercher des blocs de données dans une antémémoire. Cependant, avec les progrès des microprocesseurs, le contrôle de l'antémémoire va se déplaçant vers l'intérieur des microprocesseurs. Dans un système utilisant un tel microprocesseur, il est courant que le microprocesseur n'aille chercher qu'un seul mot à la fois. Il serait souhaitable de développer un procédé et un dispositif qui permettent d'utiliser un microprocesseur standard d'un système informatique, tout en exécutant de façon performante des opérations mettant en jeu l'antémémoire. En outre, on sait utiliser, dans un système informatique, un bus d'une première largeur, par exemple de 64 bits, pour communiquer entre modules d'un même système informatique, tout en utilisant un bus d'une seconde largeur, par exemple de 32 bits, pour communiquer à l'intérieur d'un module. Dans un tel système informatique, la transition des données du bus le plus large vers le bus le moins large crée souvent un goulot d'étranglement dans le système. L'un des buts de la présente invention est de pouvoir aller chercher des données dans l'antémémoire par blocs de données en utilisant un processeur pour contrôler l'accès à l'antémémoire. La présente invention décrit un procédé permettant d'accéder aux informations de la mémoire principale d'un système informatique et de mémoriser ces informations dans une antémémoire associée à un processeur. Le procédé comporte l'étape par laquelle le microprocesseur demande un bloc d'information dans la mémoire principale. Un tel microprocesseur utilise un système de réitération d'accès mémoire qui peut être utilisé par le système informatique si les données demandées par le microprocesseur sont reçues de manière erronnée. A cet effet, le procédé de la présente invention comporte les étapes de: demande d'un premier mot d'information; application, en réponse à cette demande, d'un bloc d'information sur un bus système, ce bloc d'information comportant n mots d'information; et réception de chacun de ces n mots d'informations. De cette manière, on reçoit un bloc d'informations en réponse à une demande correspondant seulement à un mot. La présente invention concerne également un système informatique dans lequel on utilise un bus système pour échanger des informations entre la mémoire principale et le processeur. Le bus système a une largeur correspondant à un certain multiple n de la taille d'un mot. Dans le cas de la 26282-35 présente invention, le processeur ne demande qu'un seul mot de données. La mémoire délivre le mot de données demandé sous forme d'un élément dans un bloc de données, le bloc de données ayant une longueur de n données élémentaires. A cet effet, le procédé de la présente invention comporte les étapes de: demande par les premiers moyens d'un premier mot d'information; délivrance par les seconds moyens, en réponse à cette demande, d'un bloc d'information sur le bus système, ce bloc d'information comportant n mots d'information contiguë; et réception par les premiers moyens du bloc d'information. De cette manière, on reçoit un bloc d'information en réponse à une demande correspondant seulement à un mot. Le bloc de données est reçu et placé dans un tampon ou sur le bus système de telle sorte que chaque mot de données soit délivré à l'intérieur d'un créneau temporel distinct, chaque mot partageant le bus système pendant un créneau temporel avec des mots provenant d'autres blocs de données. Le bloc de données est reçu un mot à la fois et placé par le processeur dans une antémémoire. On informe ensuite le processeur que les données incorrectes ont été délivrées et on utilise le processus de réitération d'accès mémoire pour la réception du mot d'information suivant. Le processus de réception d'un mot d'information, de mémorisation du mot dans l'antémémoire et de réitération de l'accès mémoire est répété pour les n-1 mots de données suivants. Les données sont organisées sur le bus ou par le contrôleur d'antémémoire de telle sorte que le nième mot reçu soit le mot demandé. Ce mot est reçu par le processeur et inscrit dans l'antémémoire. On permet ensuite au traitement de continuer. L'utilisation de ce procédé selon la présente invention permet de transmettre des blocs de données depuis la mémoire principale et de les mémoriser dans l'antémémoire en réponse à une unique demande d'accès mémoire. Par ailleurs, on peut délivrer des données de manière étagée dans le temps, ce qui permet d'avoir un bus système d'une première largeur et un pipeline de données d'une carte processeur d'une seconde largeur, inférieure à la première, sans utiliser de tampon séparé ou créer de goulot d'étranglement dans le système. On va maintenant donner un exemple de réalisation de l'invention, en référence aux dessins annexés. La figure 1 est un schéma par blocs illustrant un système informatique comprenant plusieurs unités centrales de traitement avec leurs antémémoires et leurs circuits de surveillance de bus reliés à un bus système central, d'une manière qui permet de mettre en oeuvre la présente invention. La figure 2 est un organigramme illustrant un procédé de lecture de données et de mise à jour d'une antémémoire, dans lequel le processeur ne notifie paa au système si la lecture est une lecture dans l'antémémoire, d'une manière qui permet de mettre en oeuvre la présente invention. La figure 3 est un organigramme illustrant un procédé' permettant d'assurer la cohérence des antémémoires pendant des transactions d'écriture dans un système o le processeur ne notifie pas! au système si la transaction d'écriture est une écriture dans l'antémémoire, d'une manière qui permet de mettre en oeuvre la présente invention. La figure 4 est un organigramme illustrant un procédé pour suivre les transactions d'écriture à partir de processeurs étrangers en vue d'assurer la cohérence des antémémoires, d'une manière qui permet de mettre en oeuvre la présente invention. La figure 5 est un organigramme illustrant un procédé de délivrance de blocs de données à une antémémoire lorsqu'un processeur demande un mot unique, d'une manière qui permet de mettre en oeuvre la présente invention. La figure 6 est un diagramme schématique illustrant l'organisation des données sur un bus, d'une manière qui permet de mettre en oeuvre la présente invention. On va maintenant décrire un procédé et un dispositif permettant d'assurer la cohérence des antémémoires. Dans la description qui va suivre, on a donné de nombreux détails spécifiques tels que largeurs de bus, types de processeurs, etc. afin de permettre une compréhension complète de la présente invention. L'homme de l'art comprendra cependant que, bien évidemment, la présente invention peut être mise en oeuvre sans ces détails spécifiques. Inversement, des techniques et des circuits bien connus n'ont pas été représentés en détail afin de ne pas alourdir la description de la présente invention. La présente invention décrit un procédé et un dispositif permettant d'assurer la cohérence des antémémoires dans un système informatique comprenant plusieurs processeurs ayant des antémémoires à recopie directe distinctes. Un tel système informatique peut comporter un nombre quelconque d'organes capables d'accéder à un bus système et de mettre à jour la mémoire (modificateur de mémoire). Chacun de ces modificateurs de mémoire peut, éventuellement, avoir une antémémoire qui lui est associée. En général, dans les systèmes informatiques, on utilise les antémémoires en tant que mémoires très rapides directement reliées à une unité centrale de traitement, afin de tamponner les demandes de lecture relatives - -es données et à des instructions auxquelles on accède fréquemment. Le processeur de la présente invention comprend, dans le mode de réalisation préféré, une unité de traitement de nombres entiers comportant à la fois une antémémoire d'instructions et une antémémoire de données, ainsi qu'une interface avec le bus système. Le processeur peut comporter en outre une unité de traitement à virgule flottante. L'antémémoire d'instructions de l'unité de traitement de nombres entiers est une mémoire à lecture seule et l'antémémoire de données est une antémémoire à recopie directe formant en outre tampon d'écriture. Dans le système informatique du mode de réalisation préféré de la présente invention, il peut y avoir plusieurs unités de traitement de nombres entiers, chacune de ces unités pouvant posséder sa propre'antémémoire de données. En outre, l'unité de traitement à virgule flottante associée à chaque unité de traitement de nombres entiers est capable de modifier la mémoire et ne se réfère pas à l'antémémoire. Il se pose donc un problème de cohérence des antémémoires entre les diverses antémémoires du système. Dans le mode de réalisation préféré, on conserve la cohérence des antémémoires entre antémémoires de données par une certaine forme de surveillance de bus du bus système. La surveillance du bus permet d'être sQr que toute donnée résidant dans l'antémémoire correspond à la donnée homologue mémorisée dans la mémoire principale. La figure 1 illustre un bus.système 10 et une unité de traitement 11 pouvant être utilisés par la présente invention. Dans le mode de réalisation préféré, le bus système 10 est un bus sur 64 bits, et il est relié à un processeur 11 par une unité d'interfaçage de bus 14. L'unité d'interfaçage de bus 14 est reliée à un circuit de surveillance de bus 15 par l'intermédiaire de lignes d'adresse 24. Le circuit de surveillance de bus 15 comporte un tableau d'index d'adresses paires 16 et un tableau d'index d'adresses impaires 17. Chaque rubrique du tableau d'index d'adresses paires 16 et du tableau d'index d'adresses impaires 17 correspond à une adresse associée à 32 bits de données. Les données du système sont transférées sur un bus de 64 bits. Les données de l'antémémoire et les rubriques correspondantes des tableaux d'index d'adresses doivent donc être mises à jour sur 64 bits (deux mots) à chaque cycle d'horloge. Si un transfert de double mot a lieu sur le bus, on examine à la fois le tableau d'index d'adresses paires 16 et le tableau d'index d'adresses impaires 17 pour déterminer s'il y a ou non concordance. Si le transfert ne porte que sur un seul mot ou sur une partie d'un mot, on n'examine qu'un seul des deux tableaux d'index d'adresses 16 ou 17. Le réseau d'index d'adresses particulier à examiner est déterminé selon que l'adresse commence sur une frontière de mot paire ou impaire. Le circuit de surveillance de bus 15 est relié à une antémémoire de données 18 par la ligne 26. Dans le mode de réalisation préféré, l'antémémoire de données a une taille de 16K octets. L'antémémoire 18 est formée d'un tableau d'index d'adresses paires 19, d'un tableau d'index d'adresses impaires 20, d'un tableau de données paires 21 et d'un tableau de données impaires 22. L'antémémoire est mappée directement, c'est-àdire qu'il y a correspondance biunivoque entre les rubriques des tableaux d'index d'adresses 19 et 20 et les rubriques des tableaux de données 21 ou 22. L'antémémoire de données 18 est reliée à un processeur 23 t par l'intermédiaire de la ligne 27. Dans le mode de réalisation préféré de la présente invention, on utilise un processeur fabriqué par MIPS Computer de Sunnyvale, en Californie. Le processeur 23 est relié à l'unité d'interfaçage de bus 14 par l'intermédiaire de la ligne 25. La ligne 25 est une ligne bidirectionnelle permettant une communication dans les deux sens entre le processeur 23 et l'interface de bus 14. Outre le processeur 23, on peut avoir une unité de traitement à virgule flottante 30 qui est reliée à l'unité d'interfaçage de bus 14. Le bus système 10 peut avoir divers autres organes 12 et 13 qui y sont reliés. L'unité de traitement à virgule flottante 30 et chacun des autres dispositifs 12 et 13 sont susceptibles de mettre à jour la mémoire principale bien que, dans le mode de réalisation préféré, il ne possèdent pas d'antémémoire distincte. Ces dispositifs, qu'ils aient ou non une antémémoire, seront appelés "altérateurs de mémoire". La figure 2 décrit plus en détail une opération de lecture typique. Au cours d'une opération de lecture, le processeur peut tout d'abord essayer d'effectuer une lecture de l'antémémoire (bloc 40) en appliquant une adresse physique à l'antémémoire de données. L'antémémoire de données compare l'adresse physique appliquée à l'adresse physique se trouvant dans son tableau d'index d'adresses paires ou impaires. La détermination de celui des tableaux d'index d'adresses qui doit servir à la comparaison est opérée en déterminant si l'adresse physique commence sur une frontière de mot paire ou impaire. S'il y a antémémoire concordante, c'est-à-dire si l'on peut effectuer la lecture dans l'antémémoire (bloc 41), on prend l'embranchement 42 et la donnée est délivrée au microprocesseur depuis les tableaux d'antémémoire de données. Si la donnée n'existe pas dans l'antémémoire de données, le microprocesseur effectue une recherche mémoire. Le microprocesseur MIPS Computer utilisé dans le mode de réalisation préféré ne donne aucune information sur le point de savoir si la donnée que l'on cherche à obtenir par la recherche mémoire sera ou non mémorisée dans l'antémémoire après que l'on ait réussi à effectuer l'accès mémoire voulu. Pour cette raison, chaque fois que le processeur exécute une recherche mémoire, le circuit de surveillance de bus met à jour ses index d'adresse avec l'adresse de la donnée à rechercher. Il se peut que l'on vienne alors écrire sur une autre rubrique des tableaux d'index d'adresses du circuit de surveillance de bus. Si tel est le cas, on invalide la donnée correspondante dans le tableau d'antémémoire de données (bloc 45). On peut alors recevoir de la mémoire la donnée (bloc 46). Le processeur détermine alors si l'on doit ou non mettre à jour l'antémémoire (bloc 47). Si l'on doit mettre à jour l'antémémoire, on prend l'embranchement 48 et l'on met à jour l'antémémoire (bloc 49). Dans le cas contraire, on ne met pas à jour l'antémémoire (embranchement 50). Dans le cas o l'on a mis à jour l'antémémoire (bloc 49), les données de l'antémémoire correspondent toujours aux index d'adresses du circuit de surveillance de bus. Dans le cas o l'on n'a pas mis à jour l'antémémoire (embranchement 50), les index d'adresses du circuit de surveillance de bus constituent un sur-ensemble des index d'adresses de l'antémémoire. Cette manière de faire permet d'être sûr que le circuit de surveillance de bus est en mesure de déterminer si la donnée existe ou non dans son antémémoire. Si l'on se réfère maintenant brièvement aux figures 5 et 6, on y a décrit plus en détail le procédé utilisé par le mode de réalisation préféré de la présente invention pour charger des informations de la mémoire principale vers l'antémémoire. Dans le mode de réalisation préféré, le bus système a une largeur de deux mots (64 bits, un mot correspondant à 32 bits). Les données sont organisées-sur le bus système 10 de la manière décrite figure 6. Lors d'un cycle d'horloge donné, deux mots transitent sur le bus système 10, à savoir un mot de rang supérieur 83 et un mot de rang inférieur 81. Les informations transitent sur le bus de telle sorte que le mot de rang inférieur 81 puisse être transféré lors du cycle d'horloge n 0 et que le mot de rang supérieur homologue 82 puisse transiter lors du cycle d'horloge n 1. Cette manière de faire permet de bénéficier de plusieurs avantages propres à l'invention. Par exemple, il peut être intéressant, dans un système informatique, de demander l'information dans la mémoire principale par blocs de mots au lieu de le faire un mot à la fois. Mais dans un tel système, l'accès à la mémoire principale est contrôlé par un microprocesseur qui demande l'information un seul mot à la fois. On souhaite délivrer-par blocs de mots des informations à une antémémoire associée à un tel microprocesseur. Dans le mode de réalisation préféré, on a un microprocesseur MIPS Computer. 23 avec une antémémoire 18, comme décrit à propos de la figure 1. Le microprocesseur peut formuler une demande de données et il peut y avoir antémémoire discordante (bloc 90, figure 5), de sorte qu'il faut accéder à la mémoire principale. Si le microprocesseur formule une demande pour un mot aligné sur une'frontière de double mot (c'est-à-dire un mot d'adresse paire) (embranchement 91), on applique sur le bus système une instruction de lecture de double mot (bloc 92). Un double mot peut correspondre à un mot de rang supérieur 82 et à-un mot de rang inférieur 81. Le système va ensuite sélectionner le tableau. de l'antémémoire de données impaires 22 comme étant l'antémémoire dans laquelle il faut écrire (bloc 94), puis le mot de rang inférieur 81 est reçu au cours du cycle d'horloge n 0 et inscrit dans l'antémémoire (bloc 95). Initialement, le processeur avait demandé un mot aligné sur une frontière de double mots, c'est-à-dire un mot de rang supérieur 82. On informe le processeur qu'il a reçu des données incorrectes et l'on réhitére l'accès mémoire-(bloc 96). On sélectionne ensuite le tableau d'antémémoire de données impaires 21 (bloc 97) et on reçoit le mot de rang supérieur 82 au cours du cycle d'horloge n 1. Le mot de rang supérieur 82 est ensuite inscrit dans l'antémémoire (bloc 98). Le processeur peut alors utiliser l'information demandée, c'est-à-dire le mot de rang supérieur 82. Il sera évident pour l'homme de l'art que, dans d'autres modes de réalisation de la présente invention, l'ordonnancement particulier des mots renvoyés peut être modifié. En particulier, dans le système informatique du mode de réalisation préféré, l'ordonnancement des octets est tel que l'octet n 0 est l'octet le plus à gauche. Cette convention du type "le plus significatif à la fin" est notamment compatible avec celle des processeurs Motorola 68000. Les procédés et les dispositifs de la présente invention sont également applicables à un système informatique dans lequel l'ordonnancement des bits est tel que l'octet n 0 est l'octet le plus à droite. Cette convention peut être appelée "le moins significatif à la fin". Avec une convention "le moins significatif à la fin", on doit renvoyer les mots en ordre inverse de celui du procédé décrit à propos du mode de réalisation préféré. Comme un système informatique a souvent besoin d'accéder séquentiellement aux informations, lorsque l'on demande ensuite le mot d'ordre inférieur 81 il y a antémémoire concordante. Dans le mode de réalisation préféré, un accès en mémoire principale nécessite dix cycles d'horloge. Si l'on utilise le procédé de la présente invention, on a besoin de onze cycles d'horloge pour un accès à un -double mot, un cycle d'horloge supplémentaire étant nécessaire en raison de la réitération. Cependant, dans le cas o le processeur a besoin d'accéder au mot d'ordre inférieur 81, on économise ainsi neuf cycles d'horloge. Par ailleurs, la présente invention peut utiliser pour des cartes du système, telles que la carte processeur 11, des bus de 32 bits (un mot) de large, tout en utilisant un bus système dont la largeur correspond à un certain multiple de cette taille de mot. On évite ainsi l'apparition d'un goulot d'étranglement du système lorsque l'on déplace des informations du bus système vers les cartes. Le procédé de réhitération de la présente invention que l'on a décrit plus haut permet de délivrer à une carte du système des mots en séquence en un bloc de données, de manière étagée dans le temps. Ceci réduit les problèmes de goulot d'étranglement lorsque l'on réduit la taille du trajet des données, sans pour autant pénaliser les performances du bus système. Il sera évident pour l'homme de l'art que la présente invention peut être mise en oeuvre avec des systèmes informatiques ayant des largeurs de bus système autres qu'une largeur de deux mots. Par exemple, on peut utiliser un système informatique dans lequel la largeur du bus système est de 128 bits (quatre mots). Dans un tel système, on peut utiliser de un à quatre tableaux d'antémémoires et on peut demander les données par blocs de quatre mots. Les données peuvent se présenter échelonnées dans le temps sur quatre cycles d'horloge, à raison d'un mot par cycle d'horloge, puis elles sont placées dans l'antémémoire. En variante, on peut recevoir du bus un bloc de données et le placer dans un tampon. La donnée est alors reçue par l'antémémoire depuis le tampon. La figure 3 décrit un procédé utilisant des circuits de surveillance de bus traitant des transactions d'écriture à partir de leur propre processeur d'une manière conforme à la présente invention. Du fait que le trajet allant du circuit de surveillance de bus à l'antémémoire est un trajet unidirectionnel, le circuit de surveillance de bus n'est pas directement informé du moment o a lieu une inscription dans l'antémémoire. En conséquence, lorsque le processeur envoie une transaction d'écriture vers un tampon d'écriture (bloc ), c'est le tampon d'écriture qui est responsable de la mémorisation d'informations établissant qu'il y a eu inscription dans l'antémémoire (bloc 75) et de l'envoi de la transaction d'écriture à l'interface de bus (bloc 71) Parallèlement à l'envoi de la transaction d'écriture vers l'interface de bus (bloc 71), on peut mettre à jour l'antémémoire par la nouvelle donnée, si la transaction est une transaction d'écriture dans l'antémémoire (bloc 72). Le tampon d'écriture du mode de réalisation préféré possède une petite file d'attente pour éviter d'arrêter le processeur lorsque le bus système n'est pas disponible. L'interface de bus informe ensuite le circuit de surveillance de bus qu'il y a eu inscription dans l'antémémoire (bloc 73) et applique la transaction sur le bus système lorsque le bus système et la mémoire sont disponibles. Le circuit de surveillance de bus est alors responsable de la mise à jour de ses tableaux d'index d'adresses avec l'adresse inscrite dans la mémoire (bloc 74). La figure 4 illustre un processus d'invalidation des rubriques de l'antémémoire lorsqu'un autre processeur, unité à virgule flottante, organe d'entrée/sortie ou organe graphique inscrit des informations dans la mémoire principale. Dans le mode de réalisation préféré de la présente invention, les processeurs utilisent un système à antémémoire à recopie directe, système dans lequel on inscrit des données dans la mémoire principale en corrélation directe avec les données que l'on inscrit dans l'antémémoire. En d'autres termes, on ne conserve pas de données altérées dans l'antémémoire jusqu'à un moment ultérieur o l'antémémoire sera purgée sur, la mémoire principale; au contraire, on inscrit les données dans la mémoire principale dès que possible après une transaction d'écriture dans l'antémémoire. Dans le mode de réalisation- préféré, le système informatique peut posséder plusieurs unités de traitement, chacune ayant une antémémoire distincte dont on doit conserver la cohérence avec toutes les autres. De la sorte, lorsque une transaction d'écriture est exécutée par un altérateur de mémoire, on doit invalider les rubriques correspondantes de l'antémémoire. Dans le mode de réalisation préféré, le circuit de surveillance de bus surveille l'apparition de transactions d'écriture sur le bus système et examine l'adresse o l'on veut écrire (bloc 60). Le circuit de surveillance de bus détermine si l'adresse concorde avec un index d'adresse de ce circuit de surveillance de bus (bloc 61). Ce circuit effectue cette détermination en comparant l'adresse en question à son tableau d'index d'adresses paires ou à son tableau d'index d'adresses impaires, selon que l'adresse commence sur une frontière de mot paire ou impaire. Ici encore, certaines transactions peuvent être des transactions sur des doubles mots, le circuit de surveillance de bus devant alors examiner à la fois son tableau d'index d'adresses paires et son tableau d'index d'adresses impaires. Comme les tableaux d'index d'adresses du circuit de surveillance de bus contiennent un sur-ensemble des données contenues dans l'antémémoire de données du processeur, si l'on ne trouve pas l'adresse dans les tableaux d'index d'adresses du circuit de surveillance de bus, l'adresse n'existe pas dans l'antémémoire de données du processeur. Dans ce cas, on prend l'embranchement 62 et on ignore cette transaction d'écriture. Dans le cas contraire, on prend l'embranchement 63 et on invalide la rubrique correspondante dans le circuit de surveillance de bus (bloc 64). La rubrique de l'antémémoire de données est également invalidée (bloc 65). La fois suivante o le processeur demande une lecture de cette donnée, on ne trouvera pas d'antémémoire concordante, et il ne sera pas nécessaire d'aller chercher la donnée dans la mémoire comme décrit à propos de la figure 2. o 2628235 REVENDICATIONS 1. Un procédé.pour transmettre des informations dans un système informatique, caractérisé en ce qu'il comporte les étapes suivantes: demande d'un premier mot d'information, - application, en réponse à cette demande, d'un bloc d'information sur un bus système (10), ce bloc d'information comportant n mots d'information, - réception de chacun de ces n mots d'informations, de manière à recevoir un bloc d'informations en réponse à une demande correspondant seulement à un mot. 2. Le procédé de la revendication 1, dans lequel les différents mots des n mots sont reçus d'une manière échelonnée dans le temps. 3. Le procédé de la revendication 2, dans lequel ledit bloc d'information est mémorisé dans une antémémoire (18) au moment de sa réception. 4. Le procédé de la revendication 3, dans lequel les n mots sont des mots d'information formant une séquence. 5. Le procédé de la revendication 4, dans lequel l'antémémoire (18) comporte n tableaux d'antémémoire (21, 22)L. Le procédé de la revendication 5, dans lequel n = 2. 7. Le procédé de la revendication 1, dans lequel les n mots sont reçus en bloc et placés dans un tampon. 8. Le procédé de la revendication 7, dans lequel on va chercher d'une manière échelonnée dans le temps chaque mot du bloc dans le tampon. 17 2628235 9. Un procédé pour transmettre des informations dans un système informatique, ce système informatique comportant des premiers moyens (23), reliés à un bus système (10), pour demander une information et des seconds moyens, relié à ce bus système, pour délivrer une information, caractérisé en ce qu'il comprend les étapes suivantes: - demande par les premiers moyens d'un premier mot d'information, - délivrance par les seconds moyens, en réponse à cette demande, d'un bloc d'information sur le bus système, ce bloc d'information comportant n mots d'information contigu,ës - réception par les premiers moyens du bloc d'information, de manière à recevoir un bloc d'information en réponse à une demande correspondant seulement à un mot. 10. Le procédé de la revendication 9, dans lequel on reçoit le bloc d'information dans une antémémoire (18). 11. Le procédé de la revendication 10, dans lequel les premiers moyens acceptent les mots du bloc d'information en réponse à une instruction de réitération. 12. Le procédé de la revendication 11, dans lequel l'antémémoire (18) comporte n tableaux d'antémémoire (21, 22), chacun de ces n tableaux d'antémémoire recevant un mot d'information distinct en réponse à la demande. 13. Le procédé de la revendication 12, dans lequel les premiers moyens sont constitués d'un module processeur (23). 14. Le procédé de la revendication 13, dans lequel les seconds moyens sont constitués d'une mémoire. r -]p - L--I I!I 23 I 27 I! 30 I I I I 26 I - ---6 I471 "0 I1 2/6 OPERATIOND ECUE IESSAI DE LECTURE / OE L'ANTIMEMOIRE PAR LE M 421 4 NON RECHERCHE EN MEMOIRE MAJ DES INDEX DU CIRCUIT DE SUR.DE VS MNVALIDATON DE L ANTEMEMOIRE 4,6 RECEPTION DES DONN DEPUIS LA MEMOIRE MA 4oui 3/6 LE PROCESSEUR ENVOIE LA TRANSACTION DE'RI VERS LE CONTROLEUR DE L'ANTEMEMOIRE _ MEMORISER INFORMATION 75 INDIQUANT LCINSCRIPTION DANS L'ANTEMEMOIRE 71 I 72 (OPERAT1ONS EXECUTEES EN PARALLELE). i TRANSACTION ENVOYEE MAJ DE LSANTMEMOIR A LINTERFACE DE BUS POUR APPLICATION PAR SUR LE BUS LES NOUVELLES DONNEE INTERK DE BUS INDIQUE 73 AU CIRCUITDESURYV DEBa QU ILY A EU INSCRIPTION DANS L'ANTEMEMOIRE MAJ DE SES INDEX PAR LE CIRCUITDESURV.DE F 4/6 4PERATION DECRITURE ?libdli UTRES PROCESSEURS) SURVEILANOETRAN 60 IECRITURE SUR LE BUS EXAMEN ADRESSE OU INCRIRE 6= 6 *e0RRESPONCD A CIN ?ECE CIRCUIT DESU - ouf- INVALIDERLA RUBRIQUE DU ORCUIT DE SURV. BUS INVALIDERLARUBRIOU 65 DE L'ANTEMEMOIRE 3èd10H3WMINVl SNYCI 3fNOILLYd 13 3(N 3 t NOI.LOIJ.fSNI 381OWd3UW31N, SlNVCI ú6 Low (1nxlamn3Wi9vca 33nOllddt lOW aS-DDV =llydèl '=i!ON=IN snd::10 --- l ON 319noCi úNS398g.H3 Z6.6i slnol"lddv.LOw 318N00i I:=1MFnI. I3:" NOIJ.znULSNI iino NON 3i106W3W31N} 9 z9/ 6/6 CYCLES D'HORLOGE À8363 32 31 O 0 O SUPERIEUR I INFERIEUR 822 1 SUPERIEUR 2 INFERIEUR 2 2 SUPERIEUR 3 INFERIEUR 3 3 SUPERIEUR 4 INFERIEUR 4 4 SUPERIEUR 5 INFERIEUR * * e N N SUPERIEUR. N+ INFERIEUR N+' N+1 SUPERIEUR N+2 INFERIEUR