Brevet FR2662281A1 — publié le 19911122

Cette invention concerne les systèmes inf or- matiques et plus particulièrement les procédés et dispositifs pour mettre en oeuvre des processeurs utilisés dans les ordinateurs à jeu d'instructions réduit. Le développement d'ordinateurs numériques s est fait à travers toute une série d'étapes, commen- çant par des processeurs qui étaient seulement capables d'exécuter quelques instructions de base programmées à un niveau de langage machine et se poursuivant jusqu'à des processeurs capables de traiter des instructions très compliquées écrites en langages évolués Au moins l'une des raisons à ce développement a été que les langages évolués sont plus faciles à utiliser pour les programmateurs, de sorte que davantage de programmes peuvent être créés plus rapidement Une autre raison est que, Jusqu'à un certain point dans le développement, les machines plus modernes exécutaient les opérations plus rapidement. Cependant, il arrivait un point o l'augmen- tation constante de l'aptitude des ordinateurs à éxé- cuter des instructions plus compliquées commençait en fait à ralentir le fonctionnement de l'ordinateur par rapport à ce que des chercheurs ressentaient comme possible avec des machines fonctionnant avec seulement un petit nombre d'instructions de base Ces chercheurs ont commençé à concevoir des machines d'avant-garde pour exécuter un nombre limité d'instructions, ce que l'on appelle un jeu d'instructions réduit, et ils pouvaient démontrer que ces machines fonctionnaient en fait plus rapidement pour quelques types d'opérations C'est là que se situe le début de l'ordinateur à jeu d'instruc- tions réduit, que l'on connaît depuis par son acronyme RISC (pour "I Reduced Instruction Set Computer"). Une conception d'ordinateur RISC est basée sur l'architecture de processus évolutive appelée SPARC "Scalable Process Architecture") qui est due à Sun Microsystèmes, inc, Mountain Vlew, Californie et est mise en oeuvre dans la ligne d'ordinateurs SPARC fabri- qués par cette société Une caractéristique remarquable des ordinateurs SPARC est la conception des processeurs, spécialement l'architecture des registres banalisés. Ces registres banalisés comprennent de qua- rante à cinq cent vingt registres de 32 bits Quel que soit le nombre total de registres banalisés, ces re- gistres sont partagés en huit registres communs et seize Jeux de registres, chacun divisé en huit registres d'entrée (EN) et huit registres locaux A tout moment, une instruction peut accéder à une fenêtre comportant les huit registres communs, les registres EN et locaux d'un jeu de registres et les registres EN d'un jeu de registres adjacent logiquement Ces registres EN du jeu logiquement adjacent sont adressés comme les registres de sortie (SOR) du jeu de seize registres de la fenêtre, comportant à la fois des registres EN et des registres locaux Donc, une instructions peut accéder à une fenêtre comportant les huit registres communs, les registres EN et locaux d'un jeu de registres et les registres EN (adressés comme des registres SOR) du jeu de registres adjacent logiquement. Cette architecture apporte plusieurs avantages dont pas le moindre est que le processeur peut passer d'un jeu de registres à un autre sans avoir à conserver en mémoire et à ré-insérer toute l'information traitée par un jeu particulier de registres avant de procéder à l'opération traitée par le jeu de registres suivant Par exemple, comme les registres EN d'un jeu sont les mêmes que les registres SOR du jeu précédent, l'information contenue dans ces registres peut être utilisée immédia- tement par le jeu suivant ou le jeu précédent sans qu'il soit nécessaire de mettre l'information en mémoire et d'écrire l'information dans les registres EN du jeu suivant On économise ainsi beaucoup de temps de f onc- tionnement des systèmes De plus, le grand nombre de jeux de registres utilisables dans l'architecture SPARC permet l'exécution simultanée d'un grand nombre d'opé- rations, sans qu'il soit nécessaire, en beaucoup de cas, d'opérer des conservations en mémoire et des ré- inscriptions avant de procéder à l'opération dans un quelconque jeu particulier de registres On obtient ainsi d'importants avantages en vitesse par rapport à il d'autres formes d'architecture RISC. Toutefois, quel que soit le degré d'évolution philosophique de l'architecture SPARC, celle-ci doit être mise en oeuvre matériellement Une réalisation de ce type, décrite dans la demande de brevet des Etats- Unis n 07/437 978, intitulée Method and Apparatus for Current Window Cache, au nom de Eric H Jensen, déposée le 16 Novembre 1989, comporte un processeur constitué d'un grand fichier de registres, réalisé habituellement en mémoire vive, qui est divisé en une pluralité de jeux de registres fenêtrés (contenus dans des fenêtres) En conformité avec l'architecture SPARC générale, chacun de ces jeux comporte une première pluralité de registres EN et une deuxième pluralité de registres locaux Les registres EN de chaque jeu sont adressables comme les registres SOR d'un précédent jeu de registres adjacent logiquement, tandis que les registres SOR de chaque jeu sont adressables comme les registres EN d'un prochain jeu de registres adjacent logiquement Un jeu de re- gistres communs, pouvant être adressé avec chacun des jeux de registres, est prévu en plus et est doté de circuits pour indiquer quel jeu de registres fenêtrés est adressé. Le processeur comporte également une unité arithmétique et logique et une antémémoire possédant un nombre de lignes au moins égal au nombre total de registres dans un jeu adressable de registres fenêtrés, comprenant le jeu de registres communs, un jeu de re- gistres EN, un jeu de registres SOR et un jeu de re- gistres locaux L'antémémoire est pourvue de circuiterie pour changer les adresses de lignes de l'antémémoire contenant de l'information actuellement désignée comme étant contenue dans des registres SOR, en adresses désignant les registres EN du jeu de registres suivant et inversement Ce système fonctionne essentiellement comme un processeur très rapide du fait que, dans la plupart des cas, les registres de l'antémémoire sont utilisés à la place du fichier de registres normal. L'emploi de l'antémémoire pour le traitement permet le plus souvent d'obtenir des vitesses d'antémémoire lors du traitement, bien que le fichier de registres soit exécuté en mémoire vive relativement peu coûteuse et comporte un très grand nombre de jeux-fenêtrés L'emploi d'une circuiterie pour changer les adresses de lignes de l'antémémoire contenant de l'information désignée à ce moment comme une information contenue dans des registres SOR, en adresses désignant les registres EN du jeu suivant de registres et inversement, permet au jeu unique de registres EN, SOR, locaux et communs de l'antémémoire d'accomplir, dans une seule fenêtre d'antémémoire, le transfert entre des jeux fenêtrés, sans la plupart des opérations de mémorisation et de ré-écriture qu'exigent normalement les multiples Jeux de registres fenêtrés. Un tel processeur, articulé autour d'une antémémoire, donne satisfaction sur le plan de l'ac- croissement de la vitesse de traitement d'un processeur basé sur une architecture SPARC Toutefois, comme il ne semble pas exister de limite supérieure pour la vitesse désirée d'un processeur, un fonctionnement plus rapide encore est souhaitable. ru Lnvention vise donc à procurer un mode de mise en oeuvre particulièrement rapide de l'architecture de processeur SPARC. Un but plus spécifique de l'invention est de perfectionner le fonctionnement d'un processeur uti- lisant une antémémoire rapide pour la mise en oeuvre de l'architecture SPARC. Ces buts de l'invention, et d'autres encore, sont réalisés dans un processeur qui comporte un fichier de registres comprenant des registres adressables en une pluralité de jeux de registres fenêtrés, chaque jeu possédant une première pluralité de registres EN, une deuxième pluralité de registres locaux, une troisième pluralité de registres SOR, une quatrième pluralité de registres communs; une unité arithmétique et logique; une antémémoire possédant un nombre de lignes au moins égal au nombre total de registres dans un jeu adressable de registres fenêtrés; un moyen pour changer les adresses de lignes de l'antémémoire contenant de l'in- formation actuellement désignée dans un jeu particulier de registres d'une fenêtre comme une information conte- nue dans des registres SOR, en adresses désignant les nouveaux registres EN du jeu suivant de registres lors d'une opération de stockage; un moyen pour changer les adresses de lignes de l'antémémoire faisant physiquement suite aux nouveaux registres EN en adresses pour re- gistres locaux; et un moyen pour changer les adresses de lignes de l'antémémoire faisant physiquement suite aux nouveaux registres locaux, en adresses pour registres SOR. Selon l'invention, un processeur comprenant un fichier de registres possédant des registres adressables en une pluralité de jeux de registres contenus dans des fenêtres, une unité arithmétique et logique et une antémémoire, est caractérisé en ce que chaque jeu de registres contenus dans une fenêtre comprend une première pluralité de registres d'entrée (EN), une deuxième pluralité de registres locaux et une troisième pluralité de registres de sortie (SOR), les jeux de registres étant utilisés conjointement avec une qua- trième pluralité de registres communs, l'antémémoire comprenant un nombre de lignes adressables au moins égal au nombre total de registres dans un jeu adressable de registres contenus dans une fenêtre, chaque ligne étant suffisante pour stocker l'information dans un registre du fichier de registres, le processeur comprenant en outre des moyens pour adresser les lignes de l'anté- mémoire, comprenant un premier moyen pour changer les adresses de lignes contenant de l'information actuelle- ment désignée dans un jeu particulier de registres d'une fenêtre comme une information contenue dans des re- gistres SOR, en adresses désignant les registres EN du jeu de registres suivant lors d'une opération de conser- vation, un deuxième moyen pour changer les adresses de lignes de l'antémémoire faisant physiquement suite aux nouveaux registres EN, en adresses pour registres locaux, ainsi qu'un troisième moyen pour changer les adresses de lignes de l'antémémoire faisant physiquement suite après cela aux nouveaux registres locaux, en adresses pour registres SOR. Selon d'autres caractéristiques de l'inven- tion: le moyen pour l'adressage des lignes de l'antémémoire comporte un moyen servant à désigner pour le fonc- tionnement un jeu de registres particulier, contenu dans une fenêtre, ainsi q Tuun moyen servant à désig- ner un registre dans un tel jeu; le processeur comprend en outre un quatrième moyen pour changer les adresses de lignes de l'antémémoire contenant de l'information actuellement désignée dans un jeu de registres particulier contenu dans une fenêtre comme une information contenue dans des registres EN, en adresses désignant les registres SOR du jeu de registres suivant lorsqu'une opération de ré-inscription doit avoir lieu; le processeur comprend en outre un moyen pour indi- quer que des lignes sélectionnées de l'antémémoire sont non valides; l'antémémoire comprend en outre au moins un bloc sup- plémentaire de lignes qui suffit pour permettre le stockage de l'une quelconque des séries de registres EN, SOR ou locaux d'un jeu adressable de registres contenu dans une fenêtre. D'autres caractéristiques et avantages de l'invention ressortiront plus clairement de la descrip- tion qui va suivre d'un exemple de réalisation non limitatif, ainsi que des dessins annexés, sur lesquels: la figure 1 est un schéma fonctionnel illustrant trois jeux adjacents logiquement de registres contenus dans des fenêtres selon l'architecture SPARC; la figure 2 est une représentation schéma- tique d'un ensemble de fenêtres contenant des registres selon l'architecture SPARC; la figure 3 est un schéma fonctionnel montrant notamment une antémémoire de fenêtre en cours de traitement d'un mode de réalisation perfectionné selon l'invention; la figure 4 est une représentation schéma- tique d'une disposition de registres en trois fenêtres de registres associées logiquement pendant des opéra- tions faisant application de l'invention; la figure 5 est une représentation schéma- tique d'une deuxième disposition de registres en trois fenêtres de registres associées logiquement pendant des opérations faisant application de l'invention; la figure 6 est une représentation schéma- tique d'une troisième disposition de registres en trois fenêtres de registres associées logiquement pendant des opérations faisant application de l'invention; et la figure 7 montre une disposition générale de huit blocs de registres pouvant aider à mieux com- prendre le système d'adressage selon l'invention. Notation et nomenclature Certaines parties des descriptions détaillées qui suivent, sont présentées en termes d'algorithmes et de représentations symboliques d'opérations sur des bits de données dans une mémoire d'ordinateur Ces descrip- tions algorithmiques et représentations sont les moyens utilisés par les informaticiens pour transmettre le plus efficacement possible l'essentiel de leur travail à d'autres informaticiens. Un algorithme est considéré ici, et de manière générale, comme une séquence autocohérente d'étapes conduisant à un résultat désiré Ces étapes nécessitent des manipulations physiques de quantités physiques. Habituellement, bien que cela ne soit pas obligatoire, ces quantités prennent la forme de signaux électriques ou magnétiques capables d'être stockés, transférés, combinés, comparés et manipulés d'autres manières Il s'est avéré commode, à certains moments, principalement pour des raisons d'usage courant, de désigner ces signaux par bits, valeurs, éléments, symboles, carac- tères, termes, nombres ou analogues Il faut cependant garder à l'esprit que tous ces termes et des termes similaires sont à associer aux quantités physiques concernées et constituent simplement des appellations convenables appliquées à ces quantités. De plus, les manipulations effectuées sont souvent désignées par des termes tels que addition ou comparaison, qui sont des termes communément associés à des opérations mentales effectuées par un opérateur humain Or, aucune capacité de cette nature de la part d'un opérateur humain n'est nécessaire ou désirable, dans la plupart des cas, dans l'une quelconque des opérations décrites ici et faisant partie de l'inven- tion; il s'agit d'opérations machine Des machines utiles pour effectuer les opérations selon l'invention, comprennent des ordinateurs numériques universels ou d'autres dispositifs semblables Dans tous les cas, il faut avoir à l'esprit la distinction entre le procédé pour faire fonctionner un ordinateur et le procédé de calcul proprement dit L'invention apporte un appareil et un procédé, comprenant des étapes, pour faire fonc- tionner un ordinateur dans le traitement de signaux électriques ou d'autres signaux physiques (mécaniques ou chimiques par exemple) en vue de la génération d'autres signaux physiques désirés. Description détaillée de l'invention La figure 1 représente schématiquement une partie des registres banalisés d'un processeur de nombres entiers appliqué dans un ordinateur RISC uti- lisant une architecture SPARC La figure montre trois fenêtres de registres 10, 11 et 12 et un jeu de re- gistres 14 communs à toutes les fenêtres de registres , Il et 12 L'ensemble représenté comprend huit registres communs r( 0) à r( 7) et trois jeux de vingt- quatre registres chacun, désignés par r( 8) à r( 31). Chaque jeu comprend huit registres de sortie (SOR) désignés par r( 8) à r( 15), huit registres locaux r( 16) à r( 23) et huit registres d'entrée (EN) désignés par r( 24) à r( 31) Les différents jeux de registres sont réali- sables en mémoire vive ou selon l'une quelconque d'un certain nombre d'autres façons bien connues. Lorsque les registres d'une fenêtre particu- iière sont utilisés dans une opération par le proces- seur, de l'information est transférée aux registres EN d'une fenêtre particulière et les résultats de l'opération sont placés dans les registres SOR Cepen- dant, les registres EN de chacune des fenêtres adja- centes, sur le plan logique, sont physiquement les mêmes que les registres SOR de la fenêtre précédente Par conséquent, lorsqu'une opération dans la fenêtre de registres 10 place des résultats dans les registres SOR de cette fenêtre, les résultats se trouvent aussi, automatiquement, dans les registres EN de la fenêtre Il puisqu'il s'agit physiquement des mêmes registres Donc, des opérations qui demanderaient normalement que des valeurs contenues dans des registres soient stockées en mémoire avant une opération consécutive et soient ensuite ré-inscrites dans les registres avant leur utilisation suivante, peuvent être exécutées par des commutations entre une pluralité de fenêtres de re- gistres, sans qu'il soit nécessaire de stocker et de ré-inscrire des résultats L'emploi de registres EN et SOR chevauchants supprime même le besoin d'effectuer une opération d'écriture pour réaliser le transfert entre des registres en beaucoup de cas. La figure 2 représente un petit jeu logique complet de huit fenêtres de registres dans une disposi- tion selon une architecture SPARC On notera que la disposition ressemble à un jeu infini de fenêtres de registres puisque chaque fenêtre est associée à la fenêtre qui la précède immédiatement et à la fenêtre qui la suit immédiatement Un pointeur de (désignant la) fenêtre en cours cwp (pour "current window pointer"), contenu dans les registres d'état/de gestion, désigne la fenêtre de registres exécutant actuellement une opéra- tion La fenêtre désignée par le pointeur cwp+l est la fenêtre de registres précédant directement la fenêtre en cours et dont les registres SOR sont en même temps les registres EN de la fenêtre en cours La fenêtre désignée par le pointeur cwp-1 est la fenêtre de registres qui suit directement la fenêtre en cours et dont les il registres EN sont en même temps les registres SOR de la fenêtre en cours Pour l'adressage d'un quelconque registre particulier dans une fenêtre particulière, le pointeur de fenêtre en cours (cwp) est déplaçé fenêtre par fenêtre jusqu'à celle désirée et une adresse de registre est utilisée pour sélectionner le registre particulier désiré. La demande de brevet précitée décrit un système très rapide pour la mise en oeuvre de l'archi- tecture SPARC Il utilise un processeur constitué d'un grand fichier de registres, habituellement réalisé en mémoire vive, qui est divisé en une pluralité de jeux de registres fenêtrés Conformément à la disposition générale de l'architecture SPARC, chacun de ces jeux possède des registres EN, des registres locaux et des registres SOR Ainsi qu'il est décrit dans ce document, les registres EN et SOR de chaque jeu contenu dans une fenêtre, constituent aussi, respectivement, les re- gistres SOR et les registres EN des deux jeux adjacents logiquement Un jeu unique de registres communs, qui peut être adressé en même temps que chacun des jeux de registres, est prévu en plus, ensemble avec des circuits pour indiquer quel jeu de registres fenêtrés est adressé à un moment donné Une unité arithmétique et logique est prévue en outre pour manipuler l'information dans les différents jeux de registres fenêtrés. Afin d'accélérer les opérations du processeur, on a prévu en plus une antémémoire Celle-ci possède un nombre de lignes au moins égal au nombre total de registres dans un jeu adressable de registres fenêtrés, comprenant le bloc de registres communs, un bloc de registres EN, un bloc de registres SOR et un bloc de registres locaux Le processeur est doté d'une circui- terie pour changer les adresses de lignes de l'anté- mémoire contenant de l'information actuellement désignée comme une information contenue dans des registres SOR, en adresses désignant les registres EN et inversement. Ce système fonctionne essentiellement comme un proces- seur très rapide, du fait que, dans la plupart des cas, les registres de l'antémoire sont utilisés à la place des registres du fichier de registres normal L'emploi de l'antémémoire pour le traitement, permet le plus souvent d'obtenir des vitesses de traitement correspon- dant à celle de l'antémémoire, en dépit du fait que le fichier de registres soit réalisé en mémoire vive relativement peu onéreuse et lente et qu'il comporte un très grand nombre de jeux-fenêtres L'emploi d'une circuiterie pour changer les adresses de lignes de l'antémémoire contenant de l'information actuellement désignée comme une information contenue dans des re- gistres SOR, en adresses désignant les registres EN et inversement, permet à l'unique jeu de registres EN, SOR, locaux et communs de l'antémémoire d'accomplir, dans une seule fenêtre d'antémémoire, le transfert entre des Jeux fenêtrés, avec suppression de la plupart des opérations de stockage et de ré-inscription. L'invention utilise un système qui ressemble quelque peu à celui décrit dans la demande de brevet précitée, avec une antémémoire pour accélérer le fonc- tionnement du processeur, mais elle utilise une dispo- sition différente pour l'adressage des registres de l'antémémoire afin d'obtenir de meilleures performances. La figure 3 représente schématiquement un processeur construit conformément à l'invention pour la mise en oeuvre de l'architecture SPARC Le processeur 20 représenté sur la figure 3 possède une zone de mémoire auxiliaire 22 formée de fichiers de registres qui, selon un mode d'exécution préféré, peuvent être réalisés en mémoire vive Dans le mode de mise en oeuvre préféré de l'invention, la zone de mémoire 22 est divisée en trente-deux fenêtres comportant chacune seize registres de 32 bits, un bloc de huit registres EN et un bloc de huit registres locaux Comme en d'autres exemples de l'architecture SPARC, les registres EN de chaque fenêtre sont adressés comme les registres SOR de la fenêtre immédiatement précédente Ainsi, les registres EN représentés pour la fenêtre 3 sont aussi les registres SOR pour la fenêtre 2 située directement au-dessus, et les registres EN représentés pour la fenêtre 4 sont aussi les registres SOR pour la fenêtre 3 Juste au- dessus Ceci est illustré schématiquement par la zone en pointillé à droite de la fenêtre 3 de la figure. Dans le mode de réalisation préféré de l'in- vention, la zone de mémoire 22 peut être adressée en incréments de vingtquatre registres, en même temps qu'un jeu de registres communs pour former une fenêtre I 5 de registres Dans ce mode de réalisation préféré, la zone de mémoire 22 peut être réalisée en mémoire vive. Les fenêtres de registres de la zone de mémoire 22 sont associées à une unité arithmétique et logique (UAL) 26 qui peut accéder aux fenêtres de registres de la zone 22 en vue de l'exécution des fonctions d'un processeur. Dans le fonctionnement normal d'un ordinateur basé sur une architecture SPARC, les fenêtres de registres de la zone de mémoire 22 sont utilisées avec l'unité arithmé- tique et logique 26 pour exécuter les fonctions du processeur. Toutefois, afin de rendre le fonctionnement du processeur 20 beaucoup plus rapide, un système unique comportant une antémémoire de fenêtre en cours 28 a été conçu L'antémémoire de fenêtre en cours 28 est sem- blable à celle de la demande de brevet citée précédem- ment, elle peut être réalisée en mémoire vive très rapide et elle peut contenir un nombre de lignes suf- fisant pour permettre le stockage des registres d'une fenêtre de registres dans l'architecture SPARC Donc, dans le mode de réalisation préféré, l'antémémoire de fenêtre en cours 28 possède trente-deux lignes de mémoire, de sorte qu'elle peut stocker de l'information en un bloc de huit registres EN, un bloc de huit re- gistres locaux, un bloc de huit registres SOR et un bloc de huit registres communs Ainsi qu'il a été précisé précédemment, chacun de ces registres est capable de stocker trente-deux bits d'information Comme 1 'infor- mation contenue dans des registres communs est utilisé avec toutes les fenêtres de registres, les huit re- gistres communs de l'antémémoire de fenêtre en cours sont utilisables en même temps comme registres communs pour toute la zone de mémoire 22 formée par le fichier de registres. La disposition de registres illustrée sur la figure 3 peut être appelée, pour la présente explica- tion, la disposition de registres standard dans l'an- témémoire de fenêtre en cours 28 Ainsi qu'on peut le voir, les registres communs sont désignés et adressés en tant que registres O à 7, les registres SOR en tant que registres 8 à 15, les registres locaux en tant que registres 16 à 23 et les registres EN en tant que registres 24 à 31 Ces désignations des registres dans l'antémémoire de fenêtre en cours 28 peuvent être considérées comme agissant en tant qu'éléments décalés, dans l'antémémoire, par rapport à l'adresse de base désignée par le pointeur de fenêtre en cours (cwp) qui sélectionne la-fenêtre de registres active. L'antémémoire, de fenêtre en cours 28 fonc- tionne comme d'autres antémémoires et comme celle décrite dans la demande de brevet précitée Lorsque de l'information contenue dans la zone de mémoire 22 est adressée en vue de l'utilisation, une copie de cette information est stockée dans l'antémémoire 28 Lors d'un accès consécutif à l'information adressée, l'antémémoire 28 est consultée d'abord et, si l'information y est contenue, elle est utilisée, sans qu'il soit nécessaire d'adresser la zone de mémoire 22, d'un fonctionnement plus lent Par conséquent, pour un pourcentage important du fonctionnement, on peut obtenir des vitesses corres- pondant à celle de l'antémémoire. Toutefois, afin de préserver l'avantage offert par l'architecture SPARC, la logique d'adressage pour l'antémémoire 28 est agencée d'une manière inhabituelle. L'antémémoire 28 est pourvue de logique de manière que des adresses de registres dans l'antémémoire soient changées lors d'un changement entre les fenêtres de registres (lorsque le pointeur de fenêtre en cours est incrémenté et décrémenté), de telle sorte que les lignes de l'antémémoire agissant comme registres SOR d'une première fenêtre de registre deviennent les lignes de l'antémémoire qui fonctionnent comme les registres EN de lafenêtre de registres suivante lors de ce qui serait une opération de conservation, et que les lignes qui agissent comme les registres EN d'une première fenêtre de registre deviennent les lignes qui fonctionnement comme les registres SOR de la fenêtre de registres précédente lors de ce qui serait une opération de ré-inscription En prévoyant la logique dans l'anté- mémoire 28 pour accomplir cette fonction, l'information déjà contenue dans les registres SOR d'une fenêtre devient l'information contenu dans les registres EN de la fenêtre suivante lors d'une opération de conserva- tion, tandis que l'information déjà contenue dans les registres EN de la fenêtre originale devient l'informa- tion pour les registres SOR de la fenêtre précédente dans une opération de ré-inscription De plus, puisque l'information dans les registres communs reste constante d'une fenêtre à l'autre, il suffit de changer l'infor- mation dans les lignes de l'antémémoire correspondant à des registres locaux et dans les lignes de l'antémémoire correspondant soit à des registres EN, soit à des registres SOR (suivant la direction d'exécution). Dans l'invention décrite par la demande de brevet précitée, on obtenait ce résultat par un système d'adressage qui commutait seulement des adresses pour les registres EN et les registres SOR de l'antémémoire O 28; les adresses des registres locaux et des registres communs restaient toujours les mêmes Par contre, selon l'invention, les adresses de tous les registres, EN, SOR et locaux, sont commutées à l'introduction d'un nouveau jeu de registres contenu dans une fenêtre adjacente et seuls les registres communs restent aux mêmes positions. Ceci offre de nets avantages en cas d'utilisation d'antémémoires relativement grandes, ainsi qu'on le comprendra à la lecture de la description qui suit. Afin d'accroître la vitesse de fonctionnement de l'antémémoire de fenêtre en cours 28 lors d'une opération de ré-inscription dans laquelle la fenêtre en cours est commutée à la dernière fenêtre précédente, le bit valable est mis à zéro avant la commutation de chaque registre dans les lignes de l'antémémoire 28 contenant les registres locaux et les registres SOR de la fenêtre en cours De cette manière, les lignes de l'antémémoire contenant de l'information non valide pour la nouvelle fenêtre, sont repérées automatiquement comme invalides, sans que cela demande un adressage ou des tests quelconques, de sorte qu'elles peuvent être remplies, dans les lignes appropriées, à partir de la nouvelle fenêtre sollicitée dans la zone de mémoire 22. La figure 4 montre trois dispositions diffé- rentes de l'antémémoire 28 La disposition supérieure 40 est la fenêtre en cours, la disposition centrale 41 montre la fenêtre suivante qui occupera l'antémémoire 28 lorsqu'une première opération de conservation a lieu, et la disposition inférieure 42 montre la fenêtre suivante qui occupera l'antémémoire 28 lorsqu'une seconde opéra- tion de conservation a lieu Comme on peut le voir, les adresses de lignes de l'antémémoire utilisées dans la disposition supérieure 40 sont celles représentées sur a figure 3 Lorsque le processeur termine son opération dans la disposition 40 et passe à la disposition 41, une opération de conservation a lieu et les registres SOR de la fenêtre représentée dans la disposition 40 deviennent les registres EN de la fenêtre représentée dans la disposition 41 Donc, les adresses 8-15 désignant les registres SOR de la fenêtre dans la disposition 40 sont changées pour devenir les adresses 24-31 désignant les registres EN de la fenêtre montrée dans la disposition 41 De plus, les adresses 24-31 des registres EN de la disposition 40 sont changées pour devenir les adresses 16-23 désignant les registres locaux de la fenêtre montrée dans la disposition 41 En même temps, les adresses 16-23 désignant les registres locaux de la disposition 40 sont changées pour devenir les adresses 8-15 désignant les registres SOR de la fenêtre montrée dans la disposition 41. Comme on peut le voir, ce changement 2 O d'adresses permet à l'information dans les registres communs et SOR de la disposition 40 de rester dans les mêmes registres de l'antémémoire 28 et d'être utilisée comme les registres communs et EN de la disposition 41. Ce changement permet aussi de remplir les lignes des autres blocs de registres avec l'information appropriée à partir de la zone de mémoire 22 pour le jeu de re- gistres correspondant à la fenêtre suivante. De façon analogue, lorsque le processeur termine son opération dans la fenêtre de registres illustrée dans la disposition 41 et passe à la fenêtre de la disposition 42, une conservation à lieu et les registres SOR de la fenêtre représentée dans la dispo- sition 41 deviennent les registres EN de la fenêtre représentée dans la disposition 42 Par conséquent, les adresses 8-15 pour les registres SOR de la disposition 41 sont changées pour devenir les adresses 23-31 désignant les registres EN de la fenêtre montrée dans la disposition 42 Les adresses 24-31 pour les registres EN de la disposition 41 sont changées pour devenir les adresses 16-23 désignant les registres locaux de la fenêtre montrée dans la disposition 42 et les adresses 16-23 pour les registres locaux de la disposition 41 sont changées pour devenir les adresses 8-15 désignant les registres SOR de la fenêtre montrée dans la dispo- sition 42. Quand, d'un autre côté, une opération de ré-inscription a lieu et les valeurs du jeu de registres de la fenêtre précédente sont placées dans l'antémémoire 28, les registres EN de l'antémémoire 28 deviennent les registres SOR du Jeu précédent Par exemple, les re- gistres EN adressés en tant que registres 24-31 dans le jeu représenté par la disposition 42, ont leurs adresses changées en 8-15 pour désigner les registres SOR de la disposition 41 De façon analogue, les registres locaux de la disposition 42 ont leurs adresses changées pour désigner les registres EN de la disposition 41, tandis que les registres SOR de la disposition 42 ont leurs adresses changées pour désigner les registres locaux de la disposition 41 lors d'une opération de ré-inscrip- tion Au cours d'une telle opération, les blocs utilisés en tant que registres SOR et locaux de la fenêtre ancienne, sont désignés comme non valides par la mise à zéro d'un bit valable dans l'adresse, de sorte que l'information ancienne n'est pas utilisée. Bien que la nouvelle logique d'adressage et de validation selon l'invention procure peu d'avantages par rapport au système décrit dans la demande de brevet précitée en cas d'utilisation d'un jeu limité de re- gistres, comme représenté sur la figure 4, une disposi- tion similaire peut considérablement accélérer le fonctionnement du système Dans un tel système, au moins un bloc additionnel de huit registres est utilisé dans l'antémémoire 28 afin de permettre le stockage d'infor- mation Une telle disposition est illustrée sur la figure 5 Dans ce cas, l'information est fournie d'abord aux trois jeux supérieurs de registres, suivant l'ordre utilisé dans la disposition précédente, c'est-à-dire EN, locaux, SOR Cependant, dans la nouvelle disposition 50, le bloc inférieur de huit registres (le bloc utilisé pour les registres communs étant exclu) est inutilisé. Lorsqu'une opération de conservation a lieu, les lignes contenant les registres SOR de la disposition 50 de- * viennent les registres EN de la disposition 51, les registres vides reçoivent la nouvelle information locale et les registres EN de la disposition 50 sont utilisés pour les nouveaux registres SOR de la disposition 51. Ainsi, les lignes contenant l'information des registres locaux de la disposition 50 précédente deviennent non nécessaires pour ce jeu-fenêtre C'est seulement lors- qu'une nouvelle opération de conservation a lieu (comme par exemple lors d'un mouvement au jeu-fenêtre repré- senté par la disposition 52) qu'il est nécessaire d'employer les lignes servant de registres locaux dans la disposition 50, de sorte qu'une nouvelle information locale pour la disposition 52 peut y être placée Dans la disposition 52, les registres SOR de la disposition 51 deviennent les registres EN, tandis que les registres EN de la disposition 51 peuvent être remplis avec l'information SOR de la nouvelle fenêtre Là encore, l'espace de registres utilisé pour les registres locaux de la disposition précédente 51 n'est pas nécessaire pour le jeu-fenêtre de la disposition 52. Comme il n'est pas nécessaire de détruire l'information locale dans une disposition formant la fenêtre immédiatement précédente (telle que la disposi- tion 50) lorsqu'une opération de conservation a lieu dans ce schéma de fonctionnement, au moment o une opération de ré-inscription a lieu et les registres EN d'un stade deviennent les registres SOR du stade précé- dent, l'information contenue à la fois dans les re- gistres EN et les registres locaux est immédiatement disponible, sans aucune nécessité de solliciter le fichier de registres dans la zone de mémoire 22 pour cette information Par exemple, en cas de fonctionnement avec la disposition de fenêtre 51, au moment o une opération de réinscription a lieu, les registres EN contiennent l'information qui doit être placée dans les registres SOR de la disposition 50, de sorte qu'il suffit de changer les adresses De plus, les lignes contenant les registres locaux de la disposition 50, qui étaient inutilisées dans la disposition 51, contiennent toujours la même information nécessaire pour les re- gistres locaux de la disposition 50 lorsqu'une ré-ins- cription a lieu Par conséquent, il n'est pas nécessaire d'accéder à cette information dans le fichier de re- gistres, il suffit de changer les adresses utilisées pour l'accès aux registres locaux dans l'antémémoire 28. La seule information à laquelle il faut (éventuellement) accéder dans le fichier de registres, est l'information à placer dans les registres EN de la disposition 50. De plus, comme les registres employés pour les registres locaux dans la disposition 51 ne sont pas nécessaires dans la disposition 50, il n'y a pas besoin d'invalider l'information contenue dans ces registres. Donc, si une opération de conservation se produit à ce moment, l'information des registres locaux pour la disposition 51 est immédiatement disponible, sans qu'il soit nécessaire de solliciter le fichier de registres. Il est à noter que cela n'est pas le cas pour une antémémoire 28 générique comportant N blocs de huit registres. On comprendra que des blocs supplémentaires de huit registres peuvent être ajoutés et utilisés de manière semblable lorsqu'on désire accélérer davantage le fonctionnement du Drocesseur Par exemple, un, deux, trois ou davantage de blocs supplémentaires de huit registres peuvent être ajoutés au système d'antémémoire utilisé dans le processeur A l'heure actuelle, l'uti- lisation d'un seul jeu de huit registres additionnels semble constituer la disposition optimale Cependant, des agencements particuliers pour l'adressage peuvent s'avérer avantageux dans des cas particuliers La figure 6 montre une antémémoire utilisant deux blocs supplé- mentaires de huit registres Dans cette disposition, cinq définitions physiques distinctes de registres peuvent se présenter Il est à noter toutefois que n'importe quelle paire de dispositions adjacentes (par exemple 60 et 61) utilise seulement trois des cinq jeux possibles de huit registres Les registres inutilisés dans chaque cas sont les registres employés par la disposition précédente pour les registres EN et locaux. Par conséquent, il n'est pas nécessaire d'invalider ces registres pour une seule opération de conservation avec, néanmoins, maintien de l'information des registres EN et locaux, information qui peut être utilisée dans le cas d'une opération de ré-inscription. Les opérations logiques suivantes produisent les changements d'adresse et invalidations appropriés de jeux de registres pour obtenir les résultats désirés indiqués précédemment lorsque l'antémémoire 28 est pourvue de huit blocs de huit registres en plus du bloc de huit registres utilisés pour stocker les valeurs communes Un tel système est représenté sur la figure 7. Les agencements d'adressage selon cette technique pour d'autres nombres de fenêtres d'antémémoire seront évidents aux spécialistes s'il s'agit d'antémémoires constituées d'un nombre plus important de jeux de registres Pour la conception d'une telle Logique d'adressage, il suffit de garder à l'esprit que les registres SOR d'une première fenêtre deviennent les registres EN de la fenêtre suivante lors d'une opération de conservation, que les registres EN, locaux et SOR apparaissent suivant cet ordre physique dans le deuxième jeu de registres suivant, et que cet ordre est inversé lors d'une opération de ré-inscription. On notera sur la figure 7 qu'une telle anté- mémoire peut former huit fenêtres individuelles (comme représenté par la disposition de fenêtres illustrée à droite de l'antémémoire 28) Pour former huit fenêtres, les mêmes lignes sont utilisées pour les registres des fenêtres O et 4, des fenêtres I et 5, des fenêtres 2 et 6 et des fenêtres 3 et 7 Les registres individuels dans n'importe quelle fenêtre sont désignés par les mêmes numéros de registres que ceux utilisés sur les figures I et 4 Les lignes de l'antémémoire 28 peuvent chacune être désignées comme un registre, c'est-à-dire de wl O l à wl 631 Les blocs de huit registres, auxquels sont affectées les valeur EN, locales et SOR, sont désignés par O à 7 Dans les équations logiques, le signe "-" indique une opération booléenne NON, le signe "l&" indique une opération booléenne ET, le signe "'I' indique une opération boléenne OU et le signe "; " indique un commentaire. Ainsi qu'il a été mentionné précédemment, huit fenêtres peuvent être représentées, de sorte que le pointeur de fenêtre en cours est indiqué dans le re- gistre cwp par trois bits, c'est-à-dire par cwp L 2 O l, le nombre nécessaire pour représenter huit nombres binaires distincts Cinq bits, c'est-à-dire ral 4 01, sélectionnent une adresse de registre dans une fenêtre. Les deux bits supérieurs ral 4, 31 sélectionnent le bloc; trois bits ral 2 Ol sélectionnent un registre dans n'importe quel bloc de huit registres. De manière plus générale, l'adresse fournie dans une instruction (appelée l'adresse virtuelle pour les besoins de cette explication) doit être changée en adresse de registre physique, c'est-à-dire l'adresse effectivement utilisée dans l'antémémoire 28 pour contenir l'information L'adresse virtuelle est désignée par une adresse qui comporte une valeur de pointeur de fenêtre en cours et une adresse de registre Les équa- tions logiques suivantes déterminent ce changement d'adresse: Les bits cwpl 2 O l et ral 4 3 l sélectionnent un bloc de registres lw(n* 8) à w((n* 8)+ 7) pour N = O à 7 l et les bits ra E 2 0 l sélectionnent un registre dans ce bloc Les équations pour sélectionner un bloc sont indiquées ci-après A titre d'exemple, cwp = 2 et ra = sélectionnent le registre W 31. Les registres communs sont sélectionnés par -ral 4 l& -ral 3 l quelle que soit la valeur de cwpl 2 01, c'est-à-dire pour chaque fenêtre. wl 2 O l = ral 2 01 Le bloc à registres w O-w 7 (wl 5 3 l = 0) est sélecté par: -cwpl 1 l & -cwpl O l& ral 4 l& ralI 3 l; locaux cwp= 0,4 Le bloc à registres W 8-w 15 (wl 5 3 l=l) est sélect par: (-cwpl 1 l& -cwpl O l& ral 4 l& ral 3 l) >; EN cwp= 0,4 (-cwpl 1 l& cwpl O O& -ral 4 l& ral 3 l; SOR cwp=l,5 Le bloc à registres w 16-w 23 (wl 5 3 l= 2) est sélecté par: -cwpl 1 l& cwplOl& ral 4 1 & -ra L 3 l; locaux cwp=l,5 Le bloc à registres W 24-w 31 (wl 5 3 l= 3 est sélecté par: (-cwpl 1 l& cwpl O l& ral 4 l& ral 3 l) t; EN cwp=l,5 (cwpl 1 l& cwpl O l& ral 4 l& ral 3 l); SOR cwp= 2,6 Le bloc à registres W 32-w 39 (wl 5 3 l= 4) est sélecté par: cwpl 1 l& -cwpl O l& ral 4 l& -ral 3 l; locaux cwp= 2,6 Le bloc à registres W 40-w 47 (wl 5 3 l= 5) est sélecté par: (cwplll& -cwpl O l& ral 41 & ral 3 l); ; EN cwp= 2,6 (cwpl 1 l& cwpl O l& -ral 4 l& ral 3 l); SOR cwp= 3,7 Le bloc à registres W 48-w 55 (wl 5 31 = 6) est sélecté par: cwplE 1 l& cwplOl& ral 4 l& -ral 3 l; locaux cwp= 3,7 Le bloc à registres W 56-w 63 (wl 5 3 l= 7) est sélecté par: (cwpl 1 l& cwpl O l& ral 4 l& ral 3 l; EN cwp= 3,7 o O (-cwpl 11 & -cwpl O l& -ral 4 l& ral 31; SOR cwp= 0,4 Donc, pour sélectionner le bloc de registres O (w 0-w 7), les bits zéro et un du pointeur cwp sont tous deux mis à zéro, le bit quatre de l'adresse de registre est à un et le bit trois de l'adresse de registre est à zéro Ceci sélectionne le bloc utilisé pour stocker les valeurs locales dans les fenêtres O et 4 Les registres individuels dans le bloc sont sélectionnés par les bits ral 2 O l De façon analogue, pour sélectionner le bloc de registres 3 (w 24-w 31), le bit 1 du pointeur cwp est à zéro et le bit O est à un, tandis que les bits 4 de l'adresse de registre sont à 1 lorsque la fenêtre en cours est 1 ou 5 Par ailleurs, le bit 1 est à un et le bit O est à zéro dans le pointeur cwp, tandis que le bit 4 est à zéro et le bit 3 est à un dans l'adresse de registre pour les fenêtres en cours 2 et 6. Cette logique assure les changements d'adresses nécessaires pour tirer avantage de l'infor- mation déjà stockée dans l'antémémoire 28, soit lors d'une opération de conservation, soit lors d'une opéra- tion de ré-écriture Comme règle générale (sauf comme précisé en référence à la figure 5), l'information dans les registres SOR et locaux de l'ancienne fenêtre est invalidée lors d'une opération de ré-écriture, de sorte qu'elle n'est pas utilisée par la nouvelle fenêtre. Lv invention n'est pas limitée aux formes de réalisation décrites et l'homme de l'art pourra y apporter diverses modifications, sans pour autant sortir de son cadre. REVENDICATIONS 1 Processeur comprenant un fichier de registres possédant des registres adressables en une pluralité de Jeux de registres contenus dans des fenêtres, une unité arithmétique et logique et une antémémoire, caractérisé en ce que chaque jeu de registres ( 0, 1, 2, 3, 4, 5, 6 ) contenus dans une fenêtre comprend une première pluralité de registres d'entrée (EN), une deuxième pluralité de registres locaux et une troisième pluralité de registres de sortie (SOR), les jeux de registres étant utilisés conjointement avec une quatrième plura- lité de registres communs ( 0-7 X, l'antémémoire ( 28) comprenant un nombre de lignes adressables au moins égal au nombre total de registres dans un Jeu adressable de registres contenus dans une fenêtre, chaque ligne étant suffisante pour stocker l'information dans un registre du fichier de registres ( 22), le processeur ( 20) com- prenant en outre des moyens pour adresser les lignes de l'antémémoire, comprenant un premier moyen pour changer les adresses de lignes contenant de l'information actuellement désignée dans un jeu particulier de re- gistres d'une fenêtre comme une information contenue dans des registres SOR, en adresses désignant les registres EN du jeu de registres suivant lors d'une opération de conservation, un deuxième moyen pour changer les adresses de lignes de l'antémémoire faisant physiquement suite auix nouveaux registres EN, en adresses pour registres locaux, ainsi qu'un troisième moyen pour changer les adresses de lignes de l'anté- mémoire faisant physiquement suite après cela aux nouveaux registres locaux, en adresses pour registres SOR. 2 Processeur selon la revendication 1, dans lequel le moyen pour l'adressage des lignes de l'anté- mémoire comporte un moyen servant à désigner pour le fonctionnement un jeu de registres particulier, contenu dans une Lenêtre, ainsi qu'un moyen servant à désigner un registre dans un tel jeu. 3 Processeur selon la revendication 1, compre- nant en outre un quatrième moyen pour changer les adresses de lignes de l'antémémoire ( 28) contenant de l'information actuellement désignée dans un jeu de registres particulier contenu dans une fenêtre comme une information contenue dans des registres EN, en adresses désignant les registres SOR du jeu de registres suivant lorsqu'une opération de ré-inscription doit avoir lieu. 4 Processeur selon la revendication 3, dans lequel le moyen pour adresser les lignes de l'anté- mémoire comporte un moyen servant à désigner pour le fonctionnement un jeu de registres particulier, contenu dans une fenêtre, ainsi qu'un moyen servant à désigner un registre dans un tel jeu. Processeur selon la revendication 3, compre- nant en outre un moyen pour indiquer que des lignes sélectées de l'antémémoire ( 28) sont non valides. 6 Processeur selon la revendication 1, dans lequel l'antémémoire ( 28) comprend en outre au moins un bloc supplémentaire de lignes qui suffit pour permettre le stockage de l'une quelconque des séries de registres EN, SOR ou locaux d'un jeu adressable de registres contenu dans une fenêtre.