FR2628237A1 - VECTOR REGISTER FILE, COMPUTER SYSTEM FOR PROCESSING VECTORS USING SUCH FILE, AND METHOD FOR MANAGING ACCESS TO THIS FILE - Google Patents

VECTOR REGISTER FILE, COMPUTER SYSTEM FOR PROCESSING VECTORS USING SUCH FILE, AND METHOD FOR MANAGING ACCESS TO THIS FILE Download PDF

Info

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
Application number
FR8902569A
Other languages
French (fr)
Inventor
Glen S Miranker
Steve Johnson
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.)
Ardent Computer Corp
Original Assignee
Ardent Computer Corp
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 Ardent Computer Corp filed Critical Ardent Computer Corp
Publication of FR2628237A1 publication Critical patent/FR2628237A1/en
Withdrawn 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors
    • G06F15/8076Details on data register access
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0607Interleaved addressing
    • 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
    • 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/30101Special purpose registers
    • 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
    • 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

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.A vector register file for a vector processing computer system comprises a first group 101 of memory circuits, a second group 102 of memory circuits, which can be cyclically controlled independently of the first group, a third group 103 of memory can be controlled cyclically independently of the first group and a fourth group 104 of memory circuit, which can be controlled cyclically independently of the other groups, the first two groups being formed by static direct-access memories and the file being subdivided into a plurality of context areas usable for separate processes. Application in particular to mathematical calculations of convolution and recurrence.

Description

Q RÉPUBLIQUE FRAN AISE N de.publication: 2 628 237 (à n'utiliser queQ FRENCH REPUBLIC N of publication: 2 628 237 (to be used only

pour les INSTITUT NATIONAL commandes de reproduction)  for INSTITUTE NATIONAL Reproduction Orders)

DE IA PROPRIETÉ INDUSTRIELLE GFROM THE INDUSTRIAL PROPERTY G

DE LA PROPRIÉTÉ INDUSTRIELLE N d'enregistrement national: 89 02569 PARIS  OF INDUSTRIAL PROPERTY N of national registration: 89 02569 PARIS

( Int CI4 G 06 F 15/336, 12/02.(Int CI4 G 06 F 15/336, 12/02.

@ DEMANDE DE BREVET D'INVENTION A1@ APPLICATION FOR PATENT OF INVENTION A1

Date de dépôt: 28 février 1989. Q Demandeur(s): ARDENT COMPUTER CORPORATION.  Date Filed: February 28, 1989. Q Applicant (s): ARDENT COMPUTER CORPORATION.

- US.- US.

() Priorité: US, 1 mars 1988, n 162.738.  () Priority: US, 1 March 1988, No. 162,738.

@ Inventeur(s): Glen S. Miranker: Steve Johnson.  @ Inventor (s): Glen S. Miranker: Steve Johnson.

( Date de la mise à disposition du public de la  (Date of the public availability of the

demande: BOPI " Brevets " n 36 du 8 septembre 1989.  application: BOPI "Patents" No. 36 of 8 September 1989.

6 Références à d'autres documents nationaux appa-  6 References to other national documents appearing

rentés Q Titulaire(s): Mandataire(s): Cabinet Regimbeau, Martin, Schrimpf,  Q Holder (s): Agent (s): Cabinet Regimbeau, Martin, Schrimpf,

Warcoin et Ahner.Warcoin and Ahner.

( Fichier de registres de vecteurs, système informatique pour le traitement de vecteurs utilisant un tel fichier et  (Vector register file, computer system for processing vectors using such a file and

procédé de gestion des accès à ce fichier.  method of managing access to this file.

Un fichier de registres de vecteurs pour un système 2047 2 I informatique de traitement de vecteurs comprend un premier - GROUPE./. // //  A vector register file for a vector processing system 2047 includes the first - GROUP /. // //

groupe 101 de circuits de mémoire, un second groupe 102 de l ||- - |t|-L.. il...  group 101 memory circuits, a second group 102 of l || - - | t | -L .. it ...

circuits de mémoire, pouvant être commandé de façon cyclique 2 indépendamment du premier groupe, un troisième groupe 103  memory circuits, which can be cyclically controlled 2 independently of the first group, a third group 103

de mémoire pouvant être commandé de façon cyclique indé-  memory that can be controlled inde-

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  from the first group and a fourth memory circuit group 104, which can be controlled in a controlled manner.

cyclique indépendamment des autres groupes, les deux pre-.  cyclical independently of other groups, both 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  wherein the first groups are formed by direct access static memories and the file is subdivided into a plurality of I-contexts fields usable for separate processes. 2047 4 0 Application in particular to mathematical calculations of /// // /// convolution and recurrence, os | .-. t, = -7 ff020

204714 127 " 21204714 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  N /Z/-/.../,./'.../x// 0, o04_, 1l] - 'I --- II' 'II IV ,,, te: L. D Sale of fascicles The present invention relates to vector register files for computer systems of the present invention.

traitement de vecteurs.vector processing.

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  In a vector processing computer system, a vector register file is typically used to store vectors for computation purposes. The operations involved in such a system can be performed on one vector at a time. For example, an operation such as ADDITION VREG1, VREG2, VREG3 in a vector processing system can cause the addition of the first element located in the vector register 1 to the first element of the vector register 2 and the storage of the result in the first element of the vector register 3. The second element of the vector register i would, likewise, be added to the second element of the vector register 2 and the results would be stored in the second element of the vector register 3. Each element of the vector register 1 and the vector register 2 is treated in a similar way and is stored in

l'élément correspondant du registre de vecteurs 3.  the corresponding element of the vector register 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  To increase the processing speed in such computer systems, multi-access memories are usually used to form the vector register files. In such multi-access memories, the advantage is to be able to perform reading or recording at multiple locations of the memory during a single memory cycle. However, such multiple access memories have several disadvantages, typically including being more expensive from a design, construction, and price point of view than single access memories, being less readily available than memory devices. with one access and, typically,

fonctionner plus lentement que ces dernières.  operate more slowly than the latter.

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  Therefore, in accordance with an object of the present invention, it is desired to design a vector register file for a vector processing computer system, which uses single access memory cells, while providing the advantages of multiple access, from the speed point of view. Known vector processing systems typically use vector register files with relatively small dimensions. For example, a typical computer system referred to as CRAY and manufactured by Cray Research of Minneapolis, Minnesota, may have 8 vector registers, each of which has a length of 64 elements for a total of 512 elements. Other known systems typically use a volume of between double and quadruple of this volume of vector registers. Normally, the increased volume of the vector registers is achieved by increasing the length (which therefore goes to a length of 128 or 256) of each vector register. In accordance with a second object of the invention, it is desirable to increase the available amount of the volume of the vector registers and to obtain increased flexibility of use in the use and delivery of the vectors.

gestion de ce volume.management of this 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  A third object of the present invention is to provide programming flexibility to execute instructions that apply to a vector and calculations that require access to a vector at any point. Examples of such calculations are presented in recurrence calculations

et/ou de cumul.and / or cumulation.

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  The present invention relates to a vector register file and methods for managing access to such a file. The present invention describes the use of static direct access memories (SRAMs) organized in a plurality of groups and operating at a speed of at least twice the system timing rate to simulate multiple access memories. The use of SRAM memories to form a vector register file provides a number of features of the invention. The use of SRAM memories makes it possible to arrange the computer system so that the file of the registers of the vectors has a relatively large volume. The latter can be subdivided into a plurality of context areas, each context area allowing to support the execution of a separate process. The use of such context areas avoids the need to transfer context information present in a vector register file to a disk when switching between processes. According to the present invention, a register for the system base, a register for the user base and a register for a system limit are used to ensure the use of a plurality of

zones de contextes.contexts areas.

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  According to the present invention, an addressing code is also used for addressing the context zones and allowing an optional addressing capability for individual elements or cells in

un vecteur.a vector.

D'autres caractéristiques et avantages de  Other features and benefits of

l'invention ressortiront de la description donnée ci-  the invention will emerge from the description given above.

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  after reference is made to the accompanying drawings, in which: - Figure 1 shows a block diagram showing groups of memories, of the type that can be used in the present invention; Fig. 2 is a block diagram illustrating a method of subdividing the memory groups into a plurality of vector registers according to the present invention; FIG. 3 is a block diagram illustrating a method for subdividing the memory groups into a plurality of context areas according to the present invention; FIG. 4 is a block diagram illustrating the use of registers of the system base, the user base and the system boundary in accordance with the present invention; FIG. 5 represents a schematic block illustrating the use of registers of the system base, the user base and the system limit and

l'utilisation de variables partagées entre des sous-  the use of variables shared between sub-

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é  programs according to the present invention; and FIG. 6 is a block diagram showing an operand descriptor of the type that can be used.

dans le cadre de la présente invention.  in the context of the present invention.

On va décrire un fichier de registres de  We will describe a file of records of

vecteurs. Dans la description qui va suivre, on indique  vectors. In the following description, it is indicated

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  many specific details such as a specific number of bits, specific dimensions, etc., so as to have a precise understanding of the present invention. But, the skilled person will appreciate that the present invention can be implemented without these specific details. In other cases, well-known circuits, structures and techniques have not been shown in detail to avoid unnecessarily obscuring the explanation of the

présente invention.present invention.

FICHIER DE REGISTRES DE VECTEURSVECTOR RECORD FILE

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  The present invention describes the arrangement of a vector register file in a vector processing computer system, in the form of a

pluralité de groupes de mémoires à accès direct (RAM).  plurality of random access memory (RAM) groups.

Dans le cadre de la présente description, le terme  In the context of this description, the term

"groupe" est censé se référer à un ensemble de mémoires,  "group" is meant to refer to a set of memories,

pouvant être commandé cycliquement de façon indépendante.  can be cyclically controlled independently.

C'est-à-dire que chaque groupe.-de la pluralité des groupes peut être adressé de façon indépendante pendant  That is, each group-of the plurality of groups can be addressed independently during

le même cycle d'horloge.the same clock cycle.

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  This embodiment of the present invention will be described in more detail with reference to Fig. 1. This preferred embodiment uses four memory groups 101, 102, 103 and 104 for its vector register file. Each group 101, 102, 103, 104 has 2048 x 8 static direct access memories (SRAM) arranged in such a manner

qu'un groupe peut comprendre 2048 éléments à 64 bits.  that a group can include 2048 64-bit elements.

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  The present invention provides a logical equivalent of an 8-port memory by combining two techniques. First, the fact of arranging the memories into 4 groups or sets of memories, which can be cyclically controlled independently, allows

d'obtenir l'équivalent d'une mémoire à 4 accès (c'est-à-  to obtain the equivalent of a 4-port memory (ie

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  say that a record can be executed in groups 0 and 1 during the same clock cycle as a reading from groups 2 and 3). Secondly, the present invention utilizes SRAM memories having access times at least twice as fast as the system clock rate, which effectively allows two accesses to each group during a cycle. given clock of the system. In the preferred embodiment, the system clock operates by delivering clock pulses separated by 120 nanoseconds (ns) from each other, which requires the use of SRAM memories having an access time equal to the maximum at 60 ns. It is better to use memories. SRAM with an access time of at least 35 ns. Therefore, each of the four groups can be accessed twice during a given clock cycle, which corresponds to an 8-port logical memory. Those skilled in the art will appreciate that these methods can be used either individually or in combination to achieve multi-access memory operation. It is furthermore obvious that a different number of groups can be used, memories having different sizes or memories having different speeds for obtaining more than 2 accesses during each interval of system clock pulses. , without leaving the frame

de la présente invention.of the present 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  Among the advantages provided by the present invention using a vector register file constituted by SRAMs, mention may be made of the relatively low cost of such memories, the availability of SRAM memories from many manufacturers and the relative speed provided by current technology. SRAM memories. These advantages and other factors make it possible to use a vector register file having a size greater than that of the file.

utilisé dans des systèmes connus de traitement vectoriel.  used in known systems of vector processing.

La présente invention décrit plusieurs techniques inventives et caractéristiques pour la gestion,  The present invention describes several inventive techniques and features for management,

et l'utilisation du fichier de registres de vecteurs.  and the use of the vector register file.

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  According to a feature of the present invention, each group belonging to the plurality of groups may be subdivided into a plurality of vector registers. For example, with reference to FIG. 2, each of the groups 201, 202, 203 and 204 may be subdivided into a plurality of vector registers, such as, for example, the vector registers 210, 211, 212 and 213. In the particular example of FIG. , each group containing 2048 elements is subdivided into 64

registres de vecteurs contenant 32 éléments.  vector registers containing 32 elements.

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  In fact, the groups 201, 202, 203 and 204 may be subdivided into any number of vector registers, up to a maximum value equal to p, where p is the number of elements in a group. Each vector register has p / n elements. The particular values of p and n can be chosen on the basis of a certain convention, depending on the trade-off between the advantages and disadvantages between having a large number of vector registers or vector registers containing large number of elements (i.e., a large length) in each particular case. The particular convention may be linked either to hardware devices or to

procédés logiciels.software processes.

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  In the context of the practice of the present invention, a vector register can begin at any element within a group. The particular method of addressing the elements will be described more

détaillée en référence à la figure 6.  detailed with reference to 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  In the preferred embodiment, a particular register of vectors may be designated using a group number and an offset. For example VR0 (0) can designate the first vector register in the group 0, VR0 (32) can designate the second vector register in the. group 0, in which the vector registers have a length of 32 elements, VR0 (64) can designate the third vector register in the group 0, etc. In another embodiment, the vector registers can be designated using a group number and a vector number. For example VR0,0 can designate a vector register located in group 0, number 0. The system can be sensitive to a conversion

du numéro de vecteur (c'est-à-dire 0) en un décalage.  the vector number (i.e., 0) in one offset.

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  VR0,1 may designate the second vector register in group 0. The system may be responsive to a conversion of the vector number (i.e., 1) to an offset. For example, if each vector register must have a length of 32 elements, the system must

convertir le numéro de vecteur 1 en un décalage 32.  convert the vector number 1 to a shift 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  According to a third embodiment, vector registers can be designated using only a vector register number. The system can then be responsive to a conversion of the vector number into a group and an offset. For example VR0 can be converted to group 0, offset 0, VR1 can be converted to group 1, offset 0, VR2 can be converted to group 2, offset 0, VR3 can be converted to group 3, offset 0, VR4 can be converted to group 0, offset 32, and so on. Each of these different solutions provides compromises in terms of the portability of the program as a function of the conversion speed of the program.

numéro des vecteurs.number of vectors.

ZONES DE CONTEXTES DES REGISTRES DE VECTEURS  ZONES OF CONTEXTS OF VECTOR REGISTERS

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,  In accordance with the present invention, as previously described, a comparatively large volume of vector registers is available. In general, it is not necessary to have the total volume of vector registers for any process considered alone. Therefore, according to another aspect of the present invention, the volume of vector registers can be subdivided into a plurality of areas of processing contexts. This system can then support a plurality of processes without the need for a process context data transfer from the register file This vectors to another recording medium, such as a disk,

lors de la commutation entre les processus.  when switching between processes.

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  With reference to FIG. 3, according to one embodiment, the groups 301, 302, 303 and 304 containing 2048 elements are subdivided into eight 310-317 context areas with a length of 256 elements in each group. Referring to FIG. 4, when executing a process, the system maintains a SBASE 410 base register. The SBASE 410 base register contains the offset or distance of the current context area from the start of the process. group (that is, from element 0). For example, if the current context is the context area 312 of Fig. 3, the SBASE 410 contains the value 512. If the SBASE 410 is used, the system can switch between the current process and a process. associated with context data located in a different context area, by means of a modification of the value contained in the SBASE register 10. When executing a process, the value contained in the SBASE register 10 is added to the offset value of any reference to the

mémoire de vecteurs.memory of vectors.

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,  The SBASE register is further used to ensure that user processes do not refer to offsets below the assigned context area. In addition, using the SBASE register allows you to save a process regardless of the particular context area assigned to it. A process may be registered to be executed as if it were always executed in the first context 310. It will be apparent to the ordinary specialist that the vector register file can be subdivided into any number of contexts n between 1 and p, where p is the number of elements in a group. The number of elements in each context area is equal to p / n. The particular number n can be determined on the basis of a number of factors. It is also clear that it is possible to change the size of the context areas so that they do not have identical dimensions, allowing the use of a smaller context area for a relatively small process. and a larger context area for a relatively large process. The present invention further uses a second SLIMIT register 411 to indicate the last element, to which reference can be made, of the current context area. The SLIMIT 411 register is used to ensure that a process does not tend to refer to an item that is more than offset from the offset in that context area. Any reference to an element located in the vector register file is compared by reference to the SLIMIT register 411. If the reference concerns an element situated at a shift greater than the value contained in SLIMIT 411,

elle est inhibée et une condition d'erreur est indiquée.  it is inhibited and an error condition is indicated.

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  The present invention further utilizes a third UBASE register 412, which allows further subdivision of the own context space of a particular process. Typically, the use system may be sensitive to manipulation of the UBASE and SLIMIT registers. A usage process allows you to manipulate the UBASE register. For example, the process may contain context data for individual subprograms located at fixed offsets with respect to a given value contained in the UBASE 412 register. The user sets the UBASE 412 register to the given value of this register when the execution of the subroutine. The subroutine can then refer to elements in the vector register file, by sending the offset value from the base register 412. The system calculates the actual offset within the file of the vector register file. vector registers by calculating (SBASE 410) + (UBASE 412) + (the given offset). With reference to FIG. 5, a method of jointly using context data and subroutines will be described. A process can set this context data anywhere within the limits of SBASE 510 and SLIMITE 511. The process can initially set its UBASE register at point 520, to refer to area 530 when executing db. a first subroutine. The process can change the setting of the UBASE register on point 521 to refer to area 531. Field 540 contains commonly used variables or other context information used in common, which can be referenced by

n'importe quel sous-programme.any subprogram.

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 à  A second use of the UBASE register is to allow addressing of the entire base area of the system (area limited by SBASE and SLIMIT) by using a limited length address area. For example, assume that the area of the system base has a length of 512 elements and that an 8-bit address is used to address in this area. To address elements having relative offsets from 0 to 255 relative to SBASE, UBASE is set to 0. To address elements with relative offsets between 256 and 511 relative to SBASE, UBASE is set to 256 and the elements are addressed in accordance with

(0+255)+UBASE (c'est-à-dire 256 à 511).  (0 + 255) + UBASE (i.e. 256-511).

En se référant maintenant à la figure 6, on va  Referring now to Figure 6, we will

décrire un descripteur d'opérande 600 pour des instruc-  describe an operand descriptor 600 for 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),  of the preferred embodiment. The instructions of the preferred embodiment may comprise three operands: a vector register x (VRx), 601 (a) and 601 (b), a vector register y (VRy), 602 (a) and 602 (b) , and a z vector register (VRz),

603(a) et 603(b).603 (a) and 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  A vector register can be addressed by entering a group number in bits 9 and 8 of the operand of the vector register and a value of

décalage dans les bits 7-0.offset in the 7-0 bits.

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  In the preferred embodiment, bits 9 to 5 of each operand of a vector register are inserted in the high rank half of word 610. Using bits 9 to 5 of the address, it is possible to address any set of four groups of the preferred embodiment using bits 9 and 8, and shifts within the groups can be addressed in multiples of 32. For example, a value 000012 in the bits 9 to 5 of an operand of a vector register would denote group 0, offset 32. A value 110102 would denote group 3, offset 64. As was previously described, the values contained in SBASE and

UBASE sont ajoutées aux décalages.  UBASE are added to offsets.

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  The subdivision of the address of the vector registers makes it possible to use a constant with 16 bits, instead of a constant with 32 bits, given with reference to a register of vectors. The ordinary specialist will see clearly that the particular organization in address bits can be modified without departing from the scope of the

présente invention.present 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 à  In the present embodiment, a direct constant of 16 bits or less can be stored as part of an instruction. Therefore, by using only half the top rank of a word to memorize operand information, the present invention makes it possible to store the information of the operand in the instruction. This method saves a processing time, since there is no need to retrieve the information relating to

l'opérande, séparément de l'instruction.  the operand, separately from the 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  It is desirable to address directly to a cell of a vector register or to use a vector register to store scalar variables, the lower half of the word 611 of the operand provides the remainder of the information of the address addresses. offset in bits 4 to 0 of the offset. It is also necessary to use bits 4 to 0 of the offset to allow overlapping of data for subprograms as described

précédemment en référence à la figure 5.  previously with reference to 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:  The addressability of the cell levels makes it possible to perform convolution calculations and recursive calculations. For example, using the addressability characteristic of cell levels, a convolutional calculation such as:

DO I = 1, 32OD I = 1, 32

Y(I) = w(1) * x[U+1]Y (I) = w (1) * x [U + 1]

+ W(2) * X[I+2]+ W (2) * X [I + 2]

+ W(3) * X[I+3]+ 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  END In addition, the preferred embodiment of the present invention makes it possible to perform all operations including operations on individual elements of a vector, in an order compatible with an execution.

séquentielle. Ceci permet, en combinaison avec l'adres-  sequentially. This allows, in combination with the address-

sabilité des niveaux des cellules, d'exécuter directement des calculs récurrence et par exemple de calculer une  cell level, to perform calculation recursion calculations directly and for example to calculate a

suite de Fibonacci.continuation of 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  Thus, in the foregoing, a vector register file and a method for managing

l'accès à ce fichier.access to this file.

Claims (22)

REVENDICATIONS 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  A vector register file for a vector processing computer system, characterized in that it comprises: a first group (101; 201; 301; 401) of memory circuits; and a second group (102; 202; 302,402) of memory circuits, which can be cyclically controlled from a manière indépendante dudit premier groupe.  independently of said first group. 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  Vector register file according to claim 1, characterized in that said first group (101; 201; 301; 401) of memory circuits is constitué par des mémoires statiques à accès direct.  consisting of static memories with direct access. 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.  A vector register file according to claim 1, characterized in that said first memory circuit group (101; 201; 301; 401) is constituted by eight 2048 x 8 direct-access static memories. 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èmeVector register file according to claim 1, characterized in that it further comprises: a third group (103; 203; 303; 403) of memories, which can be cyclically controlled independently of said first group (101 201; 301; 401) of memories and said second group (102; 202; 302; 402) of memories; and a fourth group (104; 202; 304; 404) of memory circuits, which can be cyclically controlled independently of said first group (101; 201; 301; 401) of memory circuits, said second group (102; 202 302; 402) memory circuits and the third groupe (103;203;303;403) de circuits de mémoire.  group (103; 203; 303; 403) of memory circuits. 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  A vector register file according to claim 1, wherein each of said memory circuits (101,201,301,401; 102,202,302,402; 103,203,303,403) is accessible at least twice during the cycle time. d'horloge du système.clock of the system. 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  A vector register file according to claim 5, characterized in that said duration of the system clock cycle is equal to about 120 ns and that access to said memory circuits (101,201,301,401; 102,202,302,402; 103,203,303,403) can be done during une durée égale au maximum à 60 ns.  a duration of not more than 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  A vector register file according to claim 5, characterized in that said duration of the system clock cycle is about 120 ns and that access to said memory circuits (101,201,301,401; 102,202,302,402; 103,203,303,403) can be to be carried out during au moins approximativement 35 ns.at least approximately 35 ns. 8. Système informatique de traitement de vec-  8. Computer processing system for 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  carriers comprising a vector register file, characterized in that it comprises a clock of the system having a cycle time equal to n, and a plurality of memory circuits (101,201, 301,401; 102,202,302, 402; 103,203,303,403), having a access time equal to at least about n / p, p being equal au moins à 2.at least 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 à  A vector processing computer system according to claim 8, characterized in that n is equal to about 120 ns and p is equal to the maximum of environ 60 ns.about 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  10. Computer system for processing vectors, characterized in that it comprises: a vector register file, a register (410) of the system base, used to store a value of the system base, which is added to a offset value for addressing said file de registres de vecteurs.of vector registers. 11. Système informatique de traitement de vec-  11. Computerized treatment system for 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  in accordance with claim 10, characterized in that it further comprises a limit register (411), which serves to store a limit value which is compared to the sum of said base system value and said offset, and a condition of error being reported in the case o ladite somme est supérieure à ladite limite.  said sum is greater than said limit. 12. Système informatique de traitement de vec-  12. Computerized treatment system for 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  The apparatus according to claim 10, further comprising a user base register (402) for storing a value of a user base, which is added to said offset value and said value of the system base when addressing dudit fichier de registres de vecteurs.  of said vector register file. 13. Système informatique de traitement de vec-  13. Computerized treatment system for 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  in accordance with claim 10, characterized in that said value of the system base is modified when said computer system for processing vectors modifie des processus actifs.modifies active processes. 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.  14. A method of addressing a vector register file in a vector processing computer system comprising this file and a register (410) of the system base for storing a value of the system base, characterized in that it includes the steps of: (a) adding an offset value to said value of the system base so as to obtain a sum; (b) addressing said vector register file with said sum; and (c) said computer processing-vector system modifying its active process; (d) modifying the value of said register (410) of the system base, in response to said modification of the processes. 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 dudit15. The method of claim 14, implemented in a computer system for processing vectors further comprising a register (412) of a user base, for storing a value of a user base, characterized in that further includes the step of adding the value of said user base to said sum -before addressing said fichier de registres de vecteurs.file of vector registers. 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  16. The method of claim 14, intended to be implemented in a computer system for processing vectors further comprising a limit register (411) for storing a limit value, characterized in that it further includes the step of comparing said sum with said limit value and producing an error condition, in the case where said sum is greater than said limit value before l'adressage dudit fichier de registres de vecteurs.  addressing said vector register file. 17. Procédé selon la revendication 16, caracté-  17. The method of claim 16, characterized risé en ce qu'il inclut en outre l'étape consistant à modifier ladite valeur limite en réponse audit changement  in that it further includes the step of modifying said limit value in response to said change des processus.process. 18. Procédé pour subdiviser un fichier de re-  18. Method for subdividing a file of 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  vector registers of a plurality of vector registers (210, 211, 112, 213) in a vector processing computer system containing this vector register file including addressable elements, characterized by including the steps of: ) determining a value n indicating a desired number of vector registers, and (b) logically dividing said vector register file into said plurality of vector registers (210,211,212,213), each of said plurality of vector registers vecteurs possédant une longueur égale à p/n éléments.  vectors having a length equal to p / n elements. 19. Procédé selon la revendication 18, caracté-  19. The method of claim 18, characterized risé en ce que p est égal à 2048.  rised in that p is 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  A method for storing operands in a vector processing computer system comprising a vector register file and using instructions requiring a plurality of operands comprising addresses within said vector register file, characterized in that it consists in: storing a first plurality of bits of said address for each of said operands in a first half of a word, and storing a second plurality of bits of said address of each of said operands in a seconde moitié dudit mot.second half of that word. 21. Procédé selon la revendication 20, caracté-  21. The method of claim 20, characterized risé en ce que ladite pluralité de bits inclut les bits 9  in that said plurality of bits includes bits 9 à 5 de ladite adresse de chacun desdits opérandes.  at 5 of said address of each of said operands. 22. Procédé selon la revendication 21, caracté-  22. The method of claim 21, characterized risé en ce que ladite seconde pluralité de bits inclut les bits 4 à 0 de ladite adresse de chacun desdits opérandes.  in that said second plurality of bits includes bits 4 to 0 of said address of each of said operands. PL, I/6PL, I / 6 2047 20462047 2046 2, / 127 63 2 1 02, / 127 63 2 1 0 GROUPE.,../.GROUP.,../. 1010 Ill"'lt"'11"'l V111X4 on' 20481010 Ill "'lt"' ll "'l V111X4 on' 2048 2047 20462047 2046 \ / 127.63 2 1 0\ / 127.63 2 1 0 /// *..//<.//.*..///,/// * .. // <.//.*..///, Ill.. se..,,Ill .. se .. ,, 102 - 1: 11* 1*TI TITV102 - 1: 11 * 1 * TI TITV /7.,/ 7., " _ _2048_2048 2047 20462047 2046 \X/ 127 63 2 1 0\ X / 127 63 2 1 0 -// /,// ////i- // /, // //// i 103 2 II...La I..]I.. I.* -103 2 II ... The I. ..] I .. I. * - le,the, -" 2048- "2048 2047 20462047 2046 4 2 127 63 21 04 2 127 63 21 0 //..//X.//.../////..//X.//.../// 104 -311 -- i l 64104 -311 - i 64 -".2048- "2048. PL, II/6PL, II / 6 2047 2015 95 63 31 02047 2015 95 63 31 0 / /,' ,' / // /, ',' / / GROUPE /GROUP / 201 --0: 213 * 212 12 21 0201 --0: 213 * 212 12 21 0 vZ x.,-.-,,_-.,vZ x., -.- ,, _-., VR 0, 31 VR 0,2 VR 0, I VR 0, 0VR 0, 31 VR 0.2 VR 0, I VR 0, 0 VR 0,(1984) VR O (64) VR 0 (64) VR 0(0)  VR 0, (1984) VR O (64) VR 0 (64) VR 0 (0) VRI,31 VRI,2 VRI/ VR,,0VRI, 31 VRI, 2 VRI / VR ,, 0 /. . //. . / 2 3 R /. v2 3 R /. v 202---1: 1 *À I I I202 --- 1: 1 * To I I I IR 3, 31 V 3,2 3,1 3,0II IIR 3, 31 V 3.2 3.1 3.0II I VR 1,31 VR1,2 VRl,I VR 1,0VR 1,31 VR1,2 VRl, I VR 1,0 /,, ,,/ ,, ,, / // */ / // // * / / / R / À 3,/ / /R / À 3, / / / 203"-,2:E I * lÀÀ|203 "-, 2: E I * lÀÀ | VR 2,31I VR 2,2VR 2,1 VR 2,0VR 2,31I VR 2,2VR 2.1 VR 2.0 / A/, / , ' /// AT/, / , ' // /, ',',', 'A/, ',',', 'AT 204,-3: I I I I204, -3: I I I I - VR 3,531 VR 3,2 VRS,I VR 3,0- VR 3,531 VR 3,2 VRS, I VR 3,0 PL, III/6PL, III / 6 1792 1536 1280 1024 768 512 2561792 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  E 2047 \ 1791 \ 1535 \ 1279 \ 1023 \ 767 \ 511 \ 255 \ GROUPE Im / I I I I I I I Io I I -I I,I, I, II -I I, I, I, I I I I I I I 1I1I I I I I I I 1 I1 301_--O: I I I I I I301 _-- O: I I I I I I I I I I* I I I II I I I I I I I I I I I I I I I I I I I I II I I I I I I I I I I I I j II I I I I I I I I I I I I I II 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 303-21 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 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 III I I, I I II / 1 1 1 II II I 1/ 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  r-l, l. 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 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 I I I I I I I I I II I I I I I IIII I I I I I II CONTEXTE CONTEXTE CONTEXTE CONTEXTEBACKGROUND CONTEXT CONTEXT BACKGROUND 7 I I 3 I 37 I I 3 I 3 CONTiLXTECON XTE CONTXTE CONTEXTE' 317 6 4 2 o  CONTiLXTECON XTE CONTENTS CONTEXT '317 6 4 2 o 315 313 31311 31315 313 31311 31 316 314 312 310316 314 312 310 I II I I.- 128-.I.- 128-. I I I II I I I I I I.I I I. IIIIII GROUPEGROUP aO: I I I I I I t:: à.. I I e C I Ii j t'  aO: I I I I I I I t 2: '* I2: '* I À I -HAVE - I I I ÀI I I TO I 1 1 I.-I 1 1 I.- tt ttt t I I II I I I II I 4 I4 I S BASEUE UBSESLSMITES BASEUE UBSESLSMITE 410 -- 412 '-411 r co410 - 412 '-411 r co CE / PECE / PE CONTEXTE DU PROCESSUSCONTEXT OF THE PROCESS 530 531530,531 1 *- 128--1 * - 128-- I I I I I I1I I I I I I I1 GROUPE I I I IGROUP I I I I 0:.. I I I I0: .. I I I I I III II 1:.01 I I I i ' IS1: .01 I I IS ! I II I! I II I 1 i 1 1 i1 i 1 1 i I I II I I 3:. * I I3 :. * I I I I I I II I I I I i lythere is 520 VARIABLES I520 VARIABLES I | I 1 EN COMMUNI| I 1 IN COMMUNI SBASE \--540 SLIMITESBASE \ - 540 SLIMITE 51J lU BASE ANTÉRIEUR 51151J lU ANTERIOR BASE 511 CONTEXTE DE'SOUS-PROGRAMME1DETECTION-PROGRAM CONTEXT1 PRÉCÉDENT IPREVIOUS I 521- & CONTEXTE DE SOUS-PROGRMAME521- & CONTEXT OF SUB-PROGRMAME ?lUBASE ACTUEL ACTUELCURRENT CURRENT LUBASE 610 61'1610 61'1 31 30 29 28 26 25 24 23 21 20 19 18 16 15 14 10 9 5 4 0  31 30 29 28 26 25 24 23 21 20 19 18 16 15 14 10 9 5 4 0 600 1 II 1600 1 II 1 I ÉDCALAGE ' ÉDKCALAGf 1 DÉCALAGE  I ÉDCALAGE 'ÉDKCALAGf 1 SHIFT 1D<CALAGDCAL ID DECALAG DEÉCALAGEDÉCALAGE DCALAGE -  1D <CALAGDCAL ID DECALAG DECALAGEDSTANDINGDALAGE - GROUPI <7..5>GROUPI <7 5> ROUPE <7..5> - 4 > <4 >  GROUPI <7..5> GROUPI <7 5> ROUPE <7..5> - 4> <4> <9.8>1 <9..8> <9..8>. <4..O> <4.. 0> <4.. O>  <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>  III 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_ / _ / I 601(a) 602(0) 603(a) 601(b) 602(b) 603(b) ro os (0% co -.  601 (a) 602 (0) 603 (a) 601 (b) 602 (b) 603 (b) ro os (0% co -.
FR8902569A 1988-03-01 1989-02-28 VECTOR REGISTER FILE, COMPUTER SYSTEM FOR PROCESSING VECTORS USING SUCH FILE, AND METHOD FOR MANAGING ACCESS TO THIS FILE Withdrawn FR2628237A1 (en)

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 (en) 1989-09-08

Family

ID=22586943

Family Applications (1)

Application Number Title Priority Date Filing Date
FR8902569A Withdrawn FR2628237A1 (en) 1988-03-01 1989-02-28 VECTOR REGISTER FILE, COMPUTER SYSTEM FOR PROCESSING VECTORS USING SUCH FILE, AND METHOD FOR MANAGING ACCESS TO THIS FILE

Country Status (5)

Country Link
JP (1) JPH0210467A (en)
KR (1) KR890015129A (en)
DE (1) DE3906327A1 (en)
FR (1) FR2628237A1 (en)
GB (1) GB2216307B (en)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2883784B2 (en) * 1993-04-27 1999-04-19 株式会社東芝 Microcomputer
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 (en) * 1998-05-27 1999-12-02 Arm Limited Recirculating register file
WO2000004484A2 (en) * 1998-07-17 2000-01-27 Intergraph Corporation 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 (en) * 2003-03-28 2004-10-28 Seiko Epson Corp Vector processor and address designation method for register
JP5491113B2 (en) * 2009-09-18 2014-05-14 エヌイーシーコンピュータテクノ株式会社 Vector processing apparatus, vector processing method, and program
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)

* Cited by examiner, † Cited by third party
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 (en) * 1984-06-21 1986-01-16 Fujitsu Ltd Access control system for storage device
US4873630A (en) * 1985-07-31 1989-10-10 Unisys Corporation Scientific processor to support a host processor referencing common memory
DE3687739T2 (en) * 1985-12-02 1993-08-19 Ibm MEMORY ARRANGEMENT WITH MULTIPLE READ-WRITE ACCESS.
JPS63898A (en) * 1986-06-19 1988-01-05 Fujitsu Ltd Semiconductor memory device
EP0261751A3 (en) * 1986-09-25 1990-07-18 Tektronix, Inc. Concurrent memory access system

Also Published As

Publication number Publication date
KR890015129A (en) 1989-10-28
GB2216307A (en) 1989-10-04
DE3906327A1 (en) 1989-09-14
GB2216307B (en) 1992-08-26
GB8903962D0 (en) 1989-04-05
JPH0210467A (en) 1990-01-16

Similar Documents

Publication Publication Date Title
FR2628237A1 (en) VECTOR REGISTER FILE, COMPUTER SYSTEM FOR PROCESSING VECTORS USING SUCH FILE, AND METHOD FOR MANAGING ACCESS TO THIS FILE
EP2366147B1 (en) Physical manager of synchronization barrier between multiple processes
FR2583540A1 (en) MEMORY MANAGEMENT FOR MICROPROCESSOR SYSTEM.
FR2582829A1 (en) SYSTEM FOR MANAGING COMPUTER MEMORY
EP0020983A1 (en) Memory system comprising a serial storage device
FR2588980A1 (en) DIGITAL SIGNAL PROCESSING PROCESSOR COMPRISING SEVERAL MULTIPLIERS
FR2628234A1 (en) EXPANDABLE MEMORY WITH AUTORECONFIGURATION
FR2617307A1 (en) MICROCALCULATOR COMPRISING PERFECTED ADDRESSING POSSIBILITIES
FR2489578A1 (en) ORGANIZATION STRUCTURE FOR BUFFER MEMORY
FR2522232A1 (en) DEVICE FOR PROCESSING DIGITAL SIGNALS
FR2583904A1 (en) MULTIPLE DATA TRAIN AND SINGLE INSTRUCTION (SIMD) TYPE COMPUTER SYSTEM WITH SELECTIVE DATA PROCESSING
FR3075444A1 (en) SYSTEM COMPRISING A MEMORY ADAPTED TO IMPLEMENT CALCULATION OPERATIONS
US6665768B1 (en) Table look-up operation for SIMD processors with interleaved memory systems
FR2618282A1 (en) METHODS AND APPARATUS FOR STORING DIGITAL VIDEO SIGNALS.
FR2861867A1 (en) DIFFERENTIATION OF CONTEXT OF USE IN A POUCH COMPUTER
WO2017055732A1 (en) Computer device provided with processing in memory and narrow access ports
FR2476367A1 (en) APPARATUS AND METHOD FOR ADDRESSING MEMORY
FR2637708A1 (en) Device for data processing
EP0520579B1 (en) Data processing apparatus particularly adapted for threaded languages, notably FORTH
FR2587520A1 (en) MEMORY DIRECT ACCESS WINDOW DISPLAY APPARATUS AND METHODS
EP0952587B1 (en) Fast DRAM layout
FR2801388A1 (en) Method of controlling DRAM by using cache registers for fact accessing storage element of cache are used to retrieve words of page of current request
FR2662281A1 (en) Processor comprising a file of addressable registers as several sets of registers contained in windows
EP3239845B1 (en) Method for allocating memory space
EP1262867A1 (en) Method of implementing a plurality of object interfaces

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