Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
SYSTEM FOR TRANSMITTING INTRANODAL COMMAND INSTRUCTIONS OR INTERNODAL COMMUNICATIONS IN A PROCESSOR NODE
Document Type and Number:
WIPO Patent Application WO/1995/009398
Kind Code:
A1
Abstract:
A system for transmitting instructions in a processor node (200), where the communications processor (3) has a cache memory (6) of known capacity, comprises means for copying instructions (9) directly on the fly via the memory bus (4) to the available memory slots (10) in cache memory (6) in parallel with loading into memory (4) when the number of instructions (9) is less than the number of available memory slots (10), or means for copying instructions (9) in bursts not exceeding the number of available memory slots (10) from memory (4) to the available memory slots (10) in cache memory (6) when the number of instructions (9) exceeds the number of available memory slots (10).

Inventors:
QUENOT GEORGES (FR)
Application Number:
PCT/FR1994/001055
Publication Date:
April 06, 1995
Filing Date:
September 07, 1994
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
HYPERPARALLEL TECHNOLOGIES (FR)
QUENOT GEORGES (FR)
International Classes:
G06F5/06; G06F13/12; (IPC1-7): G06F13/12; G06F5/06
Domestic Patent References:
WO1983001326A11983-04-14
Foreign References:
EP0442716A21991-08-21
US5079694A1992-01-07
Download PDF:
Claims:
R E V E N D I C A T I O N S
1. Système de transmission d'instructions (9) de commande intranodale ou de communication internodale dans un noeud processeur (200) faisant partie d'une pluralité de noeuds processeur (200) interconnectés en réseau dans un ordinateur massivement parallèle, une partie des noeuds (200) comprenant un processeur de travail (2) ; un processeur de communication internodale (3) ; une mémoire (4) ; et un contrôleur (5) , caractérisé en ce que, la mémoire (4) étant une mémoire tampon circulaire adressable (4) , et le processeur de communication (3) comprenant un système d'accès direct par adresse virtuelle à une mémoire et un régisseur de mémoire virtuelle compatible avec celui du processeur de travail (2) , et une mémoire cachée (6) de capacité connue, le contrôleur (5) comprend : a) des moyens pour charger chronologiquement les instructions (9) de commande ou de communication générées par le processeur de travail (2) dans l'espace mémoire disponible de la mémoire tampon circulaire adressable (4) ; b) des moyens pour compter le nombre d'instructions (9) de commande ou de communication stockés dans la mémoire tampon circulaire adressable (4) et le nombre de cases mémoire disponibles (10) de la mémoire cachée (6) du processeur de communication internodale (3) , et des moyens pour copier chronologiquement les instructions (9) de commande ou de communication directement à la volée sur le bus de la mémoire tampon circulaire adressable (4) vers les cases mémoire disponibles (10) de ladite mémoire cachée (6) du processeur de communication internodale (3) , parallèlement au chargement dans la mémoire tampon circulaire adressable (4) , lorsque le nombre d'instructions (9) de commande ou de communication est inférieur au nombre de cases mémoire disponibles (10) , ou des moyens pour copier chronologiquement de la mémoire tampon circulaire adressable (4) les instructions (9) de commande ou de communication en salve inférieure ou égale au nombre de cases mémoire disponibles (10) vers les cases mémoire disponibles (10) de ladite mémoire cachée (6) du processeur de communication internodale (3) , lorsque le nombre d'instructions (9) de commande ou de communication est supérieur au nombre de cases mémoire disponibles (10) ; c) des moyens pour exécuter chronologiquement tout ou partie des instructions (9) de commande ou de communication copiées ; d) des moyens pour rendre disponible l'espace mémoire de la mémoire tampon circulaire adressable (4) contenant les instructions (9) de commande ou de communication exécutées e) des moyens pour rendre disponible les cases mémoires de la mémoire cachée (6) contenant les instructions (9) de commande ou de communication exécutées.
2. Système selon la revendication 1 caractérisé en ce qu'il comprend des moyens (16) pour optimiser les salves d'instructions.
3. Système selon la revendication 1 ou 2 caractérisé en ce qu'il comprend des moyens (16) pour optimiser la salve d'instructions (9) de commande ou de communication à copiée afin de passer en mode "à la volée" dés que possible.
4. Système selon l'une quelconque des revendications 1 à 3 caractérisé en ce que le processeur de travail (2) comprend des moyens pour incrementer un pointeur d'écriture interne (17) à chaque fois qu'une instruction est chargée dans la mémoire tampon circulaire adressable (4) ; et le processeur de communication (3) comprend des moyens pour espionner le bus d'adresse (7a) du processeur de travail (2) et des moyens pour détecter le chargement d'une instruction et pour mettre à jour une copie du pointeur d'écriture (17) dans ses registres internes.
5. Système selon l'une quelconque des revendications 1 à 4 caractérisé en ce que le processeur de communication (3) comprend des moyens pour incrementer un pointeur de lecture interne (18) à chaque fois qu'une instruction (9) de commande ou de communication est exécutée.
6. Système selon l'une quelconque des revendications 1 à 5 caractérisé en ce qu'il comprend : des moyens pour prétraiter au moins un jeu (33) d'instructions (9) de communication destinés à être fréquemment exécutées ensemble ; et des moyens pour stocker ledit jeu (33) d'instructions de communication prétraité dans une mémoire de stockage (30) .
7. Système selon la revendication 6 caractérisé en ce qu'il comprend des moyens pour copier tout ou partie du jeu (33) d'instructions de communication prétraité à exécuter, directement de la mémoire de stockage (30) vers la mémoire cachée (6) du processeur de communication (3) , sans passer par la mémoire tampon circulaire (4) .
8. Système selon la revendication 7 caractérisé en ce que les moyens pour copier tout ou partie du jeu (33) d'instructions comprennent : des moyens de commutation pour commuter de la mémoire tampon circulaire adressable (4) vers la mémoire de stockage (30) ; des moyens (31) pointeur d'adresse pour localiser le jeu (33) d'instructions dans la mémoire de stockage (30) ; des moyens (32) compteur d'instructions incrémentés après chaque instruction copiée vers la mémoire cachée (6) jusqu'au nombre d'instructions constitutives dudit jeu (33).
9. Noeud processeur faisant partie d'une pluralité de noeuds processeur interconnectés en réseau dans un ordinateur massivement parallèle, ledit noeud comprenant un processeur de travail (2) ; un processeur de communication internodale (3) ; une mémoire (4) et un contrôleur (5) , caractérisé en ce que : la mémoire est une mémoire tampon circulaire adressable (4) ; le processeur de communication (3) comprend un système d'accès direct à une mémoire par adresse virtuelle et un régisseur de mémoire virtuelle compatible avec celui du processeur de travail (2) , et une mémoire cachée (6) de capacité connue ; et en ce qu'il comprend un système de transmission d'instructions selon l'une quelconque des revendications 1 à 8.
10. Noeud selon la revendication 9 caractérisé en ce que la mémoire tampon circulaire adressable (4) émule une mémoire de type "premier entré/premier sorti".
11. Noeud selon la revendication 9 ou 10 caractérisé en ce que la mémoire tampon circulaire adressable (4) est une partie de la mémoire interne (100) du processeur de travail (2) .
12. Noeud selon l'une quelconque des revendications 9 à 11 caractérisé en ce que la mémoire cachée (6) du processeur de communication (3) est de type "premier entré/premier sorti".
13. Noeud selon l'une quelconque des revendications 9 à 12 caractérisé en ce que la mémoire de stockage des jeux d'instructions (33) prétraités est une partie de la mémoire interne (100) du processeur de travail (2) .
14. Noeud selon l'une quelconque des revendications 8 à 13 caractérisé en ce que le processeur de communication (3) comprend une deuxième mémoire cachée (6b) spécifiquement dédiée aux jeux d'instructions (33) prétraités. 15. Ordinateur massivement parallèle comportant une pluralité de noeuds processeurs interconnectés en réseau caractérisé en ce qu'au moins une partie des noeuds processeurs sont selon l'une quelconque des revendications 8 à 14.
Description:
SYSTEME DE TRANSMISSION D'INSTRUCTIONS DE COMMANDES INTRANODALES OU DE COMMUNICATIONS INTERNOD-ALES

DANS UN NOEUD PROCESSEUR

L'invention concerne un système de transmission d'instruction de commande intranodale ou de communication internodale dans un noeud processeur faisant partie d'une pluralité de noeuds processeurs interconnectés en réseau dans un ordinateur massivement parallèle. L'invention concerne également un noeud processeur pourvu d'un tel système de transmission et un ordinateur massivement parallèle pourvu de ce type de noeud processeur.

Un ordinateur massivement parallèle est constitué par un certain nombre de noeuds processeurs interconnectés en réseau. Chaque noeud processeur est en général constitué par un processeur de travail, un système mémoire, et un processeur spécialisé de communication.

Le processeur de travail peut aussi bien être un processeur de traitement de données ou un dispositif de contrôle d'entrée-sortie.

Le système mémoire est en général constitué d'une mémoire principale, et éventuellement d'un cache, partagés entre le processeur de travail et le processeur de communication qui en ont une vue cohérente. Le processeur de communication est connecté au processeur de travail et au système mémoire. Il reçoit des commandes de communications du processeur de travail et les exécute. Le processeur de communication est aussi connecté aux autres processeurs de communications des autres noeuds par l'intermédiaire du réseau. Le processeur de communication est aussi responsable de l'acheminement du message du noeud à travers le réseau.

Pour réaliser efficacement les implémentations d'applications parallèles, la tendance est à l'utilisation de processeur de communication ayant un haut ' débit d'information et un petit temps de latence. C'est pourquoi, il est très important que les instructions de communications à l'intérieur du noeud soient lancées et exécutées le plus simplement et le plus rapidement possible.

Le brevet EP-A-0 442 716 concerne la gestion d'une mémoire tampon pour réguler les accès et contrôler les messages dans un dispositif multiprocesseur, mais le problème de temps d'accès n'est pas résolu. De même, dans le brevet O-A-8301326 où il s'agit d'un mécanisme d'interface entre un processeur principal et un processeur contrôleur de périphérique, la communication de données se fait par paquet sur un bus d'entrée/sortie vers une zone spécifique se situant dans la mémoire principale et par l'intermédiaire de deux files d'attente circulaires. Ces files d'attente permettent à chaque processeur de fonctionner selon sa propre vitesse sans pour autant que des conditions de course soient créées.

Par contre, le brevet US-A-5,077,694 concerne un ordinateur ayant une zone mémoire de travail dans le but de réduire le temps d'accès mémoire. Les données traitées ne sont pas directement écrites dans cette zone de travail mais sont stockées temporairement dans un circuit de verrouillage situé entre le processeur et la mémoire. L'opération d'écriture de ces données est effectuée parallèlement à la lecture des données suivantes et/ou à une exécution d'instructions du processeur.

Ainsi, la vitesse de traitement est améliorée mais non optimisée dans le cas par exemple de jeux d'instructions souvent utilisés ou de nombreuses communications non structurées.

Le but de la présente invention est de proposer un système de transmission d'instruction de commande intranodale ou de communication internodale dans un noeud processeur de telle sorte qu'il y ait une réduction sensible de l'utilisation du bus mémoire, qu'il soit très efficace pour les communications non structurées (grand nombre de messages courts avec des schémas de communication irréguliers) et qu'il réduise sensiblement le temps CPU local pour l'exécution de jeux d'instructions de communication souvent utilisés. A cet effet, l'invention concerne un système de transmission d'instruction de commande intranodale ou de communication internodale dans un noeud processeur faisant partie d'une pluralité de noeud processeur interconnectés en réseau dans un ordinateur massivement parallèle, chaque noeud

comprenant un processeur de travail, un processeur de communication internodal, une mémoire, et un contrôleur.

Selon l'invention, une partie de la mémoire est utilisée comme une mémoire tampon circulaire, le processeur de communication comprend un système d'accès direct à cette mémoire par une adresse virtuelle et un régisseur de mémoire virtuelle compatible avec celui du processeur de travail et une mémoire cachée de capacité connue.

Selon l'invention, le système de transmission comprend : - des moyens pour charger chronologiquement les instructions de commande ou de communication générées par le processeur de travail dans l'espace mémoire disponible de la mémoire tampon circulaire adressable ;

- des moyens pour compter le nombre d'instructions de commande ou de communication stockées dans la mémoire tampon circulaire adressable et le nombre de cases mémoire disponibles dans la mémoire cachée du processeur de communication internodale, et

* des moyens pour copier chronologiquement les instructions de commande ou de communication directement à la volée sur le bus de la mémoire tampon circulaire adressable vers les cases mémoires disponibles de ladite mémoire cachée du processeur de communication internodale, et cela parallèlement au chargement de la mémoire tampon circulaire adressable, lorsque le nombre d'instructions de commande ou de communication est inférieur au nombre de cases mémoire disponible, ou

* des moyens pour copier chronologiquement de la mémoire tampon circulaire adressable les instructions de commande ou de communication en salve inférieures ou égales au nombre de cases mémoire disponibles vers les cases mémoire disponibles de ladite mémoire cachée du processeur de communication internodale, lorsque le nombre d'instructions de commande ou de communication est supérieur au nombre de cases mémoire disponibles ;

- des moyens pour exécuter chronologiquement tout o partie des instructions de commande ou de communication copiées

- des moyens pour rendre disponible l'espace mémoire de la mémoire tampon circulaire adressable contenant les instructions de commande ou de communication exécutées ;

- des moyens pour rendre disponible les cases mémoires de la mémoire cachée contenant les instructions de commande ou de communication exécutées.

L'invention concerne aussi un noeud processeur comprenant un système de transmission selon l'invention.

L'invention concerne enfin un ordinateur massivement parallèle pourvu d'une pluralité de noeud processeur selon l'invention.

Les avantages principaux de la présente invention sont :

- une réduction sensible de l'utilisation du bus mémoire grâce au mode de capture des instructions à "la volée", - une réduction de l'utilisation du bus mémoire par l'utilisation optimale de la capture "en salve".

Toujours selon l'invention, le système de transmission comprend des moyens pour traiter au moins un jeu d'instructions de communication destiné à être fréquemment exécuté et des moyens pour stocker ledit jeu d'instructions de communication dans une mémoire de stockage. Le système comprend en outre des moyens pour copier tout ou partie du jeu d'instruction de communication prêt à être exécuté directement de la mémoire de stockage vers la mémoire cachée du processeur de communication sans passer par la mémoire tampon circulaire.

De ce fait, un autre avantage principal de la présente invention repose sur la réduction du temps CPU intranodale et donc du temps CPU de l'ordinateur massivement parallèle pour exécuter des jeux d'instruction de communication répétitif. D'autres caractéristiques et avantages de l'invention résulteront de la description qui va suivre en référence aux dessins annexés dans lesquels : la figure 1 représente une vue schématique en diagrammes d'un noeud processeur selon la présente invention ; - la figure 2 représente une vue schématique de la mémoire système selon l'invention ; la figure 3 représente une vue schématique en diagrammes des moyens intervenant dans les modes de fonctionnement selon l'invention.

L'ordinateur massivement parallèle selon l'invention comprend une pluralité de noeud processeur 200 interconnecté en réseau. Le réseau peut être quelconque, bidimensionnel ou tridimensionnel. Au moins une partie des noeuds processeur du réseau comprennent chacun un processeur de travail 2, un processeur de communication internodale 3, et une mémoire 100.

Le processeur de travail 2 peut être un processeur de traitement de données ou un contrôleur de dispositif d'entrée- sortie.

Ce processeur de travail 2 est connecté à une mémoire 4 par l'intermédiaire des moyens de bus 7 comprenant un bus de données 7a, un bus d'adresses 7b et un bus de commande 7c, 7d. Cette mémoire 4 est une mémoire tampon circulaire 4 adressable. Dans un mode de réalisation avantageux, cette mémoire tampon circulaire adressable 4 émule une mémoire de type "premier entré/premier sorti". En outre, cette mémoire 4 peut éventuellement faire partie de la mémoire interne 100 du processeur de travail 2. Le processeur de travail 2 est relié au processeur de communication 3 par l'intermédiaire des mêmes bus de données 7a, d'adresses 7b, et de commande 7c, 7d, que précédemment. Ledit processeur de communication 3 comporte un système d'accès direct par adresse virtuelle à la mémoire et un régisseur de mémoire virtuelle 14 compatible avec celui du processeur de travail 2, et une mémoire cachée 6 de capacité connue. Avantageusement, cette mémoire cachée 6 de capacité connue est de type "premier entré/premier sorti".

Cette mémoire cachée 6 contient les instructions 9 de commande en passe d'être exécutées. La sortie de cette mémoire cachée 6 est l'instruction 9 de commande en cours d'exécution par le processeur de communication 3.

Un contrôleur 5 gère l'ensemble du noeud 200.

Le système de transmission 1 d'instruction 9 de commande intranodale ou de communication internodale au sein d'un noeud processeur 200 comprend :

- des moyens de bus 7 pour charger chronologiquement dans l'espace mémoire disponible 8 de la mémoire tampon circulaire adressable 4, les instructions 9 de commande ou de communication générées par le processeur de travail 2 ;

- des moyens 15 pour comparer le nombre d'instructions 9 de commande ou de communications stockées dans la mémoire tampon circulaire adressable 4 avec le nombre de cases mémoire disponibles 10 dans la mémoire cachée 6 du processeur de communication internodale 3.

Le système de transmission dispose grâce au contrôleur 5 de deux modes de fonctionnement différents et bascule de l'un à l'autre en fonction du nombre d'instructions 9 de commande ou de communication et du nombre de cases mémoires disponibles 10. Dans un premier mode de fonctionnement dit "à la volée", le nombre d'instructions 9 de commande ou de communication est inférieur au nombre de cases mémoire disponibles. Dans ce cas de figure, le contrôleur 5 comprend des moyens 12 pour copier chronologiquement les instructions 9 de commande ou de communication directement à la volée sur le bus de données de la mémoire tampon circulaire adressable 4 vers les cases mémoire disponibles 10 de la mémoire cachée 6 du processeur de communication internodale 3. Cette copie directe à la volée se fait parallèlement au chargement des instructions 9 de commande dans la mémoire tampon circulaire adressable 4.

Dans un deuxième mode de fonctionnement dit "en salve", le nombre d'instructions 9 de commande ou de communication est supérieur au nombre de cases mémoire disponibles 10 de la mémoire cachée 6 du processeur de communication internodale 3. Dans ce cas, le contrôleur 5 dispose de moyens 13 pour copier chronologiquement de la mémoire tampon circulaire adressable 4 vers les cases mémoire disponibles 10 de la mémoire cachée 6 du processeur de communication internodale 3 les instructions 9 de commande ou de communication sous forme de salve comprenant un nombre d'instructions 9 de commande inférieur ou égal au nombre de cases mémoire disponibles 10.

Le contrôleur 5 selon l'invention comporte avantageusement des moyens 16 pour optimiser la salve d'instructions à copier. Ces moyens d'optimisation 16 de la salve d'instructions à copier sont destinés à faire passer le système en mode "à la volée" dès que possible. En effet, le mode "à la volée" est le plus . performant en matière de temps et d'occupation des bus mémoire.

Dans un mode de fonctionnement comme dans l'autre, le contrôleur 5 selon l'invention comprend :

- des moyens pour exécuter chronologiquement tout ou partie des instructions 9 de commande ou de communication copiées ;

- des moyens de pointeur 17, 18 pour rendre disponible l'espace mémoire 8 de la mémoire tampon circulaire adressable 4 contenant les instructions 9 de commande ou de communication exécutées ; - des moyens pour rendre disponible les cases mémoires de la mémoire cachée 6 contenant les instructions 9 de commande ou de communication exécutée.

Avantageusement, le processeur de travail 2 comprend des moyens pour incrementer un pointeur d'écriture interne 17 chaque fois qu'une instruction 9 de commande est chargée dans la mémoire tampon circulaire adressable 4 ; et le processeur de communication 3 comprend des moyens pour espionner le bus d'adresse du processeur de travail 2 et des moyens pour détecter le chargement d'une instruction 9 de commande et pour mettre à jour une copie du pointeur d'écriture 17 dans ses registres internes.

Le processeur de communication 3 comprend avantageusement des moyens pour incrementer un pointeur de lecture interne 18 chaque fois qu'une instruction 9 de commande ou de communication est exécutée.

Ces deux pointeurs d'écriture 17 et de lecture 18 permettent donc à la mémoire tampon circulaire adressable 4 d'émuler une mémoire du type "premier entré/premier sorti".

Avec le mode de fonctionnement "à la volée" ou "en salve", et le stockage des informations dans la mémoire cachée 6 de type "premier entré/premier sorti" du processeur de communication 3, on diminue sensiblement l'utilisation des bus mémoire et l'on accélère ainsi la transmission d'information.

Dans une forme de réalisation possible et non limitative, les moyens 15 de comparaison comprennent un compteur/décompteur et un opérateur arithmétique.

Le compteur/décompteur, initialement à zéro, est incrémenté chaque fois qu'une instruction est écrite à la volée dans la mémoire cachée 6, ou augmenté du nombre d'éléments contenus dans une salve chaque fois qu'une salve d'instructions

est transférée dans la mémoire cachée 6. Il est décrémenté chaque fois qu'une instruction est exécutée et enlevée de la mémoire cachée 6. Ce compteur contient le nombre de cases occupées par des instructions dans la mémoire cachée 6. L'opérateur arithmétique, composé de deux soustracteurs calcule successivement :

- Le nombre total d'instructions présentes dans la mémoire tampon circulaire 4 par différence entre le pointeur d'écriture 17 et le pointeur de lecture 18 (modulo la longueur de la mémoire tampon , puisque celui-ci est circulaire) .

- Le nombre d'instructions présentes dans la mémoire tampon circulaire 4 et non encore transférées dans la mémoire cachée 6 par différence entre le résultat précédent et le compteur contenant le nombre de cases occupées par des instructions dans la mémoire cachée 6.

Si le résultat est nul, il y a connexion en mode à la "volée" (il n'y a pas de retard, il y a exactement autant d'instructions stockées dans la mémoire tampon circulaire 4 que dans la mémoire cachée 6) . Si le résultat est non nul, il y a connexion en mode en

"salve" (il y a du retard, il y a plus d'instructions stockées dans la mémoire tampon circulaire 4 et dans la mémoire cachée 6).

Le but des moyens 12 est de commander le transfert des instructions à la volée vers la mémoire cachée 6.

Les moyens 12 comprennent, par exemple non limitatif, un comparateur entre le pointeur d'écriture 17 et l'adresse présente sur le bus 7b qu'elle surveille en permanence (le pointeur 17 contient l'adresse de la prochaine instruction à écrire dans la mémoire tampon circulaire 4 et non pas celle de la dernière instruction précédemment écrite) .

S'il y a concordance entre les deux valeurs ET si le cycle sur le bus est un cycle d'écriture du processeur ET si l'on est en mode à la volée, alors une commande d'écriture de la partie donnée 7a du bus 7 vers la mémoire cachée 6 est activée.

Le but des moyens 13 est de commander le transfert des instructions en salve vers la mémoire cachée 6.

Ces moyens 13 déterminent quand effectuer les salves de chargement et . lorsqu'ils les déclenchent, ils fournissent l'adresse et la longueur de la salve au système d'accès direct à

la mémoire 14 qui exécute les requêtes de salves. Lorsque celui- ci reçoit les instructions de la salve, les moyens 13 génèrent des commandes de copie des instructions de la salve dans la mémoire cachée 6. S'il y a assez de place dans la mémoire cachée 6 ET si le mode de fonctionnement est en salve, alors une requête pour une salve est activée. A cet effet, les moyens 13 comprennent, par exemple non limitatif, un soustracteur et un comparateur.

Les moyens 13 utilisent la valeur du compteur des moyens 15 contenant le nombre de cases occupées par des instructions dans la mémoire cachée 6. Par différence avec la taille de la mémoire cachée 6 est déterminé le nombre de cases vides dans la mémoire cachée 6. La comparaison avec la taille optimale de la salve permet de décider d'activer ou non une requête pour une salve de lecture.

Les moyens 13 déterminent l'adresse initiale de la salve de lecture destinée à charger la mémoire cachée 6. Cette adresse est obtenue grâce à un additionneur qui fournit l'adresse de la première instruction à charger en additionnant la valeur du pointeur de lecture 17 de la mémoire tampon circulaire 4 et la valeur du compteur 11 des moyens 15 contenant le nombre de cases occupées par des instructions dans la mémoire cachée 6.

Les moyens 13 déterminent la longueur (nombre d'instructions) de la salve de lecture destinée à charger la mémoire cachée 6. Cette longueur est égale à la taille optimale des salves sur le bus 7 (qui dépend de l'implementation choisie pour le système mémoire) sauf dans les deux cas suivants :

- Si le nombre d'instructions présentes dans la mémoire tampon circulaire 4 et non encore transférées dans la mémoire cachée 6 est strictement inférieur à la taille optimale de la salve (on ne peut pas aller chercher plus d'instructions qu'il n'en reste) . Dans ce cas, ce nombre devient la taille de la salve à effectuer (ceci termine en fait une série de salves, la dernière étant incomplète, on repasse ensuite en mode à la volée) .

- Si, lors de la première salve d'une série, l'adresse initiale n'est pas alignée de manière optimale par rapport au fonctionnement du système mémoire (en effet, les systèmes mémoires des cartes processeurs modernes fonctionnent généralement de la manière la plus efficace en transférant des

blocs de données alignés sur des multiples entiers de la taille des blocs) . Dans ce cas, la taille de la salve est choisie de telle sorte que les prochaines salves soient alignées (la première salve est limitée par la première frontière de bloc) . Le nombre d'instructions présentes dans la mémoire tampon circulaire 4 et non encore transférées dans la mémoire cachée 6 est fourni par la sortie finale de l'opérateur arithmétique des moyens 15. Une première taille de salve est fournie par un opérateur des moyens 13 calculant le minimum entre la taille optimale (fixe) et le nombre reçu de l'opérateur arithmétique des moyens 15.

La taille finale de la salve est obtenue en tronquant celle-ci pour la forcer à terminer sur une frontière de bloc si nécessaire. Les moyens 16 sont, par exemple non limitatif, un multiplexeur permettant de choisir les signaux de contrôle venant soit des moyens 12 soit des moyens 13, suivant le mode de fonctionnement déterminé par les moyens 15.

II arrive très fréquemment que les applications tournant sur les systèmes parallèles exécutent beaucoup de procédures contenant des jeux d'instructions de communication identiques.

Dans l'art antérieur, à chaque itération le processeur de travail 2 génère la même séquence d'instruction de communication qui est chargée dans la mémoire. Cela entraîne naturellement un coût en temps CPU et en temps d'utilisation des bus mémoire.

Dans un premier mode de réalisation selon l'invention, le contrôleur 5 comprend des moyens pour prétraiter et stocker dans une mémoire de stockage les jeux d'instructions de communication destinés à être utilisés fréquemment. Le contrôleur 5 comporte des moyens de copie de bloc mémoire pour copier le jeu d'instructions prétraité dans la mémoire tampon circulaire adressable 4. Cette première solution permet de réduire sensiblement le temps CPU mais nécessite malgré tout une grande utilisation des bus mémoire.

Dans un deuxième mode de réalisation selon l'invention, et avantageusement, le système de transmission comprend des moyens pour prétraiter au moins un jeu 33 d'instructions de communication destinées à être fréquemment exécuté ensemble ; et

des moyens pour stocker ledit jeu 33 d'instructions de communication prétraité dans une mémoire de stockage 30.

Le système de transmission comprend en outre des moyens de commutation de la mémoire tampon circulaire adressable 4 vers la mémoire de stockage 30 ; des moyens pour copier tout ou partie du jeu 33 d'instructions de communication prétraités à exécuter directement de la mémoire de stockage 30 vers la mémoire cachée 6 du processeur de communication 3, sans passer par la mémoire tampon circulaire 4. Avantageusement, les moyens pour copier tout ou partie du jeu d'instructions comprennent des moyens pointeur d'adresse 31 pour localiser le jeu d'instructions dans la mémoire de stockage

30 et des moyens compteur d'instructions 32 incrémentés après chaque instruction copiée vers la mémoire cachée 6 jusqu'au nombre d'instructions 9 de commande constitutives dudit jeu 33.

Avantageusement, la copie du jeu d'instructions de la mémoire de stockage 30 vers la mémoire cachée 6 peut se faire selon le mode "en salve".

En utilisant ce deuxième mode de réalisation, on économise à la fois le temps processeur et l'utilisation des bus mémoire.

Dans ce deuxième mode de réalisation, il est possible d'utiliser la même mémoire cachée 6 que pour la mémoire tampon circulaire adressable 4 ou une mémoire cachée 6b spécifiquement dédiée à la mémoire de stockage 30.

Dans le cas où l'on utilise la même mémoire cachée 6, il est nécessaire d'avoir des moyens d'effacement de la mémoire cachée 6 au moment où les moyens de commutation de la mémoire tampon circulaire adressable 4 vers la mémoire de stockage 30 sont activés et des moyens pour remplir à nouveau ladite mémoire cachée 6 quand le jeu 33 d'instructions prétraité a été exécuté.

L'un ou l'autre des choix est envisageable en fonction de la longueur moyenne des jeux 33 d'instructions prétraités.

Si cette longueur moyenne est grande relativement à la capacité de la mémoire cachée 6, le coût temporel de remplissage est négligeable.

Si la longueur moyenne du jeu 33 d'instructions est petite, l'utilisation d'une seconde mémoire cachée 6b sera plus efficace.

La capacité de la seconde mémoire cachée 6b n'a aucunement besoin d'être la même que celle de la première mémoire cachée 6.