WO1995009398A1 - Systeme de transmission d'instructions de commandes intranodales ou de communications interndoales dans un n×ud processeur - Google Patents
Systeme de transmission d'instructions de commandes intranodales ou de communications interndoales dans un n×ud processeur Download PDFInfo
- Publication number
- WO1995009398A1 WO1995009398A1 PCT/FR1994/001055 FR9401055W WO9509398A1 WO 1995009398 A1 WO1995009398 A1 WO 1995009398A1 FR 9401055 W FR9401055 W FR 9401055W WO 9509398 A1 WO9509398 A1 WO 9509398A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- memory
- processor
- communication
- instructions
- circular buffer
- 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.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/06—Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
- G06F13/124—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
- G06F13/126—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine and has means for transferring I/O instructions and statuses between control unit and main processor
Definitions
- the invention relates to a system for transmitting an intranodal command instruction or an internodal communication in a processor node forming part of a plurality of processor nodes interconnected in a network in a massively parallel computer.
- the invention also relates to a processor node provided with such a transmission system and a massively parallel computer provided with this type of processor node.
- a massively parallel computer is made up of a certain number of processor nodes interconnected in a network.
- Each processor node is generally constituted by a working processor, a memory system, and a specialized communication processor.
- the working processor can also be a data processing processor or an input-output control device.
- the memory system generally consists of a main memory, and possibly a cache, shared between the working processor and the communication processor which have a coherent view thereof.
- the communication processor is connected to the work processor and to the memory system. It receives and executes communications commands from the work processor.
- the communication processor is also connected to the other communication processors of the other nodes via the network.
- the communications processor is also responsible for routing the node's message across the network.
- Patent EP-A-0 442 716 relates to the management of a buffer memory for regulating access and controlling messages in a multiprocessor device, but the problem of access time is not resolved.
- patent OA-8301326 where it is an interface mechanism between a main processor and a peripheral controller processor, the data communication is done in packets over an input / output bus to a specific area located in the main memory and via two circular queues. These queues allow each processor to run at its own speed without creating race conditions.
- US-A-5,077,694 relates to a computer having a working memory area in order to reduce the memory access time.
- the processed data is not directly written to this work area but is temporarily stored in a locking circuit located between the processor and the memory.
- the writing operation of this data is performed in parallel with the reading of the following data and / or the execution of instructions from the processor.
- the processing speed is improved but not optimized in the case for example of frequently used instruction sets or many unstructured communications.
- the object of the present invention is to provide a system for transmitting an intranodal command instruction or an internodal communication in a processor node so that there is a significant reduction in the use of the memory bus, whether it is very efficient for unstructured communications (large number of short messages with irregular communication patterns) and that it significantly reduces the local CPU time for executing often used communication instruction sets.
- the invention relates to a system for transmitting an intranodal command instruction or an internodal communication in a processor node forming part of a plurality of processor nodes interconnected in a network in a massively parallel computer, each node comprising a work processor, an internodal communication processor, a memory, and a controller.
- part of the memory is used as a circular buffer memory
- the communication processor comprises a system for direct access to this memory by a virtual address and a virtual memory controller compatible with that of the working processor and a hidden memory of known capacity.
- the transmission system comprises: - means for chronologically loading the command or communication instructions generated by the work processor in the available memory space of the addressable circular buffer memory;
- the invention also relates to a processor node comprising a transmission system according to the invention.
- the invention finally relates to a massively parallel computer provided with a plurality of processor nodes according to the invention.
- the transmission system comprises means for processing at least one set of communication instructions intended to be frequently executed and means for storing said set of communication instructions in a storage memory.
- the system further comprises means for copying all or part of the communication instruction set ready to be executed directly from the storage memory to the hidden memory of the communication processor without passing through the circular buffer memory.
- FIG. 1 represents a diagrammatic view in diagrams of a processor node according to the present invention
- - Figure 2 shows a schematic view of the system memory according to the invention
- FIG. 3 represents a diagrammatic view in diagrams of the means involved in the operating modes according to the invention.
- the massively parallel computer according to the invention comprises a plurality of processor nodes 200 interconnected in a network.
- the network can be arbitrary, two-dimensional or three-dimensional. At least a part of the processor nodes of the network each comprise a working processor 2, an internodal communication processor 3, and a memory 100.
- the working processor 2 can be a data processing processor or an input / output device controller.
- This working processor 2 is connected to a memory 4 via the bus means 7 comprising a data bus 7a, an address bus 7b and a control bus 7c, 7d.
- This memory 4 is an addressable circular buffer memory 4.
- this addressable circular buffer memory 4 emulates a "first in / first out" type memory.
- this memory 4 may possibly be part of the internal memory 100 of the work processor 2.
- the work processor 2 is connected to the communication processor 3 via the same data buses 7a, addresses 7b, and 7c, 7d, than previously.
- Said communication processor 3 comprises a direct memory access system by virtual address and a virtual memory controller 14 compatible with that of the working processor 2, and a hidden memory 6 of known capacity.
- this hidden memory 6 of known capacity is of the “first in / first out” type.
- This hidden memory 6 contains the control instructions 9 about to be executed.
- the output of this hidden memory 6 is the command instruction 9 being executed by the communication processor 3.
- a controller 5 manages the entire node 200.
- the transmission system 1 of instruction 9 for intranodal control or internodal communication within a processor node 200 comprises:
- the transmission system has two different operating modes and switches from one to the other depending on the number of command or communication instructions 9 and the number of available memory slots 10.
- a first so-called “on the fly” operating mode the number of command or communication instructions 9 is less than the number of available memory boxes.
- the controller 5 comprises means 12 for chronologically copying the command or communication instructions 9 directly on the fly on the data bus from the addressable circular buffer memory 4 to the available memory boxes 10 from the hidden memory 6 of the internodal communication processor 3. This direct copying on the fly is done in parallel with the loading of the control instructions 9 into the addressable circular buffer memory 4.
- the number of command or communication instructions 9 is greater than the number of available memory boxes 10 of the hidden memory 6 of the internodal communication processor 3.
- the controller 5 has means 13 for chronologically copying from the addressable circular buffer memory 4 to the available memory boxes 10 from the hidden memory 6 of the internodal communication processor 3 the command or communication instructions 9 in the form of a burst comprising a number of instructions 9 command less than or equal to the number of memory boxes available 10.
- the controller 5 according to the invention advantageously comprises means 16 for optimizing the burst of instructions to be copied.
- These optimization means 16 of the burst of instructions to be copied are intended to put the system into "on the fly” mode as soon as possible. Indeed, the "on the fly” mode is the most. efficient in terms of time and memory bus occupancy.
- the controller 5 according to the invention comprises:
- the working processor 2 comprises means for incrementing an internal write pointer 17 each time that a command instruction 9 is loaded into the addressable circular buffer memory 4; and the communication processor 3 comprises means for spying on the address bus of the work processor 2 and means for detecting the loading of a control instruction 9 and for updating a copy of the write pointer 17 in its internal registers.
- the communication processor 3 advantageously comprises means for incrementing an internal read pointer 18 each time a command or communication instruction 9 is executed.
- the comparison means 15 include an up / down counter and an arithmetic operator.
- the up / down counter initially at zero, is incremented each time an instruction is written on the fly in the hidden memory 6, or increased by the number of elements contained in a burst each time a burst of instructions is transferred to the hidden memory 6. It is decremented each time an instruction is executed and removed from the hidden memory 6. This counter contains the number of boxes occupied by instructions in the hidden memory 6.
- the arithmetic operator composed of two subtractors successively calculates:
- the purpose of the means 12 is to control the transfer of the instructions on the fly to the hidden memory 6.
- the means 12 comprise, for example without limitation, a comparator between the write pointer 17 and the address present on the bus 7b which it monitors constantly (the pointer 17 contains the address of the next instruction to be written in the circular buffer 4 and not that of the last previously written instruction).
- the purpose of the means 13 is to control the transfer of the burst instructions to the hidden memory 6.
- These means 13 determine when to perform the loading bursts and. when triggered, they provide the address and the length of the burst to the direct access system to memory 14 which executes the burst requests. When the latter receives the instructions of the burst, the means 13 generate commands for copying the instructions of the burst into the hidden memory 6. If there is enough space in the hidden memory 6 AND if the operating mode is in salvo, then a request for a salvo is activated. To this end, the means 13 comprise, for example without limitation, a subtractor and a comparator.
- the means 13 use the value of the counter of the means 15 containing the number of boxes occupied by instructions in the hidden memory 6. By difference with the size of the hidden memory 6 is determined the number of empty boxes in the hidden memory 6. The comparison with the optimal size of the burst makes it possible to decide whether or not to activate a request for a read burst.
- the means 13 determine the initial address of the read burst intended to load the hidden memory 6. This address is obtained by an adder which supplies the address of the first instruction to be loaded by adding the value of the read pointer 17 of the circular buffer memory 4 and the value of the counter 11 of the means 15 containing the number of boxes occupied by instructions in the hidden memory 6.
- the means 13 determine the length (number of instructions) of the read burst intended to load the hidden memory 6. This length is equal to the optimal size of the bursts on the bus 7 (which depends on the implementation chosen for the system except in the following two cases:
- the size of the burst is chosen so that the next bursts are aligned (the first burst is limited by the first block boundary).
- the number of instructions present in the circular buffer memory 4 and not yet transferred to the hidden memory 6 is provided by the final output of the arithmetic operator of the means 15.
- a first burst size is provided by an operator of the means 13 calculating the minimum between the optimal size (fixed) and the number received from the arithmetic operator of the means 15.
- the final size of the burst is obtained by truncating it to force it to finish on a block boundary if necessary.
- the means 16 are, for example not limiting, a multiplexer making it possible to choose the control signals coming either from the means 12 or from the means 13, according to the operating mode determined by the means 15.
- the controller 5 comprises means for preprocessing and storing in a storage memory the sets of communication instructions intended to be used frequently.
- the controller 5 includes memory block copy means for copying the preprocessed set of instructions into the addressable circular buffer memory 4.
- the transmission system comprises means for preprocessing at least one set 33 of communication instructions intended to be frequently executed together; and means for storing said set 33 of preprocessed communication instructions in a storage memory 30.
- the transmission system further comprises means for switching from the addressable circular buffer memory 4 to the storage memory 30; means for copying all or part of the set 33 of preprocessed communication instructions to be executed directly from the storage memory 30 to the hidden memory 6 of the communication processor 3, without passing through the circular buffer memory 4.
- the means for copy all or part of the instruction set include address pointer means 31 for locating the instruction set in the storage memory
- instruction counter means 32 incremented after each instruction copied to the hidden memory 6 up to the number of command instructions 9 constituting said set 33.
- the copy of the instruction set from the storage memory 30 to the hidden memory 6 can be done according to the "burst" mode.
- the use of a second hidden memory 6b will be more efficient.
- the capacity of the second hidden memory 6b need not be the same as that of the first hidden memory 6.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Multi Processors (AREA)
Abstract
L'invention concerne un système de transmission d'instructions dans un n÷ud processeur (200). Selon l'invention, le processeur de communication (3) ayant une mémoire cachée (6) de capacité connue, le système comprend des moyens pour copier les instructions (9) directement à la volée sur le bus de la mémoire (4) vers les cases mémoire disponibles (10) de la mémoire cachée (6), parallèlement au chargement dans la mémoire (4), lorsque le nombre d'instructions (9) est inférieur au nombre de cases mémoire disponibles (10), ou des moyens pour copier de la mémoire (4) les instructions (9) en salves inférieures ou égales au nombre de cases mémoires disponibles (10) vers les cases mémoire disponibles (10) de la mémoire cachée (6), lorsque le nombre d'instructions (9) est supérieur au nombre de cases mémoire disponibles (10).
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.
Claims
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.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| AU76593/94A AU7659394A (en) | 1993-09-29 | 1994-09-07 | System for transmitting intranodal command instructions or internodal communications in a processor node |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR93/11586 | 1993-09-29 | ||
| FR9311586A FR2710766B1 (fr) | 1993-09-29 | 1993-09-29 | Système de transmission d'instructions de commandes intranodales ou de communications internodales dans un nÓoeud processeur. |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO1995009398A1 true WO1995009398A1 (fr) | 1995-04-06 |
Family
ID=9451360
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/FR1994/001055 Ceased WO1995009398A1 (fr) | 1993-09-29 | 1994-09-07 | Systeme de transmission d'instructions de commandes intranodales ou de communications interndoales dans un n×ud processeur |
Country Status (3)
| Country | Link |
|---|---|
| AU (1) | AU7659394A (fr) |
| FR (1) | FR2710766B1 (fr) |
| WO (1) | WO1995009398A1 (fr) |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO1983001326A1 (fr) * | 1981-10-05 | 1983-04-14 | Digital Equipment Corp | Mecanisme d'interface entre un processeur central et un processeur de commande peripherique |
| EP0442716A2 (fr) * | 1990-02-13 | 1991-08-21 | International Business Machines Corporation | Gestion de fils d'attente de tampons pour plusieurs processeurs |
| US5079694A (en) * | 1982-11-22 | 1992-01-07 | Nec Corporation | Data processing apparatus having a working memory area |
-
1993
- 1993-09-29 FR FR9311586A patent/FR2710766B1/fr not_active Expired - Fee Related
-
1994
- 1994-09-07 AU AU76593/94A patent/AU7659394A/en not_active Abandoned
- 1994-09-07 WO PCT/FR1994/001055 patent/WO1995009398A1/fr not_active Ceased
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO1983001326A1 (fr) * | 1981-10-05 | 1983-04-14 | Digital Equipment Corp | Mecanisme d'interface entre un processeur central et un processeur de commande peripherique |
| US5079694A (en) * | 1982-11-22 | 1992-01-07 | Nec Corporation | Data processing apparatus having a working memory area |
| EP0442716A2 (fr) * | 1990-02-13 | 1991-08-21 | International Business Machines Corporation | Gestion de fils d'attente de tampons pour plusieurs processeurs |
Also Published As
| Publication number | Publication date |
|---|---|
| FR2710766B1 (fr) | 1995-12-01 |
| FR2710766A1 (fr) | 1995-04-07 |
| AU7659394A (en) | 1995-04-18 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP1909169B1 (fr) | Système et procédé de stockage de masse | |
| EP0434483B1 (fr) | Processeur à plusieurs unités de traitement microprogrammées | |
| EP0109898B1 (fr) | Unité de stockage temporaire de données organisée en file d'attente | |
| FR2881540A1 (fr) | Procede et systeme destines a empecher que des lignes de memoire cache soient videes jusqu'a ce que les donnees stockees dans celles-ci ne soient utilisees. | |
| US9747222B1 (en) | Dynamic ingestion throttling of data log | |
| EP0935781A1 (fr) | Procede d'allocation de memoire dans un systeme de traitement de l'information multiprocesseur | |
| FR2664719A1 (fr) | Dispositif de controle pour une memoire tampon a partitionnement reconfigurable. | |
| US5974509A (en) | Method for purging unused data from a cache memory | |
| FR2632092A1 (fr) | Circuit de conditionnement d'ecriture d'antememoire retarde pour un systeme de microcalculateur a bus double comprenant une unite 80386 et une unite 82385 | |
| EP0102278A1 (fr) | Dispositif de couplage universel pour la mise en communication d'ensembles de traitement d'informations et d'au moins une unité périphérique | |
| FR2849228A1 (fr) | Dispositif de transfert de donnees entre deux sous-systemes asynchrones disposant d'une memoire tampon | |
| CN120406814A (zh) | 计算系统、多轮会话推理方法、装置和计算设备集群 | |
| US20210216463A1 (en) | Logical management of a destage process and dynamic cache size of a tiered data storage system cache that is configured to be powered by a temporary power source during a power loss event | |
| EP2585931A1 (fr) | Dispositif, chaine et procédé de traitement de données, et programme d'ordinateur correspondant | |
| WO1995009398A1 (fr) | Systeme de transmission d'instructions de commandes intranodales ou de communications interndoales dans un n×ud processeur | |
| EP2726985B1 (fr) | Dispositif et procede de synchronisation de taches executees en parallele sur une plateforme comprenant plusieurs unites de calcul | |
| EP0435718A1 (fr) | Processeur à plusieurs unités microprogrammées avec mécanisme d'exécution anticipée des instructions | |
| US20220035637A1 (en) | On-the-fly adjustment of issue-write back latency to avoid write back collisions using a result buffer | |
| EP0278196A1 (fr) | Procédé de gestion d'antémémoires dans un système multiprocesseur | |
| EP3506110A1 (fr) | Accès multiples à un fichier de données stocké dans un système de stockage de données associé à un espace mémoire tampon | |
| EP0908828B1 (fr) | Procédé et système contrôle d'accès partagés à une mémoire vive | |
| EP0020931B1 (fr) | Dispositif exécutant des opérations d'interruption de programme pour processeur du type à appel anticipé des instructions | |
| EP0100712B1 (fr) | Système de détection de codes d'arrêt programmables dans un transfert de données intervenant entre une mémoire locale d'un microprocesseur et un périphérique, dans un ensemble processeur utilisant un circuit d'accès direct à la mémoire locale | |
| EP1256880B1 (fr) | Système de traitement de données et procédé de distribution d'accès à des mémoires | |
| EP0636984B1 (fr) | Procédé et dispositif de contrÔle des données dans un calculateur |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| AK | Designated states |
Kind code of ref document: A1 Designated state(s): AM AU BB BG BR BY CA CN CZ EE FI GE HU JP KG KP KR KZ LK LR LT LV MD MG MN NO NZ PL RO RU SD SI SK TJ TT UA US UZ VN |
|
| AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): KE MW SD AT BE CH DE DK ES FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN ML MR NE SN TD TG |
|
| DFPE | Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101) | ||
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
| 122 | Ep: pct application non-entry in european phase | ||
| NENP | Non-entry into the national phase |
Ref country code: CA |