FR2642252A1 - Circuit interconnection unit, especially of the crossbar type, process for employing a circuit interconnection unit and uses of a circuit interconnection unit - Google Patents

Circuit interconnection unit, especially of the crossbar type, process for employing a circuit interconnection unit and uses of a circuit interconnection unit Download PDF

Info

Publication number
FR2642252A1
FR2642252A1 FR8900964A FR8900964A FR2642252A1 FR 2642252 A1 FR2642252 A1 FR 2642252A1 FR 8900964 A FR8900964 A FR 8900964A FR 8900964 A FR8900964 A FR 8900964A FR 2642252 A1 FR2642252 A1 FR 2642252A1
Authority
FR
France
Prior art keywords
channel
state
circuits
storage means
connection
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
FR8900964A
Other languages
French (fr)
Inventor
Pascal Faudemay
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Centre National de la Recherche Scientifique CNRS
Original Assignee
Centre National de la Recherche Scientifique CNRS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Centre National de la Recherche Scientifique CNRS filed Critical Centre National de la Recherche Scientifique CNRS
Priority to FR8900964A priority Critical patent/FR2642252A1/en
Publication of FR2642252A1 publication Critical patent/FR2642252A1/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17375One dimensional, e.g. linear array, ring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Multi Processors (AREA)

Abstract

The field of the invention is that of circuit interconnection devices, especially devices of the crossbar type used more specifically in parallel-processing electronic machines. An essential objective of the invention is to provide a circuit interconnection unit allowing relatively short times for configuring the latter. This objective is achieved with the aid of a unit 1 for interconnecting circuits 1001, 1002, 1003 of the type comprising a plurality of transmitter 2e and/or receiver 2r communication channels which cross at channel connection points P and which effect the connections between the said circuits linked to at least one channel, a plurality of means 11, 12 switching and monitoring the state of the connection points, which unit is characterised in that the control of the means 11, 12 for switching and monitoring the state of the said connection points P is shared between the circuits 1001, 1002, 1003 which access the said connection points P via a channel 2e, the means 11, 12 for switching and monitoring the state of a connection point P being at least linked to the circuits for accessing the said connection points via at least the said channel.

Description

"Unité d'interconnexion entre circuits, notamment du type crossbar, procédé de mise en oeuvre d'une unité d'interconnexion entre circuits, et utilisations d'une unité d'interconnexion entre circuits.  "Interconnection unit between circuits, including the crossbar type, a method of implementation of a circuit interconnection unit, and uses a circuit interconnection unit.

L'invention concerne une unité dtinter- connexion entre circuits, du type comprenant une pluralité de canaux de communication émetteurs et/ou récepteurs se croisant en des points de connexion de canaux et réalisant des connexions entre lesdits circuits reliés à au moins un canal, une pluralité de moyens de commutation et de contrôle de l'état des points de connexion. The invention relates to an inter-circuit interconnection unit of the type comprising a plurality of transmitting and / or receiving communication channels crossing at channel connection points and making connections between said circuits connected to at least one channel, an plurality of switching means and control of the state of the connection points.

Le domaine de l'invention est -plus spécifiquement celui des crossbars, lesquels sont fréquemment utilisées dans les structures multi-processeurs, pour interconnecter ceux-ci entre eux ou à des ressources mémoire, et de façon plus traditionnelle dans les centraux de télécommunication. Les crossbars, d'une façon générale, peuvent être définis comme des réseaux d'interconnexion de circuits en grille à mailles carrées. The field of the invention is more specifically that of crossbars, which are frequently used in multiprocessor structures, to interconnect them to each other or to memory resources, and more traditionally in telecommunication central offices. Crossbars, in general, can be defined as square mesh grid circuit interconnection networks.

Les réseaux d'interconnexion reliant plusieurs processeurs entre eux ou reliant des processeurs et des mémoires, dans le cas de machines à traitement parallèle, ont fait l'objet de nombreux travaux. Une solution traditionnelle connue repose sur le principe de la communication par bus. Cependant cette solution n'offre que des débits de communication limités du fait que les différents circuits doivent partager un même canal pour communiquer. Interconnection networks linking several processors together or connecting processors and memories, in the case of parallel processing machines, have been the subject of much work. A known traditional solution is based on the principle of bus communication. However this solution offers only limited communication rates because the different circuits must share the same channel to communicate.

D'autres solutions ont été proposées qui utilisent différents principe de réseaux d'interconnexion connus, parmi celles-ci les structures du type crossbar. Le crossbar permet d'obtenir une liaison point à point simultanée entre de nombreux circuits
De façon générale, les crossbars sont utilisés dans les systèmes multiprocesseurs, lesdits processeurs partageant une ressource mémoire commune (système fortement couple) ou dans les systèmes multiprocesseurs uniquement (couplage faible). Dans ces crossbars, composés d'une pluralité de canaux de communication se croisant en un point de connexion et mettant en relation physique au moins deux circuits du type processeur, mémoire ou autre, la connexion est de façon connue réalisée par un commutateur que l'on représente par une porte logique ET 11.L'état de la connexion au point de connexion et par conséquent l'état passant ou non du commutateur est déterminé de façon courante par l'état d'une bascule logique 12 reliée à la porte logique ET 11 et associée à chaque intersection de canaux ou point de connexion comme visible en figure 1. Bien entendu la porte ET peut être réalisée de façon classique à l'aide d'autres types de portes.
Other solutions have been proposed that use different principles of known interconnection networks, among them the structures of the crossbar type. The crossbar makes it possible to obtain a simultaneous point-to-point connection between many circuits
In general, crossbars are used in multiprocessor systems, said processors sharing a common memory resource (high torque system) or in multiprocessor systems only (weak coupling). In these crossbars, composed of a plurality of communication channels crossing at a connection point and physically connecting at least two circuits of the processor, memory or other type, the connection is in a known manner performed by a switch that the it is represented by an AND logic gate 11.The state of the connection at the connection point and therefore the state of the switch or not is commonly determined by the state of a logic latch 12 connected to the logic gate. AND 11 and associated with each intersection of channels or connection point as visible in Figure 1. Of course the AND gate can be realized in a conventional manner using other types of doors.

La configuration du circuit d'interconnexion consiste à affecter à chacune des bascules logiques 12 associées aux points de connexion un état spécifique de connexion (passant ou non passant) et par conséquent une reconfiguration du circuit d'interconnexion consiste à modifier la totalité ou une partie de l'état initial desdites bascules logiques associées aux points de connexion du circuit d'interconnexion. The configuration of the interconnection circuit consists in assigning to each of the logical latches 12 associated with the connection points a specific connection state (whether or not it passes) and consequently a reconfiguration of the interconnection circuit consists in modifying all or part of the initial state of said logic latches associated with the connection points of the interconnection circuit.

La structure crossbar présente l'avantage d'être extensible, en particulier celle-ci peut être réalisée à partir d'une pluralité de composants Ci crossbar comme visible en figure 2. The crossbar structure has the advantage of being extensible, in particular it can be made from a plurality of crossbar components Ci as shown in FIG. 2.

On connaît plusieurs types de structure crossbar. Selon la figure 3, une première solution consiste en une pluralité de canaux émetteurs verticaux, à communication unidirectionnelle, reliant des circuits 15 par le biais de canaux émetteurs horizontaux à communication unidirectionnelle aussi.  Several types of crossbar structure are known. According to FIG. 3, a first solution consists of a plurality of vertical transmitter channels, with unidirectional communication, connecting circuits 15 via horizontal emitter channels with unidirectional communication as well.

L'utilisation du crossbar d'une façon générale nécessite sa configuration ou reconfiguration c'est-à- dire la mise en place d'un état spécifique des différentes bascules 12 associées au point de connexion du crossbar. Dans cette conception la plus simple du crossbar comme visible en figure 3, la reconfiguration de celui-ci s'effectue de façon sérielle. Un circuit de reconfiguration 14 extérieur au crossbar adresse successivement l'ensemble des bascules associées au point de connexion du crossbar par l'intermédiaire d'un jeu de décodeurs 13, de sorte à positionner lesdites bascules des connexions dans ltetat voulu.The use of the crossbar in general requires its configuration or reconfiguration that is to say the establishment of a specific state of the different flip-flops 12 associated with the connection point of the crossbar. In this simplest design of the crossbar as shown in Figure 3, the reconfiguration thereof is done in a serial manner. A reconfiguration circuit 14 outside the crossbar successively addresses all the flip-flops associated with the connection point of the crossbar via a set of decoders 13, so as to position said flip-flops connections in the desired state.

Une deuxième solution de crossbars, selon la figure 4, consiste en une pluralité de canaux émetteurs récepteurs parallèles verticaux reliés à des circuits 15 et croisant des paires de canaux de raccordements horizontaux communiquant en sens opposé. Là encore, la gestion et le contrôle des intersections de canaux est réalisée par un processeur de contrôle 14 extérieur au crossbar et traitant les informations reçues de manière séquentielle. A second crossbars solution, according to FIG. 4, consists of a plurality of vertical parallel transmitter-receiver channels connected to circuits 15 and crossing pairs of horizontally communicating horizontal connection channels. Again, the management and control of the intersections of channels is performed by a control processor 14 outside the crossbar and processing the information received sequentially.

Une contrainte particulière de l'utilisation de tels dispositifs crossbars connus concerne notamment leurs délais de configuration, ce délai étant déterminant pour l'utilisation efficace des machines à traitement parallèle construites autour de telles structures. En particulier, un inconvénient majeur des crossbars connus fonctionnant avec un dispositif de reconfiguration tel que ceux décrits précédemment réside dans le fait que le délai de reconfiguration total du crossbar est important comparé à l'échelle des temps de cycle d'un processeur relié à ce dernier, ou comparé à des délais de transmission série. A particular constraint of the use of such known crossbars devices concerns in particular their configuration delays, this delay being decisive for the efficient use of parallel processing machines built around such structures. In particular, a major drawback of known crossbars operating with a reconfiguration device such as those described above lies in the fact that the total reconfiguration delay of the crossbar is important compared to the cycle time scale of a processor connected to it. last, or compared to serial transmission delays.

Pour les systèmes actuels basés sur des crossbars, il est recommandé d'effectuer des reconfigurations statiques (en début d'opération) ou semidynamiques, lors de points de reconfiguration détermi- nés par l'algorithme utilisé (J.G. HARP, "Phase 2 of the reconfigurable transputer project'l, in "esprit'87, achievements on impact'l, North Irland, 1987). De façon estimative, on peut évaluer le temps de reconfiguration globale d'un crossbar de 100 x 100 (100 entrées par 100 sorties) à environ une milliseconde, ce qui correspondrait à un délai de reconfiguration d'une bascule de l'ordre de 10 micro-secondes.Ce délai estimé de reconfiguration du crossbar empêche toute reconfiguration dynamique de celui-ci, ctest-a-dire avec des intervalles de temps très brefs entre deux reconfigurations globales. For current systems based on crossbars, it is recommended to carry out static reconfigurations (at the beginning of the operation) or semidynamics at the reconfiguration points determined by the algorithm used (JG HARP, "Phase 2 of the reconfigurable transputer project'l, in "esprit'87, achievements on impact'l, North Irland, 1987). Estimatively, we can estimate the global reconfiguration time of a 100 x 100 (100 entries per 100 outputs) crossbar to about one millisecond, which would correspond to a reconfiguration delay of a flip-flop in the order of 10 This estimated time of reconfiguration of the crossbar prevents any dynamic reconfiguration thereof, that is to say with very short time intervals between two global reconfigurations.

Un autre inconvénient des crossbars connus réside dans le fait que les circuits processeurs 15 sont nécessairement reliés par une liaison au processeur de gestion et de contrôle des intersections 14 comme visible en figure 4, ce qui monopolise une ligne de sortie de chacun desdits circuits processeurs 15. Another disadvantage of known crossbars lies in the fact that the processor circuits 15 are necessarily connected by a connection to the management and control processor of the intersections 14 as visible in FIG. 4, which monopolizes an output line of each of said processor circuits 15 .

Encore un autre inconvénient des crossbars connus réside dans le fait que leur durée de reconfiguration n'est pas compatible avec la mise en oeuvre efficace de méthodes "SIMA" (Simple Instruction
Multiple Données) à grain fin, ou de méthodes "MIND" (Multiple Instruction, Multiple Données) à grain fin, correspondant à une division importante des opérations entre les processeurs, pour des tailles d'application quelconque. De ce fait également, les performances de reconfiguration globale des canaux ne sont pas meilleures que les performances de reconfiguration des chemins dans des réseaux d'interconnexion statiques, tels que l'hypercube dont les temps de reconfiguration des chemins sont de l'ordre de 200 micro-secondes pour une complexité équivalente (E. CHOW et al., "Hyperswitch . network form hypercube computer", international symposium on computer architecture,
Hawai, mai 1988).
Another disadvantage of known crossbars lies in the fact that their reconfiguration time is not compatible with the effective implementation of "SIMA" methods (Simple Instruction
Multiple Data), or fine-grained "MIND" (Multiple Instruction, Multiple Data) methods, corresponding to a large division of operations between the processors, for any application size. Also, the global reconfiguration performance of the channels is not better than the reconfiguration performance of the paths in static interconnection networks, such as the hypercube whose path reconfiguration times are of the order of 200. micro-seconds for an equivalent complexity (E. CHOW et al., Hyperswitch, network form hypercube computer, international symposium on computer architecture,
Hawaii, May 1988).

Encore un autre inconvénient des crossbars connus réside dans le fait que leur délai de reconfiguration croît avec la taille du crossbar (exprimée en nombre de circuits processeurs ou mémoires reliés à celui-ci) du fait que l'adressage des points de connexion par le processeur extérieur de contrôle des connexions est séquentiel, ce qui conduit à utiliser des hiérarchies de crossbars plutôt qu'un mécanisme d'interconnexion uniforme. Cette hiérarchie de crossbars se traduit par une structure en grappe des circuits processeurs, mémoires ou autre reliés au crossbar. Another disadvantage of known crossbars lies in the fact that their reconfiguration delay increases with the size of the crossbar (expressed in number of processor circuits or memories connected thereto) because the addressing of the connection points by the processor External connection control is sequential, which leads to using crossbar hierarchies rather than a uniform interconnection mechanism. This hierarchy of crossbars is translated into a cluster structure of the processor circuits, memories or other connected to the crossbar.

A l'intérieur d'une grappe de plus bas niveau, il est possible de diviser à un moment donné les processeurs en grappes logiques, sans diminuer la connexité virtuelle dans la grappe logique ou la grappe physique. Par contre la "pleine connexité" virtuelle c'est-à-dire la possibilité de communication simultanée point à point de tout circuit processeur ou mémoire avec tout autre circuit n'est pas réalisée pour la structure considérée globalement. Within a lower-level cluster, it is possible to divide the processors into logical clusters at a given time, without diminishing the virtual connectivity in the logical cluster or the physical cluster. On the other hand, the virtual "full connectivity", that is to say the possibility of simultaneous point-to-point communication of any processor or memory circuit with any other circuit, is not realized for the structure considered globally.

L'objectif de l'invention est de palier ces divers inconvénients de l'état de la technique. The object of the invention is to overcome these various disadvantages of the state of the art.

Plus precisemment, un premier objectif de l'invention est de fournir une unité d'interconnexion entre circuits permettant des temps de reconfiguration globale de celle-ci relativement faibles, de l'ordre de quelques micro-secondes avec des technologies "CMOS" par exemple, indépendament de la taille de celle-ci. More specifically, a first object of the invention is to provide an interconnection unit between circuits allowing overall reconfiguration times thereof relatively low, of the order of a few microseconds with "CMOS" technologies for example , regardless of the size of it.

Par ailleurs, l'unité d'interconnexion selon l'invention doit permettre le groupement de processeurs en grappes logiques à la demande notamment, pour la multidiffusion d'information au sein de la structure et la division de l'ensemble des processeurs en sous ensembles connexes.Furthermore, the interconnection unit according to the invention must allow the grouping of processors in logical clusters on demand in particular, for the multicasting of information within the structure and the division of all the processors into sub-assemblies. related.

Cet objectif est atteint à l'aide d'une unité d'interconnexion entre circuits, du type comprenant une pluralité de canaux de communication émetteurs et/ou récepteurs se croisant en des points de connexion de canaux et réalisant des connexions entre lesdits circuits reliés à au moins un canal, une pluralité de moyens de commutation et de contrôle de l'état des points de connexion, unité caractérisée en ce que la commande des moyens de commutation et de contrôle de l'état desdits points de connexion est distribuée entre les circuits accédant auxdits points de connexion-par un canal, les moyens de commutation et de contrôle de l'état d'un point de connexion étant au moins reliés au circuit accédant audit point de connexion par au moins ledit canal. This objective is achieved by means of an interconnection unit between circuits, of the type comprising a plurality of transmitting and / or receiving communication channels crossing at channel connection points and making connections between said circuits connected to each other. at least one channel, a plurality of switching and control means of the state of the connection points, characterized in that the control of the switching means and the control of the state of said connection points is distributed between the circuits accessing said connection points-by a channel, the switching means and control of the state of a connection point being at least connected to the circuit accessing said connection point by at least said channel.

Grâce au fait que les processeurs commandent directement le changement d'état du ou des points de connexion auxquels ils ont accès, l'utilisation d'un circuit de contrôle des points de connexion de l'unité d'interconnexion devient accessoire. Cette commande de changement d'état des connexions est réalisée de façon dynamique directement par le ou les circuits accédant aux points de connexion. Due to the fact that the processors directly control the change of state of the connection point or points to which they have access, the use of a control circuit of the connection points of the interconnection unit becomes accessory. This connection state change control is performed dynamically directly by the circuit or circuits accessing the connection points.

Un autre objectif de l'invention est de fournir une logique de gestion des connexions distribuée entre les points de connexion, ce qui procure des avantages notamment sur le plan de la résistance aux pannes. Another object of the invention is to provide distributed connection management logic between the connection points, which provides advantages especially in terms of fault resistance.

Cet objectif est atteint à l'aide d'une unité d'interconnexion entre circuits caractérisée en ce que les moyens de commutation et de contrôle de l'état d'un point de connexion sont constitués d'au moins un moyen de mémorisation de l'état dudit point de connexion, ledit moyen de mémorisation étant renseigne par une unit de gestion d'intersection spécifique dudit point de connexion. This objective is achieved by means of an interconnection unit between circuits, characterized in that the means for switching and checking the state of a connection point consist of at least one memory storage means. state of said connection point, said storage means being informed by a specific intersection management unit of said connection point.

Un autre objectif essentiel de l'invention est de permettre l'organisation logique de la structure d'interconnexion par affectation d'adresses logiques aux points de connexion de la structure, cette affectation se faisant par transmission de messages sur les canaux accédant aux points de connexion. Another essential objective of the invention is to allow the logical organization of the interconnection structure by assigning logical addresses to the connection points of the structure, this assignment being done by transmission of messages on the channels accessing the points of access. connection.

Cet objectif est atteint à l'aide d'une unité d'interconnexion dans laquelle on affecte au moins une adresse logique à chaque point de connexion en vue d'une demande de connexion audit point de connexion, unité caractérisée en ce que l'unité de gestion d'intersection comprend au moins
- un moyen de mémorisation de l'adresse logique affectée audit point de connexion,
- un moyen comparateur d'au moins deux adresses logiques,
- un moyen de mémorisation d'une demande de connexion.
This objective is achieved by means of an interconnection unit in which at least one logical address is assigned to each connection point in view of a connection request to said connection point, a unit characterized in that the unit Intersection management includes at least
means for storing the logical address assigned to said connection point,
a comparator means of at least two logical addresses,
means for memorizing a connection request.

Encore un autre objectif de l'invention est de ne plus faire appel à un circuit extérieur pour le contrôle des collisions mais effectuer la détection des collisions au niveau de la structure interne de l'unité d'interconnexion. Yet another object of the invention is to no longer use an external circuit for the control of collisions but to perform collision detection at the internal structure of the interconnection unit.

Cet objectif est atteint à l'aide d'une unité d'interconnexion entre circuits caractérisée en ce qu'elle comprend en chaque point de connexion un moyen de mémorisation à au moins deux états pour la mémorisation des états différents d'une marque de priorité d'accès auxdits points de connexion, lesdits moyens de mémorisation à au moins deux états, répartis aux points de connexion d'un canal émetteur ou récepteur, étant reliés par une piste spécifique pour la propagation d'une marque de priorité entre lesdits circuits de mémorisation. This objective is achieved by means of a circuit interconnection unit, characterized in that it comprises, at each connection point, storage means with at least two states for storing the different states of a priority mark. access to said connection points, said at least two state storage means, distributed at the connection points of a transmitter or receiver channel, being connected by a specific track for the propagation of a priority mark between said circuits of storage.

Un autre objectif de l'invention est de fournir un procédé de mise en oeuvre d'une unité dwinterconnexion entre circuits du type de celle décrite précédemment, qui utilise la flexibilité de la structure de l'unité notamment pour positionner l'état des points de connexion par émission de message sur lescanaux de communication. Another object of the invention is to provide a method for implementing an interconnection unit between circuits of the type of that described above, which uses the flexibility of the structure of the unit in particular to position the state of the points of connection by message transmission on the communication channels.

Cet objectif est atteint à l'aide d'un procédé de mise en oeuvre d'une unité d'interconnexion entre circuits, caractérisée en ce que pour initialiser l'unité d'interconnexion
- on transmet par chacun des canaux émetteurs l'adresse logique de chaque point de connexion placés sur ledit canal émetteur,
- on mémorise successivement ladite adresse logique correspondant à chacun desdits points de connexion desdits canaux émetteurs dans ledit moyen de mémorisation de l'adresse logique,
pour établir une connexion entre au moins deux circuits, l'un des circuits étant émetteur, l'autre récepteur
- on transmet sur le canal émetteur associé au circuit émetteur demandant la connexion, un message contenant au moins l'adresse logique du point de connexion correspondant à la demande de connexion,
- on constate la demande de connexion en comparant l'adresse logique effective du point de connexion avec l'adresse logique demandée lorsque l'une des trois conditions suivantes est remplie
i) si l'adresse logique demandée est identique à l'adresse logique effective,
ii) si l'adresse logique demandée a une valeur signifiant "tout point de connexion situé sur ledit canal émetteur",
iii) si l'adresse logique demandée et l'adresse logique- effective sont identiques après masquage des valeurs binaires correspondant aux deux adresses par un même masque binaire variable,
- on mémorise la demande de connexion constatée dans ledit moyen de mémorisation d'une demande de connexion.
This objective is achieved by using a method of implementing an interconnection unit between circuits, characterized in that to initialize the interconnection unit
each transmission channel transmits the logical address of each connection point placed on said transmitter channel,
- successively memorizing said logical address corresponding to each of said connection points of said transmitter channels in said means for storing the logical address,
to establish a connection between at least two circuits, one of the circuits being transmitter, the other receiver
transmitting on the emitter channel associated with the sending circuit requesting the connection, a message containing at least the logical address of the connection point corresponding to the connection request,
the connection request is noted by comparing the actual logical address of the connection point with the requested logical address when one of the following three conditions is fulfilled
i) if the requested logical address is identical to the actual logical address,
ii) if the requested logical address has a value meaning "any connection point on the sending channel",
iii) if the requested logical address and the logical-effective address are identical after masking the binary values corresponding to the two addresses by the same variable bitmask,
storing the connection request found in said means for storing a connection request.

Encore un autre objectif de l'invention est de fournir un procédé de gestion des collisions dans l'unité d'interconnexion, la gestion des collisions étant effectuée par la structure de l'unité dtinter- connexion. Yet another object of the invention is to provide a collision management method in the interconnection unit, the collision management being effected by the structure of the interconnect unit.

Cet objectif ainsi que d'autres qui apparaîtront ultérieurement est atteint à l'aide d'un procédé de mise en oeuvre d'une unité d'interconnexion entre circuits, unité comprenant en chaque point de connexion d'au moins un canal récepteur un moyen de mémorisation d'une marque de priorité, ledit moyen de mémorisation comprenant un automate d'états finis, lesdits états décrivant la position de la marque de priorité et étant au moins dans l'ordre
- état 1 : "pas de marque",
- état 2 : "demande de connexion",
- état 3 : "marque active",
- état 4 : "marque suspendue",
- état 5 : "abandon de marque",
procédé caractérisé en ce que
- A l'initialisation on positionne l'automate d'un moyen de mémorisation dans l'état 3 et l'automate des autres moyens de mémorisation dans l'état 1,
- l'automate d'un moyen de mémorisation passe dans l'état 3 à partir de l'état 1, si ledit moyen de mémorisation reçoit un signal de forçage de marque, dans l'état 2 si ledit moyen de mémorisation reçoit un signal de demande de connexion et pas de signal de forçage de marque, et reste dans l'état 1 dans les autres cas,
- l'automate d'un moyen de mémorisation passe dans l'état 3, a partir de l'état 2, si ledit moyen de mémorisation reçoit un signal de transfert de marque, et reste dans l'état 2 dans le cas contraire,
- l'automate d'un moyen de mémorisation passe dans l'état 5 a partir de l'état 3, si ledit moyen de mémorisation reçoit un signal signifiant "pas de message ordinaire en cours" et que le canal récepteur n'est pas réquisitionné, dans l'état 4 si ledit moyen de mémorisation reçoit un signal signifiant "pas de message ordinaire en cours" et que le canal récepteur est réquisitionné, et reste dans l'état 3 dans les autres cas,
- l'automate d'un moyen de mémorisation passe dans l'état 5 à partir de l'état 4 si et seulement si le canal récepteur n'est pas réquisitionné,
- l'automate d'un moyen de mémorisation passe dans l'état 3 à partir de l'état 5 si ledit moyen de mémorisation reçoit un signal de demande de connexion et un signal de transfert de marque, et passe dans l'état 1 dans le cas contraire.
This objective as well as others which will appear later is achieved by means of a method of implementing an interconnection unit between circuits, unit comprising in each connection point of at least one receiving channel a means of for storing a priority mark, said storage means comprising a state machine, said states describing the position of the priority mark and being at least in the order
- state 1: "no mark",
- state 2: "connection request",
- state 3: "active mark",
- state 4: "suspended mark",
- state 5: "mark abandonment",
characterized in that
At initialization, the automaton of a storage means is set in state 3 and the automaton of the other memory means in state 1,
the automaton of a storage means switches to state 3 from state 1, if said memory means receives a mark forcing signal, in state 2 if said memory means receives a signal connection request and no mark forcing signal, and remains in state 1 in other cases,
the automaton of a storage means passes to the state 3, from the state 2, if said memory means receives a mark transfer signal, and remains in the state 2 in the opposite case,
the automaton of a storage means goes into state 5 from state 3, if said memory means receives a signal meaning "no ordinary message in progress" and that the receiver channel is not requisitioned, in state 4 if said storage means receives a signal meaning "no ordinary message in progress" and the receiving channel is requisitioned, and remains in state 3 in other cases,
the automaton of a storage means goes to state 5 from state 4 if and only if the receiver channel is not requisitioned,
the automaton of a storage means enters the state 3 from the state 5 if said storage means receives a connection request signal and a mark transfer signal, and enters the state 1 on the other hand.

D'autres caractéristiques et avantages de l'invention apparaîtront à la lecture de la description qui va suivre concernant une forme de réalisation préférentielle de l'invention, donnée à titre d'exemple non limitatif et illustré sur les dessins ci-joint dans lesquels
- la figure 1 représente des moyens de commutation d'une connexion d'un crossbar connu,
- la figure 2 représente un crossbar réalisé à l'aide d'une matrice de composants,
- la figure 3 représente un crossbar connu à reconfiguration centralisée,
- la figure 4 représente un crossbar connu avec des canaux émetteurs et récepteurs parallèles, å reconfiguration centralisée,
- la figure 5 représente un crossbar selon l'invention,
- la figure 6 représente une unité de gestion d'intersection selon l'invention,
- la figure 7 représente le mécanisme de gestion des priorités selon l'invention,
- la figure 8 représente un diagramme de fonctionnement d'un automate pour la gestion de la marque de priorité d'accès au point de connexion selon l'invention, et
- la figure 9 représente un diagramme de bloc d'un crossbar 3 x 3 selon l'invention.
Other features and advantages of the invention will appear on reading the following description of a preferred embodiment of the invention, given by way of non-limiting example and illustrated in the accompanying drawings in which:
FIG. 1 represents switching means of a connection of a known crossbar,
FIG. 2 represents a crossbar made using a matrix of components,
FIG. 3 represents a known crossbar with centralized reconfiguration,
FIG. 4 represents a known crossbar with parallel transmit and receive channels, centralized reconfiguration,
FIG. 5 represents a crossbar according to the invention,
FIG. 6 represents an intersection management unit according to the invention,
FIG. 7 represents the priority management mechanism according to the invention,
FIG. 8 represents a diagram of the operation of a PLC for the management of the access priority mark at the connection point according to the invention, and
FIG. 9 represents a block diagram of a 3 × 3 crossbar according to the invention.

L'unité d'interconnexion du type crossbar à commande distribuée selon l'invention est constituée d'une pluralité de canaux de communication émetteurs et/ou récepteurs se croisant en des points de connexion et interconnectant une pluralité de circuits émetteurs et/ou récepteurs placés sur les canaux, les circuits émetteurs commandant directement l'état des connexions des canaux. Chaque canal peut être constitué d'une pluralité de lignes unidirectionnelles distinctes selon que la transmission des messages sur le canal se fait en série ou en parallèle. Par ailleurs les canaux peuvent comporter des lignes de transfert de données et des lignes de contrôle. On peut prévoir différents types de structures du crossbar selon l'invention, lesquelles ont déjà ete mentionnées dans la description de l'art antérieur.Une première possibilité consiste en une grille à mailles carrées, constituée de canaux émetteurs verticaux et de canaux récepteurs horizontaux se croisant en des points de connexion à l'intérieur du crossbar, chaque circuit relié au crossbar émettant respectivement sur un canal émetteur et recevant l'information sur un canal récepteur. Les parties émettrices des circuits sont reliées à une dimension du crossbar correspondant à la base de canaux émetteurs, tandis que les parties réceptrices des circuits sont reliées à une autre dimension du crossbar correspondant å l'arrivée des canaux récepteurs, comme visible figure 3.Le canal émetteur associé à la partie émettrice d'un circuit croise le canal récepteur associé å la partie réceptrice dudit circuit en un point de connexion situé de préférence sur la diagonale de la grille, le rang i de la partie émettrice du circuit selon une première dimension du crossbar étant identique au rang j de la partie réceptrice dudit circuit selon l'autre dimension du crossbar. The distributed control crossbar interconnection unit according to the invention consists of a plurality of transmitting and / or receiving communication channels crossing at connection points and interconnecting a plurality of transmitter and / or receiver circuits placed on the channels, the transmitter circuits directly controlling the state of the connections of the channels. Each channel may consist of a plurality of distinct unidirectional lines depending on whether the transmission of the messages on the channel is in series or in parallel. In addition, the channels may include data transfer lines and control lines. Different types of structures of the crossbar according to the invention can be provided, which have already been mentioned in the description of the prior art. A first possibility consists of a square mesh grid consisting of vertical transmitting channels and horizontal receiving channels. crossing at points of connection inside the crossbar, each circuit connected to the crossbar transmitting respectively on a transmitter channel and receiving the information on a receiving channel. The transmitter parts of the circuits are connected to a dimension of the crossbar corresponding to the base of the transmitting channels, while the receiver parts of the circuits are connected to another dimension of the crossbar corresponding to the arrival of the receiver channels, as can be seen in FIG. transmitter channel associated with the transmitting part of a circuit crosses the receiving channel associated with the receiving part of said circuit at a connection point preferably located on the diagonal of the gate, the rank i of the transmitting part of the circuit according to a first dimension the crossbar being identical to the rank j of the receiving part of said circuit according to the other dimension of the crossbar.

Selon la figure 4, une autre possibilité de structure du crossbar consiste en une grille à mailles carrées constituée de canaux émetteurs et récepteurs verticaux communiquant dans un sens opposé, associés deux par deux respectivement à des circuits (émetteurs et/ou récepteurs, de préférence émetteur et récepteur), lesdits canaux émetteurs respectivement récepteurs croisant des paires de canaux horizontaux et communiquant en sens opposé. Dans cette structure les circuits sont placés sur une seule dimension du crossbar ou aux points d'interconnexion. According to FIG. 4, another possibility of crossbar structure consists of a square mesh grid consisting of vertical transmitting and receiving channels communicating in an opposite direction, associated in pairs with respective circuits (transmitters and / or receivers, preferably emitter). and receiver), said respectively receiving receiving channels crossing pairs of horizontal channels and communicating in opposite directions. In this structure the circuits are placed on a single dimension of the crossbar or at the points of interconnection.

L'invention n'étant pas limitée à ces deux types de crossbar, par la suite nous décrirons principalement l'invention selon la première structure de crossbar mentionnée. The invention is not limited to these two types of crossbar, subsequently we will describe the invention mainly according to the first crossbar structure mentioned.

Selon la figure 5, le crossbar 1 comporte des canaux de communication émetteur 2e et/ou récepteur 2r interconnectant des circuits 1001, 1002, 1003, reliés à ceux-ci, une pluralité d'unités de gestion d'inter- section 10 placées aux points de connexion P de canaux émetteur 2e et récepteur 2r, lesdites unités de gestion d'intersection 10 étant reliées respectivement au canal émetteur 2e sensiblement au point de connexion P du canal et communiquant avec un circuit par ledit canal
L'unité de gestion d'intersection 10 a pour râle de commander la connexion logique d'un canal émetteur 2e avec un canal récepteur 2r, ladite connexion logique entre deux canaux étant de manière connue assurée par une porte logique ET 11 et une bascule logique 12. Dans les réalisaions usuelles, la porte ET est réalisée à l'aide de portes "NON ET" ("NAND") et "NON OU" ("NOR" > . La porte logique ET 11 à au moins deux entrées est reliée en sortie au canal récepteur 2r, ses deux entrées étant reliées l'une au canal émetteur 2e croisant ledit canal récepteur 2r, l'autre à la sortie de la bascule logique 12, de sorte que suivant l'état de la bascule logique 12, la porte logique ET 11 établit une connexion ou non entre les deux canaux émetteur 2e et récepteur 2r se croisant comme cela a déjà été mentionné précédemment.
According to FIG. 5, the crossbar 1 comprises emitter 2 and / or receiver 2r communicating channels interconnecting circuits 1001, 1002, 1003, connected thereto, a plurality of section management units 10 placed at connection points P of transmitter channels 2e and receiver 2r, said intersection management units 10 being respectively connected to the emitter channel 2e substantially at the connection point P of the channel and communicating with a circuit via said channel
The aim of the intersection management unit 10 is to control the logical connection of a second transmitter channel with a receiver channel 2r, said logical connection between two channels being in a known manner provided by an AND logic gate 11 and a logic flip-flop. 12. In the usual implementations, the AND gate is made using "NAND" and "NOR" gates, and the AND gate 11 with at least two inputs is connected. at the output to the receiver channel 2r, its two inputs being connected to the second transmitting channel crossing said receiver channel 2r, the other at the output of the logic latch 12, so that according to the state of the logic latch 12, the AND logic gate 11 establishes a connection or not between the two transmitter channels 2e and receiver 2r intersecting as has already been mentioned previously.

Le circuit de gestion d'intersection 10 est relié à la bascule logique 12 de sorte à pouvoir commander l'état de ladite bascule. ta configuration du crossbar 1 s'effectue par la diffusion d'un message de configuration depuis un circuit 100i, via son canal émetteur 2ei associé, simultanément vers les unités de gestion d'intersection 10 placées aux points de connexion P appartenant audit canal émetteur. Selon une autre variante, ce message peut transiter par une piste spécifique et auxiliaire au canal émetteur 2ei reliant le circuit émetteur 100i avec les circuits de gestion d'intersection 10 correspondants (non représenté). The intersection management circuit 10 is connected to the logic latch 12 so as to be able to control the state of said flip-flop. your crossbar 1 configuration is effected by broadcasting a configuration message from a circuit 100i, via its associated transmitter channel 2ei, simultaneously to the intersection management units 10 placed at the connection points P belonging to said transmitting channel. According to another variant, this message can pass through a specific track and auxiliary to the transmitter channel 2ei connecting the transmitter circuit 100i with the corresponding intersection management circuits 10 (not shown).

L'unité de gestion d'intersection 10 comprend au moins dans la forme de réalisation préférentielle de l'invention, un convertisseur série-parallèle 13, un registre de masque 14, un comparateur 15, un registre mémoire d'adresses 16 et un séquenceur 17 comme visible en figure 6. La bascule logique 12 est reliée de préférence au circuit de gestion d'intersection 10 par au moins une sortie du séquenceur 17, le séquenceur 17 pouvant initialiser ou changer l'état de ladite bascule 12 par envoi d'un signal approprié (initialisation par la ligne RESET, et chargement par la ligne w). Le convertisseur 13, le registre de masque 14, le comparateur 15, le registre mémoire d'adresses 16 et le séquenceur 17 sont reliés logiquement de sorte à pouvoir communiquer entre eux. The intersection management unit 10 comprises at least in the preferred embodiment of the invention, a series-parallel converter 13, a mask register 14, a comparator 15, an address memory register 16 and a sequencer 17 as shown in FIG. 6. The logic latch 12 is preferably connected to the intersection management circuit 10 by at least one output of the sequencer 17, the sequencer 17 being able to initialize or change the state of said flip-flop 12 by sending of an appropriate signal (initialization by the line RESET, and loading by the line w). The converter 13, the mask register 14, the comparator 15, the address memory register 16 and the sequencer 17 are connected logically so as to be able to communicate with each other.

Avant toute 'configuration du crossbar 1, on réalise son initialisation afin d'affecter une adresse logique à chaque point de connexion. Cette initialisation s'effectue par transmission sur chaque canal émetteur 2e du crossbar, d'un message contenant l'adresse logique de chaque point de connexion P placés sur le canal émetteur, les adresses logiques affectées auxdits points de connexion P étant mémorisées successivement dans les registres mémoire d'adresses 16 respectivement des unités de gestion d'intersection 10. Before any configuration of the crossbar 1, its initialization is carried out in order to assign a logical address to each connection point. This initialization is carried out by transmitting on each 2nd transmitter channel of the crossbar, a message containing the logical address of each connection point P placed on the transmitter channel, the logical addresses assigned to said connection points P being memorized successively in the address memory registers 16 respectively intersection management units 10.

Un signal spécifique 210 de création d'adresses logiques, renseigne chaque unité de gestion d'intersection 10 placées sur un canal émetteur 2e, ce signal étant placé à l'initialisation dans le séquenceur de la première unité de gestion d'intersection la -plus proche du circuit émetteur correspondant, par un signal de contrôle global de l'unité d'interconnexion ou par un mécanisme local géré par un circuit émetteur. Ce signal spécifique 210 a pour but de permettre à l'unité de gestion d'intersection 10 de mémoriser l'adresse logique diffusée sur le canal émetteur 2e dans son registre mémoire 16 d'adresse logique.L'adresse logique de l'intersection peut être chargée séquentiellement lors de la phase d'initialisation du crossbar, la fin de chargement d'une adresse logique d'une intersection déclenchant le début de chargement d'adresse de l'intersection suivante, soit à l'intérieur d'un même canal, soit pour l'ensemble du crossbar ou d'un composant crossbar. Les adresses logiques ou numéros de chaque point de connexion appartenant à un canal émetteur par exemple peuvent être chargées par le circuit processeur relié au canal émetteur. Les numéros, correspondant à une adresse, affectés aux points de connexion placés sur un canal récepteur 2r ne sont pas nécessairement les mêmes, de façon à permettre des "vues" différentes de ceux-ci à partir des canaux émetteurs 2e.Ceci peut permettre notamment de réaliser la multidiffusion d'information et l'organisation logique du crossbar, selon les besoins des différents circuits reliés à celui-ci. Les numéros logiques ou adresses des points de connexion peuvent être entièrement chargés au moment de l'initialisation dans la totalité de leur expression, ou bien comporter une partie "base d'adresse" chargée au moment de l'initialisation du crossbar, et une partie "déplacement dans le crossbar" (ou en général dans le canal émetteur), fixée lors de la fabrication du composant supportant le crossbar. Dans ce cas, la partie "base d'adresse" peut être diffusée à l'ensemble des intersections du crossbar. L'existence de bases d'adresses différentes n'est utilisée que dans une version multi-composants du crossbar.Dans le cas contraire, les adresses logiques peuvent être prédéfinies sous forme d'adresses physiques fixées lors de la fabrication du composant. Le registre mémoire d'adresse 16 est alors un registre de mémoire morte ("ROM"). Cette solution réduit la surface du substrat nécessaire pour mémoriser les adresses logiques du point de connexion, et peut également réduire la durée d'initialisation du crossbar, mais ne permet pas d'avoir des vues différentes des canaux récepteurs pour chaque circuit émetteur. Elle présente en outre des inconvénients pour la gestion de la résistance aux pannes du circuit d'interconnexion du fait qu'un circuit utilisateur d'un canal du crossbar doit connaître les numéros des points de connexion associés aux canaux en panne, ce qui n'est pas le cas Si les adresses des points de connexion sont purement logiques.A specific logic address creation signal 210 informs each intersection management unit 10 placed on a 2nd emitter channel, this signal being placed on initialization in the sequencer of the first intersection management unit. close to the corresponding transmitter circuit, by a global control signal of the interconnection unit or by a local mechanism managed by a transmitter circuit. This specific signal 210 is intended to enable the intersection management unit 10 to store the logical address broadcast on the second transmitter channel in its memory register 16 of logical address. The logical address of the intersection can be loaded sequentially during the initialization phase of the crossbar, the end of loading of a logical address of an intersection triggering the start of address loading of the next intersection, either within the same channel , either for the whole crossbar or a crossbar component. The logical addresses or numbers of each connection point belonging to an emitter channel for example may be loaded by the processor circuit connected to the emitter channel. The numbers, corresponding to an address, assigned to the connection points placed on a receiver channel 2r are not necessarily the same, so as to allow different "views" of them from the second transmitter channels. to carry out the multicasting of information and the logical organization of the crossbar, according to the needs of the different circuits connected to it. The logical numbers or addresses of the connection points can be fully loaded at the time of initialization in their entire expression, or include an "address base" part loaded at the time of initialization of the crossbar, and a part "displacement in the crossbar" (or in general in the transmitter channel), fixed during the manufacture of the component supporting the crossbar. In this case, the part "base of address" can be diffused to all the intersections of the crossbar. The existence of different address databases is only used in a multicomponent version of the crossbar. In the opposite case, the logical addresses can be predefined in the form of physical addresses set during the manufacture of the component. The address memory register 16 is then a read-only memory ("ROM") register. This solution reduces the area of the substrate necessary to store the logical addresses of the connection point, and can also reduce the initialization time of the crossbar, but does not allow to have different views of the receiver channels for each transmitter circuit. It also has drawbacks for the management of the fault resistance of the interconnection circuit because a user circuit of a crossbar channel must know the numbers of the connection points associated with the failed channels, which does not is not the case If the addresses of the connection points are purely logical.

Pour établir une demande de connexion entre au moins un circuit 100i et un circuit lQOj, on transmet depuis le circuit 100i sur le canal émetteur 2ei associé à ce circuit, un message contenant au moins l'adresse logique du point de connexion qui est placé sur le canal récepteur 2rj associé au circuit 100j. La transmission du message peut être fait soit en parallèle, soit en série sur le canal émetteur en fonction du type de transmission sur les canaux du crossbar comme cela a déjà été indiqué ci-dessus. De façon préférentielle, pour une transmission série, le message est constitué principalement d'une partie adresse contenant au moins l'adresse logique de la connexion demandée.Le message de demande de connexion diffuse sur le canal émetteur 2ei renseigne en parallèle chaque convertisseur 13 du canal émetteur 2ei. Selon le mode de réalisation de l'invention, le convertisseur 13 permet de décoder l'information provenant en série sur le canal émetteur à destination des autres éléments de canaux qui lui sont reliés, et respectant un protocole de transmission série caractérisé par exemple par la présence de bits spécifiques placés en début et fin de mot. In order to establish a connection request between at least one circuit 100i and a circuit 10Q1, a message containing at least the logical address of the connection point which is placed on the transmitter channel 2ei associated with this circuit is transmitted from the circuit 100i on the transmitter channel 2ei. the receiver channel 2rj associated with the circuit 100j. Transmission of the message can be done either in parallel or in series on the transmitter channel depending on the type of transmission on the crossbar channels as already indicated above. Preferably, for a serial transmission, the message consists mainly of an address part containing at least the logical address of the requested connection. The broadcast connection request message on the transmitter channel 2ei informs in parallel each converter 13 of the 2ndi transmitter channel. According to the embodiment of the invention, the converter 13 makes it possible to decode the information coming in series on the transmitter channel to the other channel elements connected to it, and respecting a serial transmission protocol characterized for example by the presence of specific bits placed at the beginning and end of the word.

L'adresse logique de demande de connexion obtenue, est comparée à l'adresse logique affectée préalablement au point de connexion et mémorisée dans le registre mémoire d'adresse 16, par le comparateur d'au moins deux adresses logiques 15. Si le résultat de la comparaison constate l'égalité des adresses logiques comparées, le séquenceur 17 renseigne la bascule logique 12, laquelle établit la connexion effective entre le canal émetteur et le canal récepteur considérés, l'état dudit séquenceur 17 mémorisant ltexsitence d'une demande de connexion. The logical connection request address obtained is compared to the logical address previously assigned to the connection point and stored in the address memory register 16 by the comparator of at least two logical addresses 15. If the result of the comparison shows the equality of the logical addresses compared, the sequencer 17 informs the logic latch 12, which establishes the effective connection between the transmitter channel and the receiver channel considered, the state of said sequencer 17 storing the existence of a connection request.

De façon préférentielle, le message de demande de connexion peut contenir en outre une valeur de masque composée d'une suite d'éléments binaires, cette valeur de masque permettant d'effectuer un multiadressage ("multicasting") depuis un circuit émetteur. Preferably, the connection request message may furthermore contain a mask value composed of a sequence of bits, this mask value making it possible to perform multicasting from a transmitter circuit.

Plus particulièrement, suivant la valeur du masque incluse dans le message de demande de connexion, on peut adresser un ensemble de canaux récepteurs de la façon suivante
- on effectue au préalable un ET logique entre chaque element binaire constitutif de l'adresse logique mémorisée dans le registre mémoire 16 de l'intersection et chaque élément binaire de la valeur du masque par rang correspondant, le résultat de cette opération étant mémorisée dans le registre de masque 14,
- on effectue l'opération de comparaison, via le comparateur 15, entre la valeur du registre de masque 14 et la valeur de l'adresse logique demandée contenue dans le convertisseur 13. Si le résultat de cette comparaison, comme précédemment, constate l'égalité des deux valeurs, le séquenceur 17 mémorise une demande de connexion.Par suite, en fonction de la valeur de masque et de l'adresse logique demandée, contenues dans le message de demande de connexion, il est possible d'établir une connexion en tout ou partie des points de connexion placés sur un canal émetteur pour la diffusion d'informations à tout ou partie des circuits récepteurs associés aux canaux récepteurs correspondants. Si les canaux émetteurs sont vus logiquement comme organisés en arbre binaire, un dispositif adéquat de masquage de bits dans le numéro de canal demandé permet d'adresser seulement un ensemble de sous-arbres de cet arbre binaire, en vue d'une multidiffusion. Une valeur spécifique de l'adresse logique demandée, signifiant "tout point de connexion du canal" peut être substituée à une adresse logique dans le message de demande de connexion pour effectuer une multidiffusion.Le même résultat peut être obtenu en masquant tous les bits d'adresse.
More particularly, depending on the value of the mask included in the connection request message, it is possible to address a set of receiver channels as follows
a logic AND is performed beforehand between each binary element constituting the logical address stored in the memory register 16 of the intersection and each bit of the value of the mask by a corresponding rank, the result of this operation being stored in the mask register 14,
the comparison operation is carried out, via the comparator 15, between the value of the mask register 14 and the value of the requested logical address contained in the converter 13. If the result of this comparison, as previously, states the equality of the two values, the sequencer 17 stores a connection request. Next, depending on the mask value and the requested logical address, contained in the connection request message, it is possible to establish a connection by all or part of the connection points placed on a sender channel for broadcasting information to all or part of the receiver circuits associated with the corresponding receiver channels. If the sending channels are logically seen as organized into a binary tree, a suitable bit masking device in the requested channel number makes it possible to address only a set of subtrees of this binary tree, for multicast purposes. A specific value of the requested logical address, meaning "any connection point of the channel" can be substituted for a logical address in the connection request message to perform a multicast. The same result can be obtained by hiding all the bits of 'address.

Le crossbar 1 selon l'invention comprend un mécanisme d'arbitrage pour la détection des collisions et la gestion de la priorité d'accès aux points de connexion du crossbar. Ce mécanisme d'arbitrage est de façon préférentielle distribué aux points de connexion du crossbar et peut découler de différents types de méthodes de gestion des collisions. The crossbar 1 according to the invention comprises an arbitration mechanism for the detection of collisions and the management of the priority of access to the connection points of the crossbar. This arbitration mechanism is preferentially distributed at the connection points of the crossbar and can arise from different types of collision management methods.

Une première méthode consiste å propager depuis une intersection située à l'extrême gauche d'un canal récepteur du crossbar et positionnée dans un état de demande de connexion, une information de contrôle vers les intersections situées à droite de la première (ou inversement) sur une ligne du même canal récepteur
Si une de ces intersections reçoit cette information de contrôle et est positionnée dans l'état de demande de connexion, elle détecte une collision possible et signale à son circuit émetteur correspondant une erreur. Cependant cette méthode présente l'inconvénient d'allouer une priorité des circuits par rang de canal émetteur et n'est en général pas satisfaisante dans un environnement parallèle.
A first method is to propagate from an intersection located on the far left of a crossbar receiver channel and positioned in a connection request state, control information to the intersections to the right of the first (or vice versa) on a line of the same receiver channel
If one of these intersections receives this control information and is set in the connection request state, it detects a possible collision and reports to its corresponding transmitter circuit an error. However, this method has the disadvantage of allocating a priority of the circuits per rank of transmitter channel and is not generally satisfactory in a parallel environment.

Une seconde méthode consiste à propager, depuis une intersection positionnée dans l'état de demande de connexion, une information de contrôle vers la droite et vers la gauche sur la même ligne du canal récepteur. Toute intersection de cette ligne recevant cette information de contrôle signale une erreur au circuit émetteur correspondant. Si deux circuits émetteurs tentent simultanément d'accéder au même canal récepteur, ils reçoivent un message d'erreur et seront en interblocage. Une solution distribuée pour éviter cet interblocage est l'attente aléatoire. Une autre solution consiste à recourir à une gestion centralisée des collisions par un processeur de contrôle auxiliaire. Un inconvénient important de cette méthode est qu'elle entraîne un taux de non utilisation important des canaux émetteurs et récepteurs. A second method is to propagate, from an intersection positioned in the connection request state, control information to the right and to the left on the same line of the receiver channel. Any intersection of this line receiving this control information signals an error to the corresponding transmitter circuit. If two sending circuits simultaneously attempt to access the same receive channel, they receive an error message and will be in deadlock. A distributed solution to avoid this deadlock is the random wait. Another solution is to use a centralized management of collisions by an auxiliary control processor. A major disadvantage of this method is that it leads to a high rate of non-use of the transmitter and receiver channels.

Une troisième méthode consiste à placer au niveau de chaque canal récepteur au moins du crossbar un protocole d'arbitrage distribué, celui-ci pouvant être implanté au niveau du composant. On affecte, à un moment donné, une priorité à une des intersections d'un canal récepteur, cette priorité se traduisant par l'existence d'une marque de priorité. Le circuit processeur associé au canal émetteur correspondant obtient cet accès. Lorsqu'il cesse d'utiliser le canal récepteur, la marque de priorité est propagée à l'intersection la plus proche dans le sens de propagation de la marque qui demande l'accès au canal récepteur. S'il n'existe pas de telles intersections, la marque de priorité est propagée à l'intersection immédiatement suivante dans le sens de propagation de la marque de priorité.Lorsqu'il existe une demande d'accès au canal récepteur par un canal émetteur, le temps d'allocation de la marque peut être limitée à une durée définie, ce qui revient & définir une longueur maximale des messages. A third method consists in placing at least one crossbar at each receiving channel a distributed arbitration protocol, which protocol can be implemented at the component level. At a given time, a priority is assigned to one of the intersections of a receiver channel, this priority being reflected in the existence of a priority mark. The processor circuit associated with the corresponding transmitter channel obtains this access. When it stops using the receiver channel, the priority mark is propagated to the nearest intersection in the propagation direction of the mark that requests access to the receiving channel. If no such intersections exist, the priority mark is propagated to the immediately following intersection in the direction of propagation of the priority mark. When there is a request for access to the receiving channel by an emitting channel , the allocation time of the mark can be limited to a defined duration, which amounts to defining a maximum length of the messages.

Selon la figure 7, le module de gestion de priorité est composé principalement d'un élément de mémorisation 110, de pistes de connexion 100, 160 à 170, et de portes logiques 130 et 140 placées sur les pistes de connexion. Lesdits moyens de mémorisation 110 sont placés en chaque point de connexion d'un canal récepteur, lesdits moyens de mémorisation 110 dudit canal récepteur étant reliés par la ligne spécifique 100 fermée de sorte que la marque circulant sur la ligne 100 et arrivant à l'extrémité droite du crossbar 1 par propagation selon ce sens, continue son cheminement jusqu'à l'extrémité gauche du crossbar par le retour de la ligne 100, puis de nouveau se propage vers la droite sur la ligne 100. According to FIG. 7, the priority management module consists mainly of a storage element 110, connection tracks 100, 160 to 170, and logic gates 130 and 140 placed on the connection tracks. Said storage means 110 are placed at each connection point of a receiver channel, said storage means 110 of said receiver channel being connected by the specific line 100 closed so that the mark circulating on the line 100 and arriving at the end crossbar 1 propagation by this direction, continues its path to the left end of the crossbar by the return of the line 100, then again spreads to the right on the line 100.

Dans cette réalisation préférentielle de l'invention, le moyen de mémorisation est principalement constitué d'un automate d'états finis (du type séquenceur). Les informations mémorisées dans le moyen de mémorisation 110 sont mémorisées sous forme d'états de cet automate, les états de l'automate décrivant la présence, l'absence ou le transfert d'un jeton de priorité ou marque. In this preferred embodiment of the invention, the storage means consists mainly of a finite state machine (of the sequencer type). The information stored in the storage means 110 are stored in the form of states of this automaton, the states of the automaton describing the presence, the absence or the transfer of a token of priority or mark.

De façon plus spécifique, les états différents de l'automate correspondent aux état suivants
- état 1 :"pas de marque",
- état 2 : "demande de connexion",
- état 3 : "marque active",
- état 4 : "marque suspendue",
- état 5 : "abandon de la marque".
More specifically, the different states of the automaton correspond to the following states
- state 1: "no mark",
- state 2: "connection request",
- state 3: "active mark",
- state 4: "suspended mark",
- state 5: "abandonment of the mark".

La transition d'un état à l'autre de l'automate se fait sur réception d'un signal d'horloge, en fonction de l'état courant et des signaux d'entrée de l'automate. Afin de décrire complètement le module de gestion de priorité, nous expliciterons la liste des états de l'automate, l'origine des signaux d'entrée de celui-ci, la destination des signaux de sortie de celui-ci, et ses équations de transition. The transition from one state to the other state of the automaton is done on reception of a clock signal, according to the current state and the input signals of the automaton. In order to fully describe the priority management module, we will explain the list of states of the PLC, the origin of the input signals from it, the destination of the output signals of the latter, and its equations of transition.

Selon la figure 7, les signaux d'entrée de l'élément de mémorisation 110 sont les suivants
- le signal d'entrée 160 sert à transférer la marque depuis sa piste de propagation 100 jusqu'à un moyen de mémorisation 110i vérifiant les conditions pour passer dans l'état 3 "marque active",
- le signal d'entrée 161 sert à transférer la marque depuis le module précédent llO# dans le module suivant 110i+l, suivant le sens de propagation de la marque, lorsqu'aucun autre moyen de mémorisation de la marque n'est demandeur de cette marque. Le signal d'entrée 161 permet un raccordement circulaire de l'ensemble des moyens de mémorisation 110 associés à un canal récepteur. Ce signal d'entrée 161 force l'automate du module 110i+l dans l'état 3 "marque active". Lorsque le module 100i est le module placé le plus à droite sur le canal récepteur, l'entrée 161 permet l'activation du module 100o situé le plus à gauche.
According to FIG. 7, the input signals of the storage element 110 are as follows
the input signal 160 serves to transfer the mark from its propagation track 100 to a storage means 110i satisfying the conditions for entering the state 3 "active mark",
the input signal 161 serves to transfer the mark from the previous module 11 0 # into the next module 110 1 + 1, according to the propagation direction of the mark, when no other means of storing the mark is requesting this brand. The input signal 161 allows a circular connection of all the storage means 110 associated with a receiver channel. This input signal 161 forces the automaton of the module 110i + 1 into the state 3 "active mark". When the module 100i is the rightmost module on the receiver channel, the input 161 allows the activation of the 100o module located on the left.

- le signal de sortie 165, correspondant & l'entrée 165 de l'unité de gestion d'intersection 10 correspondante, renseigne ladite unité pour l'établissement de la connexion
- le signal d'entrée 164 indique au moyen de mémorisation 110i qu'un message ordinaire est en cours de transmission, ou au contraire que ce n'est pas le cas.Ce signal d'entrée est relié à la piste spécifique 210 déterminant le type de message envoyé au crossbar (message/configuration) en provenance d'un module de gestion de colonne 20 qui sera décrit ultérieurement,
- le signal d'entrée 168 indique l'existence d'une demande de connexion de l'intersection, ce signal d'entrée étant généré par le séquenceur 17 de l'unité de gestion d'intersection 10 correspondante,
- le signal d'entrée 169 indique l'existence d'une demande de réquisition du canal récepteur associé à l'unité de gestion de priorité considérée, ladite demande de réquisition provenant d'une unité de gestion de ligne 30 qui sera décrite ultérieurement,
- le signal d'entrée 170 indique une demande de réinitialisation de l'élément de mémorisation 110i.
the output signal 165 corresponding to the input 165 of the corresponding intersection management unit 10 informs said unit for establishing the connection
the input signal 164 indicates to the storage means 110i that an ordinary message is being transmitted, or on the contrary that it is not the case. This input signal is connected to the specific track 210 determining the type of message sent to the crossbar (message / configuration) from a column management module 20 which will be described later,
the input signal 168 indicates the existence of an intersection connection request, this input signal being generated by the sequencer 17 of the corresponding intersection management unit 10,
the input signal 169 indicates the existence of a requisition request of the receiving channel associated with the priority management unit considered, said requisition request coming from a line management unit 30 which will be described later,
the input signal 170 indicates a request to reset the storage element 110i.

Dans la réalisation préférentielle de l'invention, il s'agit d'un signal global commun å toute unité d'interconnexion 1 et provenant d'un circuit de contrôle de ladite unité ou de la machine hôte dans laquelle elle est placée (signal "RESET" géneral),
- le signal d'entrée h correspond à une entrée de signal d'horloge connue en soi
Les signaux de sortie de l'élément de mémorisation 110 sont les suivants
- le signal de sortie 162 permet d'arrêter la propagation du signal de marque de priorité sur la piste de propagation 100, au niveau du moyen de mémorisation lîO# qui délivre la marque sur ladite piste de propagation. Par suite, cette marque n'effectue qu'un parcours de la piste 100.La valeur de cette sortie est positionnée à "VRAI" si l'état du moyen de mémorisation 110i est l'état 5 "abandon de marque" ou bien si le signal d'entrée 168 "demande de connexion" est positionné à "VRAI",
- le signal de sortie 163 permet de transmettre le signal représentant la marque sur la piste de propagation 100, où elle se propagera jusqu'au prochain élément de mémorisation 110 vérifiant les conditions pour passer dans l'état 3 "marque active".
In the preferred embodiment of the invention, it is a global signal common to any interconnection unit 1 and originating from a control circuit of said unit or of the host machine in which it is placed (signal " RESET "general",
the input signal h corresponds to a clock signal input known per se
The output signals of the storage element 110 are as follows
the output signal 162 makes it possible to stop the propagation of the priority mark signal on the propagation track 100, at the storage means 10 0 which delivers the mark on said propagation track. As a result, this mark performs only one course of the track 100. The value of this output is set to "TRUE" if the state of the storage means 110i is the state 5 "mark abandonment" or if the input signal 168 "connection request" is set to "TRUE",
the output signal 163 makes it possible to transmit the signal representing the mark on the propagation track 100, where it will propagate to the next storage element 110 verifying the conditions for entering the state 3 "active mark".

Ce signal de sortie 163 est positionné à "VRAI" Si l'élément de mémorisation 110i est dans l'état 5 "abandon de marque",
- le signal de sortie 166 est à "VRAI" Si l'état du moyen de mémorisation 110i est l'état 5 "abandon de marque". La valeur "VRAI" de ce signal de sortie est la condition pour propager le signal correspondant à la marque depuis la piste de propagation 100 vers la sortie 167 du moyen de mémorisation lOOi, laquelle est raccordée avec l'entrée 161 du moyen de mémorisation 100i+l, dans l'ordre de propagation du signal de marque de priorité.
This output signal 163 is set to "TRUE" If the storage element 110i is in the "mark abort" state,
the output signal 166 is "TRUE" If the state of the storage means 110 1 is the state 5 "mark abort". The value "TRUE" of this output signal is the condition for propagating the signal corresponding to the mark from the propagation track 100 to the output 167 of the storage means 100i, which is connected with the input 161 of the storage means 100i. + l, in the order of propagation of the priority mark signal.

Les autres moyens de propagation de signal d'une marque de priorité sont constitués par la piste de propagation 100, laquelle est raccordée à l'entrée 160 et 161 et à la sortie 163 du moyen de mémorisation 110. Le signal 167 contrôlé par la valeur du signal 166 est prélevé sur la piste 100 avant une porte 140, placée sur la piste 100, et dont le rôle sera décrit plus loin. Comme déjà mentionné précédemment, la piste 100 forme une boucle de sorte que la valeur du signal circulant sur la piste 100, après le moyen de mémorisation 110 d'indice maximum associé à un canal récepteur, est transmise par la piste 100 jusqu'au moyen de mémorisation 110 d'indice minimum. Cette piste 100 est donc formée d'un anneau unidirectionnel, la connexion des entrées sur cet anneau pouvant par exemple se faire par des portes logiques "OU".  The other signal propagation means of a priority mark consist of the propagation track 100, which is connected to the input 160 and 161 and to the output 163 of the storage means 110. The signal 167 controlled by the value signal 166 is taken on the track 100 before a gate 140, placed on the track 100, and whose role will be described later. As already mentioned, the track 100 forms a loop so that the value of the signal flowing on the track 100, after the maximum index storage means 110 associated with a receiving channel, is transmitted by the track 100 to the means for memorizing 110 of minimum index. This track 100 is therefore formed of a unidirectional ring, the connection of the inputs on this ring can for example be done by logic gates "OR".

On dispose sur les moyens de connexion 100 et 167 des portes logiques 130 et 140 dont les fonctions sont les suivantes. La porte logique 130 effectue un "ET" logique du signal provenant de la piste 100 et du signal 166 provenant du moyen de mémorisation 110i, et délivre le résultat sur la piste 167. La porte logique 140 effectue un ET logique entre le signal 100 et le signal inversé 162 provenant du moyen de mémorisation 110i. Cette porte logique 140 délivre le résultat correspondant dans la portion suivante de la piste 100, dans le sens de propagation du signal de marque de priorité. On pourra bien entendu effectuer le calcul des résultats ci-dessus mentionnés à partir d'une configuration équivalent de portes logiques "NON ET", "NON OU" et d'inverseurs "NON".L'objet de la porte logique 140 est d'arrêté le signal sur la piste 100 après un parcours complet sur l'anneau ou lorsque ce signal a permis le transfert de la marque dans le moyen de mémorisation courant. Le rôle de la porte logique 130 est de permettre la propagation de ce signal sur la piste 167 après un parcours complet de l'anneau, afin de forcer le moyen de mémorisation 110 suivant dans 1'état 3 "marque active". The connection means 100 and 167 have logic gates 130 and 140 whose functions are as follows. The logic gate 130 performs a logical "AND" of the signal from the track 100 and the signal 166 from the storage means 110i, and delivers the result on the track 167. The logic gate 140 performs a logical AND between the signal 100 and the inverted signal 162 from the storage means 110i. This logic gate 140 delivers the corresponding result in the next portion of the track 100, in the direction of propagation of the priority mark signal. One can of course perform the calculation of the results mentioned above from an equivalent configuration of logic gates "NAND", "NO OR" and "NO" inverters. The object of the logic gate 140 is stopped the signal on the track 100 after a complete course on the ring or when this signal has allowed the transfer of the mark in the current storage means. The role of the logic gate 130 is to allow the propagation of this signal on the track 167 after a complete course of the ring, in order to force the next storage means 110 in the state 3 "active mark".

Nous décrivons maintenant les équations de transition de l'automate. Selon la figure 8, l'automate comprend au moins cinq états, de 1 à 5, décrits précédemment. Dans la figure 8 nous avons représenté un sixième état correspondant à l'état initial 0 de sorte à faciliter la compréhension du séquencement des états d'un moyen de mémorisation 110. Dans l'état initial 0, la valeur contenue dans le moyen de mémorisaiton 110 est quelconque. Par conséquent, il n'est pas nécessaire qu'il existe un état physique de l'automate correspondant à cet état initial 0. We now describe the transition equations of the automaton. According to FIG. 8, the automaton comprises at least five states, from 1 to 5, previously described. In FIG. 8 we have represented a sixth state corresponding to the initial state 0 so as to facilitate the understanding of the sequencing of the states of a storage means 110. In the initial state 0, the value contained in the storage means 110 is arbitrary. Therefore, it is not necessary that there is a physical state of the automaton corresponding to this initial state 0.

Le séquencement effectif des état d'un moyen de mémorisation 110 commence à partir de l'état initial
O (en fait à partir d'un état quelconque), lorsque ledit moyen de mémorisation 110 reçoit le signal de réinitialisation 170. Un moyen de mémorisation 110, appartenant à un canal récepteur, passe alors dans l'état 3 marque active", ce moyen de mémorisation 110 étant déterminé à l'avance, les autres moyens de mémorisation 110 dudit canal récepteur passant dans l'état 1 "pas de marque".
The actual sequencing of the states of a storage means 110 starts from the initial state
O (in fact from any state), when said storage means 110 receives the reset signal 170. A storage means 110, belonging to a receiver channel, then enters the active mark state 3, which the storage means 110 being determined in advance, the other storage means 110 of said receiving channel passing into the state 1 "no mark".

A partir de l'état 1 "pas de marque", l'automate passe dans l'état 3 "marque active" dès qu'il reçoit le signal de forçage de la marque 161. A partir de l'état 1 "pas de marque", l'automate passe dans l'état 2 "demande de connexion" dès qu'il reçoit un signal de demande de connexion 168 et qu'il ne reçoit pas de signal de forçage de la marque 161 précité. Dans les autres cas, l'automate reste dans l'état courant 1 "pas de marque". From state 1 "no mark", the automaton goes into state 3 "active mark" as soon as it receives the signal forcing the mark 161. From state 1 "no "mark", the controller goes into state 2 "connection request" as soon as it receives a connection request signal 168 and does not receive a forcing signal of the aforementioned mark 161. In other cases, the automaton remains in the current state 1 "no mark".

A partie de l'état 2 "demande de connexion", l'automate passe dans l'état 3 "marque active" dès qu'il reçoit le signal 160 représentant le transfert de la marque. Dans le cas contraire, il reste dans l'état courant 2 "demande de connexion". From the state 2 "connection request", the PLC goes into state 3 "active mark" as soon as it receives the signal 160 representing the transfer of the mark. In the opposite case, it remains in the current state 2 "connection request".

A partir de l'état 3 "marque active", l'automate passe dans l'état 5 "abandon de marque" des qu'il reçoit le signal 164 avec une valeur signifiant "pas de message ordinaire en cours" (c'est-à-dire la valeur CONFIGURATION de ce signal), et le signal 169 de réquisition de canal correspondant à la valeur FAUX.  From the state 3 "active mark", the automaton goes into the state 5 "mark abandonment" as soon as it receives the signal 164 with a value meaning "no ordinary message in progress" (that is ie the CONFIGURATION value of this signal), and the channel requisition signal 169 corresponding to the FALSE value.

A partir de l'état 3 "marque active", l'automate passe dans l'état 4 "marque suspendue si le signal 164 possède la valeur pré-citée CONFIGURATION et si le signal 169 de réquisition de canal est positionné à "VRAI". Dans les autres cas, 1'automate reste dans son état courant 3 marque active".From state 3 "active mark", the automaton goes into state 4 "suspended mark if signal 164 has the value quoted CONFIGURATION and if channel requisition signal 169 is set to" TRUE " In other cases, the automaton remains in its current state 3 active mark ".

A partir de l'état 4 "marque suspendue, l'automate passe dans l'état 5 "abandon de marque" Si et seulement si le signal 169 de réquisition de canal est positionné à la valeur "FAUX". From state 4 "suspended mark, the PLC goes into state 5" mark abort "If and only if channel requisition signal 169 is set to the value" FALSE ".

A partir de l'état 5 "abandon de marque", l'automate passe dans l'état 3 "marque active" si le signal 168 de demande de connexion est positionné à "VRAI" et si le signal 160 de transfert de marque est positionné également à "VRAI". A partir de l'état 5 "abandon de marque", l'automate passe dans l'état 1 "pas de marque" si la condition précédente n'est pas remplie et s'il se trouve dans l'état 5 "abandon de marque" depuis un certain délai, qui peut être représenté par un nombre pré-défini de cycles d'horloge h.Cette condition de délai garantit que le signal 163 de transmission de la marque sera maintenu un temps suffisant pour que la marque puisse être propagée à un autre moyen de mémorisation 110 distant vérifiant les conditions pour passer dans l'état 3 "marque active". From the state 5 "mark abort", the automaton goes into state 3 "active mark" if the connection request signal 168 is set to "TRUE" and if the mark transfer signal 160 is also set to "TRUE". From state 5 "mark abandonment", the automaton goes into state 1 "no mark" if the previous condition is not fulfilled and if it is in the state 5 "abort of mark "for a certain period of time, which may be represented by a pre-defined number of clock cycles h.This delay condition ensures that the signal 163 of transmission of the mark will be maintained for a sufficient time for the mark to be propagated to another remote memory means 110 verifying the conditions for entering the state 3 "active mark".

On peut considérer qu'il existe toujours un tel élément de mémorisation de la marque de priorité vérifiant ces conditions. Lorsque les conditions de délai et la condition signal 168 positionné à "VRAI" et signal 160 positionné à "VRAI" ne sont pas remplies, l'automate reste dans l'état courant 5 "abandon de marque".It can be considered that there is always such a memorization element of the priority mark verifying these conditions. When the delay conditions and signal condition 168 set to "TRUE" and signal 160 set to "TRUE" are not met, the controller remains in the current state 5 "mark abort".

Lors d'échange de messages entre circuits, il convient de distinguer les messages ordinaires adressés depuis un circuit émetteur vers un circuit récepteur et transitant pas les canaux de communication du crossbar, des messages dits de service que les circuits reliés au crossbar envoient à celui-ci, comme par exemple les demandes de reconfiguration du-crossbar, les demandes de connexion émis par les circuits et les messages d'erreur émis par la structure crossbar. When exchanging messages between circuits, it is appropriate to distinguish the ordinary messages addressed from a transmitting circuit to a receiving circuit and not passing through the communication channels of the crossbar, so-called service messages that the circuits connected to the crossbar send to the latter. ci, such as requests for reconfiguration of the crossbar, connection requests issued by the circuits and error messages issued by the crossbar structure.

Cette distinction peut être réalisée de différentes manières indépendament de la structure du crossbar selon l'invention, l'une consistant à alterner systématiquement les messages ordinaires et les messages de service, l'autre consistant à place#r un code type de messages dans l'en-tête de chaque message. This distinction can be made in different ways independently of the structure of the crossbar according to the invention, one of alternating systematically ordinary messages and service messages, the other consisting of place # r a type code messages in the header of each message.

Cette dernière solution à l'inconvénient de modifier les formats de messages usuels utilisés par la plupart des processeurs. A titre de solution préférentielle nous-dêcrivons la première solution.This last solution has the disadvantage of modifying the usual message formats used by most processors. As a preferred solution we describe the first solution.

Dans ce cas, les messages ordinaires possèdent un format similaire aux messages de service, la détection du type de message étant réalisée par une unité de contrôle de colonne 20, reliée respectivement a chaque canal émetteur du crossbar, laquelle reçoit chaque message émis depuis un circuit relié à sa colonne correspondante, l'analyse et renvoie sur une ligne spécifique 210 un signal représentatif du type de message adressé notamment aux unités de gestion d'intersection 10 du canal, comme visible sur les figures 6 et 9. De façon préférentielle, l'unité de contrôle de colonne 20 comporte un convertisseur sérieparallèle adapté au mode de transmission des canaux du crossbar, un compteur de longueur de message et un séquenceur gérant au moins deux états å savoir "MESSAGE" ou "CONFIGURATION".La ligne spécifique 210 relie les unités de gestion d'intersection 10 placées au point de connexion d'un canal émetteur à l'unité de gestion de colonne 20 associée audit canal pour les informer du type de message qu'elles reçoivent. In this case, the ordinary messages have a format similar to the service messages, the detection of the type of message being carried out by a column control unit 20, respectively connected to each transmitting channel of the crossbar, which receives each message sent from a circuit connected to its corresponding column, the analysis and returns on a specific line 210 a signal representative of the type of message addressed in particular to the intersection management units 10 of the channel, as can be seen in FIGS. 6 and 9. Column control unit 20 comprises a serial parallel converter adapted to the mode of transmission of the crossbar channels, a message length counter and a sequencer managing at least two states namely "MESSAGE" or "CONFIGURATION" .The specific line 210 links the intersection management units 10 placed at the connection point of an emitter channel to the associated column management unit 20 audit channel to inform them of the type of message they receive.

Par ailleurs, l'ensemble des messages de service échangés dans la structure crossbar doit généralement être acquitté. Dans la réalisation préférentielle de l'invention, on place au nord de chaque canal émetteur 2e, une unité de gestion d'acquittement de message 40, l'unité d'interconnexion 1 étant représentée de sorte que ses canaux émetteurs sont vus comme des pistes Nord-Sud, comme visible en figure 9. Moreover, all the service messages exchanged in the crossbar structure must generally be acknowledged. In the preferred embodiment of the invention, a message acknowledgment management unit 40 is placed north of each transmitting channel 2e, the interconnection unit 1 being represented so that its sending channels are seen as tracks. North-South, as shown in Figure 9.

De façon plus spécifique, l'unité de gestion d'acquittement 40 de message comprend un convertisseur série-parallèle et un séquenceur pour le décodage du message transitant sur le canal émetteur auquel elle est reliée. L'unité de gestion d'acquittement 40 est renseignée par une de ses entrée par la ligne 210 de détermination du type de messages (MESSAGES /
CONFIGURATION). Pour acquitter le message provenant d'un circuit émetteur et transitant par un canal émetteur correspondant, l'unité de gestion d'acquittement 40 associé audit canal émetteur renvoie une information d'acquittement au circuit qui a émis le message. Ce signal d'acquittement est transmis par une piste verticale spécifique (non représentée).A l'intersection de la colonne avec la diagonale Nord
Ouest - Sud Est du crossbar, le signal est transmis à la piste réceptrice de cette intersection. Dans le cas ou le crossbar est multicomposants, seuls les composants situés sur la diagonale du crossbar multicomposants commutent le signal vers la piste réceptrice. Plusieurs solutions sont possibles pour assurer cette propriété. L'une d'entre elles est de distinguer deux types de composants, l'un avec commutation sur la diagonale, l'autre sans commutation.
More specifically, the message acknowledgment management unit 40 comprises a serial-parallel converter and a sequencer for decoding the message transiting on the transmitter channel to which it is connected. Acknowledgment management unit 40 is indicated by one of its inputs by line 210 for determining the type of messages (MESSAGES /
CONFIGURATION). To acknowledge the message from a transmitter circuit and passing through a corresponding transmitter channel, the acknowledgment management unit 40 associated with said transmitter channel returns an acknowledgment information to the circuit that sent the message. This acknowledgment signal is transmitted by a specific vertical track (not shown). At the intersection of the column with the diagonal North
West - South East of the crossbar, the signal is transmitted to the receiving track of this intersection. In the case where the crossbar is multicomponent, only the components located on the diagonal of the multicomponent crossbar switch the signal to the receiving track. Several solutions are possible to ensure this property. One of them is to distinguish two types of components, one with switching on the diagonal, the other without switching.

Une-autre est de réaliser une commande globale de cette commutation, le signal assurant cette commande étant fixé sur la carte.Another is to make a global command of this switching, the signal providing this command being fixed on the card.

Dans la forme de réalisation préférentielle de l'invention, le crossbar 1 comprend une pluralité d'unités de gestion- de ligne 30, lesdites unités 30 étant réparties de préférence à l'ouest de chaque canal récepteur 2r, chaque unité 30 étant constituée d'au moins une bascule de réquisition de canal. L'unité de gestion de ligne 30 transmet par la ligne spécifique 169 de réquisition de canal récepteur, un état de réquisition dudit canal, contenu dans l'unité de gestion de ligne 30, aux différents moyens de mémorisation 110 de l'état d'une marque de priorité associé audit canal récepteur, de sorte qu'une fois terminée la transmission en cours sur un canal récepteur, il ne puisse y avoir d'autres transmissions de message avant l'acquittement considéré. Seules les intersections placées sur la diagonale principale du crossbar ne sont pas bloquées par ce signal. In the preferred embodiment of the invention, the crossbar 1 comprises a plurality of line management units 30, said units 30 being preferably distributed to the west of each receiving channel 2r, each unit 30 consisting of at least one channel requisition flip-flop. The line management unit 30 transmits, via the receiving channel requisition specific line 169, a requisition state of said channel, contained in the line management unit 30, to the various storage means 110 of the state of operation. a priority mark associated with said receiving channel, so that when the current transmission on a receiving channel is completed, there can be no further message transmissions before the acknowledgment. Only intersections on the main diagonal of the crossbar are not blocked by this signal.

Comme il a été indiqué dans la description de l'état de l'art, les crossbars actuels utilisent fréquemment des canaux émetteurs et récepteurs placés dans la même dimension, ces canaux étant reliés selon les besoins par des canaux spécifiques placés sur l'autre dimension du crossbar. Ceci implique d'avoir un canal émetteur et un canal récepteur par ligne et par colonne dans le cas où les canaux sont monodirec tionnels.Cette solution présente l'avantage que la connexion de deux circuits processeurs peut se faire suivant un canal horizontal quelconque ce qui augmente la tolérance aux pannes. -
Le message émis sur un canal émetteur transite par au moins deux intersections, ceci pouvant impliquer que l'adresse logique d'intersection contenue dans le message de service décrit précédemment comporte au moins deux parties, l'une contenant l'adresse logique de la première intersection sur le canal émetteur, l'autre contenant l'adresse logique de la deuxième intersection sur le canal de raccordement.
As has been indicated in the description of the state of the art, current crossbars frequently use transmitter and receiver channels placed in the same dimension, these channels being connected as needed by specific channels placed on the other dimension of the crossbar. This implies having a transmitter channel and a receiver channel per line and column in the case where the channels are monodirectional. This solution has the advantage that the connection of two processor circuits can be carried out in any horizontal channel. increases fault tolerance. -
The message transmitted on an emitter channel passes through at least two intersections, this may imply that the logical intersection address contained in the service message described above comprises at least two parts, one containing the logical address of the first intersection on the transmitter channel, the other containing the logical address of the second intersection on the connecting channel.

Ceci implique par conséquent qu'il existe un mécanisme d'arbitrage (gestion de la marque de priorité) sur les canaux émetteurs et les canaux de raccordement. Lorsque le canal émetteur a acquis la priorité sur la première intersection, il doit demander la priorité sur la deuxième intersection. Ceci est de nature à créer un temps d'attente pour le canal émetteur aussi bien que pour le canal de raccordement. Pour éviter ce phénomène le message effectif (message ordinaire) est transmis à la première intersection dès l'obtention de la priorité sur cette intersection. Le canal de raccordement n'étant pas nécessairement disponible à ce moment là, ledit message est rangé dans un moyen de mémorisation adapté placé au niveau de cette intersection (non représentée). Le canal émetteur devient à nouveau disponible et l'unité de gestion de ladite intersection demande la priorité sur le canal de raccordement. Dès que cette priorité est obtenue, le message est transmis par la seconde intersection jusqu'au circuit destinataire. Pour accroître le. débit du crossbar, il est possible de placer également un moyen de memorisa- tion des messages au niveau de l'intersection entre le canal de raccordement et le canal récepteur. Cette organisation maximise le débit du crossbar selon l'invention. This therefore implies that there is an arbitration mechanism (priority mark management) on the sending and connecting channels. When the sender channel has acquired priority over the first intersection, it must request priority over the second intersection. This is likely to create a waiting time for the transmitter channel as well as for the connection channel. To avoid this phenomenon, the actual message (ordinary message) is transmitted to the first intersection as soon as priority is given to this intersection. The connection channel is not necessarily available at this time, said message is stored in a suitable storage means placed at this intersection (not shown). The sender channel becomes available again and the management unit of said intersection requests priority over the connection channel. As soon as this priority is obtained, the message is transmitted by the second intersection to the destination circuit. To increase the. As a result of the crossbar flow, it is possible to place also message storing means at the intersection between the connecting channel and the receiving channel. This organization maximizes the flow rate of the crossbar according to the invention.

Nous décrirons par la suite, différentes utilisations du crossbar selon l'invention. We will describe later, various uses of the crossbar according to the invention.

GESTION DISTRIBUEE D'UNE MEMOIRE VIRTUELLE. DISTRIBUTED MANAGEMENT OF A VIRTUAL MEMORY.

Une utilisation privilégiée du crossbar à reconfiguration distribuée selon l'invention, concerne la gestion distribuée d'une mémoire virtuelle dite "orientée objets". La gestion globale d'une mémoire virtuelle, dans une machine parallèle, est généralement envisagée dans le contexte d'une machine fortement couplée (à mémoire partagée) possédant des caches et une mémoire primaire. Cependant le problème se pose aussi dans le cas d'une machine faiblement couplée, où les processeurs communiquent par message. Des données de grande taille, par exemple de type relation (CODD,
E.F., "A Relational model of Data for Larges Shared
Data Banks", Communications of ACM, #13, 6, juin 1970), peuvent -être réparties entre plusieurs processeurs.
A preferred use of the distributed reconfiguration crossbar according to the invention concerns the distributed management of a so-called "object-oriented" virtual memory. The global management of a virtual memory, in a parallel machine, is generally considered in the context of a strongly coupled machine (with shared memory) having caches and a primary memory. However, the problem also arises in the case of a weakly coupled machine, where the processors communicate by message. Large data, for example of the relationship type (CODD,
EF, "A Relational Model of Data for Larges Shared
Data Banks ", Communications of ACM, # 13, 6, June 1970), can be distributed among several processors.

utilisant ces données. Dans une approche orientée objets", ces relations sont des ensembles d'objets dans lesquelles chaque objet est représente par un identifiant, qui est une adresse logique invariante.using this data. In an object-oriented approach, these relationships are sets of objects in which each object is represented by an identifier, which is an invariant logical address.

Les identifiants sont échangés entre processeurs, et doivent pouvoir être transformés en adresses logiques classiques ou en adresses phys#iques par n'importe quel processeur. Dans un système de ce type, une adresse physique d'objet peut être vue comme un couple < numéro de processeur > < adresse locale à un circuit processeur > .The identifiers are exchanged between processors, and must be able to be transformed into conventional logical addresses or physical addresses by any processor. In such a system, a physical object address can be seen as a couple <processor number> <local address to a processor circuit>.

Cette représentation est nécessaire pour savoir à quel processeur demander la donnée référencée par l'identifiant.This representation is necessary to know which processor to request the data referenced by the identifier.

Dans le cas d'une adresse logique de type identifiant, le numéro de processeur de la donnée correspondante ne peut pas être directement déterminé à partir d'un champ de l'adresse logique. En effet, l'identifiant doit être invariant même en cas de modification de valeur de l'objet référencé, alors que le placement de cet objet entre les processeurs peut être déterminé par cette valeur. In the case of an identifier-type logical address, the processor number of the corresponding data can not be directly determined from a field of the logical address. Indeed, the identifier must be invariant even if the value of the referenced object changes, while the placement of this object between the processors can be determined by this value.

La solution connue pour définir une adresse logique invariante consiste à réaliser deux "étages" d'adressage logique comme décrit dans le brevet européen n 88 401819.3. L'objet possède un premier niveau d'adressage logique, que nous appelons l'identifiant physique, et qui est une adresse logique classique mis à part le fait qu'elle contient un numéro d'objet dans une page et non un déplacement dans cette page. Cette solution permet de ne pas changer l'identifiant physique en cas de compactage de la page, ce qui simplifie le problème dit -de la gestion des trous ou du "ramasse-miettes". Dans un environnement multi-processeurs, l'identifiant physique est composé des champs < numéro de processeur > < numéro de paquet (facultatif) > < numéro de page > < numéro d'objet > .Comme l'identifiant physique est de taille fixe, il peut être mis à jour en place, et son adresse logique est invariante. L'identifiant logique est donc l'adresse logique de l'identifiant physique. Dans la solution présenté dans la demande de brevet européen pré-citée, l'identifiant logique est composé des champs < numero de paquet logique > < numéro de page logique > < numéro d'objet logique > . Par suite il ne contient aucune information permettant de déterminer le processeur où se trouve la donnée. The known solution for defining an invariant logical address consists in carrying out two logical addressing "stages" as described in European Patent No. 88 401819.3. The object has a first level of logical addressing, which we call the physical identifier, and which is a classic logical address except that it contains an object number in a page and not a move in that page. This solution makes it possible not to change the physical identifier in case of compaction of the page, which simplifies the problem said of the management of the holes or the "garbage collection". In a multiprocessor environment, the physical identifier is composed of the <processor number> <packet number (optional)> <page number> <object number> fields. Since the physical identifier is of fixed size, it can be updated in place, and its logical address is invariant. The logical identifier is therefore the logical address of the physical identifier. In the solution presented in the aforementioned European patent application, the logical identifier is composed of the fields <logical packet number> <logical page number> <logical object number>. As a result it contains no information to determine the processor where the data is.

La transformation d'un identifiant logique en identifiant physique, et d'un indentifiant physique en adresse physique, s'effectue à travers des tables de décodage suivant une solution apparentée au mécanisme général de décodage des adresses logiques. Ces tables comprennent au moins un identifiant physique et une adresse, tous deux normalement sur au moins 32 bits, par objet. Aussi il n'est pas possible de les répliquer sur tous les processeurs, d'une part pour des raisons de coût de mise à jour, et d'autre part parce que le volume des tables pourrait largement dépasser le volume des données référencées. On est donc amené à distribuer les tables entre les processeurs.Les identifiants physiques permettant nécessairement de calculer le numéro de processeur, les tables correspondantes peuvent être placées sur les mêmes processeurs que les données qu'ils référencent. par contre les tables permettant de décoder les deux ientifiants logiques ne peuvent être placées que de façon indépendante de la localisation des données. La solution la plus naturelle est de les placer entre les processe#urs par hachage sur l'identifiant. The transformation of a logical identifier into a physical identifier, and a physical identifier into a physical address, is performed through decoding tables following a solution related to the general mechanism for decoding logical addresses. These tables include at least one physical identifier and an address, both normally on at least 32 bits, per object. Also it is not possible to replicate them on all the processors, firstly for reasons of update cost, and secondly because the volume of the tables could greatly exceed the volume of the referenced data. It is therefore necessary to distribute the tables between the processors. The physical identifiers necessarily necessary to calculate the processor number, the corresponding tables can be placed on the same processors as the data they reference. on the other hand, the tables making it possible to decode the two logical ientifiants can be placed only in a way independent of the localization of the data. The most natural solution is to place them between the hash processes on the identifier.

Lorsqu'une relation de R tuples (ou plus généralement objets) résultant d'opérations relationnelles (CODD, E.F., article pré-cité) est répartie entre p processeurs, elle est en général représentée par R identifiants ou n-uplets d'identifiants, également répartis entre ces processeurs (un n-uplet d'identifants résulte de plusieurs opérations associant n relations source). Pour effectuer d'autres opérations sur cette relation ou lire ses tuples, il faut transformer les identifiants en adresses physiques. A cette fin, dans le procédé suivant l'invention, chaque processeur hache ses R/p tuples en p' paquets et les transmet aux p'processeurs gérant les tables de décodage des identifiants logiques. Ces p' processeurs renvoient les paquets d'identifiants physiques correspondants. De façon générale p L77 p' et il est commode que p = p'.On supposera par la suite que les processeurs traitant les données sont numérotés de A+l à A + p, ceux effectuant le décodage de B + 1 à
B + p. Pour éviter des conflits d'accès et une gestion centralisée, l'envoi des paquets est synchronisé, chaque processeur d'indice A + p adressant d'abord un paquet au processeur d'indice B + p puis B + p + 1, et ainsi de suite de façon circulaire (après avoir transmis un paquet au processeur B + p un processeur continue éventuellement par le processeur B + 1); Les liens ou les chemins entre processeurs doivent être reconfigurés après chaque étape, dont la durée est (k *
R * F / p2) + S, où F est le facteur d'uniformité du hachage (rapport entre la taille moyenne et maximale d'un paquet), k le délai de transmission d'un paquet et
S le délai de synchronisation.
When a relation of R tuples (or more generally objects) resulting from relational operations (CODD, EF, article cited above) is distributed between p processors, it is generally represented by R identifiers or n-tuples of identifiers, also distributed among these processors (a n-tuple of identifiers results from several operations associating n source relations). To perform other operations on this relationship or read its tuples, you must transform the identifiers into physical addresses. For this purpose, in the method according to the invention, each processor has its R / p tuples in p 'packets and transmits them to the processors managing the decoding tables of the logical identifiers. These p 'processors return the corresponding physical identifier packets. In a general way p L77 p 'and it is convenient that p = p'. It will be assumed later that the processors processing the data are numbered from A + 1 to A + p, those performing the decoding of B + 1 to
B + p. In order to avoid access conflicts and centralized management, the sending of the packets is synchronized, each processor of index A + p first addressing a packet to the processor of index B + p and then B + p + 1, and thus in a circular manner (after having transmitted a packet to the processor B + p a continuous processor possibly by the processor B + 1); Links or paths between processors must be reconfigured after each step, whose duration is (k *
R * F / p2) + S, where F is the uniformity factor of the hash (ratio between the average and maximum size of a packet), k the transmission delay of a packet and
S the synchronization delay.

En pratique la taille d'un paquet (soit b=R / p2) dépend de p mais elle doit être supérieure à quelques unités pour que F ne soit pas trop élevé. Nous prendrons par ailleurs K = 0,3 ss sec. , S = 0,2 sec., p = 16, R = 10.000, F = 1.2. Les valeurs de k, S, p, correspondent à des valeurs vraisemblables si le processeur est un transputer T800 (Inmos), F peut être évalué par des simulations, R est une valeur courante. In practice the size of a packet (ie b = R / p2) depends on p but must be greater than a few units so that F is not too high. We will also take K = 0.3 sec sec. , S = 0.2 sec., P = 16, R = 10,000, F = 1.2. The values of k, S, p, correspond to probable values if the processor is a transputer T800 (Inmos), F can be evaluated by simulations, R is a current value.

Dans ce cas la durée d'une étape de reconfiguration est 12 sec + 3,2 + sec = 15,2 + A/Csec. In this case the duration of a reconfiguration step is 12 sec + 3.2 + sec = 15.2 + A / Csec.

Pour que le délai de reconfiguration ne réduise pas trop le rendement du multiprocesseur, et représente par exemple moins de 20 % du temps de transfert, il faut que la reconfiguration s'effectue en environ 3 ss sec ou moins, ce qui est évidemment très loin des quelques 1.000 ss sec d'une reconfiguration complète dans des systèmes actuels de crossbar selon nos estimations, ou même des quelques 300 ss sec auxquels on aboutirait avec une reconfiguration partielle, limitée à quelques dizaines d'intersections. So that the reconfiguration delay does not reduce the output of the multiprocessor too much, and represents for example less than 20% of the transfer time, it is necessary that the reconfiguration takes place in about 3 seconds or less, which is obviously very far some 1,000 ss sec of a complete reconfiguration in current crossbar systems according to our estimates, or even some 300 sec sec to which we would end with a partial reconfiguration, limited to a few dozens of intersections.

Dans le procédé suivant l'invention, chaque processeur de calcul connaît la liste de ses processeurs de décodage successifs. D'autre part, une synchronisation est effectuée préférentiellement de la manière suivante. Une liaison bidirectionnelle simple ou en anneau est réalisée entre les p processeurs avec des liens disponibles grâce à une configuration adéquate du crossbar. Cette liaison en anneau est maintenue pendant toute la durée de l'opération qui utilise la grappe de p processeurs; Si la grappe de p processeurs possède un bus spécifique à cette grappe et destiné par exemple au contrôle des processeurs, il est également concevable d'utiliser ce bus. Cette liaison connecte le processeur A + 1 avec A + 2, A + 2 avec A + 3, etc. Lorsque le processeur d'indice A + 1 a terminé l'étape en cours, il transmet un message au processeur d'indice A + 2.Quand celui-ci a également terminé l'étape en cours, il transmet le message au processeur
A + 3, et ainsi de suite. Quand le processeur A + p a reçu le message et terminé l'étape courante, il commence l'étape suivante et renvoie le message au processeur A+ p - 1, qui fait de même et transmet le message en direction du processeur A + p -2, et ainsi de suite. Avant de commencer le transfert du paquet vers le processeur de décodage correspondant à l'étape considérée, chaque processeur d'indice A + i (i < p) demande au crossbar sa connexion avec les canaux récepteurs correspondants du processeur de décodage.
In the method according to the invention, each calculation processor knows the list of its successive decoding processors. On the other hand, a synchronization is preferably performed in the following manner. A simple or ring bidirectional link is made between the p processors with links available thanks to a suitable configuration of the crossbar. This ring link is maintained for the duration of the operation that uses the cluster of p processors; If the cluster of p processors has a bus specific to this cluster and intended for example to control processors, it is also conceivable to use this bus. This link connects the processor A + 1 with A + 2, A + 2 with A + 3, and so on. When the processor of index A + 1 has completed the current step, it transmits a message to the processor of index A + 2.When the latter has also completed the current step, it transmits the message to the processor
A + 3, and so on. When the processor A + pa receives the message and completes the current step, it begins the next step and returns the message to the processor A + p - 1, which does the same and transmits the message to the processor A + p -2 , And so on. Before starting the transfer of the packet to the decoding processor corresponding to the step considered, each processor of index A + i (i <p) requests the crossbar its connection with the corresponding receiver channels of the decoding processor.

Afin d'éviter le risque de collision, un ou plusieurs canaux d'entrée sont réservés sur chaque processeur de décodage et sont tous utilisés par le processeur qui lui transmet les identifiants.To avoid the risk of collision, one or more input channels are reserved on each decoding processor and are all used by the processor that transmits the identifiers.

Ce procédé correspond à une utilisation du crossbar å reconfiguration distribuée dans une application "SIMD" å grain fin. Toutefois le crossbar selon l'invention peut aussi être utilise avec un accès aléatoire par chaque processeur, dans les applications "MIMD" à grain fin. This method corresponds to a use of the distributed reconfiguration crossbar in a "fine grain" SIMD application. However, the crossbar according to the invention can also be used with random access by each processor, in applications "MIMD" fine grain.

RESEAU NEURONAL. NEURONAL NETWORK.

Une autre utilisation du crossbar selon l'invention concerne les réseaux neuronaux. Another use of the crossbar according to the invention relates to neural networks.

Dans le crossbar à commande distribuée la logique est située aux noeuds du réseau dtinter- connexion, et d'autre part la taille des circuits situés à ces noeuds est très réduite, permettant l'implantation de très, nombreuses interconnexions sur une tranche. Ces propriétés sont similaires à celles que l'on attend en général d'un réseau de processeurs de type "neuronal". D'autre part dans le cas où la commande est effectuée par les processeurs récepteurs, le crossbar selon l'invention tel qu'il a été décrit précédemment correspond a un réseau neuronal ou les poids sont soit 0, soit 1. In the distributed control crossbar the logic is located at the nodes of the interconnection network, and on the other hand the size of the circuits located at these nodes is very small, allowing the implantation of very many interconnections on a slice. These properties are similar to those generally expected of a network of "neuronal" type processors. On the other hand, in the case where the control is performed by the receiving processors, the crossbar according to the invention as described above corresponds to a neural network where the weights are either 0 or 1.

Dans le cas d'un réseau neuronal, chaque intersection reçoit des messages d'un processeur émetteur, et les retransmet à un processeur récepteur. In the case of a neural network, each intersection receives messages from a sending processor, and retransmits them to a receiving processor.

Le principe d'un réseau de type "neuronal" est que chaque processeur délivre une réponse qui est fonction de la somme des signaux reçus (représentés par exemple par un message contenant un nombre) à partir de chacun des canaux émetteurs, multipliés par le poids associé à l'interconnexion correspondante. La logique étant distribuée sur les interconnexions, celles-ci ne doivent pas retransmettre immédiatement chaque signal reçu, mais le multiplier d'abord par le poids qui leur est associé. Afin de permettre l'adaptation du poids de l'intersection, chaque intersection reçoit aussi des messages du processeur récepteur l'informant du niveau d'activité de celui-ci, et éventuellement des messages diffusés globalement a l'ensemble du réseau l'informant du degré de validation de la réponse.Ces trois types de messages peuvent être transmis alternativement å l'intersection, la valeur du message étant le niveau d'activation du processeur source (ou de la réponse), ou un facteur modificatif (par exemple additif ou multiplicatif) de ce niveau, préalablement enregistré dans un registre de l'intersection; Le signal de chaque canal émetteur est transmis simultanément à toutes les intersections auxquelles il est connecté; Chaque canal récepteur reçoit un signal de toute intersection à laquelle il est connecté.The principle of a "neural" type network is that each processor delivers a response that is a function of the sum of the received signals (represented for example by a message containing a number) from each of the transmitter channels, multiplied by the weight associated with the corresponding interconnection. The logic being distributed over the interconnections, these must not retransmit each received signal immediately, but multiply it first by the weight which is associated with them. In order to allow the weighting of the intersection to be adjusted, each intersection also receives messages from the receiving processor informing it of the activity level thereof, and possibly messages broadcast globally to the entire network informing it. the degree of validation of the response. These three types of messages can be transmitted alternately to the intersection, the message value being the activation level of the source processor (or the response), or a modifying factor (for example additive or multiplicative) of this level, previously recorded in a register of the intersection; The signal of each transmitter channel is transmitted simultaneously to all the intersections to which it is connected; Each receiving channel receives a signal from any intersection to which it is connected.

Le mode de fonctionnement du crossbar est donc ici la multidiffusion ("multicasting").  The mode of operation of the crossbar is here multicasting ("multicasting").

Toutefois celle-ci ne peut intervenir que depuis un canal émetteur à la fois. Pour éviter des collisions, deux solutions sont envisageables. Dans la première, chaque canal émetteur stexprime de façon successive sur le bus, au moins à l'intérieur de groupes de canaux émetteurs déterminés de façon statique ou dynamique. La réception est donc parallèle, l'émission- séquentielle (le contraire serait également possible). However, it can only intervene from one transmitter channel at a time. To avoid collisions, two solutions are possible. In the first case, each transmitter channel steers successively on the bus, at least within groups of transmit channels determined statically or dynamically. The reception is therefore parallel, the sequential transmission (the opposite would also be possible).

Une deuxième solution réside dans le fait que tous les processeurs émettent en même temps, . mais l'information n'est pas transmise immédiatement au processeur récepteur. Cette solution correspond au stockage d'informations provenant des messages au niveau des intersections, solution que nous avons décrite précédemment dans le cadre de crossbars avec des canaux émetteurs et récepteurs dans la même dimension, ce qui est le cas ici. Dans cette deuxième solution, l'information est cumulée dans l'intersection (ceci revient à déterminer un niveau moyen), puis multipliée avec le poids, enfin transmise au processeur récepteur. Les opérations au niveau de l'intersection peuvent être plus complexes qu'un simple cumul, et inclure des caractéristiques de distribution comme le niveau munimum et maximum d'activation pendant la période.Pour cette transmission, soit (i) un multiplexage intervient entre les différentes intersections d'un même récepteur, soit (ii) celles-ci transmettent leur résultat chacune à leur tour, par exemple en étant activée par l'intersection précédente du même récepteur, soit (iii) les intersections demandent l'accès au canal récepteur quand le niveau de message a transmettre dépasse un certain seuil. A ce moment là on utilisera sur la ligne correspondant au récepteur un mécanisme d'arbitrage reparti équivalent à celui proposé précédemment pour les utilisations classiques du crossbar. L'accès aux canaux récepteurs se fera de façon équitable pour les canaux émetteurs ayant la même fréquence d'émission, mais moins souvent pour ceux demandant moins fréquemment l'accès à ces canaux. La solution (iii) parait la plus intéressante, notamment sur le plan des débits de communication possibles. A second solution lies in the fact that all the processors emit at the same time,. but the information is not transmitted immediately to the receiving processor. This solution corresponds to the storage of information from the messages at the intersection level, a solution that we have previously described in the context of crossbars with sending and receiving channels in the same dimension, which is the case here. In this second solution, the information is accumulated in the intersection (this amounts to determining a mean level), then multiplied with the weight, finally transmitted to the receiving processor. Operations at the intersection may be more complex than simple aggregation, and include distribution characteristics such as the munimum and maximum activation level during the period. For this transmission, either (i) multiplexing occurs between different intersections of the same receiver, either (ii) these transmit their result each in turn, for example by being activated by the previous intersection of the same receiver, or (iii) the intersections require access to the receiving channel when the level of message to be transmitted exceeds a certain threshold. At this time we will use on the line corresponding to the receiver a distributed arbitration mechanism equivalent to that previously proposed for conventional uses of the crossbar. Access to the receiving channels will be fair for transmission channels with the same transmission frequency, but less often for those requiring less frequent access to these channels. Solution (iii) seems the most interesting, especially in terms of possible communication rates.

Le calcul de la nouvelle valeur du poids est effectue à l'aide d'une unité arithmétique et logique placée en chaque point de connexion, qui peut être composée par exemple d'un additionneur et d'un registre à décalage, l'un au moins des niveaux d'activation étant alors rangé dans un compteur. Compte tenu du caractère séquentiel de l'émission ou de la réception, les opérations effectuées par chaque intersection n'ont pas besoin d'être effectuées rapidement, et des circuits séquentiels suffisent. Par suite à partir des évaluations qui seront présentées ci-dessous, la taille de l'intersection en technologie 0,5 microns devrait être de l'ordre de 600 * 800 microns carrés, et le nombre de processeurs élémentaires devrait être approximativement le même que dans une utilisation conventionnelle du crossbar. The calculation of the new value of the weight is carried out using an arithmetic and logic unit placed at each connection point, which can be composed for example of an adder and a shift register, one the activation levels are then stored in a counter. Given the sequential nature of the transmission or reception, the operations performed by each intersection do not need to be performed quickly, and sequential circuits are sufficient. As a result of the evaluations that will be presented below, the size of the intersection in 0.5 micron technology should be in the order of 600 * 800 square microns, and the number of elementary processors should be approximately the same as in a conventional use of the crossbar.

Compte tenu de leur faible complexité, ces processeurs pourront éventuellement résider sur la même tranche que les unités de gestion des intersections. Il sera alors possible d'interconnecter environ 1.000 processeurs sur une unité å deux dimensions de la taille d'une tranche, avec un million d'interconnexions fonctionnant en parallèle. Given their low complexity, these processors may eventually reside on the same slot as the intersection management units. It will then be possible to interconnect about 1,000 processors on a two-size unit of the size of a slice, with one million interconnections operating in parallel.

On peut noter que les réseaux neuronaux sont souvent simulées sur des architectures comportant un degré inférieur de parallélisme. Le crossbar à reconfiguration rapide du type de celui de l'invention se prête tout à fait à l'exécution des opérations d'un réseau neuronal comportant un nombre n fois plus élevé de neurones, à condition que chaque intersection comporte n mots de mémoire à la place de la bascule d'état 12, et que chaque processeur élémentaire (ou neurone) puisse conserver son niveau d'activation dans une mémoire de n mots (la taille du mot en bits étant le logarithme du nombre d'états). En pratique en multipliant par 4 la surface de l'intersection, il est possible de traiter un réseau virtuel comportant environ 750 fois plus de processeurs-elementaires que le réseau physique.La commutation de processus sur ce réseau peut se faire de façon synchrone (on exécute les opérations d'un "plan virtuel" du réseau, puis d'un autre, dans des tranches de temps successives), ou asynchrone, une intersection physique supportant une nouvelle intersection logique (ou un processeur supportant un nouveau processus) quand certaines conditions sont remplies. La première solution permet notamment de traiter plusieurs problèmes "neuronaux" en parallèle sur le même réseau physique. Les problèmes d'interconnexion logique entre des "plans" du réseau virtuel (comment un processus situé dans un plan peut communiquer avec un processus ou une intersection située dans un autre plan) sont extérieurs à l'objet de la présente invention. It can be noted that neural networks are often simulated on architectures with a lower degree of parallelism. The fast reconfiguration crossbar of the type of the invention lends itself very well to the execution of the operations of a neuronal network comprising an n times higher number of neurons, provided that each intersection has n memory words at the same time. the position of the state latch 12, and that each elementary processor (or neuron) can maintain its activation level in a memory of n words (the size of the word in bits being the logarithm of the number of states). In practice by multiplying by 4 the surface of the intersection, it is possible to treat a virtual network comprising approximately 750 times more basic-processors than the physical network. The process switching on this network can be done in a synchronous way (on executes the operations of a "virtual plane" of the network, then of another, in successive time slots), or asynchronous, a physical intersection supporting a new logical intersection (or a processor supporting a new process) when certain conditions are met. The first solution allows in particular to treat several "neural" problems in parallel on the same physical network. The problems of logical interconnection between "planes" of the virtual network (how a process located in one plane can communicate with a process or an intersection located in another plane) are outside the object of the present invention.

MATRICE DE PROCESSEURS. MATRIX PROCESSORS.

Dans l'utilisation du crossbar selon l'invention précédemment décrite, les processeurs principaux sont des neurones formels placés par exemple au sud de la matrice d'interconnexion. Toutefois il existe un élément de calcul å chaque intersection, et il est possible de considérer qu'il existe donc un deuxième type de processeur élémentaire placé aux intersections. In the use of the crossbar according to the invention described above, the main processors are formal neurons placed for example south of the interconnection matrix. However, there is one element of computation at each intersection, and it is possible to consider that there is therefore a second type of elementary processor placed at the intersections.

En fait le principe d'une matrice d'interconnexion à commande distribuée permet également de réaliser un réseau d'interconnexion, par exemple en grille carrée, avec des processeurs placés aux intersections de la grille. Cette application est particulièrement intéressante pour interconnecter un grand nombre de processeurs élémentaires munis chacun d'une mémoire locale, et intégrés au niveau d'une même tranche. In fact, the principle of a distributed control interconnection matrix also makes it possible to create an interconnection network, for example a square grid, with processors placed at the intersections of the grid. This application is particularly interesting for interconnecting a large number of elementary processors each provided with a local memory, and integrated at the same level.

Dans cette hypothèse le goulet d'étranglement dû & une gestion centralisée d'un réseau dtintercon- nexion connu est d'autant plus grand, que le nombre de processeurs sur le réseau croît en N2 en fonction du nombre de lignes et de colonnes du réseau. D'autre part le fonctionnement à priori "MIMD" à grain fin du réseau rend nécessaire des reconfigurations très rapides. Le fonctionnement est à priori "MIMD" dans la mesure où chaque processeur dispose d'une mémoire significative et peut exécuter un programme ou une fonction différente des autres processeurs, il est à priori à grain fin dans la mesure où la surface disponible pour la mémoire locale est néanmoins limitée à l/p2 de la surface de la tranche et, d'autre part où le nombre élevé de processeurs permet une division importante des opérations. In this case, the bottleneck caused by centralized management of a known interconnection network is all the greater, as the number of processors on the network increases in N2 as a function of the number of rows and columns of the network. . On the other hand, the fine-grained "MIMD" operation of the network necessitates very fast reconfigurations. The operation is a priori "MIMD" insofar as each processor has a significant memory and can execute a program or function different from other processors, it is a priori fine-grained to the extent that the available space for memory The local area is nevertheless limited to 1 / p2 of the area of the unit and, on the other hand, the high number of processors allows a large division of operations.

L'intérêt d'associer de la logique à la mémoire est reconnu depuis de nombreuses années, et a donné naissance notamment aux circuits ASIC (Application Specific Integrated Circuits) avec mémoire. Dans de nombreux travaux la mémoire est divisée en de nombreux espaces mémoire accessibles en parallèle, par exemple à l'aide d'un crossbar (Miracki et al., Design of a 64 Processor by 128 Memory
Crossbar Switching Network", IEEE Int. Conf. on
Computer Design, Rye Brook, NY, oct. 1988).Il est connu que le développement des technologies d'intégra- tion au niveau de la tranche permet de placer un certain nombre de ces espaces mémoire et de leur logique associée dans un même composant ou une même tranche, et l'une des solutions possibles pour l'interconnexion de différents processeurs est de les placer aux noeuds d'une matrice d'interconnexion carrée (ou crossbar). Dans le cadre des conceptions classiques des crossbars, cette matrice d'interconnexion est gérée par un circuit spécifique qui effectue le routage et les arbitrages de façon centralisée. Ce circuit centralisé apparaît d'autant plus naturel dans ce cas qu'il existe de nombreux chemins possibles entre deux processeurs, quelle que soit la façon dont est réalisée la matrice.
The interest of associating logic with memory has been recognized for many years, and gave birth to particular ASIC (Application Specific Integrated Circuits) circuits with memory. In many works the memory is divided into many memory spaces accessible in parallel, for example using a crossbar (Miracki et al., Design of a 64 Processor by 128 Memory
Crossbar Switching Network ", IEEE Int.
Computer Design, Rye Brook, NY, Oct. 1988). It is known that the development of wafer-level integration technologies makes it possible to place a number of these memory spaces and their associated logic in a single component. or the same slice, and one of the possible solutions for the interconnection of different processors is to place them at the nodes of a square interconnect matrix (or crossbar). In the context of conventional crossbars designs, this interconnection matrix is managed by a specific circuit that routes and arbitrates centrally. This centralized circuit appears all the more natural in this case that there are many possible paths between two processors, regardless of how the matrix is made.

Toutefois les temps de reconfiguration sont alors limités par la capacité d'entrées-sorties et de traitement de ce circuit. Ceci est d'autant plus défavorable dans le cas d'un fonctionnement "MIMD" avec de nombreux messages très courts, ou de périodes de fonctionnement "SIMD" avec des reconfigurations globales très fréquentes.However, the reconfiguration times are then limited by the input-output and processing capacity of this circuit. This is all the more unfavorable in the case of "MIMD" operation with many very short messages, or "SIMD" operating periods with very frequent global reconfigurations.

La solution d'une commande distribuée de la matrice d'interconnexion par les processeurs est d'abord rendue possible par l'observation qu'il est possible de limiter le nombre de chemins empruntés par les messages entre deux processeurs quelconques. soit deux processeurs Pij et Pi'j', où i et i' sont des indices de ligne, j et j' des indices de colonne dans chaque crossbar, les deux chemins les plus simples de
Pij vers Pi'j' sont le chemin "horizontal d'abord", où le signal se propage d'abord sur un canal Ouest-Est jusqu'à l'intersection correspondant au processeur
Pij', puis sur un canal Nord-Sud jusqu'au processeur
Pi'j', l'autre chemin étant le chemin "vertical d'abord" défini de façon symétrique.La commande distribuée de la matrice d'interconnexion doit autoriser la réalisation directe de ces deux chemins, ce qui permet de toujours disposer d'un chemin de secours utilisé efficacement en cas de panne d'une intersection. Si la probabilité de connexion entre un processeur Pij et un processeur Pi'j' est égale quels que soient i, j, i', j', l'utilisation exclusive de ces deux chemins apparat suffisante pour garantir une répartition uniforme de l'utilisation des différentes intersections et canaux. Il en va de même a l'intérieur de partitions rectangulaires de -la matrice dtinter- connexion, -si la probabilité d'interconnexion est uniforme å l'intérieur de chacune de ces partitions.
The solution of a distributed control of the interconnect matrix by the processors is first made possible by the observation that it is possible to limit the number of paths taken by the messages between any two processors. either two processors Pij and Pi'j ', where i and i' are line indices, j and j 'column indices in each crossbar, the two simplest paths of
Pij to Pi'j 'are the "horizontal first" path, where the signal first propagates on a West-East channel to the intersection corresponding to the processor
Pij ', then on a North-South channel until the processor
Pi'j ', the other path being the "vertical first" path defined symmetrically. The distributed control of the interconnection matrix must allow the direct realization of these two paths, which makes it possible always to have an escape route used effectively in the event of an intersection failure. If the probability of connection between a processor Pij and a processor Pi'j 'is equal regardless of i, j, i', j ', the exclusive use of these two paths appears sufficient to ensure a uniform distribution of the use different intersections and channels. The same is true within rectangular partitions of the interconnect matrix, if the probability of interconnection is uniform within each of these partitions.

D'autres chemins peuvent être utilisés en fonctionnement dégradé en faisant transiter des messages par des processeurs intermédiaires, qui gèrent à leur tour la transmission vers le processeur final ou un autre processeur intermédiaire. Toutefois ceci necessite des protocoles plus complexes pour garantir l'établissement du chemin (du type par exemple de ceux utilisés dans les hypercubes), et consomme du temps de calcul des processeurs intermédiaires, il ne peut donc s'agir du fonctionnement normal.Other paths can be used in degraded operation by passing messages through intermediate processors, which in turn handle the transmission to the final processor or another intermediate processor. However, this requires more complex protocols to guarantee the establishment of the path (of the type for example of those used in the hypercubes), and consumes the calculation time of the intermediate processors, so it can not be normal operation.

Dans le cas de l'établissement d'un des chemins simples précédents, le processeur placé à l'un des noeuds de la matrice choisit d'abord de transmettre le message d'abord sur un canal émetteur ligne ou un canal émetteur colonne. Il vérifie alors que le canal émetteur est libre, cet accès au canal pouvant se faire suivant l'un des protocoles connus d'arbitrage de bus ou de réseau. Dans la solution suivant l'invention, il positionne une demande de canal et attend l'arrivée d'un jeton d'accès au canal émetteur, transmis sur une piste spécifique suivant le mécanisme de gestion de collisions exposé précédemment. il transmet alors sur ce canal un message de service comportant une demande de connexion, et formé principalement d'une adresse physique ou logique de ligne et d'une adresse de colonne. Dans le cas d'un chemin "vertical d'abord' l'adresse de ligne est d'abord utilisée pour déterminer la ligne où le message sera commuté sur un canal "récpeteur" horizontal. L'arrivée du message de service sur l'intersection entre le canal émetteur vertical et le canal récepteur horizontal détermine l'enregistrement éventuel du message de service dans un moyen de mémorisation placé å cette intersection, et la demande du canal récepteur. Un premier acquittement de la demande par l'intersection peut être adressé alors au processeur émetteur pour lui garantir le bon fonctionnement de l'intersection.L'attribution du canal récepteur peut s'effectuer selon différents protocoles, la réalisation préférentielle du protocole suivant l'invention reposant sur la réception par l'intersection d'un jeton d'accès au canal récepteur. Lorsque l'accès au canal récepteur est obtenu, l'intersection qui effectue la connexion du canal émetteur et récepteur transmet le message de service (ou seulement l'adresse de colonne, dans le cas du chemin "vertical d'abord") au processeur récepteur. Si ce processeur est libre, une bascule d'interconnexion est positionnée et connecte le processeur ou sa mémoire avec le canal récepteur. Un signal d'acquittement final du message de service est alors transmis au processeur émetteur, via l'intersection qui connecte les canaux émetteur et récepteur.Dans le cas contraire un signal d'acquit tement intermédiaire peut éventuellement être transmis à l'intersection émettrice, pour exprimer le bon fonctionnement de l'intersection réceptrice. Les signaux d'acquittement peuvent soit utiliser les canaux récepteurs normaux des processeurs émetteurs, soit emprunter des pistes réservées pour l'acquittement des messages. Dans le cas des processeurs distribués dans le crossbar, des considérations de surface et de complexité conduisent à choisir cette deuxième solution comme solution préférentielle Notons que des protocoles sans acquittement (envoi de "datagrammes") ou avec envoi de messages d'erreur sont également possibles. Les remarques sont également valables pour les messages ordinaires. In the case of establishing one of the previous simple paths, the processor placed at one of the nodes of the matrix first chooses to transmit the message first on a line transmitter channel or a column emitter channel. It then verifies that the sender channel is free, this access to the channel can be done according to one of the known bus or network arbitration protocols. In the solution according to the invention, it positions a channel request and waits for the arrival of an access token to the transmitter channel, transmitted on a specific track according to the collision management mechanism described above. it then transmits on this channel a service message including a connection request, and mainly formed of a physical address or logical line and a column address. In the case of a "vertical first" path, the line address is first used to determine the line where the message will be switched to a horizontal "sink" channel The arrival of the service message on the intersection between the vertical transmitter channel and the horizontal receiver channel determines the eventual recording of the service message in a storage means placed at this intersection, and the request of the receiving channel A first acknowledgment of the request by the intersection can be addressed then the transmitter processor to ensure the proper operation of the intersection.L allocation of the receiver channel can be performed according to different protocols, the preferred embodiment of the protocol according to the invention based on the reception by the intersection of a token When the access to the receiving channel is obtained, the intersection making the connection of the transmitter and receiver channel transmits the message of the receiver channel. ervice (or only the column address, in the case of the "vertical first" path) to the receiving processor. If this processor is free, an interconnect flip-flop is positioned and connects the processor or its memory with the receiver channel. A final acknowledgment signal of the service message is then transmitted to the sending processor, via the intersection which connects the transmitter and receiver channels. In the opposite case, an intermediate acknowledgment signal may possibly be transmitted at the transmitting intersection. to express the proper functioning of the receiving intersection. Acknowledgment signals can either use the normal receiver channels of the transmitting processors or borrow reserved tracks for message acknowledgment. In the case of distributed processors in the crossbar, surface and complexity considerations lead to choosing this second solution as a preferential solution. Note that protocols without acknowledgment (sending "datagrams") or sending error messages are also possible. . The remarks are also valid for ordinary messages.

Tel que nous l'avons présente jusqu'ici, ce protocole présente un inconvénient important, il conduit en effet à laisser le canal émetteur oisif entre la transmission du message de service par le processeur émetteur, et l'obtention du canal récepteur correspondant. Il n'est donc satisfaisant qu'avec un taux d'utilisation suffisamment faible du réseau d'interconnexion, conduisant à des taux d'attente acceptables.Cet inconvénient ne se rencontre pas dans la version avec un processeur par canal émetteur, où un canal émetteur n'est jamais demandé par un autre processeur
Une solution consiste å admettre la transmission successive de plusieurs messages de service destinés a plusieurs intersections par les différents processeurs d'un même canal émetteur Chaque processeur émetteur rend alors le jeton après l'émission du message de service. Si plusieurs messages de service sont adressés à la même intersection, celle-ci renvoie alors un acquittement négatif pour tous les messages sauf le premier.Le message de service doit contenir le numéro du processeur demandeur, qui est rangé dans l'intersection. Lorsqu'unie intersection reçoit l'acquittement du processeur destinataire, elle doit demander l'accès au canal émetteur et au canal d'acquittement pour permettre au processeur demandeur de transmettre le message utile au processeur destinataire.
As we have presented so far, this protocol has a significant disadvantage, it indeed leads to leave the idle transmitter channel between the transmission of the service message by the sender processor, and obtaining the corresponding receiver channel. It is therefore satisfactory only with a sufficiently low utilization rate of the interconnection network, leading to acceptable waiting rates. This drawback is not encountered in the version with a transmitter channel processor, where a channel transmitter is never requested by another processor
One solution consists in admitting the successive transmission of several service messages intended for several intersections by the different processors of the same sender channel. Each sending processor then returns the token after the transmission of the service message. If more than one service message is sent to the same intersection, it will return a negative acknowledgment for all but the first message. The service message must contain the calling processor number, which is stored in the intersection. When an intersection receives the acknowledgment of the destination processor, it must request access to the sender channel and the acknowledgment channel to allow the requesting processor to transmit the useful message to the destination processor.

Si on veut éviter que le canal récepteur attende la disponibilité du canal émetteur, la meilleure solution est cependant de stocker le message utile dans l'intersection. Nous avions déjà présenté cette solution dans le cas général des crossbars avec des canaux récepteurs et émetteurs dans la même dimension, ce qui est le cas ici. Si la taille du message est limitée ici à 16 octets, et si la tranche comporte 32 * 32 processeurs, la surface nécessaire pour conserver les messages dans les intersections est d'environ 4 * 128 * 100 * 65 * 1.024 À 2, soit environ 212 mm2 en technologie 0,5 microns. Dans une solution préférentielle, le message est en effet rangé dans un registre & décalage dont la taille est de l'ordre de 50 x 65 ss 2 par bit.Le nombre de registres nécessaire pour conserver les messages utiles est de 4 par intersection si on tient compte des différents chemins possibles. Sur la base d'une tranche de 70 * 70 mm2, ceci représente environ 4 % de la surface de la tranche et reste donc très acceptable. Avec cette solution, le taux d'utilisation des canaux émetteurs et récepteurs peut approcher 100 %, en incluant ies messages de service et le temps de propagation des jetons. If we want to prevent the receiving channel from waiting for the availability of the sending channel, the best solution is however to store the useful message in the intersection. We have already presented this solution in the general case of crossbars with receiver and transmitter channels in the same dimension, which is the case here. If the size of the message is limited here to 16 bytes, and if the slice has 32 * 32 processors, the area needed to keep the messages in the intersections is about 4 * 128 * 100 * 65 * 1.024 to 2, or about 212 mm2 in 0.5 micron technology. In a preferred solution, the message is indeed stored in a register & shift whose size is of the order of 50 x 65 ss 2 per bit. The number of registers necessary to keep the useful messages is 4 per intersection if takes into account the different possible paths. Based on a 70 * 70 mm2 slice, this represents about 4% of the slice area and therefore remains very acceptable. With this solution, the utilization rate of the sending and receiving channels can approach 100%, including the service messages and the chip propagation time.

Dans certains cas, il peut être souhaitable de transmettre des volumes de données importants sans être obligé de passer à chaque fois par le protocole précédent. Dans ce cas l'un des canaux émetteurs (respectivement récepteur) concernés doit être mis en attente jusqu'à la disponibilité du canal récepteur (respectivement émetteur) correspondant, puis après acquittement final de la demande de connexion les deux canaux sont réquisitionnés jusqu'à la fin de la transmission. Du fait de l'existence de plusieurs chemins pour communiquer entre deux processeurs, ce mécanisme de réquisition peut n'être autorisé que sur certains types de chemins, soit au niveau de l'exécution matérielle de ce protocole par les intersections, soit par une spécification adéquate des processeurs eux-mêmes. In some cases, it may be desirable to transmit large amounts of data without having to go through the previous protocol each time. In this case, one of the transmitter channels (respectively receiver) concerned must be put on hold until the corresponding receiving channel (or transmitter) is available, and then after final acknowledgment of the connection request the two channels are requisitioned until the end of the transmission. Due to the existence of several paths to communicate between two processors, this requisition mechanism can be authorized only on certain types of paths, either at the level of the physical execution of this protocol by the intersections, or by a specification adequate processors themselves.

Enfin il peut être souhaitable de partitionner dynamiquement le circuit en rectangles indépendants de façon à augmenter le débit des canaux émetteurs et récepteurs. A cette fin la propagation sur les canaux émetteurs et récepteurs doit pouvoir être arrêtée au niveau de chaque intersection, par des portes logiques adéquates. Dans ce cas il peut y avoir plusieurs jetons de priorité générés sur un même canal. Le partitionnement et la levée de ce partitionnement sont effectués par des messages de service adressés à l'intersection concernée. Lors du fonctionnement partitionné le débit total de messages peut être très augmenté, par contre dans la solution la plus simple il nty a pas communication entre les partitions.Cependant si chaque processeur dispose de plusieurs canaux émetteurs et récepteurs en ligne et en colonne, il est possible de considérer qu'ils correspondent à plusieurs "plans" de communication superposés et d'effectuer des partitionnements indépendants dans les différents plans. Dans ce cas avec au moins un plan non partitionné, les partitions peuvent communiquer entre elles. Une deuxième solution est de disposer d'un plan dans lequel les communications ne s'effectuent qu'avec les voisins immédiats, ce qui règle aussi le problème des communications entre partitions voisines, mais pas entre partitions distantes. Finally, it may be desirable to dynamically partition the circuit into independent rectangles so as to increase the bit rate of the transmitting and receiving channels. For this purpose, the propagation on the transmitter and receiver channels must be able to be stopped at each intersection by appropriate logic gates. In this case there may be several priority tokens generated on the same channel. Partitioning and removal of this partitioning are performed by service messages addressed to the intersection concerned. In the partitioned operation, the total message flow can be greatly increased, but in the simplest solution there is no communication between the partitions. However, if each processor has several transmitter and receiver channels in line and in column, it is possible to consider that they correspond to several superimposed communication "planes" and to perform independent partitioning in the different planes. In this case with at least one unpartitioned plan, the partitions can communicate with each other. A second solution is to have a plane in which the communications are carried out only with the immediate neighbors, which also solves the problem of communications between neighboring partitions, but not between distant partitions.

Comme le partitionnement doit être connu de tous les processeurs de la ligne ou de la colonne, il est souhaitable qu'il soit effectué par un processeur unique pour chaque canal émetteur et/ou récepteur, ce processeur devant préalablement obtenir la ligne ou la colonne correspondante et signaler le partitionnement aux processeurs de la ligne ou de la colonne. Chaque processeur doit pouvoir communiquer avec le processeur de la ligne ou de la colonne effectuant le partitionnement. Ceci peut être réalisé par l'utilisation d'un canal spécial pour les messages de reconfiguration, ou par l'utilisation d'un plan de communication non parti tionné selon la solution précédente. Dans tous les cas le partitionnement reste néanmoins lui aussi distribué. As the partitioning must be known by all the processors of the row or column, it is desirable that it be performed by a single processor for each transmitter and / or receiver channel, this processor having to obtain the corresponding row or column beforehand. and report the partitioning to processors in the row or column. Each processor must be able to communicate with the processor of the row or column performing the partitioning. This can be achieved by using a special channel for reconfiguration messages, or by using a non-shared communication plan according to the previous solution. In any case, the partitioning still remains distributed.

Pour éviter que la reconfiguration soit impossible en cas de panne d'une intersection, une piste peut être réservée sur chaque ligne et/ou chaque colonne pour la remise à zéro des bascules de partitionnement sur l'ensemble de la ligne ou de la colonne. To avoid that reconfiguration is impossible in the event of an intersection failure, a track may be reserved on each row and / or column for resetting the partitioning flip-flops on the entire line or column.

A partir du moment où les processeurs sont aux points de connexion, il est possible de partitionner chaque canal émetteur et récepteur par des portes logiques ET. Dans ces conditions, chaque partition peut transmettre des données concurrement aux autres partitions, ce qui accroit le débit du crossbar. Bien entendu, la gestion des collisions doit se faire à l'intérieur d'une de chacune des partitions, ce qui implique que la piste 100 de propagation de la marque de priorité forme un anneau à l'intérieur de chaque partition au moyen de portes logiques appropriées. From the moment the processors are at the connection points, it is possible to partition each transmitter and receiver channel by AND logic gates. Under these conditions, each partition can transmit data concurrently to other partitions, which increases the flow of the crossbar. Of course, the management of the collisions must be done inside one of each of the partitions, which implies that the track 100 of propagation of the priority mark forms a ring inside each partition by means of doors. appropriate logic.

PRESENTATION DES CIRCUITS DE BASE ET
EVALUATIONS DE SURFACE.
PRESENTATION OF THE BASIC CIRCUITS AND
SURFACE EVALUATIONS.

Nous présentons maintenant chaque circuit de base afin de donner une évaluation approximative de sa surface. Les dimensions sont évaluées en A , correspondant à la demi-largeur de canal du transistor. En technologie HCMOS3 (1,3 microns), ss = 0#65%X, dans la technologie HCMOS4 (0,5 microns) en cours d'échantillonnage, > = 0,25/k . Nous donnerons ensuite une évaluation globale des dimensions du crossbar. We now present each basic circuit to give an approximate evaluation of its surface. The dimensions are evaluated at A, corresponding to the half-channel width of the transistor. In HCMOS3 technology (1.3 microns), ss = 0 # 65% X, in the HCMOS4 technology (0.5 microns) being sampled,> = 0.25 / k. We will then give an overall assessment of the dimensions of the crossbar.

CONVERTISSEUR. CONVERTER.

Le convertisseur série parallèle est un circuit classique dans les calculateurs. Dans la réalisation préférentielle de l'invention, il respecte le protocole de transmission du transputer (INMOS, "Transputer Reference Manual", Prentice-Hall, New-York,
USA, 1988). La transmission se fait par messages formés d'un ou plusieurs mots de n bits (dans le transputer n= 8), n étant une constante pour un crossbar donné.
The parallel serial converter is a classic circuit in computers. In the preferred embodiment of the invention, it respects the transputer transmission protocol (INMOS, "Transputer Reference Manual", Prentice-Hall, New York,
USA, 1988). The transmission is done by messages formed of one or more words of n bits (in the transputer n = 8), n being a constant for a given crossbar.

Chaque mot est précédé d'un bit à 1, et suivi d'un bit à 0. Pour acquitter un mot, le récepteur (un des convertisseurs recevant ce mot) renvoie à l'émetteur un bit à 1. Ce protocole présente l'avantage d'être assez facile à implanter par matériel, et il garantit qu'en cas d'émetteur bloqué en émission, la transmission s'arrêtera dès l'apparition de la panne.Each word is preceded by a bit at 1, followed by a bit at 0. To acknowledge a word, the receiver (one of the converters receiving this word) sends back to the transmitter a bit to 1. This protocol presents the the advantage of being easy enough to implement by hardware, and it ensures that in case of transmitter blocked in transmission, the transmission will stop at the onset of the failure.

Dans la réalisation préférentielle ce convertisseur est placé å chaque noeud du crossbar, ainsi qu'en bas et en haut de chaque colonne. Il est constitué d'un registre à décalage de n + 2 bits, le décalage se faisant à chaque top d'horloge lorsque le registre contient au moins un bit à 1. Il est également possible de le gérer à l'aide d'un automate à au moins trois états, qui passe dans l'état "ACTIF11 à la réception d'un premier bit, reste dans cet état jusqu'à ce que le bit le plus à gauche du registre soit à 1 (dans le cas d'un décalage de droite à gauche), passe alors dans l'état "RECOPIE" si le bit reçu au cours de ce cycle est à 0, puis passe dans l'état "INACTIF" si le bit reçu ensuite est zéro.Dans 1 'état "ACTIF" ce séquenceur décale la donnée d'un bit à chaque cycle, dans l'état "RECOPIE" il le transfère vers un registre de plusieurs bits, dans-llétat suivant il efface les ns 1 bits les plus à droite. Le séquenceur peut être commun à une colonne. In the preferred embodiment this converter is placed at each node of the crossbar, as well as at the bottom and at the top of each column. It consists of a shift register of n + 2 bits, the shift occurring at each clock tick when the register contains at least one bit at 1. It is also possible to manage it with a at least three state machine, which goes into the state "ACTIVE11 on receipt of a first bit, remains in this state until the leftmost bit of the register is at 1 (in the case of a shift from right to left), then goes into the "RECOPIE" state if the bit received during this cycle is at 0, then goes into the "INACTIVE" state if the bit subsequently received is zero. "ACTIVE" state this sequencer shifts the data by one bit at each cycle, in the "RECOPIA" state it transfers it to a register of several bits, in the next state it erases the ns 1 bits to the right. sequencer can be common to a column.

Le convertisseur peut être réalisé à l'aide de n + 2 bascules D. Chaque bascule peut être vue comme formée de deux cellules d'un bit, ayant approximativement 50 > * 65 (mémoire statique). Nous utilisons les dimensions approximatives constatées en technologie
HCMOS3, la bascule D a donc environ 100 * 65 À 2 Les bascules D d'un convertisseur ne sont pas nécessairement placées de façon linéaire. Pour un mot de 8 bits, la dimension totale du convertisseur peut donc être limitée a environ 200 * 260 > 2(environ 50 * 62 microns en HCMOS4).
The converter can be made using n + 2 flip-flops D. Each flip-flop can be viewed as consisting of two one-bit cells, having approximately 50 * 65 (static memory). We use the approximate dimensions found in technology
HCMOS3, the D flip-flop therefore has about 100 * 65 to 2 The D flip-flops of a converter are not necessarily placed linearly. For an 8-bit word, the total size of the converter can therefore be limited to about 200 * 260> 2 (about 50 * 62 microns in HCMOS4).

La taille du mot du convertisseur, en bits, doit être au moins égale au nombre de lignes du crossbar complet, formé éventuellement de plusieurs crossbars plus petits. Si le réseau d'interconnexion réalisé par crossbars peut atteindre 1000 lignes par 1000 colonnes, la taille du mot doit être d'au moins 10 bits. Comme il est également souhaitable de tenir compte des protocoles de transmission par mots de un octet, qui transmettent lo bits par octet, la taille souhaitable du registre à décalage est de 20 bits. The size of the converter word, in bits, must be at least equal to the number of lines of the complete crossbar, possibly formed by several smaller crossbars. If the interconnection network realized by crossbars can reach 1000 lines per 1000 columns, the word size must be at least 10 bits. Since it is also desirable to take into account one-byte word transmission protocols, which transmit lo bits per byte, the desirable size of the shift register is 20 bits.

REGISTRES D'ADRESSE LOGIOUE ET DE MASOUE. ADDRESS LOGIOUE AND MASOUE REGISTERS.

Ces registres sont réalisés en mémoire statique d'environ 50 * 65 ss 2 par cellule. Pour un crossbar ne dépassant pas 4096 lignes, le nombre de bits nécessaires à chacun de ces registres est de 12. These registers are made in static memory of about 50 * 65 ss 2 per cell. For a crossbar not exceeding 4096 lines, the number of bits needed for each of these registers is 12.

Sa surface peut donc être d'environ 600 * 65 > 2.  Its surface can therefore be about 600 * 65> 2.

Dans le cas où il existe un registre d'adresse et un de masque, la surface totale correspondante est de 600 * 130 > 2 (150 * 33 microns). In the case where there is an address register and a mask register, the corresponding total area is 600 * 130> 2 (150 * 33 microns).

UNITE DE GESTION D'UNE INTERSECTION. UNIT FOR MANAGING AN INTERSECTION.

Comme indiqué à la figure 6, le circuit de gestion de l'intersection (non compris les pistes horizontales et verticales) est essentiellement compose d'un convertisseur, d'un masque et d'un registre d'adresse, qui devraient être les éléments les plus coûteux en termes de surface. Le séquenceur est principalement composé de quelques bascules D, le comparateur de quelques portes par bit. Le module de gestion de priorité est également formé principalement de quelques bascules D. La surface totale de l'intersection devrait donc être inférieure à 600 * 600 > 2
UNITE-DE GESTION DE COLONNE.
As shown in FIG. 6, the intersection management circuit (not including the horizontal and vertical tracks) is essentially composed of a converter, a mask and an address register, which should be the elements the most expensive in terms of surface. The sequencer is mainly composed of a few D flip-flops, the comparator of a few gates per bit. The priority management module is also mainly composed of a few D flip-flops. The total area of the intersection should therefore be less than 600 * 600> 2.
COLUMN MANAGEMENT UNIT.

Ce circuit est constitué des éléments suivants
- un convertisseur séquentiel-parallèle. Ce convertisseur reçoit le mot de longueur de chaque message. Si cette longueur est exprimée en octets, nous admettrons par convention que le message effectivement transmis comprend un nombre pair d'octets (la longueur logique et physique peuvent differer). Le mot de longueur peut alors comporter deux octets, parmi lesquels un certain nombre de bits codent le type de message (message à transmettre ou message de service pour le crossbar) et éventuellement une instruction pour le crossbar.
This circuit consists of the following elements
a sequential-parallel converter. This converter receives the length word of each message. If this length is expressed in bytes, we will accept by convention that the message actually transmitted includes an even number of bytes (the logical and physical length may differ). The length word may then comprise two bytes, among which a certain number of bits encode the type of message (message to be transmitted or service message for the crossbar) and possibly an instruction for the crossbar.

La taille du convertisseur est de l'ordre de 500 * 260 > 2. The size of the converter is of the order of 500 * 260> 2.

- un compteur de longueur dans lequel est rangé le mot de longueur de tout message dont le mot de longueur est supérieur å 2 octets).  a length counter in which is stored the length word of any message whose word of length is greater than 2 bytes).

La taille de ce compteur est de l'ordre de 600 * 130 X 2
- un séquenceur gérant au moins deux états
MESSAGE ou CONFIGURATION. Ce séquenceur peut être constitué à l'aide de suites de bascules D. Dans ce cas sa taille n'a pas d'incidence pratique sur les dimensions du crossbar.
The size of this counter is of the order of 600 * 130 X 2
a sequencer managing at least two states
MESSAGE or CONFIGURATION. This sequencer can be constituted using sequences of flip-flops D. In this case its size has no practical impact on the dimensions of the crossbar.

Les dimensions de l'unité de gestion de colonne sont donc de l'ordre de 600 * 600 A 2 ou moins. The dimensions of the column management unit are therefore of the order of 600 * 600 A 2 or less.

PISTES VERTICALES. VERTICAL TRACKS.

Le nombre de pistes verticales contribue à déterminer l'espacement entre les colonnes. En dehors éventuellement des alimentations, les pistes verticales sont préférentiellement au nombre de sept
- transmission du signal série d'un émetteur,
- signal MESSAGE / CONFIGURATION,
- retour de l'acquittement des messages vers la piste de réception correspondante.
The number of vertical tracks helps to determine the spacing between the columns. Apart from possibly power supplies, the vertical tracks are preferably seven in number
- transmission of the serial signal of a transmitter,
- MESSAGE / CONFIGURATION signal,
- return of the acknowledgment of messages to the corresponding reception track.

(dans les interconnexions processeur-mémoire, cette piste sert aussi au retour des données vers les processeurs),
- signal de demande acceptée ou refusée par l'intersection, éventuellement sur deux pistes ; pour tenir compte des délais de transmission et du fait que le signal peut provenir de plusieurs intersections sur le même canal récepteur, il est souhaitable de coder ce signal sur deux bits, par exemple 110111 = accepté et "10. = "refusé".
(in the processor-memory interconnections, this track is also used to return the data to the processors),
- request signal accepted or refused by the intersection, possibly on two tracks; to account for transmission delays and the fact that the signal may come from several intersections on the same receiver channel, it is desirable to encode this signal on two bits, for example 110111 = accepted and "10. =" refused ".

- signal de piste de réponse libre (ce signal provient du circuit de gestion de canal récepteur ; tant qu'il n'est pas positionné, l'acquittement du message de service ou de ses octets ne peut intervenir)
- signal d'activation de colonne ; lorsqu'il n'est pas positionné, la colonne est désactivée.
- free response track signal (this signal comes from the receiving channel management circuit, as long as it is not set, the acknowledgment of the service message or its bytes can not intervene)
- column activation signal; when not positioned, the column is disabled.

Soit au total jusqu'à 7 signaux. Bien que certains d'entre eux puissent éventuellement être multiplexés, il est raisonnable de prévoir 7 pistes.  In total, up to 7 signals. Although some of them may possibly be multiplexed, it is reasonable to provide 7 tracks.

Avec un espacement de 7 À entre les pistes, l'intervalle utilisé par les pistes verticales est de 49 A ce qui ne modifie pas l'ordre de grandeur du pas horizontal. Par contre cette situation est très défavorable å la réalisation d'un crossbar en plusieurs composants, selon le principe de la figure 2. Nous verrons cidessous qu'il est cependant possible de réaliser un crossbar selon l'invention, de grande taille, par intégration au niveau de la tranche, avec un bon rendement de fabrication.With a spacing of 7 Å between tracks, the interval used by the vertical tracks is 49 A, which does not change the order of magnitude of the horizontal pitch. By cons this situation is very unfavorable to the realization of a crossbar in several components, according to the principle of Figure 2. We will see below that it is possible to achieve a crossbar according to the invention, large, by integration at the level of the slice, with a good manufacturing efficiency.

PISTES HORIZONTALES. HORIZONTAL TRACKS.

Comme il apparaîtra aux paragraphes suivants, le nombre de pistes horizontales devrait être également de 7, soit 5 pour la gestion de la marque de priorité, une pour la réquisition de piste et une pour la transmission des messages (compte non tenu des pistes d'alimentation, d'horloge et de contrôle commun à l'ensemble du crossbar). As will appear in the following paragraphs, the number of horizontal runways should also be 7, ie 5 for priority mark management, one for track requisition and one for message transmission (excluding runways). power, clock and control common to the entire crossbar).

La place nécessaire aux pistes dans le pas vertical est donc aussi de l'ordre de 50
PAS HORIZONTAL ET VERTICAL.
The space required for the tracks in the vertical pitch is therefore also in the order of 50
NOT HORIZONTAL AND VERTICAL.

Il résulte des évaluations précédentes que le pas horizontal et vertical (intervalle entre le milieu de deux lignes ou de deux colonnes) est de l'ordre de 650 > au plus. Ce résultat nous servira pour estimer la taille d'un crossbar selon l'invention. It follows from the preceding evaluations that the horizontal and vertical pitch (interval between the middle of two rows or of two columns) is of the order of 650> at the most. This result will be used to estimate the size of a crossbar according to the invention.

AUTRES CARACTERISTIOUES DIVERSES. OTHER MISCELLANEOUS CHARACTERISTICS.

DELAI D'ACOUITTEMENT D'UN MESSAGE DE SERVICE. TIME OF ACOUTING A SERVICE MESSAGE.

Après un délai correspondant au plus au temps de transmission d'un message de taille maximum, le signal d'acquittement et l'octet d'acquittement sont transmis sur le canal de réception de même indice que le canal émetteur. Avec une taille maximum de message de 256 octets (plus deux octets de longueur et de type) et un débit de transmission de 100 Mégabits par seconde, le délai maximum d'acquittement est de l'ordre de 2,6 microsecondes. Avec un débit de 20 Méga-bits par seconde il serait de 13 microsecondes. Il est évidemment nécessaire que ce délai n'engendre pas un signal d'erreur dans le processeur. After a delay corresponding at most to the transmission time of a message of maximum size, the acknowledgment signal and the acknowledgment byte are transmitted on the receiving channel of the same index as the transmitting channel. With a maximum message size of 256 bytes (plus two bytes of length and type) and a transmission rate of 100 megabits per second, the maximum acknowledgment time is of the order of 2.6 microseconds. With a bitrate of 20 Megabits per second it would be 13 microseconds. It is obviously necessary that this delay does not generate an error signal in the processor.

De façon optionnelle, les bascules de réqui- sition sont remises à zéro au bout d'un certain temps. Optionally, the flip-flops are reset after a certain time.

Le mécanisme proposé est le suivant. La mémorisation s'effectue dans une première bascule. Lors d'un signal de remise à zéro de la bascule, la valeur est transmise à une deuxième bascule, suivant une approche comparable à celle des bascules D. La valeur de l'ensemble des deux bascules est un "OU LOGIQUE" des valeurs de chacune des deux bascules. Le délai entre deux tops de remise à zéro doit être supérieur au délai maximum d'acquittement.The proposed mechanism is as follows. The storage takes place in a first flip-flop. During a reset signal of the flip-flop, the value is transmitted to a second flip-flop, according to an approach comparable to that of the flip-flops D. The value of the set of two flip-flops is a "LOGICAL OR" of the values of each of the two flip-flops. The delay between two reset tops must be greater than the maximum acknowledgment time.

Un autre délai important est le temps de latence entre messages, dans le cas où le même processeur demande à envoyer un nouveau message de données, et pour lequel aucun autre n'est demandeur de la ligne. Another important delay is the latency between messages, in the case where the same processor requests to send a new data message, and for which no other is requesting the line.

Le temps de latence est alors au moins égal au temps de propagation circulaire de la marque. Celui-ci est de l'ordre de : L = 2 nt, où n est le nombre de canaux émetteurs, et t le retard d'une porte. Soit pour n = 100 et t = 0,5 ns, L = 100 ns ; pour n = 1.000 et t = 0,5 ns, L = 1 microseconde. Ce temps de latence n'est pas perceptible s'il est inférieur au temps de transmission d'un message de service, soit par exemple à 100 Mhz et pour un message de 18 bits, 180 ns. Dans le cas de grands crossbars et de fréquences de transmission élevées, ce phénomène peut conduire à privilégier la transmission de messages suffisamment longs (quelques dizaines de mots).The latency time is then at least equal to the circular propagation time of the mark. This is of the order of: L = 2 nt, where n is the number of transmitter channels, and t the delay of a gate. Let for n = 100 and t = 0.5 ns, L = 100 ns; for n = 1,000 and t = 0.5 ns, L = 1 microsecond. This latency is not perceptible if it is less than the transmission time of a service message, for example at 100 Mhz and for an 18-bit message, 180 ns. In the case of large crossbars and high transmission frequencies, this phenomenon may lead to privileging the transmission of sufficiently long messages (a few tens of words).

GESTION DES PRIORITES. PRIORITY MANAGEMENT.

La figure 7 présente le mécanisme de propagation de la marque de priorité dans une version "en anneau". Dans une version "linéaire bidirectionnelle", où le sens de propagation varie quand le signal de marque arrive en fin de ligne, -la propagation se fait suivant deux lignes unidirectionnelles (pour des raisons électriques, du moins en technologie électronique). La logique de propagation est présente sur les deux pistes, alors que dans la version en anneau la piste "vers la gauche" ne sert qu'à la transmission du signal. Il existe au moins une piste supplémentaire pour la transmission d'une information de contrôle sur le sens de transmission. Ce mécanisme utilise donc 6 pistes au moins au lieu de 5. Figure 7 shows the mechanism of propagation of the priority mark in a "ring" version. In a "bidirectional linear" version, where the direction of propagation varies when the mark signal arrives at the end of the line, the propagation is done along two unidirectional lines (for electrical reasons, at least in electronic technology). The propagation logic is present on both tracks, while in the ring version the track "to the left" is only used for signal transmission. There is at least one additional track for transmitting control information on the direction of transmission. This mechanism thus uses 6 tracks at least instead of 5.

Un aspect complémentaire de ce mécanisme d'arbitrage résulte de l'existence des circuits de réquisition à gauche de chaque piste, destinés à la gestion et l'acquittement des messages de service. Pour que l'usager puisse donner à un processeur la possibilité de diffuser un message en priorité, indépendamment de la position de la marque, il suffit de donner à ce processeur la possibilité de positionner à "vrai" les bascules de réquisition des pistes correspondantes. A complementary aspect of this arbitration mechanism results from the existence of the requisition circuits on the left of each track, intended for the management and the acknowledgment of the service messages. So that the user can give a processor the ability to broadcast a message in priority, regardless of the position of the mark, it is sufficient to give this processor the ability to set to "true" the requisite flip-flops of the corresponding tracks.

Normalement ces bascules sont positionnées seulement dans les pistes de réception de même indice que les pistes d'émission où un message de -service a été envoyé. Il est possible également de positionner ces bascules sur toute piste qui fait l'objet d'une demande de transmission par un processeur "absolument priori taire". Un processeur absolument prioritaire" est caractérisé par un #signal à "vrai" sur une piste verticale associée à sa colonne, et positionnée par un processeur de contrôle extérieur. Ce positionnement peut se faire soit par la gestion d'une broche spécifique associée à chaque colonne, soit de façon préférentielle par la transmission série d'un numéro de colonne le long de la ligne inférieure du crossbar, de façon équivalente à la demande d'accès à une ligne.Une piste spécifique permet de supprimer toutes les "priorités absolues". On peut également en supprimer certaines de façon séquentielle à l'aide du même mécanisme que pour leur création, mais avec un code de type de message différent. L'existence du mécanisme de "priorité absolue" permet à un processeur d'effectuer des diffusions ou des multidiffusions sans interférence du mécanisme de gestion des priorités relatives. En effet après un certain temps aucune autre processeur ne peut plus transmettre de message sur ces lignes. Dans la solution préférentielle, l'attribution d'une priorité absolue a un processeur se fait par un canal émetteur placé suivant la dimension Est-Ouest, et comportant des unités de gestion d'intersection 50.Ces unités sont semblables aux unités 10 mis à part leur disposition
Est-Ouest et l'existence d'une piste de remise à O spécifique pour supprimer les priorités absolues. Il faut également que la transmission de signal d'occupation n'ait plus lieu à ce moment.
Normally these flip-flops are positioned only in the reception tracks of the same index as the transmission tracks where a -service message has been sent. It is also possible to position these latches on any track that is the subject of a request for transmission by a processor "absolutely priori tary". An absolutely priority processor "is characterized by a #signal to" true "on a vertical track associated with its column, and positioned by an external control processor.This positioning can be done either by the management of a specific pin associated with each column, or preferably by the serial transmission of a column number along the bottom line of the crossbar, equivalent to the request for access to a line.A specific track allows to delete all the "absolute priorities" You can also delete some of them sequentially using the same mechanism as for creating them, but with a different type of message code.The existence of the "absolute priority" mechanism allows a processor to perform non-interference broadcast or multicasts of the relative priority management mechanism - after a certain period of time no other processor can transmit In the preferred solution, the allocation of an absolute priority to a processor is done by a transmitter channel placed along the East-West dimension, and comprising intersection management units 50.These units are similar to units 10 apart from their disposal
East-West and the existence of a specific O-delivery trail to remove absolute priorities. It is also necessary that the transmission of the busy signal no longer take place at this time.

ALLOCATION ENTRE DES GROUPES DE LIGNES. ALLOCATION BETWEEN GROUPS OF LINES.

Dans un certain nombre de cas, des pistes réceptrices (lignes) voisines correspondent à un même processeur. Lorsqu'un processeur demande l'accès à une de ces lignes et que celle-ci est occupée, il est souhaitable qu'un mécanisme approprié permette l'allocation d'une autre ligne du même processeur. Une solution dans ce cas est que l'émetteur demande successivement les différentes lignes du groupe. In a number of cases, neighboring receiver tracks (lines) correspond to the same processor. When a processor requests access to one of these lines and it is busy, it is desirable that an appropriate mechanism allow the allocation of another line of the same processor. A solution in this case is that the transmitter successively requests the different lines of the group.

EXISTENCE D'UN MECANISME DE GESTION
CENTRALISEE.
EXISTENCE OF A MANAGEMENT MECHANISM
CENTRAL.

Les mécanismes précédents n'excluent nullement l'existence d'un mécanisme à contrôle centralisé des bascules logique, l'utilisation de ce mécanisme étant optionnelle. La réalisation de ce mécanisme peut reposer sur l'existence de décodeurs de ligne et de colonne, et un signal de positionnement de bascule logique, commun à tout le crossbar. The preceding mechanisms in no way exclude the existence of a centralized control mechanism for logic latches, the use of this mechanism being optional. The realization of this mechanism can be based on the existence of line and column decoders, and a logical latch positioning signal, common to all the crossbar.

CROSSBARS PROCESSEURS MEMOIRE. CROSSBARS PROCESSORS MEMORY.

La solution préférentielle que nous avons présentée précédemment s'applique directement aux crossbars processeurs-processeurs. Dans le cas des crossbars processeurs-mémoires il faut distinguer les pistes d'adresses et les pistes de données. Celles-ci reviennent vers le processeur qui émet l'adresse (elles changent de direction à l'intersection qui gère l'accès à la -piste). Chaque émetteur et chaque récepteur est connecte au crossbar par au moins deux pistes (une piste d'émission, une piste de réception). The preferential solution that we presented previously applies directly to the processor-processor crossbars. In the case of memory processor crossbars it is necessary to distinguish the address tracks and the data tracks. These return to the processor that emits the address (they change direction at the intersection that manages access to the -path). Each transmitter and receiver is connected to the crossbar by at least two tracks (a transmit track, a receive track).

EVALUATIONS GLOBALES DE SURFACE ET DE
COMPLEXITE.
GLOBAL EVALUATIONS OF SURFACE AND
COMPLEXITY.

En technologie 0,5 microns ( = 0,25 microns, les pas horizontaux et verticaux en valeurs absolues sont d'environ 150 microns. Du point de vue de la surface disponible, un -composant crossbar de 1 cm2, réalisé en HCMOS4, pourra donc comporter environ 100 entrées et 100 sorties. In 0.5 micron technology (= 0.25 microns, the horizontal and vertical steps in absolute values are about 150 microns.) From the point of view of the available surface, a 1 cm2 crossbar component, made of HCMOS4, will be able to therefore have about 100 inputs and 100 outputs.

Un élément moins favorable dans le crossbar selon l'invention est le nombre de broches. Si le crossbar doit être extensible sur plusieurs composants, le nombre de broches horizontales est 7 * r, le nombre de broches verticales est 7 * e, où e et r sont respectivement les nombres de canaux émetteurs et récepteurs. A less favorable element in the crossbar according to the invention is the number of pins. If the crossbar is to be expandable on several components, the number of horizontal pins is 7 * r, the number of vertical pins is 7 * e, where e and r are the numbers of transmit and receive channels respectively.

Il faut compter en plus un petit nombre de broches pour l'alimentation et des signaux de contrôle centralisés.In addition, there are a small number of power supply pins and centralized control signals.

Si le nombre de lignes et de colonnes est limité par le nombre de broches ou de plots, un boîtier d'une taille donnée aura donc 7 fois moins d'entrées et 7 fois moins de sorties qu'un crossbar classique, et 49 fois moins d'intersection. Par exemple un composant à 260 broches, qui représente un gros boîtier, aura au plus 10 entrées et 10 sorties. Un- crossbar réalisé avec ce composant occupera une surface importante, et surtout compte tenu des temps de propagation entre boîtiers (délais des amplificateurs d'entrée et de sortie, capacités externes), il sera plus difficile d'obtenir des temps de propagation d'un bout à l'autre d'une ligne qui soient satisfaisants, du moins avec les technologies électro niques actuelles. Les débits sont donc susceptibles d'être moins élevés et les temps d'acquittement de message plus longs.Enfin un crossbar de 200 par 200 nécessiterait 400 boîtiers, et consommerait 400 watts sur la base d'un watt par cm2 (ce qui est une hypothèse faible). Ces caractéristiques ne sont pas compatibles pour une utilisation satisfaisante.If the number of rows and columns is limited by the number of pins or pads, a case of a given size will have 7 times fewer entries and 7 times fewer outputs than a conventional crossbar, and 49 times less intersection. For example, a 260-pin component, which represents a large box, will have at most 10 inputs and 10 outputs. A crossbar made with this component will occupy a large area, and especially given the propagation time between boxes (delays of the input and output amplifiers, external capacities), it will be more difficult to obtain propagation delays. end to end of a line that are satisfactory, at least with current electronic technologies. The bit rates are therefore likely to be lower and the message acknowledgment times longer. Finally a 200 by 200 crossbar would require 400 boxes, and would consume 400 watts on the basis of one watt per cm2 (which is a weak hypothesis). These features are not compatible for satisfactory use.

Une autre solution consiste à réaliser le crossbar sur un seul boîtier, par intégration au niveau de la tranche, ce crossbar selon l'invention sty prêtant bien, au niveau des rendements de fabrication. Another solution is to perform the crossbar on a single housing, by integration at the level of the wafer, this crossbar according to the invention sty lent well, in terms of manufacturing yields.

Dans ce cas il suffit d'utiliser une broche par canal émetteur et une broche par canal récepteur, plus les broches d'alimentation et de contrôle. Cette solution pose évidemment des problèmes inhabituels de réalisation des boîtiers. Mais ces problèmes sont appelés à devenir plus classiques avec le développement de l'intégration au niveau de la tranche. Pour un crossbar de 256 par 256, permettant de connecter 64 processeurs à 4 liens, ou moins avec des nombres de liens futurs plus élevés et la gestion de liens externes, le nombre total de connecteurs dépasse 1.000.In this case it is sufficient to use one pin per transmitter channel and one pin per receiver channel, plus the power and control pins. This solution obviously poses unusual problems of realization of the housings. But these problems are likely to become more classic with the development of integration at the level of the slice. For a 256-by-256 crossbar that can connect 64 4-link processors, or fewer with higher future link numbers and external link management, the total number of connectors exceeds 1,000.

Ceci peut être plus aisé à réaliser avec des technologies optiques que des technologies électriques.This can be easier to achieve with optical technologies than electric technologies.

On peut noter que des circuits avec plusieurs milliers de connecteurs existent sur des machines à hautes performances, mais au niveau de la carte et non du boîtier.It can be noted that circuits with several thousand connectors exist on high performance machines, but at the card and not the box.

D'autre part un circuit comportant ce nombre de lignes et de colonnes ne peut être réalisé avec un seul composant, même avec une surface de 1 cm2 ou un côté de 1,5 cm (2,25 cm2). L'utilisation de plusieurs composants micro-connectés dans un même boîtier est possible mais ne diminue pas les limitations dues à la taille des plots. Il apparaît cependant qu'une deuxième solution est la réalisation du circuit par intégration à l'échelle de la tranche, pour laquelle le crossbar selon l'invention est particulièrement bien adapté. On the other hand a circuit having this number of rows and columns can be realized with a single component, even with a surface of 1 cm 2 or a side of 1.5 cm (2.25 cm 2). The use of several micro-connected components in the same housing is possible but does not reduce the limitations due to the size of the pads. It appears however that a second solution is the realization of the circuit by integration at the scale of the wafer, for which the crossbar according to the invention is particularly well suited.

TOLERANCE AUX PANNES ET RENDEMENTS DE
FABRICATION.
FAULT TOLERANCE AND YIELDS
MANUFACTURING.

Contrairement au crossbar classique, le crossbar selon l'invention peut fonctionner de façon durable et avec une efficacité inchangée (pas de problème de routage) avec des lignes, des colonnes ou des intersections en panne. La condition est que ces pannes aient été détectées à la fabrication. Dans le cas d'une intersection en panne, les lignes et colonnes à supprimer sont d'une part la ligne et la colonne courante de l'intersection, d'autre part la ligne qui coupe le colonne supprimée sur la diagonale du composant (ou du crossbar complet dans le cas d'un crossbar multicomposants), enfin la colonne qui coupe la ligne supprimée sur la diagonale. Par suite chaque intersection en panne conduit à supprimer deux lignes et deux colonnes.La suppression d'une ligne ou d'une colonne s'effectue par matériel, en ne connectant pas cette ligne ou colonne aux broches ou en ne connectant pas celles-ci aux processeurs. Les pannes ne doivent pas intervenir dans les lignes et les colonnes de contrôle du crossbar (ligne inférieure et supérieure, colonne de gauche et de droite). Unlike the conventional crossbar, the crossbar according to the invention can operate sustainably and with unchanged efficiency (no routing problem) with lines, columns or intersections failed. The condition is that these failures have been detected during manufacture. In the case of a broken intersection, the lines and columns to be deleted are on the one hand the line and the current column of the intersection, on the other hand the line that cuts the deleted column on the diagonal of the component (or the complete crossbar in the case of a multicomponent crossbar), finally the column that cuts the deleted line on the diagonal. As a result, each broken intersection leads to the deletion of two rows and two columns. The deletion of a row or column is done by hardware, by not connecting this line or column to the pins or by not connecting them to the processors. Faults should not occur in the control lines and columns of the crossbar (bottom and top row, left and right columns).

Une tolérance aux pannes dynamique est aussi possible, mais elle entraîne une diminution des performances, puisqu'elle s'effectue par un re-routage des messages, qui doit être géré par un dialogue entre les processeurs gérant les colonnes correspondantes et un processeur de contrôle. L'utilisation de cette possibilité n'est donc généralement pas optimum. Dynamic fault tolerance is also possible, but it results in a decrease in performance, since it is performed by a re-routing of messages, which must be managed by a dialogue between the processors managing the corresponding columns and a control processor . The use of this possibility is therefore not generally optimum.

Pour un certain taux de panne d'intersection par cm2, la proportion de lignes et de ' colonnes indisponibles croit avec la surface, ou le côté de la tranche. Soit par exemple une technique de fabrication conduisant en moyenne à deux pannes par cm2, un compo sant de 1 cm2 (taille théorique 100 * 100) sera utilisé à 96 % de ses entrées et de ses sorties, une tranche ayant une partie utile de 4 cm2 (taille théorique 200 * 200) à 92 8, et permettra donc de gérer environ 184 entrées et sorties, une tranche de 9 cm2 (taille théorique 300 * 300) sera utilisée à 82 %, et permettra de gérer 264 entrées et sorties. Une tranche carrée de 100 cm2 (taille théroique 1.000 * 1.000) serait utilisée à 60 8, autrement dit elle permettra de réaliser un crossbar de 600 * 600. For a certain intersection failure rate per cm2, the proportion of unavailable rows and columns increases with the area, or the side of the slice. For example, a manufacturing technique leading on average to two failures per cm2, a component of 1 cm2 (theoretical size 100 * 100) will be used at 96% of its inputs and outputs, a slice having a useful part of 4 cm2 (theoretical size 200 * 200) to 92 8, and will therefore manage about 184 entries and exits, a slice of 9 cm2 (theoretical size 300 * 300) will be used at 82%, and will manage 264 entries and exits. A square slice of 100 cm2 (Thematic size 1.000 * 1.000) would be used at 60 8, in other words it will achieve a crossbar of 600 * 600.

Cependant avec des rendements par cm2 plus élevés, il sera possible de se rapprocher davantage de la taille théorique. Si l'espacement entre les plots est de 0,2 mm et si ceux-ci sont disposés en bord de tranche, la taille maximale possible pour un crossbar de cette dimension est en pratique de l'ordre de 500 par 500. En pratique la taille usuelle des tranches permet d'y inscrire un carré de 7 cm * 7 cm. Remarquons que la difficulté de ce type de circuit résidant dans le nombre de connecteurs, l'effet de ce phénomène est réduit si la détection des pannes intervient avant la mise sous boîtier. En effet il reste possible de disposer d'un même nombre de broches pour les canaux d'entrées et de sorties, seul le nombre de pistes et de colonnes utilisables dans le circuit étant modifié. However with higher yields per cm2, it will be possible to get closer to the theoretical size. If the spacing between the pads is 0.2 mm and if they are arranged edge edge, the maximum possible size for a crossbar of this size is in practice of the order of 500 by 500. In practice the Usual size of the slices allows to write a square of 7 cm * 7 cm. Note that the difficulty of this type of circuit resides in the number of connectors, the effect of this phenomenon is reduced if the fault detection occurs before packaging. Indeed it remains possible to have the same number of pins for the input and output channels, only the number of tracks and columns usable in the circuit being changed.

Enfin en combinant des entrées-sorties opti ques qui peuvent ne pas être toutes sur la même ligne ou en utilisant plusieurs lignes de plots avec des broches placées sur les mêmes lignes, un tel crossbar doit pouvoir effectivement atteindre une dimension de 1.000 par 1.000 avec des tailles de tranches voisines de celles qui existent actuellement. Des réalisations multi-composants ou multi-tranches deviennent également envisageables.  Finally, by combining optical I / O that may not all be on the same line or using several lines of pins with pins placed on the same lines, such a crossbar must actually be able to reach a size of 1,000 by 1,000 with slice sizes similar to those that currently exist. Multi-component or multi-slice implementations are also possible.

Bien entendu, l'invention n'est pas limitée au mode de réalisation décrit, pour lequel on pourrait envisager d'utiliser des circuits opto-électroniques par exemple.  Of course, the invention is not limited to the embodiment described, for which one could consider using optoelectronic circuits for example.

Claims (15)

REVENDICATIONS.CLAIMS. 1) Unité d'interconnexion (1) entre circuits (1001, 1002, 1003), du type comprenant une pluralité de canaux de communication émetteurs (2e) et/ou récepteurs (2r) se croisant en des points de connexion (P) de canaux et réalisant des connexions entre lesdits circuits reliés à au moins un canal, une pluralité de moyens de commutation et de contrôle (11, 12) de l'état des points de connexion, unité caractérisée en ce que la commande des moyens de commutation et de contrôle (11, 12) de l'état desdits points de connexion (P) est distribuée entre les circuits (1001, 1002, 1003) accédant auxdits points de connexion (P) par un canal (2e), les moyens de commutation et de contrôle (11, 12) de l'état d'un point de connexion (P) étant au moins reliés au circuit accédant audit point de connexion par au moins ledit canal. 1) Interconnection unit (1) between circuits (1001, 1002, 1003), of the type comprising a plurality of emitter (2e) and / or receiver (2r) communication channels intersecting at connection points (P) of channels and making connections between said circuits connected to at least one channel, a plurality of switching and control means (11, 12) of the state of the connection points, characterized in that the control of the switching means and control (11, 12) of the state of said connection points (P) is distributed between the circuits (1001, 1002, 1003) accessing said connection points (P) through a channel (2e), the switching means and control (11, 12) of the state of a connection point (P) being at least connected to the circuit accessing said connection point by at least said channel. 2) Unité d'interconnexion entre circuits, selon la revendication 1, caractérisée en ce que les moyens de commutation et de contrôle (11, 12) de l'état d'un point de connexion sont constitués d'au moins un moyen de mémorisation (12) de l'état dudit point de connexion (P), ledit moyen -de mémorisation (12) étant relié à une unité de gestion d'intersection (10) spécifique du point de connexion (P). 2) interconnection unit between circuits, according to claim 1, characterized in that the switching means and control (11, 12) of the state of a connection point consist of at least one storage means (12) of the state of said connection point (P), said storage means (12) being connected to an intersection management unit (10) specific to the connection point (P). 3) Unité d'interconnexion entre circuits, selon les revendications 1 ou 2, dans laquelle on affecte au moins une adresse logique à chaque point de connexion en vue d'une demande de connexion audit point de connexion, unité caractérisée en ce que l'unité de gestion d'intersection (10) comprend au moins : 3) circuit interconnection unit according to claims 1 or 2, wherein at least one logical address is assigned to each connection point for a connection request to said connection point, a unit characterized in that the an intersection management unit (10) comprises at least: - un moyen de mémorisation (16) de l'adresse logique affectée audit point de connexion, means for storing (16) the logical address assigned to said connection point, - un moyen comparateur (15) d'au moins deux adresses logiques, a comparator means (15) of at least two logical addresses, - un moyen de mémorisation (17) d'une demande de connexion.  means for storing (17) a connection request. 4) Unité d'interconnexion entre circuits, selon la revendication 3, caractérisée en ce qu'elle comprend en chaque point de connexion (P) un moyen de mémorisation (110) à au moins deux états pour la mémorisation des états différents d'une marque de priorité d'accès auxdits points de connexion, lesdits moyens de mémorisation (110) à au moins deux états, répartis aux points de connexion (P) d'un canal émetteur ou récepteur, étant reliés par une piste spécifique (100) pour la propagation d'une marque de priorité entre lesdits circuits de mémorisation (110). 4) interconnection unit between circuits, according to claim 3, characterized in that it comprises at each connection point (P) a storage means (110) at least two states for storing different states of a access priority mark at said connection points, said at least two state storage means (110), distributed at the connection points (P) of a transmitter or receiver channel, being connected by a specific track (100) to propagating a priority mark between said memory circuits (110). 5) Unité d'interconnexion entre circuits, selon la revendication 4, caractérisée en ce que ledit moyen de mémorisation (110) à au moins deux états est constitué d'un automate d'états finis. 5) interconnection unit between circuits, according to claim 4, characterized in that said storage means (110) to at least two states consists of a state machine finite. 6) Unité d'interconnexion entre circuits, selon l'une quelconque des revendications 1 à 5, dans laquelle les canaux émetteurs au moins sont représentés par des pistes nord-sud, unité dans laquelle lesdits circuits communiquent à l'unité d'interconnexion des messages de service destinés à celle-ci, caractérisée en ce que :: 6) a circuit interconnection unit according to any one of claims 1 to 5, wherein the at least one transmitter channel is represented by north-south tracks, wherein said circuits communicate to the interconnection unit of service messages therefor, characterized in that - chaque canal émetteur (2e) comprend un moyen de gestion de canal émetteur (20) pour au moins détecter les messages destinés à l'unité dtintercon- nexion, un moyen spécifique d'acquittement (40) de messages de service provenant d'un circuit émetteur, ledit moyen de gestion de canal émetteur (20) étant relié à l'extrémité sud dudit canal émetteur, ledit moyen spécifique d'acquittement (40) de messages de service étant relié à l'extrémité nord dudit canal émetteur (2e), each transmitter channel (2e) comprises transmitting channel management means (20) for at least detecting the messages intended for the interconnection unit; specific means for acknowledging (40) service messages from a transmission channel; transmitter circuit, said transmitter channel management means (20) being connected to the south end of said transmitter channel, said specific means of acknowledgment (40) of service messages being connected to the north end of said transmitter channel (2e) , - chaque canal récepteur (2r) comprend un moyen spécifique de gestion de canal récepteur (30), ledit moyen de gestion de canal récepteur étant relié auxdits circuits de gestion de la marque de priorité (110), associés audit canal récepteur, par une piste spécifique (169) de réquisition de canal. each receiver channel (2r) comprises a specific receiver channel management means (30), said receiver channel management means being connected to said priority mark management circuits (110), associated with said receiver channel, by a track specific (169) channel requisition. 7) Unité d'interconnexion entre circuits, selon la revendication 6, caractérisée en ce que ledit moyen de gestion de canal émetteur (20) associé à un canal émetteur est relié auxdites unités de gestion d'intersection (10) placées sur ledit canal, par une ligne spécifique (210). 7) a circuit interconnection unit according to claim 6, characterized in that said transmitter channel management means (20) associated with an emitter channel is connected to said intersection management units (10) placed on said channel, by a specific line (210). 8) Unité d'interconnexion entre circuits, selon la revendication 6, caractérisée en ce que ledit moyen de gestion de canal récepteur (30) associé à un canal récepteur est relié auxdits moyens de mémorisation d'une marque de priorité (110) placé sur ledit canal, par une ligne spécifique (169). 8) a unit interconnection between circuits, according to claim 6, characterized in that said receiving channel management means (30) associated with a receiving channel is connected to said storage means of a priority mark (110) placed on said channel, by a specific line (169). 9) Unité d'interconnexion entre circuits, selon la revendication 2, caractérisée en ce qu'une partie au moins des unités de gestion d'intersection (10) comprend un moyen de mémorisation de messages transitant par l'intersection. 9) interconnection unit between circuits, according to claim 2, characterized in that at least a portion of the intersection management units (10) comprises means for storing messages passing through the intersection. 10) Procédé de mise en oeuvre d'une unité d'interconnexion entre circuits, selon les revendications 1 et 3, procédé caractérise en ce que 10) A method of implementing an interconnection unit between circuits, according to claims 1 and 3, characterized in that pour initialiser l'unité d'interconnexion : to initialize the interconnect unit: - on transmet par chacun des canaux émetteurs (2e) l'adresse logique de chaque point de connexion placés sur ledit canal émetteur, each of the transmission channels (2e) transmits the logical address of each connection point placed on said transmitter channel, - on mémorise successivement ladite adresse logique correspondant à chacun desdits points de connexion desdits canaux émetteurs dans ledit moyen de mémorisation (16) de l'adresse logique, - successively memorizing said logical address corresponding to each of said connection points of said transmitter channels in said storage means (16) of the logical address, pour établir une connexion entre au moins deux circuits, l'un des circuits étant émetteur, l'autre récepteur :: to establish a connection between at least two circuits, one of the circuits being transmitter, the other receiver :: - on transmet sur le canal émetteur associé au circuit émetteur demandant la connexion, un message contenant au moins l'adresse logique du point de connexion correspondant à la demande de connexion,  transmitting on the emitter channel associated with the sending circuit requesting the connection, a message containing at least the logical address of the connection point corresponding to the connection request, - on constate la demande de connexion en comparant l'adresse logique effective du point de connexion avec l'adresse logique demandée lorsque l'une des trois conditions suivantes est remplie the connection request is noted by comparing the actual logical address of the connection point with the requested logical address when one of the following three conditions is fulfilled i) si l'adresse logique demandée est identique à l'adresse logique effective, i) if the requested logical address is identical to the actual logical address, ii) si l'adresse logique demandée a une valeur signifiant "tout point de connexion situé sur ledit canal émetteur", ii) if the requested logical address has a value meaning "any connection point on the sending channel", iii) si l'adresse logique demandée et l'adresse logique effective sont identiques après masquage des valeurs binaires correspondant aux deux adresses par un même masque binaire variable, iii) if the requested logical address and the actual logical address are identical after masking the binary values corresponding to the two addresses by the same variable bitmask, - on mémorise la demande de connexion constatée dans ledit moyen de mémorisation (17) d'une demande de connexion. - Saving the connection request found in said storage means (17) of a connection request. 11) Procédé de mise en oeuvre d'une unité d'interconnexion entre circuits, selon la revendication 10, caractérisé en ce que l'on établit une connexion entre un canal émetteur et un canal récepteur lorsqu'il existe une demande de connexion et une marque de priorité d'accès attachés audit point de connexion du canal émetteur et du canal récepteur. 11) A method of implementing an interconnection unit between circuits, according to claim 10, characterized in that a connection is established between a transmitter channel and a receiver channel when there is a connection request and a access priority mark attached to said connection point of the sending channel and the receiving channel. 12) Procédé de mise en oeuvre d'une unité d'interconnexion entre circuits, selon la revendication 11, unité comprenant en chaque point de connexion d'au moins un canal récepteur un moyen de mémorisation (110) d'une marque de priorité, ledit moyen de mémorisation (lit) comprenant un automate d'états finis, lesdits états décrivant la position de la marque de priorité et étant au moins dans l'ordre 12) A method of implementing an interconnection unit between circuits, according to claim 11, unit comprising in each connection point of at least one receiving channel means for storing (110) a priority mark, said storage means (read) comprising a state machine, said states describing the position of the priority mark and being at least in the order - état 1 :"pas de marque", - state 1: "no mark", - état 2 : "demande de connexion", - state 2: "connection request", - état 3 : "marque active", - state 3: "active mark", - état 4 :"marque suspendue", - state 4: "suspended mark", - état 5 : "abandon de marque", - state 5: "mark abandonment", procédé caractérisé en ce que  characterized in that - A l'initialisation, on positionne l'automate d'un moyen de mémorisation (110) dans l'état 3 et l'automate des autres moyens de mémorisation (110) dans l'état 1, At initialization, the automaton of a storage means (110) is set in the state 3 and the automaton of the other storage means (110) in the state 1, - l'automate d'un moyen de mémorisation (110) passe dans l'état 3, à partir de l'état 1, si ledit moyen de mémorisation (110) reçoit un signal de forçage de marque (161), dans l'état 2 si ledit moyen de mémorisation (110) reçoit un signal de demande de connexion (168) et pas de signal de forçage de marque (161), et reste dans l'état 1 dans les #autres cas, the automaton of a storage means (110) goes to the state 3, from the state 1, if the said storage means (110) receives a mark forcing signal (161), in the state 2 if said storage means (110) receives a connection request signal (168) and no mark forcing signal (161), and remains in state 1 in the other cases, - l'automate d'un moyen de mémorisation (110) passe dans l'état 3, à partir de l'état 2;; si ledit moyen de mémorisation (110) reçoit un signal de transfert de marque (160), et reste dans l'état 2 dans le cas contraire, - The controller of a storage means (110) goes to state 3, from the state 2 ;; if said storage means (110) receives a mark transfer signal (160), and remains in state 2 otherwise; - l'automate d'un moyen de mémorisation (110) passe dans l'état 5 à partir de l'état 3, si ledit moyen de mémorisation (110) reçoit un signal signifiant "pas de message ordinaire en cours" (164) et que le canal récepteur n'est pas réquisitionné, dans l'état 4 si ledit moyen de mémorisation reçoit un signal signifiant "pas de message ordinaire en cours" (164) et que le canal récepteur est réquisitionné, et reste dans l'état 3 dans les autres cas, the automaton of a storage means (110) goes into state 5 from state 3, if said storage means (110) receives a signal meaning "no ordinary message in progress" (164) and that the receiving channel is not requisitioned, in state 4 if said storage means receives a signal meaning "no ordinary message in progress" (164) and the receiving channel is requisitioned, and remains in the state 3 in other cases, - l'automate d'un moyen de mémorisation (110) passe dans l'état 5 à partir de l'état 4 si et seulement si le canal récepteur n'est pas réquisitionné, the automaton of a storage means (110) goes to state 5 from state 4 if and only if the receiver channel is not requisitioned, - l'automate d'un moyen de mémorisation (110) passe dans l'état 3 à partir de l'état 5 si ledit moyen de mémorisation (110) reçoit un signal de demande de connexion (168) et un signal de transfert de marque (160), et passe dans l'état 1 dans le cas contraire. the controller of a storage means (110) switches to state 3 from state 5 if said storage means (110) receives a connection request signal (168) and a transfer signal of mark (160), and goes to state 1 otherwise. 13) Utilisation d'une unité d'interconnexion (1) entre circuits selon la revendication 1, pour la gestion distribuée d'une mémoire virtuelle dans laquelle les données mémorisées sont constituées d'objets dont les adresses sont des identifiants logiques invariants aux modifications de valeur desdits objets, le décodage des identifiants logiques en adresse physique étant réalisé par une hiérarchie de tables, les circuits étant composés de processeurs de traitement de données et de processeurs de décodage d'adresses, caractérisé en ce que ::  13) Use of a circuit interconnection unit (1) according to claim 1, for the distributed management of a virtual memory in which the stored data consist of objects whose addresses are logical identifiers invariant to the modifications of value of said objects, the decoding of the logical identifiers into physical address being performed by a hierarchy of tables, the circuits being composed of data processing processors and address decoding processors, characterized in that :: - les tables de décodage desdits identifiants logiques sont réparties par hachage sur l'identifiant entre une pluralité de processeurs de décodage reliés à ladite unité d'interconnexion, the decoding tables of said logical identifiers are distributed by hashing on the identifier between a plurality of decoding processors connected to said interconnection unit, - le décodage de l'ensemble des identifiants étant organisé en étapes, au cours de chacune d'elle un processeur de traitement de données est connecté à un seul processeur de décodage d'adresses, the decoding of the set of identifiers being organized in steps, during each of which a data processing processor is connected to a single address decoding processor, - à la fin d'une étape, chaque processeur de traitement de données, connaissant l'adresse du processeur de décodage auqu#el il doit se connecter à l'étape suivante, demande la connexion avec ce dernier en parallèle avec les demandes des autres processeurs. at the end of a step, each data processing processor, knowing the address of the decoding processor to be connected to the next step, requests the connection with the latter in parallel with the requests of the others processors. 14) Utilisation d'une unité d'interconnexion (1) entre circuits selon la revendication 1, du type comprenant des canaux émetteurs et récepteurs parallèles suivant la direction Nord-Sud-et des paires de canaux de raccordements croisant lesdits canaux émetteurs et récepteurs, pour un réseau neuronal, caractérisé en ce qu'on dispose en chaque point de connexion de ladite unité d'interconnexion au moins une unité arithmétique et logique et des moyens de mémorisation de messages. 14) Use of a circuit interconnection unit (1) according to claim 1, of the type comprising parallel transmit and receive channels in the North-South direction and pairs of connection channels crossing said transmitting and receiving channels, for a neural network, characterized in that at each connection point of said interconnection unit is provided at least one arithmetic and logic unit and means for storing messages. 15) Utilisation d'une unité d'interconnexion (1) entre circuits selon la revendication 1, du type comprenant des canaux émetteurs et récepteurs parallèles suivant la direction Nord-Sud et des canaux de raccordement croisant lesdits canaux émetteurs et récepteurs, pour une matrice d'éléments processeurmémoire, caractérisé en ce que lesdits circuits sont placés aux points de connexion de ladite unité d'interconnexion.  15) Use of a circuit interconnection unit (1) according to claim 1, of the type comprising parallel transmit and receive channels in the North-South direction and connecting channels crossing said transmitter and receiver channels for a matrix. memory processor element, characterized in that said circuits are placed at the connection points of said interconnection unit.
FR8900964A 1989-01-26 1989-01-26 Circuit interconnection unit, especially of the crossbar type, process for employing a circuit interconnection unit and uses of a circuit interconnection unit Withdrawn FR2642252A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR8900964A FR2642252A1 (en) 1989-01-26 1989-01-26 Circuit interconnection unit, especially of the crossbar type, process for employing a circuit interconnection unit and uses of a circuit interconnection unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR8900964A FR2642252A1 (en) 1989-01-26 1989-01-26 Circuit interconnection unit, especially of the crossbar type, process for employing a circuit interconnection unit and uses of a circuit interconnection unit

Publications (1)

Publication Number Publication Date
FR2642252A1 true FR2642252A1 (en) 1990-07-27

Family

ID=9378129

Family Applications (1)

Application Number Title Priority Date Filing Date
FR8900964A Withdrawn FR2642252A1 (en) 1989-01-26 1989-01-26 Circuit interconnection unit, especially of the crossbar type, process for employing a circuit interconnection unit and uses of a circuit interconnection unit

Country Status (1)

Country Link
FR (1) FR2642252A1 (en)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1984001043A1 (en) * 1982-08-26 1984-03-15 Western Electric Co Method and apparatus for handling interprocessor calls in a multiprocessor system
EP0179401A2 (en) * 1984-10-24 1986-04-30 International Business Machines Corporation Dynamically allocated local/global storage system
EP0224244A2 (en) * 1985-11-29 1987-06-03 AT&T Corp. Switching system having multiple parallel switching networks
AT383221B (en) * 1980-09-08 1987-06-10 Quatember Bernhard Dipl Ing Dr RECONFIGURABLE CONNECTION NETWORK
EP0245996A2 (en) * 1986-05-14 1987-11-19 Nortel Networks Corporation Method of and switch for switching information
US4769770A (en) * 1984-12-14 1988-09-06 Hitachi, Ltd. Address conversion for a multiprocessor system having scalar and vector processors

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AT383221B (en) * 1980-09-08 1987-06-10 Quatember Bernhard Dipl Ing Dr RECONFIGURABLE CONNECTION NETWORK
WO1984001043A1 (en) * 1982-08-26 1984-03-15 Western Electric Co Method and apparatus for handling interprocessor calls in a multiprocessor system
EP0179401A2 (en) * 1984-10-24 1986-04-30 International Business Machines Corporation Dynamically allocated local/global storage system
US4769770A (en) * 1984-12-14 1988-09-06 Hitachi, Ltd. Address conversion for a multiprocessor system having scalar and vector processors
EP0224244A2 (en) * 1985-11-29 1987-06-03 AT&T Corp. Switching system having multiple parallel switching networks
EP0245996A2 (en) * 1986-05-14 1987-11-19 Nortel Networks Corporation Method of and switch for switching information

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
1988 CERN SCHOOL OF COMPUTING, PROCEEDINGS, Oxford, 15-26 août 1988, pages 104-126; P.C. TRELEAVEN: "Parallel architectures for neurocomputers" *
IEEEE JOURNAL OF SOLID-STATE CIRCUITS, vol. 23, no. 3, juin 1988, pages 688-697, IEEE, New York, US; A.F. MURRAY et al.: "Asynchronous VLSI neural networks using pulse-stream arithmetic" *
PROCEEDINGS OF MELECON'83, MEDITERRANEAN ELECTROCHEMICAL CONFERENCE, Athens, 24-26 mai 1983, pages 1-2; B. QUATEMBER: "Protocol issues of the configurational management and the resolution of the contention problem in a large-scale crossbar switch" *
PROCEEDINGS OF THE 1983 INTERNATIONAL CONFERENCE ON PARALLEL PROCESSING, 23-26 aout 1983, pages 506-510, IEEE, New York, US; W.-H. LEE et al.: "MOPAC a partitionable and reconfigurable multicomputer array" *

Similar Documents

Publication Publication Date Title
EP1701274B1 (en) Communication node architecture in a globaly asynchronous network on-chip system
WO2009153498A1 (en) Method of generating requests to manipulate an initialization and administration database for a cluster of servers, corresponding data medium and cluster of servers
FR2883116A1 (en) GLOBALLY ASYNCHRONOUS COMMUNICATION ARCHITECTURE FOR CHIP SYSTEM.
FR2825208A1 (en) METHOD FOR ALLOCATING COMMUNICATION RESOURCES IN A TELECOMMUNICATIONS SYSTEM OF THE MF-TDMA TYPE
EP2727319B1 (en) Method for assigning logical addresses to the connection ports of devices of a server cluster, and corresponding computer program and server cluster
JP6607966B2 (en) On-chip optical interconnect structure and network
EP0039635B1 (en) Method for centralised arbitration and centralised arbiter
EP2864891B1 (en) System and method for processing data with management of a consistency of caches in a network of processors furnished with cache memories
FR2779843A1 (en) Serial multi port memory component comprising RAM memory bank assemblies for use in computer
EP0715437A1 (en) Routing method for ATM network
EP3217290A1 (en) System on chip and method for data exchange between calculation nodes of such a system on chip
EP0646875A1 (en) Method and system of interconnection to manage messages in a processors network with a parallel structure
FR2642252A1 (en) Circuit interconnection unit, especially of the crossbar type, process for employing a circuit interconnection unit and uses of a circuit interconnection unit
EP2751959A1 (en) Method for the exchange of data between nodes of a server cluster, and server cluster implementing said method
WO2019129987A1 (en) Computer network of computing resource infrastructures and method for allocating said resources to client applications
EP3563233B1 (en) Computer network of computing resource infrastructures and method for allocating these resources to client applications
EP0113272B1 (en) Modular nodal communication network
Zheng An abstract model for optical interconnection networks
FR2668626A1 (en) METHOD FOR CONFIGURING A COMPUTER SYSTEM WITH MESH.
EP1493083B1 (en) Reconfigurable control system based on hardware implementation of petri graphs
EP0369843B1 (en) Central processing unit with several processors and several memories for a data-processing system
EP0471633A1 (en) Communication network with write and read rings and method of reconfiguring and accessing such network
Unlu Dynamic Bandwidth Allocation for an OFDMA based RF Network-on-Chip
FR2596606A1 (en) Switch with modular architecture
FR2534764A1 (en) Method and device for requesting resource allocation in a switch with distributed structure.

Legal Events

Date Code Title Description
ST Notification of lapse