Brevet FR2772952A1 — publié le 19990625

Domaine de l'invention La présente invention concerne de multiples processeurs selon une configuration parallèle et plus particulièrement, un système et un procédé permettant d'améliorer l'utilisation d'une mémoire de programme lors du processus de recherche et de distribution d'instructions lorsqu'un fichier de registres d'instruction est utilisé. Arrière-plan de l'invention Dans une architecture à processeur unique, I'exécution d'un programme est classiquement divisée selon trois phases principales. Ces phases sont: une recherche d'instruction qui met en jeu la lecture d'une instruction à partir de la mémoire de programme dans le registre d'instruction (IR); un décodage d'instruction qui met en jeu le décodage des instructions provenant de l'IR et la préparation des signaux de commande pour son exécution; et pour finir, I'exécution de I'instruction. Dans une architecture à processeurs parallèles, de multiples instructions doivent être lues à partir de la mémoire de programme dans de multiples registres d'instruction qui peuvent être organisés selon un fichier de registres d'instruction (IRF). S'il y a "n" processeurs dans une architecture à multiples processeurs parallèles, il doit y avoir au moins "n" instructions qui sont lues à partir du programme dans l'IRF si des retards non nécessaires doivent être évités. Cependant, dans les architectures à multiples processeurs, il n'est pas garanti que tous les processeurs disposeront d'une instruction à exécuter à chaque cycle. Dans ce cas, une instruction "pas d'opération" (NOP) devra être aiguillée sur le processeur pour une utilisation lors du décodage et de l'exécution. Bien évidemment, le stockage d'instructions NOP dans la mémoire de programme gaspille de la mémoire de programme et des façons d'éliminer les NOP ont fait l'objet d'investigations. Le fait d'éliminer simplement les instructions NOP crée des problèmes d'aiguillage dans une architecture à multiples processeurs parallèles du fait qu'il est dans la pratique impossible d'aiguiller avec succès les instructions sans information additionnelle. Afin de surmonter ce problème, il est connu d'additionner des bits de commande aux instructions stockées dans la mémoire de programme pour une utilisation lors du groupage des instructions et lors de l'aiguillage d'une information jusqu'au processeur attendu. L'exigence d'introduire des bits de groupage et d'aiguillage au niveau des instructions ajoute de la complexité à l'architecture du système et augmente les exigences en termes de puissance. Résumé de l'invention La présente invention vise à proposer une meilleure utilisation de la mémoire de programme dans une mise en oeuvre par multiples processeurs parallèles en permettant à des instructions de s'étendre entre deux paquets d'instructions consécutifs. La présente invention propose un circuit de distribution d'instruction simplifié en ce sens que le codage par aiguillage de bits réalise une utilisation de la position d'instruction dans la séquence de codage. Selon la présente invention, des bits de commande de distribution non utilisés sont créés dans certains cas et ces bits peuvent être utilisés pour une fonctionnalité additionnelle. Par conséquent, conformément à un premier aspect de la présente invention, on propose, dans une architecture à multiples processeurs parallèles comportant un gestionnaire de programme pour stocker des instructions de processeur et un fichier de registres d'instruction permettant de décoder des instructions recherchées à partir de la mémoire de programme pour une exécution par certains sélectionnés des processeurs parallèles, un procédé d'amélioration de l'utilisation de la mémoire de programme. Le procédé comprend (a) le partitionnement du fichier de registres d'instruction; (b) I'application d'un bit de groupage sur les instructions afin d'identifier le cycle de recherche auquel l'instruction appartient; et (c) I'application de bits d'aiguillage sur les instructions pour désigner sur lequel des processeurs l'instruction doit être aiguillée, la position des bits d'aiguillage dans les instructions procurant une information d'aiguillage. Selon un second aspect de l'invention, on propose un système permettant de distribuer des instructions à partir d'une mémoire de programme sur de multiples processeurs parallèles comprenant: un fichier de registres d'instruction partitionné (IRF) pour recevoir et stocker des instructions provenant de la mémoire de programme; de multiples bus pour transporter des instructions depuis la mémoire de programme jusqu'au IRF; un circuit d'aiguillage pour diriger des instructions sur des processeurs désignés; et une séquence de codage d'aiguillage de bits pour distribuer des instructions, le codage d'aiguillage utilisant la position d'instruction dans la séquence pour constituer une information d'aiguillage. Brève description des dessins L'invention sera maintenant décrite de manière davantage détaillée par report aux dessins annexés parmi lesquels: la figure 1 représente une architecture à multiples processeurs parallèles selon l'art antérieur; la figure 2 représente le problème généré par l'élimination d'instructions non opérationnelles du jeu d'instructions; et la figure 3 représente une architecture à quatre processeurs qui met en oeuvre la présente invention. Description détaillée de l'invention Comme il a été préalablement discuté, I'exécution d'un programme est divisée dans la plupart des processeurs en utilisation aujourd'hui selon trois phases principales. Ce sont (1) une recherche d'instruction; (2) un décodage d'instruction; et (3) une exécution d'instruction. Dans une architecture à multiples processeurs, de multiples instructions doivent être lues à partir de la mémoire de programme (PM) dans de multiples registres d'instruction (IR) qui pourraient être organisés selon un fichier de registres d'instruction (IRF). Si l'on suppose qu'une certaine architecture utilise "n" processeurs, au moins "n" instructions doivent être lues à partir de la mémoire de programme dans l'IRF si des retards non nécessaires doivent être évités. Cependant, dans des architectures à multiples processeurs, il n'est pas garanti que tous les processeurs disposeront d'une instruction à exécuter à chaque cycle, auquel cas une instruction "pas d'opération" (NOP) devra être aiguillée sur le processeur pour une utilisation lors du décodage et lors de l'exécution. Le stockage d'instructions NOP dans la mémoire de programme est une source relativement importante de gaspillage et des façons de les éliminer ont été envisagées. La figure 1 représente une architecture à multiples processeurs parallèles dans laquelle la mémoire de programme a stocké des instructions NOP se rapportant aux processeurs 2 et 3. Ces instructions NOP sont recherchées dans le fichier de registres d'instruction pour une délivrance sur les processeurs respectifs. Bien évidemment, ceci conduit à une utilisation de la mémoire qui ne met pas en jeu un échange de données empreintes de sens. Si les instructions NOP non souhaitées sont simplement éliminées, I'aiguillage des instructions devient non fiable sauf si une information additionnelle est prévue. La figure 2 représente un exemple du problème d'assignation pour le cas d'une architecture à quatre processeurs, c'est-à-dire pour le cas o n = 4. Dans cet exemple, les instructions NOP se rapportant aux processeurs 2 et 3 ont été éliminées et la mémoire de programme qui devrait être utilisée pour des instructions NOP est utilisée autrement pour d'autres instructions de processeur. Comme représenté dans l'exemple de la figure 2, ceci conduit à ce que des instructions destinées à un processeur 4 sont dirigées à tort sur un processeur 2. Afin de résoudre ce problème, des bits de commande peuvent être additionnés aux instructions stockées dans la mémoire de programme. Le nombre d'instructions va d'une constante (4 sur la figure 1) à une variable (n'importe laquelle entre 1 et 4 dans le cas d'une architecture à quatre processeurs ou entre 1 et n dans le cas général de n processeurs). Ces bits de commande transportent deux types d'information: (1) une information de groupage (groupage ensemble de toutes les instructions qui doivent être exécutées dans le même cycle mais sur des processeurs différents); et (2) une information d'aiguillage (qui cartographie une instruction pour une certaine unité de traitement). Du fait de ces définitions, ces bits de commande sont appelés ici bits de commande de groupage et bits de commande d'aiguillage. Dans ces systèmes, les thèmes à traiter sont: (1) Combien y a-t-il d'instructions stockées dans la mémoire de programme et combien d'entre elles sont écrites dans l'IRF dans un cycle de recherche; (2) Quelle est la dimension optimum de l'IRF (combien d'instructions peut-il recevoir); (3) Quelle configuration des bits de commande permet une distribution optimum de l'instruction depuis l'IRF sur les unités de traitement; (4) Comment les modifications de commande de flux (des sauts, un appel à des sous-programmes etc...) sont-elles manipulées; et (5) Comment la dimension de l'IRF influence le nombre de lectures à partir de la PM et l'impact sur la consommation d'énergie du dispositif. La présente invention démontre que le gaspillage de la mémoire de programme peut être davantage réduit et que le circuit de distribution d'instruction peut être simplifié: 1. en permettant à un jeu d'instructions (qui doit être exécuté dans le même cycle) de s'étendre sur deux lignes de recherche de mémoire de programme; 2. en dimensionnant l'IRF selon 2 * n o n est une puissance de 2 - mais pas nécessairement); 3. en codant les bits de commande de distribution comme suit: (3.1)utilisation de r = [0log2 (2n-1)] bits par instruction pour une commande d'aiguillage; (3.2)dans un jeu de p instructions appartenant au même cycle, avec p > m (o m est l'entier minimum qui est tel que m*r > n), assignation de chaque bit de commande de distribution des m premières instructions a l'un des n processeurs et établissement de ceux-ci à 0 ou 1 pour indiquer quel processeur reçoit quelle instruction dans le jeu de p instructions (l'adaptation est réalisée du point de vue positionnel de la gauche vers la droite); 4. si les bits de commande de groupage indiquent que plus de n instructions appartiennent au même groupe, en n'avançant pas le pointeur de décodage dans l'IRF; 5. suite à une modification de commande de flux, en établissant tous les bits de groupage de l'IRF qui ne recevra pas d'écriture pendant le premier cycle de recherche à une valeur qui est telle qu'une instruction qui s'étend sur deux emplacements de mémoire de programme consécutifs (tels qu'adressés par saut) ne puisse pas être groupée à tort avec une instruction laissée dans I'IRF avant que la commande de flux ne survienne. Comme mentionné ci-avant, dans un système muni de "n" processeurs, au moins "n" instructions doivent être lues a la fois à partir de la mémoire de programme (PM) si des retards doivent être évités. Par conséquent, une capacité d'lRF minimum de "n" instructions garantit qu'aucun retard n'est introduit pendant la phase de recherche. Si l'IRF pouvait stocker plus de n instructions, ceci permettrait l'élimination de la phase de recherche lors de sauts jusqu'à des emplacements qui sont déjà dans l'IRF. De ce point de vue, un IRF plus important se comporterait comme une mémoire cache. Cependant, la dimension du circuit d'aiguillage nécessaire pour envoyer une instruction depuis l'IRF jusqu'au processeur approprié devient énorme lorsqu'un quelconque registre d'IRF peut être aiguillé jusqu'à un quelconque processeur, soit une situation qui se produit si l'on souhaite éliminer les NOP gaspilleuses de mémoire en acceptant un registre d'instruction variable. Dans ces conditions, la dimension du circuit d'aiguillage est maintenue à un minimum et aucun retard additionnel n'est introduit pendant la phase de recherche si la capacité de l'IRF est établie à exactement n instructions. Cependant, un troisième facteur pour décider de la dimension de l'IRF est constitué par le gaspillage de l'emplacement de mémoire de programme qui se produit lorsque la dimension de l'IRF est exactement de n et que le nombre d'instructions à décoder et à exécuter à chaque cycle est variable (quelque part entre 1 et n). Lorsque des instructions de dimension variable sont groupées selon des groupes de n et sont stockées dans la mémoire de programme, il peut arriver que l'espace laissé dans le groupe courant ne suffise pas pour recevoir l'instruction suivante, auquel cas le reste du groupe sera rempli avec des NOP et un nouveau groupe sera démarré. Le scénario le pire possible est que (n - 1) emplacements sont disponibles dans le groupe courant tandis que la longueur en termes d'instructions du cycle suivant est exactement de n. Dans un tel cas, le gaspillage pourrait être aussi élevé que (n - 1) instructions. Le meilleur cas est bien évidemment lorsque des instructions peuvent être adaptées exactement dans un groupe de n instructions. Afin de traiter ce gaspillage, il est possible de permettre à une instruction de s'étendre entre deux groupes de longueurs n et par conséquent d'éliminer tout gaspillage des emplacements de la PM. Cependant, cette caractéristique nécessite l'extension de la capacité de l'IRF depuis n jusqu'à 2*n. Un pointeur dans l'IRF indiquera o l'instruction suivante à décoder démarre. Lorsque le pointeur pointe sur une instruction qui démarre dans un groupe et qui se finit dans le groupe suivant, l'instruction ne peut pas être décodée sauf si son reste est recherché à partir de la PM et est disponible dans l'IRF. C'est la raison pour laquelle le doublage de la dimension de l'IRF depuis n jusqu'à 2*n résout le problème du fait que nous pouvons rechercher en alternance dans une moitié de l'IRF ou dans l'autre et lorsqu'une instruction qui s'étend entre deux groupes consécutifs doit être décodée, à la fois le début et la fin de l'instruction sont trouvés dans l'IRF. Un "bouclage" est utilisé dans un tel cas afin de maintenir la continuité d'une instruction. Le fait d'avoir deux pages de n instructions augmente significativement la dimension du circuit d'IRF ainsi que celle du circuit d'aiguillage mais cependant, des économies de mémoire de programme considérables sont rendues possibles (certains exemples concernant une architecture à 4 processeurs ont démontré des économies allant jusqu'à 20 % pour certains programmes). En plus de ceci, 2*n emplacements suffisent pour que le code pour certaines boucles serrées, soit le type typiquement rencontré lors d'un filtrage, soit complètement stocké dans l'IRF et ceci éviterait des recherches dans la mémoire de programme pendant le filtrage et réduirait par conséquent la consommation d'énergie globale de la puce. Si l'on considère ces avantages, un IRF présentant une capacité de 2*n est optimum. L'augmentation de la capacité de l'IRF au-delà de 2*n instructions pourrait réduire la consommation d'énergie dans certains cas mais au prix d'une forte augmentation du coût pour l'IRF et un circuit d'aiguillage et ceci n'est pas justifiable en général. Les bits de commande utilisés pour le groupage sont utilisés pour indiquer quelles instructions provenant de l'IRF doivent être aiguillées jusqu'aux n processeurs pour un décodage pendant le cycle courant. Le nombre minimum de bits utilisés pour cette opération pour chaque instruction est de 1. Le circuit d'aiguillage analysera le bit de groupage pour n instructions d'IRF consécutives et les décisions prises sont résumées dans le tableau 1. Tableau 1: Décodeur de bits de commande de groupage Instr. 1Instr. 2... Instr. n Décision p x x...........x x Cycle d'instruction 1 Bit p p x...........x x Cycle d'instruction 2 _ __ Pxpx..........x x Cycle d'instruction 3 de Etc... group- P...... p x Cycle d'instruction n-1 P........ pp Cycle d'instruction n page........ p p Cycle d'instruction 0, des NOP seront poussées sur tous les processeurs x: ne pas prêter attention, p - 0/1, 1/0 r = [log2 (2n-1)] bits sont requis pour indiquer sur quel processeur une instruction individuelle doit être aiguillée, o []est la partie entière de la fonction définie comme suit: [XI=)çx c. N [x]n,n m o m est tel que m*r > n n'exploitent pas la position de l'instruction dans le groupe. Considérons l'exemple o n = 4. Le nombre de bits d'aiguillage r requis pour l'aiguillage d'une instruction est de: r = [0log2 (2*4-1)] = [2,8] = 2 qui correspond bien entendu aux quatre combinaisons possibles que l'on peut réaliser à l'aide de deux bits. Pour m = 2, nous avons: m*r = 4 = n et ainsi, pour n'importe quel groupe de p > 2 instructions, nous avons une certaine redondance dans les bits d'aiguillage si la position de l'instruction dans le groupe n'est pas exploitée. Pour p = 3, r = 2, n = 4 et les trois instructions qui suivent 1 1.1.1.1 2 2.2.2.2 3 3.3.3.3 gr Or11112... IL gr0 r1 1 2. IL gr0 r1 1112.L o: g représente les bits de groupage r représente les bits d'aiguillage i représente les bits d'instruction L est la longueur d'instruction et si l'on suppose également que les trois instructions doivent aller jusqu'aux processeurs 1, 3 et 4 avec g = 1 et si l'on considère l'assignation naturelle des combinaisons de deux bits, nous obtenons les bits de commande qui suivent pour l'exemple donné: il1 1 2 2 2 3.3.3 000 i1i2..i Ol 1 i2.. iL 11 i1 L Cependant, le groupe qui suit d'instructions identiques devrait être distribué en temps opportun sur les processeurs 1, 3 et 4 pour la simple raison que chaque instruction transporte ses propres bits d'aiguillage et que l'ordre des instructions dans le groupe ne compte pas: 33 3 11 1 22 2 011O i i...i OOOii...i oi i...i 12 L 12 L 12 L Ceci introduit une redondance qui se reflète dans un circuit quelque peu plus rapide mais significativement plus important que dans le cas o la position des instructions dans le groupe devrait être exploitée. Si nous supposons que les trois instructions à aiguiller sur les processeurs 1, 3 et 4 sont placées exactement selon cet ordre lorsqu'elles sont groupées et placées dans la mémoire de programme, nous avons besoin d'exactement n = 4 bits pour démontrer comment la cartographie est réalisée. En concaténant les bits d'aiguillage des deux premières 1 1 22 instructions (r r, et r r) nous obtenons exactement les 4 bits 01 0 1 nécessaires pour démontrer comment l'assignation est réalisée et la table qui suit couvrira tous les cas possibles pour les groupes de 2, 3 et 4 instructions. Tableau 2: Assignation de bits d'aiguillage proposée 1 1 2 2 Décision d'aiguillage p r0rlr0r2 20011.1.1 .1.2.2 .2 2 0011 NOP-->proc.1, NOP->proc.2, 1i...iL ->proc.3, i i2...iL ->proc. 4 12.. L 1 2 "L 2 0101.1.1.1.222 2 0i0 NOP->proc.1, i1i2.iL ->proc.2, NOP--proc.3, i2i22 i ->proc.4 2 1001.1.1.1 2.2.2 i 1112... IL ->proc.1, NOP-proc.2, NOP-->proc.3, 111 i2... iL --proc.4 NOP-,proc.1, 112...iL ->proc.2, 1112.IL NOP-->proc.3, -proc.4 2 1010.1.1.1.2.2 .2 2 1010 ii L l->proc. 1, NOPL->proc.2, 1i2. iL ->proc.3, NOP -->proc.4 2 1100.1.1.1 2.2.2 11 12...IL2 L -->proc. 1, i112...iL -->proc.2, NOP ->proc.3, NOP- >proc.4, 30111.1.1.1 .2.2.2. 3.3.3 3 0111 NOP->proc.1, i -proc.2, i2i i -->proc.3, i1i2 iL -->proc.4, 3 1011.1.1.1.2.2 .2 .3.3.3 3 1011 i12 iL -p->roc.1, NOP->proc.2, ii2. iL -->proc.3, 1i2 iL 12 L 1 2...L c '2oL -->proc.4, 3 1101.1.1.1.2.2 .2.3.3 .3 112 IL --proc. 1, 1112. -- >proc.2, NOP--->proc.3, 1 3Ii 1..L 1 2.. 12..L -_->proc.4, 3 1110.1.1.1.2.2 .2.3.3.3 1 1112...L -->proc. 1, 12.. I -->proc.2, i i2... IL -,proc.3, 1 2" L '1 2..L> 12..L NO P-->proc.4, 4 1111.1.1.1.2.2 .2.3.3.3 1 2 IiL ->proc. 1, 1112...I -- >proc.2 1112i...I -proc.3, 1 2..L 1 2..L 12..L 4.4.4 11 i2... IL p->roc.4, En fonction de la manière dont le circuit est mis en oeuvre, le dernier codage pourrait s'avérer redondant également du fait que pour le cas p = 4, il est clair de déterminer quelle instruction va sur quel processeur (du fait que nous disposons d'un nombre égal d'instructions et de processeurs). Par retour à l'exemple précédent, nous voyons maintenant que des bits r0r13 ne sont plus utilisés. Ces bits sont redondants. Dans le cas de quatre instructions dans le groupe, non seulement nous avons le fait que deux bits supplémentaires deviennent redondants (r 0r1) mais en fonction de la mise en oeuvre, même les quatre premiers bits 12 22 (r0r1 et r0 r1) pourraient être redondants. Du fait que l'aiguillage des instructions depuis l'IRF jusqu'aux processeurs est réalisé après que les instructions ont été recherchées à partir de la mémoire de programme dans l'IRF, au moins un cycle de retard sera introduit pendant une modification de flux d'instructions jusqu'à un emplacement de la PM qui n'est pas déjà chargé dans l'IRF. Pendant ce temps, des NOP seront poussées sur tous les processeurs. Cependant, si l'instruction, au niveau de l'adresse jusqu'à laquelle on vient d'arriver par saut, est une instruction qui s'étend sur deux groupes consécutifs de n instructions, un cycle additionnel est nécessaire pour charger le second groupe dans la seconde page de I'IRF avant que l'instruction ne puisse être réellement aiguillée jusqu'au processeur approprié. Cependant, du fait des instructions précédentes laissées dans cette page de l'IRF, un aiguillage précoce et erroné peut être réalisé si, pendant un saut, la seconde page de l'IRF (la première dans ce cas étant celle sur laquelle le premier emplacement de la PM est recherché) avait tous ses bits de groupage établis à g de telle sorte que le décodeur serait forcé d'aller par défaut au dernier cas de la table 1, aucune NOP n'étant poussée sur tous les processeurs et le pointeur dans l'IRF maintenant sa valeur ancienne. Ceci est une façon très élégante de manipuler les sauts du fait qu'elle ne nécessite pas un quelconque circuit additionnel. En outre, le circuit fonctionnera tout simplement de la même façon que pendant une remise à l'état initial (RESET) lorsque tous les bits de groupage seront maintenus à g et que des NOP seront poussées automatiquement sur toutes les unités tandis que le pointeur sera bloqué à 0. La figure 3 représente un exemple d'une mise en oeuvre selon la présente invention incluant quatre processeurs, trois bits de commande (un pour le groupage et deux pour l'aiguillage) et un IRF avec deux pages de quatre instructions chacune. Le circuit qui permet d'écrire dans l'IRF, sur la base de la valeur du pointeur d'IRF courant, les bits de groupage et de commande et les instructions à exécuter ne sont pas représentés sur la figure 3. A partir de la mémoire de programme, quatre bus transportent quatre instructions jusqu'à l'IRF pendant un cycle de recherche. Chaque bus est d'une largeur de Lo + 1 bits constitués par trois bits de commande et L bits d'instruction de telle sorte que Lc = L + 2. Bien qu'une mise en oeuvre de l'invention ait été décrite et illustrée, il apparaîtra à l'homme de l'art que plusieurs modifications doivent être apportées sans que l'on s'écarte du concept de base Il est bien entendu que ces modifications tomberont dans le cadre de l'invention telle que définie par les revendications annexées. REVENDICATIONS 1. Procédé d'amélioration de l'utilisation d'une mémoire de programme dans une architecture à multiples processeurs parallèles comportant une mémoire de programme pour stocker des instructions de processeur et un fichier de registres d'instruction pour décoder des instructions recherchées dans ladite mémoire de programme pour une exécution par certains sélectionnés desdits processeurs parallèles, ledit procédé étant caractérisé en ce qu'il comprend: (a) le partitionnement dudit fichier de registres d'instruction (b) I'application d'un bit de groupage sur lesdites instructions afin d'identifier le cycle de recherche auquel ladite instruction appartient; et (c) I'application de bits d'aiguillage sur lesdites instructions pour désigner sur lequel desdits processeurs ladite instruction doit être aiguillée, la position desdits bits d'aiguillage dans lesdites instructions procurant une information d'aiguillage. 2. Procédé selon la revendication 1, caractérisé en ce que ledit fichier de registres d'instruction est partitionné en deux sections. 3. Procédé selon la revendication 2, dans lequel le nombre de processeurs parallèles est de n et la capacité du fichier de registres d'instruction est de 2n. 4. Procédé selon la revendication 3, caractérisé en ce que le nombre de bits d'aiguillage (r) est conforme à l'expression r = [log2 (2n-1)]. 5. Procédé selon la revendication 1, caractérisé en ce que ledit bit de groupage est utilisé pour indiquer quelles instructions provenant du fichier de registres d'instruction doivent être décodées dans le cycle courant. 6. Système permettant de distribuer des instructions depuis une mémoire de programme sur de multiples processeurs parallèles, caractérisé en ce qu'il comprend: un fichier de registres d'instruction partitionné (IRF) pour recevoir et décoder des instructions provenant de ladite mémoire de programme; de multiples bus pour transporter des instructions depuis ladite mémoire de programme jusqu'audit IRF; un circuit d'aiguillage pour diriger des instructions sur certains désignés desdits processeurs parallèles; et une séquence de codage d'aiguillage de bits pour distribuer des instructions, ledit codage d'aiguillage utilisant la position d'instruction dans ladite séquence pour constituer une information d'aiguillage. 7. Système selon la revendication 6, caractérisé en ce que ledit fichier de registres d'instruction est partitionné en deux pages. 8. Système selon la revendication 7, caractérisé en ce qu'il comprend "n" processeurs parallèles. 9. Système selon la revendication 8, caractérisé en ce que ledit fichier de registres d'instruction présente une capacité de 2n. 10. Système selon la revendication 6, caractérisé en ce que le positionnement des instructions en relation avec ladite séquence est de la gauche vers la droite. 11. Architecture à multiples processeurs parallèles caractérisée en ce qu'elle comporte une mémoire de programme pour stocker des codes instructionnels; un fichier de registres d'instruction partitionné pour retrouver ledit code instructionnel dans ladite mémoire de programme et pour décoder lesdites instructions; un moyen de groupage et d'aiguillage pour diriger lesdites instructions décodées sur certains sélectionnés desdits processeurs parallèles conformément à une séquence d'aiguillage, I'emplacement d'instructions sélectionnées dans ladite séquence procurant une information d'aiguillage. 12. Architecture à multiples processeurs parallèles selon la revendication 11, caractérisée en ce que ledit fichier de registres d'instruction partitionné inclut au moins deux paquets d'instructions consécutifs. 13. Architecture à multiples processeurs parallèles selon la revendication 12, caractérisée en ce que l'emplacement d'instructions dans ladite séquence d'aiguillage désigne sur lesquels desdits multiples processeurs lesdites instructions doivent être aiguillées. 14. Architecture à multiples processeurs parallèles selon la revendication 13, caractérisée en ce que ladite désignation d'emplacement est agencée selon une configuration de la gauche vers la droite.