FR2628237A1 - 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 - Google Patents
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 Download PDFInfo
- Publication number
- FR2628237A1 FR2628237A1 FR8902569A FR8902569A FR2628237A1 FR 2628237 A1 FR2628237 A1 FR 2628237A1 FR 8902569 A FR8902569 A FR 8902569A FR 8902569 A FR8902569 A FR 8902569A FR 2628237 A1 FR2628237 A1 FR 2628237A1
- Authority
- FR
- France
- Prior art keywords
- vector
- group
- register file
- vector register
- value
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8053—Vector processors
- G06F15/8076—Details on data register access
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0607—Interleaved addressing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30101—Special purpose registers
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/461—Saving or restoring of program or task context
- G06F9/462—Saving or restoring of program or task context with multiple register sets
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Complex Calculations (AREA)
- Memory System (AREA)
Abstract
Un fichier de registres de vecteurs pour un système informatique de traitement de vecteurs comprend un premier groupe 101 de circuits de mémoire, un second groupe 102 de circuits de mémoire, pouvant être commandé de façon cyclique indépendamment du premier groupe, un troisième groupe 103 de mémoire pouvant être commandé de façon cyclique indépendamment du premier groupe et un quatrième groupe 104 de circuit de mémoire, qui peut être commandé de façon cyclique indépendamment des autres groupes, les deux premiers groupes étant formés par des mémoires statiques à accès direct et le fichier étant subdivisé en une pluralité de zones de contextes utilisables pour des processus séparés. Application notamment à des calculs mathématiques de convolution et de récurrence.
Description
Q RÉPUBLIQUE FRAN AISE N de.publication: 2 628 237 (à n'utiliser que
pour les INSTITUT NATIONAL commandes de reproduction)
DE IA PROPRIETÉ INDUSTRIELLE G
DE LA PROPRIÉTÉ INDUSTRIELLE N d'enregistrement national: 89 02569 PARIS
( Int CI4 G 06 F 15/336, 12/02.
@ DEMANDE DE BREVET D'INVENTION A1
Date de dépôt: 28 février 1989. Q Demandeur(s): ARDENT COMPUTER CORPORATION.
- US.
() Priorité: US, 1 mars 1988, n 162.738.
@ Inventeur(s): Glen S. Miranker: Steve Johnson.
( Date de la mise à disposition du public de la
demande: BOPI " Brevets " n 36 du 8 septembre 1989.
6 Références à d'autres documents nationaux appa-
rentés Q Titulaire(s): Mandataire(s): Cabinet Regimbeau, Martin, Schrimpf,
Warcoin et Ahner.
( Fichier de registres de vecteurs, système informatique pour le traitement de vecteurs utilisant un tel fichier et
procédé de gestion des accès à ce fichier.
Un fichier de registres de vecteurs pour un système 2047 2 I informatique de traitement de vecteurs comprend un premier - GROUPE./. // //
groupe 101 de circuits de mémoire, un second groupe 102 de l ||- - |t|-L.. il...
circuits de mémoire, pouvant être commandé de façon cyclique 2 indépendamment du premier groupe, un troisième groupe 103
de mémoire pouvant être commandé de façon cyclique indé-
pendamment du premier groupe et un quatrième groupe 104 de circuit de mémoire, qui peut être commandé de façon f f.'j/.....//I
cyclique indépendamment des autres groupes, les deux pre-.
d miers groupes étant formés par des- mémoires statiques à 204 accès direct et le fichier étant subdivisé en une pluralité de I- zones de contextes utilisables pour des processus séparés. 2047 4 0 Application notamment à des calculs mathématiques de /// // /// convolution et de récurrence, os|.-. t,= -7 ff020
204714 127 " 21
N /Z/-/.../,./'.../x// 0,o04_, 1l] --' I ---I I"'I I IV,,, te: L. D Vente des fascicules à l'IMPRIMERIE NATIONALE, 27, rue de la Convention - 75732 PARIS CEDEX 15 La présente invention concerne des fichiers de registres de vecteurs pour des systèmes informatiques de
traitement de vecteurs.
Dans un système informatique de traitement de vecteurs, un fichier de registres de vecteurs est utilisé de façon typique pour mémoriser des vecteurs en vue de calculs. Les opérations intervenant dans un tel système peuvent être exécutées sur un vecteur à la fois. Par exemple, une opération comme par exemple ADDITION VREG1, VREG2,VREG3 dans un système de traitement de vecteurs peut provoquer l'addition du premier élément situé dans le registre de vecteurs 1 au premier élément du registre de vecteurs 2 et la mémorisation du résultat dans le premier élément du registre de vecteurs 3. Le second élément du registre de vecteurs i serait, de façon analogue, ajouté au second élément du registre de vecteurs 2 et les résultats seraient mémorisés dans le second élément du registre de vecteurs 3. Chaque élément du registre de vecteurs 1 et du registre de vecteurs 2 est traité de façon similaire et est mémorisé dans
l'élément correspondant du registre de vecteurs 3.
Pour accroître la vitesse de traitement dans de tels systèmes informatiques, on utilise habituellement des mémoires à accès multiples, pour constituer les fichiers de registres de vecteurs. Dans de telles mémoires à accès multiples, l'avantage est de pouvoir réaliser une lecture ou un enregistrement en des emplacements multiples de la mémoire, pendant un seul cycle de mémoire. Cependant, de telles mémoires à accès multiples présentent plusieurs inconvénients incluant, de façon typique, le fait d'être plus onéreuse du point de vue conception, construction et prix que des mémoires à un seul accès, d'être moins aisément disponibles que des mémoires à un seul accès et, de façon typique, de
fonctionner plus lentement que ces dernières.
C'est pourquoi conformément à un but de la présente invention, on désire concevoir un fichier de registres de vecteurs pour un système informatique de traitement de vecteurs, qui utilise des cellules de mémoire à un seul accès, tout en fournissant les avantages des mémoires à accès multiples, du point de vue vitesse. Des systèmes connus de traitement de vecteurs utilisent, de façon typique, des fichiers de registres de vecteurs possédant des dimensions assez limitées. Par exemple, un système informatique typique désigné sous l'appellation CRAY et fabriqué par la société dite Cray Research de Minneapolis, Minnesota, peut comporter 8 registres de vecteurs, dont chacun possède une longueur de 64 éléments pour un total de 512 éléments. D'autres systèmes connus utilisent, de f&çon typique, un volume compris entre le double et le quadruple de ce volume de registres de vecteurs. Normalement, le volume accru des registres de vecteurs est obtenu au moyen d'un accroissement de la longueur (qui passe par conséquent à une longueur de 128 ou 256) de chaque registre de vecteurs. Conformément à uh second but de l'invention, il est souhaitable d'accroître la quantité disponible du volume des registres de vecteurs et d'obtenir une souplesse accrue d'utilisation dans l'utilisation et la
gestion de ce volume.
Un troisième but de la présente invention consiste à fournir une souplesse de programmation permettant l'exécution d'instructions qui s'appliquent à un vecteur et de calculs, qui requièrent l'accès à un vecteur en un point quelconque. Des exemples de tels calculs se présentent dans des calculs de récurrence
et/ou de cumul.
La présente invention a trait à un fichier de registres de vecteurs et à des procédés pour gérer l'accès à un tel fichier. La présente invention décrit l'utilisation de mémoires statiques à accès direct (SRAM) organisées selon une pluralité de groupes et fonctionnant à une vitesse égale au moins au double de la vitesse de cadencement du système de manière à simuler des mémoires à accès multiples. L'utilisation de mémoires SRAM pour former un fichier de registres de vecteurs permet d'obtenir un certain nombre de caractéristiques de l'invention. L'utilisation de mémoires SRAM permet d'agencer le système informatique de manière que le fichier des registres des vecteurs possède un volume relativement important. Ce dernier peut être subdivisé en une pluralité de zones de contextes, chaque zone de contexte permettant de prendre en charge l'exécution d'un processus séparé. L'utilisatioh de telles zones de contextes évite la nécessité de réaliser un transfert de l'information de contexte présente dans un fichier de registres de vecteurs à un disque, lors de la commutation entre des procesus. Selon la présente invention, on utilise un registre pour la base système, un registre pour la base utilisateur et un registre pour une limite du système pour assurer l'utilisation d'une pluralité de
zones de contextes.
Selon la présente invention, on utilise en outre un code d'adressage servant à adresser les zones de contextes et permettant une capacité optionnelle d'adressage à des éléments ou cellules individuelles dans
un vecteur.
D'autres caractéristiques et avantages de
l'invention ressortiront de la description donnée ci-
après prise en référence aux dessins annexés, sur lesquels: - la figure 1 représente un schéma-bloc montrant des groupes de mémoires, du type pouvant être utilisé dans la présente invention; - la figure 2 représente un schéma-bloc illustrant un procédé de subdivision des groupes de mémoires, en une pluralité de registres de vecteurs, conformément à la présente invention; - la figure 3 représente un schéma-bloc illustrant un procédé pour subdiviser les groupes de mémoires en une pluralité de zones de contextes, conformément à la présente invention; - la figure 4 représente un schéma-bloc illustrant l'utilisation de registres de la base système, de la base utilisateur et de la limite système, conformément à la présente invention; - la figure 5 représente un schéma- bloc illustrant l'utilisation de registres de la base système, de la base utilisateur et de la limite système et
l'utilisation de variables partagées entre des sous-
programmes, conformément à la présente invention; et - la figure 6 est un schéma-bloc représentant un descripteur d'opérandes, du type pouvant être utilisé
dans le cadre de la présente invention.
On va décrire un fichier de registres de
vecteurs. Dans la description qui va suivre, on indique
de nombreux détails spécifiques comme par exemple un nombre spécifique de bits, des dimensions spécifiques, etc, de manière à avoir une compréhension précise de la présente invention. Mais, le spécialiste moyen de la technique notera que la présente invention peut être mise en oeuvre sans ces détails spécifiques. Dans d'autres cas, on n'a pas représenté de façon détaillée des circuits, structures et techniques bien connus, afin d'éviter d'obscurcir inutilement l'explication de la
présente invention.
FICHIER DE REGISTRES DE VECTEURS
La présente invention décrit l'agencement d'un fichier de registres de vecteurs dans un système informatique de traitement vectoriel, sous la forme d'une
pluralité de groupes de mémoires à accès direct (RAM).
Dans le cadre de la présente description, le terme
"groupe" est censé se référer à un ensemble de mémoires,
pouvant être commandé cycliquement de façon indépendante.
C'est-à-dire que chaque groupe.-de la pluralité des groupes peut être adressé de façon indépendante pendant
le même cycle d'horloge.
On va décrire de façon plus détaillée la présente forme de réalisation de la présente invention, en référence à la figure 1. Cette forme de réalisation préférée utilise quatre groupes de mémoire 101,102,103 et 104, pour son fichier de registres de vecteurs. Chaque groupe 101,102, 103, 104 comporte 2048 x 8 mémoires statiques à accès direct (SRAM), disposées de telle sorte
qu'un groupe peut comprendre 2048 éléments à 64 bits.
La présente invention fournit un équivalent logique d'une mémoire à 8 accès, grâce à la combinaison de deux techniques. Tout d'abord, le fait de disposer les mémoires en 4 groupes ou ensembles de mémoires, pouvant être commandés cycliquement de facon indépendante, permet
d'obtenir l'équivalent d'une mémoire à 4 accès (c'est-à-
dire qu'un enregistrement peut être exécuté dans les groupes 0 et 1 au cours du même cycle d'horloge qu'une lecture à partir des groupes 2 et 3). En second lieu, la présente invention utilise des mémoires SRAM présentant des temps d'accès au moins deux fois plus brefs que ce qui correspond à la vitesse de cadencement du système, ce qui permet efficacement d'avoir deux accès à chaque groupe pendant un cycle d'horloge donné du système. Dans la forme de réalisation préférée, l'horloge du système fonctionne en délivrant des impulsions d'horloge séparées par 120 nanosecondes (ns) les unes des autres, ce qui requiert l'utilisation de mémoires SRAM ayant un temps d'accès égal au maximum à 60 ns. Il est préférable d'utiliser des mémoires. SRAM ayant un temps d'accès de 35 ns au moins. C'est pourquoi, on peut accéder deux fois à chacun des quatre groupes pendant un cycle d'horloge donné, ce qui correspond à une mémoire logique à 8 accès. Le spécialiste moyen de la technique notera que ces procédés peuvent être utilisés soit individuellement, soit en combinaison en vue d'obtenir le fonctionnement d'une mémoire à accès multiples. Il est en outre évident que l'on peut utiliser un nombre différent de groupes, des mémoires possédant des tailles différentes ou des mémoires présentant des vitesses différentes pour l'obtention de plus de 2 accès pendant chacune intervalle d'impulsions d'horloge du système, sans sortir du cadre
de la présente invention.
Parmi les avantages fournis par la présente invention utilisant un fichier de registres de vecteurs constitués par des mémoires SRAM, on peut citer le coût relativement faible de telles mémoires, la disponibilité de mémoires SRAM auprès de nombreux fabricants et la vitesse relative fournie par la technologie actuelle des mémoires SRAM. Ces avantages et d'autres facteurs permettent d'utiliser un fichier de registres de vecteurs possédant une taille supérieure à celle du fichier
utilisé dans des systèmes connus de traitement vectoriel.
La présente invention décrit plusieurs techniques inventives et caractéristiques pour la gestion,
et l'utilisation du fichier de registres de vecteurs.
Selon une caractéristique de la présente invention, chaque groupe faisant partie de la pluralité de groupes peut être subdivisé en une pluralité de registres de vecteurs. Par exemple, en se référant à la figure 2, chacun des groupes 201,202,203 et 204 peut être subdivisé en une pluralité de registres de vecteurs, comme par exemple les registres de vecteurs 210, 211,212 et 213. Dans l'exemple particulier de la figure 2, chaque groupe contenant 2048 éléments est subdivisé en 64
registres de vecteurs contenant 32 éléments.
En réalité, les groupes 201,202,203 et 204 peuvent être subdivisés en un nombre n quelconque de registres de vecteurs, jusqu'à une valeur maximale égale à p, p étant le nombre d'éléments dans un groupe. Chaque registre de vecteurs comporte p/n éléments. Les valeurs particulières de p et n peuvent être choisies sur la base d'une certaine convention, en fonction du compromis entre les avantages et les inconvénients entre le fait d'avoir un grand nombre de registres de vecteurs ou bien des registres de vecteurs contenant un grand nombre d'éléments (c'est-à-dire une grande longueur) dans chaque cas particulier. La convention particulière peut être liée soit à des dispositifs matériels, soit à des
procédés logiciels.
Dans le cadre de la mise en oeuvre de la présente invention, un registre de vecteurs peut commencer au niveau de n'importe quel élément à l'intérieur d'un groupe. Le- procédé particulier d'adressage des éléments sera décrit de façon plus
détaillée en référence à la figure 6.
Dans la forme de réalisation préférée, on peut désigner un registre particulier de vecteurs en utilisant un numéro de groupe et un décalage. Par exemple VR0(0) peut désigner le premier registre de vecteurs dans le groupe 0, VR0(32) peut désigner le second registre de vecteurs dans le. groupe 0, dans lequel les registres de vecteurs possèdent une longueur de 32 éléments, VR0(64) peut désigner le troisième registre de vecteurs dans le groupe 0, etc. Selon une autre forme de réalisation, on peut désigner les registres de vecteurs en utilisant un numéro de groupe et un numéro de vecteur. Par exemple VR0,0 peut désigner un registre de vecteur situé dans le groupe 0, numéro 0. Le système peut être sensible à une conversion
du numéro de vecteur (c'est-à-dire 0) en un décalage.
VR0,1 peut désigner le second registre de vecteurs dans le groupe 0. Le système peut être sensible *en une conversion du numéro de vecteur (c'està-dire 1) à un décalage. Par exemple si chaque registre de vecteurs doit posséder une longueur de 32 éléments, le système doit
convertir le numéro de vecteur 1 en un décalage 32.
Selon une troisième forme de réalisation, on peut désigner des registres de vecteurs en utilisant uniquement un numéro de registre de vecteurs. Le système peut alors être sensible à une conversion du numéro de vecteur en un groupe et un décalage. Par exemple VR0 peut être converti en le groupe 0, décalage 0, VRl peut être converti en le groupe 1, décalage 0, VR2 peut être converti en le groupe 2, décalage 0, VR3 peut être converti en le groupe 3, décalage 0, VR4 peut être converti en le groupe 0, décalage 32, etc. Chacune de ces différentes solutions fournit des compromis du point de vue de la portabilité du programme en fonction de' la vitesse de conversion du
numéro des vecteurs.
ZONES DE CONTEXTES DES REGISTRES DE VECTEURS
Conformément à la présente invention, comme cela a été décrit précédemment, un volume comparatiyement important de registres de vecteurs est disponible. En général il n'est pas nécessaire de disposer pour n'importe quel processus considéré seul, le volume total de registres de vecteurs. C'est pourquoi, selon un autre aspect de la présente invention, le volume dès registres de vecteurs peut être subdivisé en une pluralité de zones de contextes de traitement. Ce système peut alors prendre en charge une pluralité de processus sans la nécessité d'un transfert de données de contextes du processus depuis le fichier des registres Ce vecteurs à un autre support d'enregistrement, comme par exemple un disque,
lors de la commutation entre les processus.
En référence à la figure 3, selon une forme de réalisation, les groupes 301,302,303 et 304 contenant 2048 éléments sont subdivisés en huit zones de contextes 310-317 d'une longueur de 256 éléments dans chaque groupe. En référence à la figure 4, lors de l'exécution d'un processus, le système conserve un registre de base SBASE 410. Le registre de base SBASE 410 contient le décalage ou la distance de la zone actuelle de contexte par rapport au début du groupe (c'est-à-dire à partir de l'élément 0). Par exemple, si le contexte actuel est la zone de contexte 312 de la figure 3, le registre SBASE 410 contient la valeur 512. Si l'on utilise le registre SBASE 410, le système peut réaliser une commutation entre le processus actuel et un processus associé à des données de contexte situées dans une zone de contexte différente, au moyen d'une modification de la valeur contenue dans le registre SBASE 10. Lors de l'exécution d'un processus, la valeur contenue dans le registre SBASE 10 est ajoutée à la valeur de décalage de n'importe quelle référence à la
mémoire de vecteurs.
Le registre SBASE est en outre utilisé pour garantir que des processus d'utilisateur ne se réfèrent pas à des décalages au-dessous de la zone de contexte assignée. En outre, l'utilisation du registre SBASE permet d'enregistrer un processus indépendamment de la zone de contexte particulière, qui lui est assignée. Un processus peut être enregistré pour être exécuté comme s'il était toujours exécuté dans le premier contexte 310.' Il apparaîtra à l'évidence au spécialiste ordinaire, que le fichier de registre de vecteur peut être subdivisé en un nombre quelconque de zones de contextes n entre 1 et p, p étant le nombre d'éléments dans un groupe. Le nombre des éléments dans chaque zone de contexte est égal à p/n. Le nombre particulier n peut être déterminé sur la base d'un certain nombre de facteurs. Il est en outre évident qu'il est possible de modifier la taille des zones de contextes, de manière qu'elles ne possèdent pas des dimensions identiques, ce qui permet l'utilisation d'une zone de contexte plus petite pour un processus relativement petit et une zone de contexte plus étendue pour un processus relativement étendu. La présente invention utilise en outre un second registre SLIMIT 411 pour indiquer le dernier élément, auquel on peut se référer, de la zone de contexte actuelle. Le registre SLIMIT 411 est utilisé pour garantir qu'un processus ne tend pas à se référer à un élément situé à un décalage supérieur au décalage qu'il possède dans cette zone de contexte. Toute référence à un élément situé dans le fichier de registres de vecteurs est comparée par référence au registre SLIMIT 411. Si la référence concerne un élément situé à un décalage supérieur à la valeur contenue dans SLIMIT 411,
elle est inhibée et une condition d'erreur est indiquée.
La présente invention utilise en outre un troisième registre UBASE 412, qui permet une subdivision supplémentaire du propre espace de contexte d'un processus particulier. De façon typique, le système d'utilisation peut être sensible à une manipulation des registres UBASE et SLIMIT. Un processus d'utilisation permet de manipuler le registre UBASE. Par exemple- le processus peut contenir des données de contexte pour des sousprogrammes individuels situés à des décalages fixes par rapport à une valeur donnée contenue dans le registre UBASE 412. L'utilisateur règle le registre UBASE 412 sur la valeur donnée de ce registre, lors de l'exécution du sous-programme. Le sous-programme peut alors se référer à des éléments situés dans le fichier de registres de vecteurs, grâce à l'envoi de la valeur décalée à partir du registre de base 412. Le système calcule le décalage réel à l'intérieur du fichier de registres de vecteurs en calculant (SBASE 410) + (UBASE 412) + (le décalage donné). En référence à la figure 5, on va décrire un procédé d'utilisation en commun des données de contexte et des sous-programmes. Un processus peut positionner ces données de contexte en n'importe quel endroit dans les limites de SBASE 510 et SLIMITE 511. Le processus peut initialement régler son registre UBASE sur le point 520, pour se référer à la zone 530 lors de l'exécution d'un premier sous-programme. Le processus peut modifier le réglage du registre UBASE sur le point 521 pour se référer à la zone 531. La zone 540 contient des variables utilisées en commun ou d'autres informations de contextes utilisées en commun, qui peuvent être référencées par
n'importe quel sous-programme.
Une seconde utilisation du registre UBASE est de permettre l'adressage de la totalité de la zone de base du système (zone limitée par SBASE et SLIMIT) moyennant l'utilisation d'une zone d'adresses de longueur limitée. Par exemple, on suppose que la zone de la base système possède une longueur de 512 éléments et qu'on utilise une adresse à 8 bits pour réaliser l'adressage dans cette zone. Pour adresser des éléments présentant des décalages relatifs allant de 0 à 255 par rapport à SBASE, on positionne UBASE sur 0. Pour adresser des éléments possédant des décalages relatifs compris entre 256 et 511 par rapport à SBASE, on positionne UBASE sur 256 et les éléments sont adressés conformément à
(0+255)+UBASE (c'est-à-dire 256 à 511).
En se référant maintenant à la figure 6, on va
décrire un descripteur d'opérande 600 pour des instruc-
tions de la forme de réalisation préférée. Les instructions de la forme de réalisation préférée peuvent comporter trois opérandes: un registre de vecteurs x (VRx), 601(a) et 601(b), un registre de vecteurs y (VRy), 602(a) et 602(b), et un registre de vecteurs z (VRz),
603(a) et 603(b).
On peut adresser un registre de vecteurs en introduisant un numéro de groupe dans les bits 9 et 8 de l'opérande du registre de vecteurs et une valeur de
décalage dans les bits 7-0.
Dans la forme de réalisation préférée, les bits 9 à 5 de chaque opérande d'un registre de vecteurs sont insérés dans la moitié de rang élevé du mot 610. En utilisant les bits 9 à 5 de l'adresse, on peut adresser n'importe quel ensemble de quatre groupes de la forme de réalisation préférée à l'aide des bits 9 et 8, et on peut adresser des décalages à l'intérieur des groupes, selon des multiples de 32. Par exemple, une valeur 000012 dans les bits 9 à 5 d'un opérande d'un registre de vecteur désignerait groupe 0, décalage 32. Une valeur 110102 désignerait groupe 3, décalage 64. Comme cela a été décrit précédemment les valeurs contenues dans SBASE et
UBASE sont ajoutées aux décalages.
La subdivision de l'adresse des registres de vecteurs permet d'utiliser une constante à 16 bits, à la place d'une constante à 32 bits, donnée en référence à un registre de vecteurs. Le spécialiste ordinaire constatera à l'évidence que l'organisation particulière en bits d'adresse peut être modifiée sans sortir du cadre de la
présente invention.
Dans la présente forme de réalisation, on peut mémoriser une constante directe de 16 bits ou moins en tant que partie d'une instruction. C'est pourquoi grâce à l'utilisation de seulement la moitié de rang supérieur d'un mot pour mémoriser une information d'opérande, la - présente invention permet de mémoriser l'information de l'opérande dans l'instruction. Ce procédé permet de faire l'économie d'un temps de traitement, étant donné qu'il n'y a pas à récupérer l'information relative à
l'opérande, séparément de l'instruction.
Il est souhaitable d'adresser directement à une cellule d'un registre de vecteurs ou d'utiliser un registre de vecteurs pour mémoriser des variables scalaires, la moitié inférieure du mot 611 de l'opérande fournit le reste de l'information des adresses de décalage dans des bits 4 à.0 du décalage. Il est également nécessaire d'utiliser les bits 4 à 0 du décalage afin de permettre un chevauchement des données pour des sousprogrammes comme cela a été décrit
précédemment en référence à la figure 5.
L'adressabilité des niveaux des cellules permet d'exécuter les calculs de convolution et des calculs récursifs. Par exemple, en utilisant la caractéristique d'adressibilité des niveaux de cellules, on peut exécuter un calcul de convolution tel que:
DO I = 1, 32
Y(I) = w(1) * x[U+1]
+ W(2) * X[I+2]
+ W(3) * X[I+3]
END En outre, la forme de réalisation préférée de la présente invention permet d'exécuter toutes les opérations y compris des opérations sur des éléments individuels d'un vecteur, dans un ordre compatible avec une exécution
séquentielle. Ceci permet, en combinaison avec l'adres-
sabilité des niveaux des cellules, d'exécuter directement des calculs récurrence et par exemple de calculer une
suite de Fibonacci.
Ainsi, on a décrit, dans ce qui précède, un fichier de registres de vecteurs et un procédé pour gérer
l'accès à ce fichier.
Claims (22)
1. Fichier de registres de vecteurs pour un système informatique de traitement de vecteurs, caractérisé en ce qu'il comporte: un premier groupe (101;201;301;401) de circuits de mémoire, et un second groupe (102; 202;302,402) de circuits de mémoire, qui peut être commandé cycliquement d'une
manière indépendante dudit premier groupe.
2. Fichier de registres de vecteurs selon la revendication 1, caractérisé en ce que ledit premier groupe (101;201;301;401) de circuits de mémoire est
constitué par des mémoires statiques à accès direct.
3. Fichier de registres de vecteurs selon la revendication 1, caractérisé en ce que ledit premier groupe (101;201;301;401) de circuit de mémoire est constitué par huit mémoires statiques à accès direct 2048 x 8.
4. Fichier de registres de vecteurs selon la revendication 1, caractérisé en ce qu'il comporte en outre: un troisième groupe (103;203;303;403) de mémoires, qui peut être commandé de façon cyclique indépendamment dudit premier groupe (101;201;301;401) de mémoires et dudit second groupe (102; 202;302;402) de mémoires; et un quatrième groupe (104;202;304;404) de circuits de mémoire, qui peut être commandé de façon cyclique indépendamment dudit premier groupe (101;201; 301;401) de circuits de mémoire, dudit second groupe (102;202;302;402) de circuits de mémoire et du troisième
groupe (103;203;303;403) de circuits de mémoire.
5. Fichier de registres de vecteurs selon la revendication 1, dans lequel chacun desdits circuits de mémoire (101,201,301,401;102,202,302,402;103, 203,303,403) est accessible au moins 2 fois pendant la durée du cycle
d'horloge du système.
6. Fichier de registres de vecteurs selon la revendication 5, caractérisé en ce que ladite durée du cycle d'horloge du système est.égale à environ 120 nis et que l'accès auxdits circuits de mémoire (101,201,301,401; 102, 202,302,402;103,203,303,403)peut s'effectuer pendant
une durée égale au maximum à 60 ns.
7. Fichier de registres de vecteurs selon la revendication 5, caractérisé en ce que ladite durée du cycle d'horloge du système est égale à environ 120 ns et que l'accès auxdits circuits de mémoire (101,201,301,401; 102, 202,302,402;103,203,303,403) peut s'effectuer pendant
au moins approximativement 35 ns.
8. Système informatique de traitement de vec-
teurs comportant un fichier de registres de vecteurs, caractérisé en ce qu'il comporte une horloge du système possédant une durée de cycle égal à n, et une pluralité de circuits de mémoire (101,201, 301,401;102,202,302, 402;103,203,303,403), présentant un temps d'accès égal au moins environ à n/p, p étant égal
au moins à 2.
9. Système informatique de traitement de vecteurs selon la revendication 8, caractérisé en ce que n est égal à environ 120 ns et p est égal au maximum à
environ 60 ns.
10. Système informatique de traitement de vecteurs, caractérisé en ce qu'il comporte: un fichier de registres de vecteurs, un registre (410) de la base système, servant à mémoriser une valeur de -la base système, qui est ajoutée à une valeur de décalage pour l'adressage dudit fichier
de registres de vecteurs.
11. Système informatique de traitement de vec-
teurs selon la revendication 10, caractérisé en ce qu'il comporte en outre un registre de limite (411), qui sert à mémoriser une valeur limite qui est comparée à la somme de ladite valeur du système de base et dudit décalage, et une condition d'erreur étant signalée dans le cas o
ladite somme est supérieure à ladite limite.
12. Système informatique de traitement de vec-
teurs selon la revendication 10, caractérisé en ce qu'il comporte en outre un registre d'une base utilisateur (402), servant à mémoriser une valeur d'une base utilisateur, qui est ajoutée à ladite valeur de décalage et à ladite valeur de la base système lors de l'adressage
dudit fichier de registres de vecteurs.
13. Système informatique de traitement de vec-
teurs selon la revendication 10, caractérisé en ce que ladite valeur de la base système est modifiée lorsque ledit système informatique de traitement de vecteurs
modifie des processus actifs.
14. Procédé d'adressage d'un fichier de registres de vecteurs dans un système informatique de traitement de vecteurs comportant ce fichier et un registre (410) de la base système servant à mémoriser une valeur de la base système, caractérisé en ce qu'il inclut les étapes consistant à: (a) ajouter une valeur de décalage à ladite valeur de la base système de manière à obtenir une somme; (b) adresser ledit fichier de registres de vecteurs avec ladite sommme; et (c) ledit système informatique de traitement-de vecteurs modifiant son processus actif; (d) modifier la valeur dudit registre (410) de la base système, en réponse à ladite modification des processus.
15. Procédé selon la revendication 14, mis en oeuvre dans un système informatique de traitement de vecteurs comportant en outre un registre (412) d'une base utilisateur, servant à mémoriser une valeur d'une base utilisateur, caractérisé en ce qu'il inclut en outre l'étape consistant à additionner la valeur de ladite base utilisateur à ladite somme -avant l'adressage dudit
fichier de registres de vecteurs.
16. Procédé selon la revendication 14, destiné à être mis en oeuvre dans un système informatique de traitement de vecteurs comportant en supplément un registre de limite (411) servant à mémoriser une valeur limite, caractérisé en ce qu'il inclut en outre l'étape consistant à comparer ladite somme à ladite valeur limite et à produire une condition d'erreur, dans le cas o ladite somme est supérieure à ladite valeur limite avant
l'adressage dudit fichier de registres de vecteurs.
17. Procédé selon la revendication 16, caracté-
risé en ce qu'il inclut en outre l'étape consistant à modifier ladite valeur limite en réponse audit changement
des processus.
18. Procédé pour subdiviser un fichier de re-
gistres de vecteurs d'une pluralité de registres de vecteurs (210,211,212, 213) dans un système informatique de traitement de vecteurs contenant ce fichier de registres de vecteurs comprenant des éléments adressables, caractérisé en ce qu'il inclut les étapes consistant à: (a) déterminer une valeur n indiquant un nombre désiré de registres de vecteurs, et (b) subdiviser logiquement ledit fichier de registres de vecteurs en ladite pluralité de registres de vecteurs (210,211,212,213), chacun desdits registres de
vecteurs possédant une longueur égale à p/n éléments.
19. Procédé selon la revendication 18, caracté-
risé en ce que p est égal à 2048.
20. Procédé pour mémoriser des opérandes dans un système informatique de traitement de vecteurs comportant un fichier de registres de vecteurs et utilisant des instructions nécessitant une pluralité d'opérandes comprenant des adresses situées à l'intérieur dudit fichier de registres de vecteurs, caractérisé en ce qu'il consiste à: mémoriser une première pluralité de bits de ladite adresse pour chacun desdits opérandes dans une première moitié d'un mot, et mémoriser une seconde pluralité de bits de ladite adresse de chacun desdits opérandes dans une
seconde moitié dudit mot.
21. Procédé selon la revendication 20, caracté-
risé en ce que ladite pluralité de bits inclut les bits 9
à 5 de ladite adresse de chacun desdits opérandes.
22. Procédé selon la revendication 21, caracté-
risé en ce que ladite seconde pluralité de bits inclut les bits 4 à 0 de ladite adresse de chacun desdits opérandes.
PL, I/6
2047 2046
2, / 127 63 2 1 0
GROUPE.,../.
1010 Ill"'lt"'11"'l V111X4 on' 2048
2047 2046
\ / 127.63 2 1 0
/// *..//<.//.*..///,
Ill.. se..,,
102 - 1: 11* 1*TI TITV
/7.,
" _ _2048
2047 2046
\X/ 127 63 2 1 0
-// /,// ////i
103 2 II...La I..]I.. I.* -
le,
-" 2048
2047 2046
4 2 127 63 21 0
//..//X.//...///
104 -311 -- i l 64
-".2048
PL, II/6
2047 2015 95 63 31 0
/ /,' ,' / /
GROUPE /
201 --0: 213 * 212 12 21 0
vZ x.,-.-,,_-.,
VR 0, 31 VR 0,2 VR 0, I VR 0, 0
VR 0,(1984) VR O (64) VR 0 (64) VR 0(0)
VRI,31 VRI,2 VRI/ VR,,0
/. . /
2 3 R /. v
202---1: 1 *À I I I
IR 3, 31 V 3,2 3,1 3,0II I
VR 1,31 VR1,2 VRl,I VR 1,0
/,, ,,
/ // */ / /
R / À 3,/ / /
203"-,2:E I * lÀÀ|
VR 2,31I VR 2,2VR 2,1 VR 2,0
/ A/, / , ' //
/, ',',', 'A
204,-3: I I I I
- VR 3,531 VR 3,2 VRS,I VR 3,0
PL, III/6
1792 1536 1280 1024 768 512 256
E 2047 \1791 \1535 \1279 \1023 \767 \511 \255 o GROUPE Im / I I I I I I Io
I I -I I,I, I, I
I I I I I I 1I1
301_--O: I I I I I I
I I I I* I I I I
I I I I I I I
I I I I I j I
I I I I I I I
/ I I I i _ _ i 7 303- 2-1I i I I / _M02,-'I: I I I I I iI I
I I I, I I II
/ 1 1 1 II II I 1
r-l,I. I / I I I I i I II i i i I IIr fI i I I I I 304--3: i I I I I. I I i
II I I I I I II
CONTEXTE CONTEXTE CONTEXTE CONTEXTE
7 I I 3 I 3
CONTiLXTECON XTE CONTXTE CONTEXTE' 317 6 4 2 o
315 313 31311 31
316 314 312 310
I I
I.- 128-.
I I I I
I I I.
III
GROUPE
aO: I I I I I I t:: à.. I I e C I Ii j t'
2: '* I
À I -
I I I À
I 1 1 I.-
tt t
I I I
I I
4 I
S BASEUE UBSESLSMITE
410 -- 412 '-411 r co
CE / PE
CONTEXTE DU PROCESSUS
530 531
1 *- 128--
I I I I I I1
GROUPE I I I I
0:.. I I I I
I II
1:.01 I I I i ' IS
! I II I
1 i 1 1 i
I I I
3:. * I I
I I I I I
i ly
520 VARIABLES I
| I 1 EN COMMUNI
SBASE \--540 SLIMITE
51J lU BASE ANTÉRIEUR 511
CONTEXTE DE'SOUS-PROGRAMME1
PRÉCÉDENT I
521- & CONTEXTE DE SOUS-PROGRMAME
?lUBASE ACTUEL ACTUEL
610 61'1
31 30 29 28 26 25 24 23 21 20 19 18 16 15 14 10 9 5 4 0
600 1 II 1
I ÉDCALAGE ' ÉDKCALAGf 1 DÉCALAGE
1D<CALAGDCAL ID DECALAG DEÉCALAGEDÉCALAGE DCALAGE -
GROUPI <7..5>GROUPI <7 5> ROUPE <7..5> - 4 > <4 >
<9.8>1 <9..8> <9..8>. <4..O> <4.. 0> <4.. O>
I I I o-> ACVR x<9., 5> VRy<9..5> VR z<9..5> VR X<4..0 > VRy<4..o0> VR z<4.. 0> <o>
_ /_ / I
601(a) 602(0) 603(a) 601(b) 602(b) 603(b) ro os (0% co -.
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US16273888A | 1988-03-01 | 1988-03-01 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| FR2628237A1 true FR2628237A1 (fr) | 1989-09-08 |
Family
ID=22586943
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| FR8902569A Withdrawn FR2628237A1 (fr) | 1988-03-01 | 1989-02-28 | 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 |
Country Status (5)
| Country | Link |
|---|---|
| JP (1) | JPH0210467A (fr) |
| KR (1) | KR890015129A (fr) |
| DE (1) | DE3906327A1 (fr) |
| FR (1) | FR2628237A1 (fr) |
| GB (1) | GB2216307B (fr) |
Families Citing this family (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2883784B2 (ja) * | 1993-04-27 | 1999-04-19 | 株式会社東芝 | マイクロコンピュータ |
| US6128641A (en) * | 1997-09-12 | 2000-10-03 | Siemens Aktiengesellschaft | Data processing unit with hardware assisted context switching capability |
| US6378065B1 (en) * | 1998-04-27 | 2002-04-23 | Infineon Technologies North America Corp. | Apparatus with context switching capability |
| US6189094B1 (en) * | 1998-05-27 | 2001-02-13 | Arm Limited | Recirculating register file |
| WO1999061997A1 (fr) * | 1998-05-27 | 1999-12-02 | Arm Limited | Fichier de registres a circulation |
| US6577316B2 (en) * | 1998-07-17 | 2003-06-10 | 3Dlabs, Inc., Ltd | Wide instruction word graphics processor |
| US7318090B1 (en) * | 1999-10-20 | 2008-01-08 | Sony Corporation | Method for utilizing concurrent context switching to support isochronous processes |
| US6446181B1 (en) * | 2000-03-31 | 2002-09-03 | Intel Corporation | System having a configurable cache/SRAM memory |
| JP2004302647A (ja) * | 2003-03-28 | 2004-10-28 | Seiko Epson Corp | ベクトルプロセッサおよびレジスタのアドレス指定方法 |
| JP5491113B2 (ja) * | 2009-09-18 | 2014-05-14 | エヌイーシーコンピュータテクノ株式会社 | ベクトル処理装置、ベクトル処理方法、およびプログラム |
| US20160026607A1 (en) * | 2014-07-25 | 2016-01-28 | Qualcomm Incorporated | Parallelization of scalar operations by vector processors using data-indexed accumulators in vector register files, and related circuits, methods, and computer-readable media |
| US10360034B2 (en) | 2017-04-18 | 2019-07-23 | Samsung Electronics Co., Ltd. | System and method for maintaining data in a low-power structure |
Family Cites Families (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4325116A (en) * | 1979-08-21 | 1982-04-13 | International Business Machines Corporation | Parallel storage access by multiprocessors |
| JPS57209570A (en) * | 1981-06-19 | 1982-12-22 | Fujitsu Ltd | Vector processing device |
| JPS618785A (ja) * | 1984-06-21 | 1986-01-16 | Fujitsu Ltd | 記憶装置アクセス制御方式 |
| US4873630A (en) * | 1985-07-31 | 1989-10-10 | Unisys Corporation | Scientific processor to support a host processor referencing common memory |
| DE3687739T2 (de) * | 1985-12-02 | 1993-08-19 | Ibm | Speicheranordnung mit mehrfachem lese-schreibzugriff. |
| JPS63898A (ja) * | 1986-06-19 | 1988-01-05 | Fujitsu Ltd | 半導体記憶装置 |
| EP0261751A3 (fr) * | 1986-09-25 | 1990-07-18 | Tektronix, Inc. | Système d'accès de mémoire concurrent |
-
1989
- 1989-02-22 GB GB8903962A patent/GB2216307B/en not_active Expired - Fee Related
- 1989-02-28 FR FR8902569A patent/FR2628237A1/fr not_active Withdrawn
- 1989-02-28 DE DE3906327A patent/DE3906327A1/de not_active Withdrawn
- 1989-03-01 JP JP1049762A patent/JPH0210467A/ja active Pending
- 1989-03-02 KR KR1019890002567A patent/KR890015129A/ko not_active Withdrawn
Also Published As
| Publication number | Publication date |
|---|---|
| GB2216307B (en) | 1992-08-26 |
| GB2216307A (en) | 1989-10-04 |
| GB8903962D0 (en) | 1989-04-05 |
| KR890015129A (ko) | 1989-10-28 |
| DE3906327A1 (de) | 1989-09-14 |
| JPH0210467A (ja) | 1990-01-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| 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 | |
| EP0020983B1 (fr) | Système de mémoire comportant un dispositif d'emmagasinage sérié | |
| CH616252A5 (fr) | ||
| FR2588980A1 (fr) | Processeur de traitement de signal numerique comportant plusieurs multiplicateurs | |
| WO2010070222A1 (fr) | Gestionnaire physique de barriere de synchronisation entre processus multiples | |
| FR2566951A1 (fr) | Procede et systeme pour l'affichage d'informations visuelles sur un ecran par balayage ligne par ligne et point par point de trames video | |
| FR2824160A1 (fr) | Conteneur generique configurable de facon dynamique | |
| FR2628234A1 (fr) | Memoire extensible a autoreconfiguration | |
| FR2617307A1 (fr) | Microcalculateur comportant des possibilites d'adressage perfectionnees | |
| FR2522232A1 (fr) | Dispositif de traitement de signaux numeriques | |
| FR2566949A1 (fr) | Systeme d'affichage d'images video sur un ecran a balayage ligne par ligne et point par point | |
| FR2699702A1 (fr) | Systèmes de commande de micro-ordinateurs pour des communications interprogrammes et des méthodes de planification. | |
| FR2583904A1 (fr) | Systeme d'ordinateur du type a trains multiples de donnees et instruction unique (simd), avec traitement selectif des donnees | |
| EP3356945A1 (fr) | Dispositif informatique muni de traitement en memoire et de ports d'acces etroits | |
| FR2618282A1 (fr) | Procedes et appareils d'emmagasinage de signaux video numeriques. | |
| FR2861867A1 (fr) | Differenciation de contexte d'utilisation dans un ordinateur de poche | |
| FR2637708A1 (fr) | Dispositif pour le traitement de donnees | |
| FR2820874A1 (fr) | Procede de gestion a acces aleatoire et rapide d'une memoire dram | |
| EP0670069A1 (fr) | Procede de demonstration automatique | |
| EP0952587B1 (fr) | DRAM à structure rapide | |
| FR2801388A1 (fr) | Procede de commande de memoire dram rapide et controleur adapte | |
| FR2662281A1 (fr) | Processeur comprenant un fichier de registres adressables en plusieurs jeux de registres contenus dans des fenetres. | |
| FR2851349A1 (fr) | Procede de gestion d'une pile de microprocesseur pour la sauvegarde de donnees contextuelles | |
| EP1233419A2 (fr) | Procédé de rafraíchissement d'une mémoire dynamique | |
| EP0689366B1 (fr) | Circuit de détection de tonalité téléphonique |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| ST | Notification of lapse | ||
| AR | Application made for restoration | ||
| DS | Decision of the director general to state about an appeal |