FR2662281A1 - Processeur comprenant un fichier de registres adressables en plusieurs jeux de registres contenus dans des fenetres. - Google Patents

Processeur comprenant un fichier de registres adressables en plusieurs jeux de registres contenus dans des fenetres. Download PDF

Info

Publication number
FR2662281A1
FR2662281A1 FR9103774A FR9103774A FR2662281A1 FR 2662281 A1 FR2662281 A1 FR 2662281A1 FR 9103774 A FR9103774 A FR 9103774A FR 9103774 A FR9103774 A FR 9103774A FR 2662281 A1 FR2662281 A1 FR 2662281A1
Authority
FR
France
Prior art keywords
registers
window
register
cache
sor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR9103774A
Other languages
English (en)
Other versions
FR2662281B1 (fr
Inventor
Jensen Eric Hartwig
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of FR2662281A1 publication Critical patent/FR2662281A1/fr
Application granted granted Critical
Publication of FR2662281B1 publication Critical patent/FR2662281B1/fr
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context
    • G06F9/462Saving or restoring of program or task context with multiple register sets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30123Organisation of register space, e.g. banked or distributed register file according to context, e.g. thread buffers
    • G06F9/30127Register windows
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30138Extension of register space, e.g. register cache

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

Un processeur comporte un fichier de registres adressables en jeux contenus chacun dans une fenêtre. Chaque jeu possède des registres d'entrée (EN), des registres locaux et des registres de sortie (SOR). D'autres registres sont communs à tous les jeux. Le processeur (20) comprend en outre une unité arithmétique et logique (26) et une antémémoire (28) formant la fenêtre en cours de traitement et des moyens pour changer les adresses de lignes de l'antémémoire (28) lors d'opérations de conservation et de ré-inscription, de manière à augmenter la vitesse d'exécution des opérations par le processeur (20). Applicable aux ordinateurs à jeu d'instructions réduit utilisant une architecture de processus évolutive (SPARC).

Description

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.

Claims (4)

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.
FR9103774A 1990-05-15 1991-03-28 Processeur comprenant un fichier de registres adressables en plusieurs jeux de registres contenus dans des fenetres. Expired - Fee Related FR2662281B1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/524,214 US5179682A (en) 1990-05-15 1990-05-15 Method and apparatus for improved current window cache with switchable address in, out, and local cache registers

Publications (2)

Publication Number Publication Date
FR2662281A1 true FR2662281A1 (fr) 1991-11-22
FR2662281B1 FR2662281B1 (fr) 1996-03-01

Family

ID=24088261

Family Applications (1)

Application Number Title Priority Date Filing Date
FR9103774A Expired - Fee Related FR2662281B1 (fr) 1990-05-15 1991-03-28 Processeur comprenant un fichier de registres adressables en plusieurs jeux de registres contenus dans des fenetres.

Country Status (3)

Country Link
US (1) US5179682A (fr)
KR (1) KR950012304B1 (fr)
FR (1) FR2662281B1 (fr)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5438669A (en) * 1991-11-20 1995-08-01 Hitachi, Ltd. Data processor with improved loop handling utilizing improved register allocation
JP2823767B2 (ja) * 1992-02-03 1998-11-11 松下電器産業株式会社 レジスタファイル
JP2737820B2 (ja) * 1992-09-24 1998-04-08 インターナショナル・ビジネス・マシーンズ・コーポレイション メモリアクセス方法およびシステム
JP3676411B2 (ja) * 1994-01-21 2005-07-27 サン・マイクロシステムズ・インコーポレイテッド レジスタファイル装置及びレジスタファイルアクセス方法
US6134653A (en) * 1998-04-22 2000-10-17 Transwitch Corp. RISC processor architecture with high performance context switching in which one context can be loaded by a co-processor while another context is being accessed by an arithmetic logic unit
JP3737755B2 (ja) * 2001-12-28 2006-01-25 富士通株式会社 レジスタウィンドウ方式によるレジスタファイル及びその制御方法
JP5028774B2 (ja) * 2005-09-22 2012-09-19 富士通株式会社 演算処理装置,情報処理装置,及びレジスタファイルの制御方法
EP2325744B1 (fr) * 2008-08-08 2022-08-03 Fujitsu Limited Unité de traitement

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4382278A (en) * 1980-06-05 1983-05-03 Texas Instruments Incorporated Hierarchial memory system with microcommand memory and pointer register mapping virtual CPU registers in workspace cache #4 and main memory cache
DD271385A1 (de) * 1988-03-31 1989-08-30 Adw Ddr Kybernetik Inf Verfahren und schaltungsanordnung fuer einen registersatz mit cache-eigenschaften

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4734852A (en) * 1985-08-30 1988-03-29 Advanced Micro Devices, Inc. Mechanism for performing data references to storage in parallel with instruction execution on a reduced instruction-set processor
US4811208A (en) * 1986-05-16 1989-03-07 Intel Corporation Stack frame cache on a microprocessor chip
US4891753A (en) * 1986-11-26 1990-01-02 Intel Corporation Register scorboarding on a microprocessor chip
US4947366A (en) * 1987-10-02 1990-08-07 Advanced Micro Devices, Inc. Input/output controller incorporating address mapped input/output windows and read ahead/write behind capabilities
US5083263A (en) * 1988-07-28 1992-01-21 Sun Microsystems, Inc. BISC with interconnected register ring and selectively operating portion of the ring as a conventional computer

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4382278A (en) * 1980-06-05 1983-05-03 Texas Instruments Incorporated Hierarchial memory system with microcommand memory and pointer register mapping virtual CPU registers in workspace cache #4 and main memory cache
DD271385A1 (de) * 1988-03-31 1989-08-30 Adw Ddr Kybernetik Inf Verfahren und schaltungsanordnung fuer einen registersatz mit cache-eigenschaften

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JOHNSON: "System considerations in the design of the AM29000", IEEE MICRO, vol. 7, no. 4, August 1987 (1987-08-01), NEW YORK US, pages 28 - 41 *

Also Published As

Publication number Publication date
KR910020552A (ko) 1991-12-20
KR950012304B1 (ko) 1995-10-16
US5179682A (en) 1993-01-12
FR2662281B1 (fr) 1996-03-01

Similar Documents

Publication Publication Date Title
FR2651050A1 (fr) Systeme d'antememoire destine a etre utilise dans un systeme informatique
FR2583541A1 (fr) Tampon z a haute vitesse munie d'une memoire dynamique a acces aleatoire
EP0020983A1 (fr) Système de mémoire comportant un dispositif d'emmagasinage sérié
FR2812417A1 (fr) Processeur dsp a architecture parallele
FR2583540A1 (fr) Gestion de memoire pour systeme a microprocesseur.
CH616252A5 (fr)
FR2588980A1 (fr) Processeur de traitement de signal numerique comportant plusieurs multiplicateurs
EP0439855B1 (fr) MicrocontrÔleur pour l'exécution rapide d'un grand nombre d'opérations décomposables en séquences d'opérations de même nature
EP0006478B1 (fr) Dispositif programmable de verrouillage de signaux de commande dans un système de traitement de données
FR2617307A1 (fr) Microcalculateur comportant des possibilites d'adressage perfectionnees
FR2711834A1 (fr) Circuit programmable de mémoire de codes pour mémoire flash.
FR2662281A1 (fr) Processeur comprenant un fichier de registres adressables en plusieurs jeux de registres contenus dans des fenetres.
WO2009002750A2 (fr) Préservation de l'ordre dans des opérations de données parallèles
FR3055992A1 (fr) Gestion d'index dans une memoire flash
EP3182292B1 (fr) Procédé de prédiction d'une donnée a précharger dans une mémoire cache
FR3075444A1 (fr) Systeme comportant une memoire adaptee a mettre en oeuvre des operations de calcul
EP0950957B1 (fr) Procédé pour accéder indifféremment en mode d'adressage physique et en mode d'adressage virtuel à une même zone mémoire de machine de traitement numérique et machine mettant en oeuvre ce procédé
FR2628237A1 (fr) Fichier de registres de vecteurs, systeme informatique pour le traitement de vecteurs utilisant un tel fichier et procede de gestion des acces a ce fichier
FR2483656A1 (fr) Ordinateur comportant des circuits de manipulation de bits
EP1175122A1 (fr) Dispositif de gestion de mémoire permettant l'inscription de blocs de données par substitution
FR2778254A1 (fr) Circuits,systemes et procedes d'ordinateur utilisant un nettoyage partiel d'une memoire cache
EP0476592A2 (fr) Générateur d'adresses pour la mémoire de données d'un processeur
FR3051574A1 (fr) Gestion du stockage dans une memoire flash
EP0520579A2 (fr) Dispositif de traitement de l'information plus particulièrement adapté à un langage chaîné, du type FORTH notamment
EP0520572B1 (fr) Dispositif de traitement d'informations

Legal Events

Date Code Title Description
ST Notification of lapse