WO2001002975A1 - Reseau de processeurs paralleles avec tolerance aux fautes de ces processeurs, et procede de reconfiguration applicable a un tel reseau - Google Patents

Reseau de processeurs paralleles avec tolerance aux fautes de ces processeurs, et procede de reconfiguration applicable a un tel reseau Download PDF

Info

Publication number
WO2001002975A1
WO2001002975A1 PCT/FR2000/001860 FR0001860W WO0102975A1 WO 2001002975 A1 WO2001002975 A1 WO 2001002975A1 FR 0001860 W FR0001860 W FR 0001860W WO 0102975 A1 WO0102975 A1 WO 0102975A1
Authority
WO
WIPO (PCT)
Prior art keywords
processors
processor
network
elements
interconnection
Prior art date
Application number
PCT/FR2000/001860
Other languages
English (en)
Inventor
Fabien Clermidy
Thierry Collette
Original Assignee
Commissariat A L'energie Atomique
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 Commissariat A L'energie Atomique filed Critical Commissariat A L'energie Atomique
Priority to AT00949598T priority Critical patent/ATE298437T1/de
Priority to US09/763,164 priority patent/US6681316B1/en
Priority to DE60020933T priority patent/DE60020933T2/de
Priority to EP00949598A priority patent/EP1116130B1/fr
Publication of WO2001002975A1 publication Critical patent/WO2001002975A1/fr

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2051Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant in regular structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2025Failover techniques using centralised failover control functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • G06F15/8023Two dimensional arrays, e.g. mesh, torus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2041Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with more than one idle spare processing component

Definitions

  • the present invention relates to a network of parallel processors with fault tolerance of these processors, and to a reconfiguration method applicable to such a network.
  • the field of the invention is that of parallel computers for all types of application. Two examples of applications are thus given in the document referenced [1] at the end of the description.
  • m-Track, n-Spare a network corresponding to this second type of solution and called “m-Track, n-Spare" (or “m paths, n additional”) consists of processors 10, switches and additional connections. Two kinds of switches are used: switches
  • processors 11 connecting the processors to the connections (PT for “Processor to Track”) and the switches 12 connecting the connections to each other (TT for “Track-to-Track”). All links in the network are bidirectional, that is, communications can go back and forth in each connection. Additional processors 13 (sp) are positioned at the borders of the network. These processors, for the reconfiguration method to be effective, must be placed at least on a row and a column of the network.
  • FIG. 1 illustrates an example of a “2-Track, 2-Spare” type network. Additional processors 13 (sp) are placed all around the network and serve to reconfigure the network in the event of a fault in the useful processors 10. Switches 11,
  • the network here comprises 200% more connections than the so-called functional connections.
  • Those skilled in the art can then use a reconfiguration method, based on error correcting codes, broken down into two phases:
  • the first consists, for each faulty processor, of finding a compensation path which leads from the faulty processor to an additional processor; • In the event of success of the first phase, each processor is, along the compensation path, replaced by its closest neighbor, thus going, by cascade changes, to an additional processor. The functional grid is thus preserved.
  • the communication time is greatly increased due, on the one hand, to the programming of the direction of the links and, on the other hand, to the crossing of the circuits necessary to ensure such bidirectional communications,
  • the reconfiguration method considered above has two major disadvantages: - it is not suitable for the case of unidirectional links;
  • the network according to the invention aims to solve the problem of fault tolerance in a massively parallel architecture where the processors are very strongly coupled, by proposing a solution that meets the following constraints: - obtain a tolerant network faults with connections that can be unidirectional;
  • the invention relates to a network of parallel elementary processors with fault tolerance of these processors comprising said elementary processors, additional elementary processors, interconnection elements of these processors, and a control unit characterized in that it comprises a succession element lines interconnection and alternating processor lines, each processor being surrounded by four interconnection elements, the processor lines being elementary processor lines, the last processor line being a line of additional elementary processors, the on-board elements of the network being interconnection elements and in that the control unit, connected to the processors and to the interconnection elements, sends the instructions to the processors, controls the interconnection elements, and verifies the integrity of these processors.
  • Each processor is connected to four interconnection elements, two of these diametrically opposite elements being connected to the two inputs of the processor, the other two equally diametrically opposite elements being connected to the two processor outputs, these interconnection elements being connected to each other by vertical or horizontal connections.
  • the interconnection elements internal to the network have a complexity of six inputs and six outputs, four inputs and four outputs being connected to the interconnection elements internal to the neighboring network, and two inputs and two outputs being connected to the neighboring processors of the interconnection element internal to the neighboring network considered.
  • An interconnection element has at least one unidirectional output or input connected to an input or output of at least one southwest, northeast, northwest or southeast processor and at least two inputs and two outputs unidirectional connected to at least two outputs and two inputs of the interconnection elements located north, east, south or west.
  • each processor is a computational element integrating a logical and arithmetic unit, a set of work registers and a test logic making it possible to carry out the automatic test thereof.
  • An interconnection element is composed of several data multiplexers from n inputs to an output, each of these multiplexers being controlled by the selection wires of the output channel in order to allow each of the outputs of the interconnection element to be connected at any input, the selections of the multiplexers being stored in two registers inside the interconnection element.
  • the processors and the interconnection elements can be integrated into a specific integrated circuit.
  • the control unit can be integrated into reconfigurable logic components.
  • the present invention also relates to a method for reconfiguring the network of processors comprising:
  • a routing step consisting in programming the interconnection elements on the physical network, by choosing the maximum number of these interconnection elements that can be crossed between two neighboring processors using a search algorithm for the shortest path.
  • an order of placement of the processors of the network is determined which is made up of an original processor and of a series of processors encompassing all the processors;
  • the placement order is defined as follows: the original processor is the processor at the top left, the following processors are the processors at the right and at the bottom of the original processor, and so on. respecting a diagonal.
  • this method of the invention can be implemented either statically or dynamically during operation.
  • the invention has the following advantages: •
  • the proposed network applies to all types of parallel computers in order to make them tolerant to faults in the processors and their interconnections. Redundancy is obtained by a very small volume of additional electronics (addition of a few processors identical to the others).
  • the proposed interconnection structure between processors makes it possible to support different topologies of parallel computer architectures, grid topologies, torus or ring of processors for example.
  • the five constraints posed above of the problem to be solved are resolved using this network and the associated reconfiguration process.
  • the proposed structure can be used as a complete network or as a network element, therefore with a global or local reconfiguration.
  • the structure, used as a network element is particularly suitable for highly integrated structures with very limited bandwidth.
  • the structure, used as a complete network is suitable for integrated structures requiring a high tolerance for faults.
  • FIG. 1 illustrates a network of processors of the known art.
  • FIG. 2 illustrates the composition of the network of processors of the invention.
  • FIG. 3 illustrates the inputs and outputs of an interconnection element internal to the network of the invention.
  • FIGS. 4A to 4H illustrate the inputs and outputs of the interconnection elements at the borders of the network of the invention.
  • FIG. 5 illustrates the network of the invention, with the links between processors and interconnection elements.
  • FIGS. 6A to 6C illustrate the minimum communications in the network of the invention.
  • FIGS. 7A and 7B illustrate an example of a network of the invention.
  • FIG. 8 illustrates the concept of distance in the network illustrated in FIG. 7B.
  • FIG. 9 illustrates a flow diagram of the method of the invention.
  • FIGS. 10A and 10B illustrate an example of inconsistency of the method of the invention after the placement of the processors.
  • FIGS. 11A, 11B and lie illustrate an example of a placement algorithm deduced directly from the method of the invention.
  • FIG. 12 illustrates a block algorithm deduced from the method of the invention.
  • Figures 13A and 13B illustrate examples of network reconfiguration in a matrix topology.
  • FIGS. 14A and 14B illustrate the practical embodiment of an interconnection element from a 6 to 1 multiplexer.
  • FIG. 15 illustrates an example of implementation of the network of the invention.
  • the present invention relates on the one hand to a network of parallel processors with fault tolerance of these processors and on the other hand to a method for reconfiguring such a network.
  • Network of parallel processors the network of processors of the invention, as illustrated in FIG. 2, is based on a matrix of any elementary processors P with two inputs and two outputs, interconnected by interconnection elements Cm.
  • the network is composed of a set of interconnection element lines 20 and processor lines 21 arranged alternately.
  • Each processor P is surrounded by four interconnection elements Cm.
  • the network edge elements are Cm interconnection elements.
  • the processor lines are lines of elementary processors P and the last line of processors is a line of additional elementary processors Sp.
  • the interconnection elements Cm make it possible to make the connections, by network switching, between the different processors P.
  • a Cm element of this type is illustrated in FIG. 3, with its different inputs and outputs. It has six inputs and six unidirectional outputs connected respectively to the inputs of the southwest and northeast processors, to the outputs of the northwest and southeast processors, and to the four inputs and four outputs of the interconnection elements located to the north, to the east, south and west.
  • An element thus represented corresponds to an element in the center of the network.
  • the interconnection elements of the edges of the network have fewer inputs and / or fewer outputs depending on their location.
  • Each output of an interconnection element Cm can be connected to any input. It is It is possible to dynamically change the way (called configuration) of making these connections by means, for example, of configuration registers associated with a configuration command.
  • configuration As illustrated in FIG. 5, in the network of the invention, each processor P is connected to four interconnection elements Cm, two of these diametrically opposite elements Cm being connected to the two inputs of the processor and the other two elements Cm, also diametrically opposite, being connected to the two outputs of the processor.
  • These interconnection elements Cm are moreover connected to each other by horizontal or vertical links.
  • the communications supported by the network are at least those described in FIG. 6: communications south to north and east to west being illustrated in FIG. 6A; mixed communications being illustrated in Figure 6B; east-west communications being illustrated in Figure 6C; Each communication illustrated in these figures having a "dual" communication.
  • the reconfiguration method consists in searching for a path called “compensation path” to replace a faulty elementary processor by an additional processor. Then starting from this faulty elementary processor, each processor is replaced by the next available processor, the closest on the way.
  • this process is only really effective when additional processors exist in at least one row and one column, which is not possible with one row of additional processors and two unidirectional paths.
  • such a method does not make it possible to reduce the number of switches in the communication paths.
  • the reconfiguration method of the invention is based on a decorrelated placement technique of the routing.
  • Placement consists of a physical placement of logical neighboring processors.
  • the logical place of a processor is the place that this processor occupies in the network without a faulty processor; the physical place of a processor is the place occupied by this processor after application of the method when a fault has been detected.
  • the placement is sure to succeed provided that the number of faulty processors is less than or equal to the number of additional processors.
  • Routing consists of programming the interconnection elements. The number of switches that can be crossed between two neighboring processors is chosen. This number is limited: three or four switches lead to good reconfiguration efficiency. The routing algorithm can thus try the greatest number of routing possibilities in a very short time with an appropriate algorithm.
  • the programming of the switching elements is ensured as soon as a replacement place is found for each processor by following a precise algorithm.
  • the algorithms for placing the processors on the physical grid and routing the switching elements are inseparable. In the method of the invention, only the placement of the processors is original.
  • the routing of the interconnection elements is carried out by an algorithm for finding the shortest path known to those skilled in the art, this algorithm being usable in the invention thanks to the restrictions made on the length of the paths and, in particular, on the number of interconnection elements crossed.
  • FIGS. 7 and 8 Placement step In FIGS. 7 and 8 is illustrated diagrammatically a network of identical elementary processors 30, each elementary processor being logically connected with an identical number of neighboring processors of the same network, with the exception of the processors located on the edges of the network. , and additional processors 31 each provided to replace one of the elementary processors 30 in the event of a fault thereof.
  • FIG. 7A illustrates a network processor with its four logical neighbors.
  • FIG. 7B illustrates an example of a network, the additional processors 31 being indicated in gray, the links 32 being the logical links.
  • Figure 8 illustrates the concept of distance between two processors: this is the minimum number of connections required to go from one processor to another.
  • the two processors 35 circled in black are at a distance of five from each other, two neighboring processors being at a unit distance.
  • the object of the method of the invention is to place the processors in the network, so as to minimize the sum of the distances between all the neighboring processors.
  • This process presents the following characteristics: • Criterion 1: to choose the places of processors in order to ensure a minimum distance between neighboring processors, one carries out a placement around the position of the processor of origin by using the processors at a distance 0 then 1, then 2, then 3 ... of the logical place of this processor.
  • Criterion 2 to ensure that a placement is possible for all the processors of the network, whatever the number of faulty or non-validated processors, we first define an order of placement of the processors which is made up of an original processor and a suite of processors encompassing all processors. Each new processor is chosen from the processors logically neighboring to the previous processors. Then, by following this order going from the original processor to the last processor, we define S + l possible places, S being the number of additional processors, and the order of the places of each processor, with as restriction that one and one only one additional place must be used compared to the possible places of the processors previously placed.
  • a coherence compliance mechanism may be implemented at the end of the placement, which consists of detecting logical inversions of each pair of neighboring processors logically in each dimension and in an inversion of the places of the two processors when such an inversion is detected.
  • the method of the invention comprises the following steps:
  • an order of placement of the processors is determined as defined above in criterion 2; - for each of the processors, we try to place it starting with its logical place, then if necessary in case of failure (faulty processor or place occupied by another processor) in each of the places located at a distance 1, at a distance 2 etc., while respecting the law set out in criterion 2: that is to say that one and only one additional place must be used compared to the possible places of the processors previously placed. If the place does not respect this law, we try another place, which can be at a greater distance if necessary. We stop when S + 1 places have been tried;
  • processors When the processors are all placed, it is checked for each dimension of the system, for example in row and in column for a table of processors, that the logical order is respected for each pair of processors. If this is not the case, the places of these processors are reversed.
  • FIGS. 10A and 10B illustrate an example of non-coherence in the network after the placement of the processors.
  • the two processors P ⁇ and P ⁇ ; j + ⁇ are logical neighbors and P ⁇ : is located before Pi j + i.
  • the processor P LJ is placed after the processor Pi D + ⁇ , contrary to its logical order, the arrow 36 illustrating the order of placement, the places marked with a cross indicating places occupied by faulty processors.
  • This placement algorithm is certain to lead to a solution as long as the number of faulty processors is less than or equal to the number of additional processors.
  • the first type of algorithm consists in direct use of the method of the invention and is illustrated in FIG. 11 with a structure of 4x4 elementary processors and 4 additional processors.
  • FIG. 11A illustrates the logical network, the logical neighbors of a processor being at the 4 cardinal points thereof.
  • FIG. 11B illustrates the order of placement of the functional processors and
  • FIG. 11C illustrates the possible places of these processors, the places at a distance of 1 from the logical place of the processor being tested before the places at a distance of 2, etc.
  • the placement order is defined as follows: the original processor is the processor at the top left P 0 , o- The following processors are the processors on the right P 0 , ⁇ and at the bottom P l ⁇ 0 of the original processor Po, o, and so on, respecting the diagonal P ⁇ , 0 ; Po, 2; P ⁇ , ⁇ --- (see Figure 11B).
  • This solution which is one of the possible solutions for the choice of the placement order, has the advantage of making it possible to respect criterion 1 below, and therefore of providing a placement which allows good routing.
  • the places of each processor are chosen from the five places defined in FIG. 11C, their selection order respecting criterion 1. It is noted that, for each processor, criterion 2 is respected.
  • the second type of placement algorithm is an application of the method of the invention by cutting the network into blocks of processors. After having defined an order of placement of the blocks, starting from an original block one traverses all the blocks, from neighboring block to neighboring block. If such an algorithm is applied to each block taking into account a placement rule such that the possible places for the processors of a block do not include a logical place of the processors of the blocks placed previously, the placement is safe.
  • FIG. 12 illustrates this second type of algorithm by considering a block formed by a line of four processors. The processor lines are then placed starting from the top line to go to the bottom line. For each line, spaces are used from this line, to which the logic processors belong, and from the line immediately below, which makes it possible to comply with the above rule.
  • FIG. 13A illustrates an example of configuration of the network in a matrix topology, without faulty processor, for west-east and north-south connections.
  • FIG. 13B illustrates an example of reconfiguration of the network in the case of a faulty processor, represented with hatching.
  • This step is carried out using a search algorithm for the shortest path known to those skilled in the art.
  • the number of interconnection elements between neighboring logical processors is limited to a small number, typically 3 or 4.
  • the number of possible paths to go from a processor to a processor neighbor is known and fairly weak, less than a dozen on average. It is assumed that all of these paths are known.
  • a simple example of the routing algorithm for interconnection elements is given below: Initi ⁇ liser i etj à 0 Point 0: For the couple C, from neighboring processors: Point 1: If the path C, (i) exists: try the routing of C s with this path If there is a conflict on an interconnection element increment i and return to Point i
  • the processor network consists of a matrix of nine processors and sixteen interconnection elements.
  • Each processor P is a simple calculation element integrating a logical and arithmetic unit, a set of working registers and a test logic making it possible to carry out the automatic test of the processor (so-called “integrated” test).
  • this logic emits a signal integrity test t_i indicating whether the processor has failed.
  • the processor P is not described here because it is well known to those skilled in the art.
  • An interconnection element is of the type illustrated in FIG. 3, the interconnection elements of FIGS. 4A to 4H being only simplified derivatives thereof.
  • This interconnection element illustrated in FIG. 14A, is composed of six data multiplexers from six inputs to one output. Each of these multiplexers is controlled by three wires for selecting the output channel in order to allow each of the outputs of the interconnection element to be connected to any input. The width of the data field of each of the channels is here 4 bits.
  • the selections of the six multiplexers are stored in two registers 40 of 18 bits each (3 selection bits for each multiplexer) inside the interconnection element. These registers 40 have a double functionality since they can operate in normal registers and in shift register during loading. These two configuration registers 40 allow two different configurations of the network to coexist dynamically.
  • FIG. 14B illustrates the detail of the control of a multiplexer, the area 41 being the control area of this multiplexer in one of the registers 40.
  • the two reconfiguration registers 40 are loaded in series using the signals nw_sw and confsw_in.
  • the signal nw_sw (“notite switch”) authorizes the writing of the configuration signal confsw_in (“configuration switch input”) in the first flip-flop of a register 40 when it is in the low state and prohibits this writing to the high state.
  • Configuration loading is synchronous and therefore obeys the global system clock clk.
  • the sel_swl2 signal (“switch configuration configuration 1/2”) allows you to select, when loading, the register where to load the configurations and also to select the configuration of the interconnection elements dynamically, that is to say vary the configuration of the interconnection elements during the course of a program, at each clock stroke.
  • An interconnection element is thus composed of 24 bits of input data, 24 bits of output data, two configuration loading signals and a dynamic configuration change signal (during normal operation) between the configurations loaded in the internal registers of the interconnection elements.
  • the processors P and the interconnection elements Cm are connected as illustrated in FIG. 15.
  • the assembly forms the matrix of processors which is controlled by a control unit UC.
  • This control unit UC sends the instructions to the processors making it possible to carry out the operations and controls the interconnection elements using the three signals confsw_in, nw_sw and sel_swl2 previously mentioned.
  • the control unit thus allows the running of normal programs as well as processor test programs.
  • the control unit periodically tests the processors which return their state to a controller via the signal t_i.
  • the diagnosis of the processor matrix is then carried out by the controller thanks to the interpretation of the t_i signals from all processors.
  • the controller can calculate the new configurations of the interconnection elements corresponding to the state of the processor matrix.
  • the control unit then informs the control unit of these new configurations.
  • the control unit then sends the information making it possible to configure the various interconnection elements, then sends the commands for executing the calculation programs to the active processors.
  • the matrix of processors as well as the interconnection elements can be integrated in a specific integrated circuit (ASIC).
  • the control unit can be integrated into reconfigurable logic components (FPGA for "Field Programmable Gate Array"), this for greater flexibility of use.
  • the controller can be implemented using a computer, an FPGA component or even a dedicated module.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Hardware Redundancy (AREA)
  • Multi Processors (AREA)
  • Exchange Systems With Centralized Control (AREA)
  • Retry When Errors Occur (AREA)
  • Debugging And Monitoring (AREA)

Abstract

La présente invention concerne un réseau de processeurs élémentaires parallèles avec tolérance aux fautes de ces processeurs comportant lesdits processeurs élémentaires, des processeurs élémentaires supplémentaires, des éléments d'interconnexion de ces processeurs et une unité de contrôle, et une succession de lignes d'éléments d'interconnexion et de lignes de processeurs en alternance, chaque processeur étant entouré de quatre éléments d'interconnexion, les lignes de processeurs étant des lignes de processeurs élémentaires, la dernière ligne de processeur étant une ligne de processeurs supplémentaires, les éléments de bord du réseau étant des éléments d'interconnexion, dans lequel l'unité de contrôle, reliée aux processeurs et aux éléments d'interconnexion, envoie les instructions aux processeurs, contrôle les éléments d'interconnexion, et vérifie l'intégrité de ces processeurs.

Description

RESEAU DE PROCESSEURS PARALLELES AVEC TOLERANCE AUX
FAUTES DE CES PROCESSEURS, ET PROCEDE DE
RECONFIGURATION APPLICABLE A UN TEL RESEAU
DESCRIPTION
Domaine technique
La présente invention concerne un réseau de processeurs parallèles avec tolérance aux fautes de ces processeurs, et un procédé de reconfiguration applicable à un tel réseau.
Le domaine de l'invention est celui des calculateurs parallèles pour tous types d'application. Deux exemples d'applications sont ainsi donnés dans le document référencé [1] en fin de description.
Etat de la technique antérieure
Les possibilités croissantes de la technologie micro-électronique, de même que l'évolution des architectures multiprocesseurs, conduisent à des
- calculateurs de plus en plus complexes tant en termes d'éléments qui les composent (portes électroniques, mémoires, registres, processeurs...), qu'en termes de complexité des logiciels utilisés. Les concepteurs de tels calculateurs à structure parallèle ou massivement parallèle très intégrée doivent prendre en compte deux exigences antagonistes :
1- Des machines à structure parallèle ou massivement parallèle sont sujettes à des défauts dus au nombre très important de processeurs et à la complexité de ceux-ci, ce qui induit un mauvais rendement de fabrication et des fautes graves en fonctionnement normal. 2- Avec des technologies très avancées et des systèmes très intégrés, de plus en plus de processeurs peuvent être incorporés dans un circuit intégré spécifique (en anglais ASIC ou « Application Spécifie Integrated Circuit ») , un module multipuce (en anglais MCM ou « Multichip Module ») ou une carte. Dans de tels systèmes le principal inconvénient est celui d'une bande passante, c'est-à-dire une quantité d'informations que l'on peut passer, limitée. Pour répondre à la première de ces exigences, une solution de l'art connu consiste à remplacer les processeurs fautifs par des processeurs supplémentaires identiques aux autres du point de vue fonctionnel. Une telle solution, permettant une « tolérance aux fautes structurelle » , s'efforce alors de garantir le bon fonctionnement, et notamment la cohérence du réseau, pour ne pas pénaliser l'architecture. Elle implique une reconfiguration consistant dans le remplacement d'éléments fautifs par des éléments supplémentaires disponibles grâce à des éléments d'interconnexion et à des éléments d' intercommunication.
Dans un réseau de type 2D (ou en deux dimensions), les solutions proposées pour assurer la tolérance aux fautes consistent : • à ajouter au système autant de lignes de processeurs qu'on veut tolérer de fautes. Cette solution est très simple et nécessite peu d'interconnexions supplémentaires, la reconfiguration s 'effectuant par une simple dérivation (en anglais « Bypass ») des lignes où un processeur est fautif. Les pertes en performance sont alors limitées. Par contre, l'utilisation des processeurs supplémentaires est très mauvaise puisqu'il faut une ligne pour tolérer une faute, et qu'en cas de faute d'une dérivation le système complet est mis en défaut. • ou, à ajouter des commutateurs, des processeurs supplémentaires et des connexions au réseau normal .
Comme décrit dans le document référencé [2], un réseau correspondant à ce second type de solution et appelé « m-Track, n-Spare » (ou « m chemins, n supplémentaires ») se compose de processeurs 10, de commutateurs et de connexions supplémentaires . Deux sortes de commutateurs sont utilisés : les commutateurs
11 reliant les processeurs aux connexions (PT pour « Processor to Track ») et les commutateurs 12 reliant les connexions entre elles (TT pour « Track-to- Track ») . Toutes les liaisons du réseau sont bidirectionnelles, c'est-à-dire que les communications peuvent aller dans les deux sens dans chaque connexion. Des processeurs supplémentaires 13 (sp) sont positionnés aux frontières du réseau. Ces processeurs, pour que la méthode de reconfiguration soit efficace, doivent être placés au moins sur une ligne et une colonne du réseau.
La figure 1 illustre un exemple de réseau de type « 2-Track, 2-Spare ». Des processeurs supplémentaires 13 (sp) sont placés tout autour du réseau et servent a reconfigurer le réseau en cas de faute des processeurs utiles 10. Des commutateurs 11,
12 sont utilisés pour permettre la reconfiguration. Le réseau comprend ici 200% de connexions supplémentaires par rapport aux connexions dites fonctionnelles . L'homme de métier peut alors utiliser une méthode de reconfiguration, basée sur des codes correcteurs d'erreur, se décomposant en deux phases :
• la première consiste, pour chaque processeur fautif, à trouver un chemin de compensation qui mène du processeur fautif à un processeur supplémentaire ; • En cas de réussite de la première phase, chaque processeur est, le long du chemin de compensation, remplacé par son plus proche voisin, en allant ainsi, par des changements en cascade, jusqu'à un processeur supplémentaire. La grille fonctionnelle est ainsi conservée.
Un tel réseau présente de nombreux inconvénients :
• La bidirectionalité des liaisons offre beaucoup de possibilités pour le routage entre processeurs, mais possède deux désavantages majeurs par rapport aux liaisons monodirectionnelles :
- le temps de communication est très augmenté du fait, d'une part, de la programmation de la direction des liaisons et d'autre part, de la traversée des circuits nécessaires pour assurer de telles communications bidirectionnelles,
- la complexité est accrue, car il est nécessaire de gérer les communications entre processeurs pour déterminer la direction de routage ;
• Le nombre de connexions ajoutées par rapport aux liaisons « utiles », qui est de 100% au minimum, rend une telle solution impropre pour des calculateurs parallèles très intégrés où la bande passante de certains niveaux, donc le nombre de connexions, est très limitée ;
• Le fait de devoir ajouter un nombre significatif de processeurs supplémentaires peut entraîner des problèmes, notamment pour les petits réseaux, composés d'une centaine de processeurs, où les processeurs supplémentaires peuvent être responsables de 40% des fautes possibles.
La méthode de reconfiguration considérée ci- dessus possède, quant à elle, deux désavantages majeurs : - elle n'est pas adaptée au cas des liaisons monodirectionnelles ;
- le nombre d'éléments de commutation traversés entre deux processeurs voisins logiquement n'est pas déterministe, ce qui rend la méthode inefficace pour traiter le cas des communications synchrones entre processeurs .
Pour résoudre ces inconvénients, le réseau selon l'invention a pour objectif de résoudre le problème de la tolérance aux fautes dans une architecture massivement parallèle où les processeurs sont très fortement couplés, en proposant une solution répondant aux contraintes suivantes : - obtenir un réseau tolérant aux fautes avec des connexions pouvant être monodirectionnelles ;
- limiter fortement les supports de communication non fonctionnels du réseau ;
- limiter le temps de communication entre processeurs en limitant le nombre de commutateurs de reconfiguration traversés entre deux processeurs ;
- autoriser une plus grande souplesse dans le choix du nombre de processeurs supplémentaires ;
- disposer d'une solution capable de supporter des topologies différentes de processeurs, notamment en matrice, en ligne ou en hypercube .
Exposé de l'invention
L'invention concerne un réseau de processeurs élémentaires parallèles avec tolérance aux fautes de ces processeurs comportant lesdits processeurs élémentaires, des processeurs élémentaires supplémentaires, des éléments d'interconnexion de ces processeurs, et une unité de contrôle caractérisé en ce qu'il comprend une succession de lignes d'éléments d'interconnexion et de lignes de processeurs en alternance, chaque processeur étant entouré de quatre éléments d'interconnexion, les lignes de processeurs étant des lignes de processeurs élémentaires, la dernière ligne de processeurs étant une ligne de processeurs élémentaires supplémentaires, les éléments de bord du réseau étant des éléments d'interconnexion et en ce que l'unité de contrôle, reliée aux processeurs et aux éléments d'interconnexion, envoie les instructions aux processeurs, contrôle les éléments d'interconnexion, et vérifie l'intégrité de ces processeurs. Chaque processeur est relié à quatre éléments d'interconnexion, deux de ces éléments diamétralement opposés étant connectés aux deux entrées du processeur, les deux autres éléments également diamétralement opposés étant connectés aux deux sorties de processeur, ces éléments d'interconnexion étant reliés entre eux par des liaisons verticales ou horizontales . Avantageusement, les éléments d'interconnexion internes au réseau ont une complexité de six entrées et six sorties, quatre entrées et quatre sorties étant reliées aux éléments d'interconnexion internes au réseau voisins, et deux entrées et deux sorties étant reliées aux processeurs voisins de l'élément d'interconnexion interne au réseau voisin considéré.
Un élément d'interconnexion possède au moins une sortie ou une entrée monodirectionnelles reliée à une entrée ou une sortie d'au moins un processeur sud- ouest, nord-est, nord-ouest ou sud-est et au moins deux entrées et deux sorties monodirectionnelles reliées à au moins deux sorties et deux entrées des éléments d'interconnexion situés au nord, à l'est, au sud ou à 1 ' ouest . Dans un mode de réalisation, chaque processeur est un élément de calcul intégrant une unité logique et arithmétique, un ensemble de registres de travail et une logique de test permettant d'effectuer le test automatique de celui-ci. Un élément d'interconnexion est composé de plusieurs multiplexeurs de données de n entrées vers une sortie, chacun de ces multiplexeurs étant commandé par les fils de sélection de la voie de sortie afin de permettre de relier chacune des sorties de l'élément d'interconnexion à n'importe quelle entrée, les sélections des multiplexeurs étant mémorisées dans deux registres à l'intérieur de l'élément d'interconnexion.
Avantageusement les processeurs et les éléments d'interconnexion peuvent être intégrés dans un circuit intégré spécifique. L'unité de contrôle peut être intégrée dans des composants de logique reconfigurable.
La présente invention concerne également un procédé de reconfiguration du réseau de processeurs comprenant :
- une étape de placement des processeurs fonctionnels du réseau logique ;
- une étape de routage consistant en une programmation des éléments d'interconnexion sur le réseau physique, en choisissant le nombre maximal de ces éléments d'interconnexion pouvant être traversés entre deux processeurs voisins utilisant un algorithme de recherche du plus court chemin.
Dans ce procédé de l'invention : - on détermine un ordre de placement des processeurs du réseau qui est constitué d'un processeur d'origine et d'une suite de processeurs englobant tous les processeurs ;
- pour chacun des processeurs on essaie de le placer en commençant par sa place logique puis, si nécessaire en cas d'échec, en chacune des places situées à une distance 1, à une distance 2... de la place logique de ce processeur, avec comme restriction qu'une et une seule place supplémentaire doit être utilisée par rapport aux places possibles des processeurs précédemment placés, en arrêtant lorsque S+l places ont été essayées, S étant le nombre de processeurs supplémentaires ;
- si S+l places ont été essayées sans succès, on revient au processeur précédent dans l'ordre de placement et on passe à la place suivante pour ce processeur ;
- éventuellement lorsque tous les processeurs sont placés, on vérifie pour chaque dimension du réseau que l'ordre logique est respecté pour chaque couple de processeurs, si ce n'est pas le cas on inverse les places de ces processeurs.
Dans un mode de réalisation, l'ordre de placement est défini ainsi : le processeur d'origine est le processeur en haut à gauche, les processeurs suivants sont les processeurs à droite et en bas du processeur d'origine, et ainsi de suite en respectant une diagonale.
On peut également découper le réseau en blocs et définir un ordre de placement des blocs en partant d'un bloc d'origine et en parcourant tous les blocs de bloc voisin en bloc voisin, les places pour les processeurs d'un bloc ne comportant pas de place logique des processeurs des blocs placés précédemment. Avantageusement ce procédé de l'invention peut être mis en oeuvre soit de manière statique, soit de manière dynamique en cours de fonctionnement.
L'invention présente les avantages suivants : • Le réseau proposé s'applique à tous types de calculateurs parallèles afin de rendre ceux-ci tolérants aux fautes des processeurs et de leurs interconnexions . La redondance est obtenue par un très faible volume d'électronique supplémentaire (ajout de quelques processeurs identiques aux autres) .
• La structure d'interconnexion entre processeurs proposée permet de supporter différentes topologies d'architectures de calculateurs parallèles, topologies en grille, tore ou anneau de processeurs par exemple .
• Les cinq contraintes posées plus haut du problème à résoudre sont résolues grâce à ce réseau et au procédé de reconfiguration associée. • La structure proposée peut être utilisée comme réseau complet ou comme élément de réseau, donc avec une reconfiguration globale ou locale. La structure, utilisée comme élément de réseau, est particulièrement adaptée aux structures très intégrées à bande passante très limitée. La structure, utilisée comme réseau complet, est adaptée aux structures intégrées demandant une forte tolérance aux fautes .
• Si un contrôle par des portes logiques autorise ou non la distribution de l'horloge sur chaque processeur, la consommation ainsi que la dissipation thermique du réseau peuvent être améliorées et optimisées . Cette amélioration conduit à diminuer la température de fonctionnement des circuits de la structure et donc à en améliorer sa fiabilité. • L'invention, adaptée à une structure fortement intégrée permet d'augmenter virtuellement le rendement de la fonderie silicium utilisée pour fabriquer le circuit. En effet, pour un composant traditionnel, si un transistor est mauvais le circuit est considéré comme mauvais, tandis qu'avec l'invention proposée le circuit reste fonctionnel même avec de très nombreux transistors défaillants, pourvu que ces transistors défaillants soient répartis dans un même processeur ou parmi des processeurs non groupés physiquement, la seule limite étant celle du nombre de processeurs supplémentaires .
Brève description des dessins
La figure 1 illustre un réseau de processeurs de l'art connu.
La figure 2 illustre la composition du réseau de processeurs de l'invention. La figure 3 illustre les entrées et sorties d'un élément d'interconnexion interne au réseau de 1 ' invention.
Les figures 4A à 4H illustrent les entrées et sorties des éléments d'interconnexion aux frontières du réseau de l'invention.
La figure 5 illustre le réseau de l'invention, avec les liaisons entre processeurs et éléments d' interconnexion.
Les figures 6A à 6C illustrent les communications minimales dans le réseau de l'invention.
Les figures 7A et 7B illustrent un exemple de réseau de l'invention.
La figure 8 illustre la notion de distance dans le réseau illustré sur la figure 7B. La figure 9 illustre un organigramme du procédé de l'invention.
Les figures 10A et 10B illustrent un exemple de non cohérence du procédé ,de l'invention après le placement des processeurs. Les figures 11A, 11B et lie illustrent un exemple d'algorithme de placement déduit directement du procédé de l'invention.
La figure 12 illustre un algorithme par bloc déduit du procédé de l'invention.
Les figures 13A et 13B illustrent des exemples de reconfiguration du réseau dans une topologie de matrice .
Les figures 14A et 14B illustrent la réalisation pratique d'un élément d'interconnexion à partir d'un multiplexeur 6 vers 1.
La figure 15 illustre un exemple de mise en oeuvre du réseau de l'invention.
Exposé détaillé de modes de réalisation
La présente invention concerne d'une part un réseau de processeurs parallèles avec tolérance aux fautes de ces processeurs et d'autre part un procédé de reconfiguration d'un tel réseau.
Réseau de processeurs parallèles le réseau de processeurs de l'invention, comme illustré sur la figure 2, est basé sur une matrice de processeurs élémentaires quelconques P à deux entrées et deux sorties, reliés entre eux par des éléments d'interconnexion Cm. Le réseau est composé d'un ensemble de lignes d'éléments interconnexion 20 et de lignes de processeurs 21 disposées alternativement. Chaque processeur P est entouré de quatre éléments d'interconnexion Cm. Les éléments de bord du réseau sont des éléments d'interconnexion Cm. Les lignes de processeurs sont des lignes de processeurs élémentaires P et la dernière ligne de processeurs est une ligne de processeurs élémentaires supplémentaires Sp . Une telle caractéristique permet d'obtenir une plus grande souplesse dans le choix du nombre de processeurs supplémentaires contrairement au dispositif de l'art antérieur illustré sur la figure 1, dans lequel avec une ligne et une colonne de processeurs supplémentaires la proportion de processeurs supplémentaires varie en fonction du produit du nombre de lignes par le nombre de colonnes.
Les éléments d'interconnexion Cm permettent de réaliser les liaisons, par commutation du réseau, entre les différents processeurs P. Un élément Cm de ce type est illustré sur la figure 3, avec ses différentes entrées et sorties. Il possède six entrées et six sorties monodirectionnelles reliées respectivement aux entrées des processeurs sud-ouest et nord-est, aux sorties des processeurs nord-ouest et sud-est, et aux quatre entrées et quatre sorties des éléments d'interconnexion situés au nord, à l'est, au sud et à l'ouest. Un élément ainsi représenté correspond à un élément du centre du réseau.
Comme illustré sur les figures 4A à H, les éléments d'interconnexion des bords du réseau possèdent moins d'entrées et/ou moins de sorties selon leur emplacement .
On a ainsi :
- Cm nord-ouest figure 4A
- Cm nord figure 4B
- Cm nord-est figure 4C
- Cm ouest figure 4D
- Cm sud-ouest figure 4E
- Cm sud figure 4F
- Cm est figure 4G
- Cm sud-est figure 4H .
Chaque sortie d'un élément d'interconnexion Cm peut être reliée à n'importe quelle entrée. Il est possible de changer de façon dynamique la manière (appelée configuration) de réaliser ces liaisons au moyen, par exemple, de registres de configuration associés à une commande de configuration. Comme illustré sur la figure 5, dans le réseau de l'invention, chaque processeur P est relié à quatre éléments d'interconnexion Cm, deux de ces éléments Cm diamétralement opposés étant connectés aux deux entrées du processeur et les deux autres éléments Cm, également diamétralement opposés, étant connectés aux deux sorties du processeur. Ces éléments d'interconnexion Cm sont de plus reliés entre eux par des liaisons horizontales ou verticales.
Chaque communication entre processeurs P se fait par l'intermédiaire d'éléments d'interconnexion Cm. On obtient ainsi 50% de connexions internes supplémentaires par rapport aux connexions « fonctionnelles » et des connexions supplémentaires avec l'extérieur réduites aux connexions des processeurs supplémentaires Sp .
Les communications supportées par le réseau sont au minimum celles décrites sur la figure 6 : des communications sud vers nord et est vers ouest étant illustrées sur la figure 6A ; des communications mélangées étant illustrées sur la figure 6B ; des communications est-ouest étant illustrées sur la figure 6C ; Chaque communication illustrées sur ces figures ayant une communication « duale » .
D'autres communications peuvent bien entendu être envisagées.
Dans le procédé de tolérance aux fautes de ce réseau, les processeurs supplémentaires Sp de la dernière ligne sont utilisés pour remplacer des processeurs élémentaires P défaillants dans les autres lignes. Procédé de reconfiguration
Dans la structure « m-Track, n-Spare » de l'art connu, illustrée sur la figure 1, le procédé de reconfiguration consiste à rechercher un chemin appelé « chemin de compensation » pour remplacer un processeur élémentaire fautif par un processeur supplémentaire. Ensuite en partant de ce processeur élémentaire fautif, chaque processeur est remplacé par le processeur suivant disponible, le plus proche sur le chemin. Mais ce procédé n'est vraiment efficace que lorsque des processeurs supplémentaires existent dans au moins une ligne et une colonne, ce qui n'est pas possible avec une ligne de processeurs supplémentaires et deux chemins monodirectionnels. De plus un tel procédé ne permet pas de réduire le nombre de commutateurs dans les chemins de communication.
Par contre le procédé de reconfiguration de l'invention est basé sur une technique de placement décorrélé du routage.
Le placement consiste en un placement physique des processeurs voisins logiques. La place logique d'un processeur est la place que ce processeur occupe dans le réseau sans processeur fautif ; la place physique d'un processeur est la place occupée par ce processeur après application du procédé lorsqu'une faute a été détectée. Le placement est sûr d'aboutir à condition que le nombre de processeurs fautifs soit inférieur ou égal au nombre de processeurs supplémentaires. Le routage consiste en une programmation des éléments d'interconnexion. Le nombre de commutateurs qui peut être traversé entre deux processeurs voisins est choisi. Ce nombre est , limité : trois ou quatre commutateurs conduisent à un bon rendement de reconfiguration. L'algorithme de routage peut ainsi essayer le plus grand nombre de possibilités de routage dans un temps très court avec un algorithme approprié.
Dans les systèmes de l'art antérieur, la programmation des éléments de commutation est assurée dès lors qu'une place de remplacement est trouvée pour chaque processeur en suivant un algorithme précis. Les algorithmes de placement des processeurs sur la grille physique et de routage des éléments de commutation sont indissociables . Dans le procédé de l'invention, seul le placement des processeurs est original. Le routage des éléments d'interconnexion est effectué par un algorithme de recherche du plus court chemin connu de l'homme de métier, cet algorithme étant utilisable dans l'invention grâce aux restrictions faites sur la longueur des chemins et, notamment, sur le nombre d'éléments d'interconnexions traversés.
• Etape de placement Sur les figures 7 et 8 est illustré schématiquement un réseau de processeurs élémentaires identiques 30, chaque processeur élémentaire étant logiquement connecté avec un nombre identique de processeurs voisins du même réseau, à l'exception des processeurs situés sur les bords du réseau, et de processeurs supplémentaires 31 prévus chacun pour remplacer un des processeurs élémentaires 30 en cas de faute de celui-ci.
La figure 7A illustre un processeur du réseau avec ses quatre voisins logiques. La figure 7B illustre un exemple de réseau, les processeurs supplémentaires 31 étant indiqués en grisé, les liaisons 32 étant les liaisons logiques.
La figure 8 illustre la notion de distance entre deux processeurs : celle-ci est le nombre minimum de connexions nécessaires pour aller d'un processeur à un autre. Les deux processeurs 35 cerclés de noir sont à une distance de cinq l'un de l'autre, deux processeurs voisins étant à une distance unité. Le procédé de l'invention a pour objet de placer les processeurs dans le réseau, de manière à minimiser la somme des distances entre tous les processeurs voisins. Ce procédé présente les caractéristiques suivantes : • Critère 1 : pour choisir les places de processeurs afin d'assurer une distance minimale entre processeurs voisins, on effectue un placement autour de la position du processeur d'origine en utilisant les processeurs à une distance 0 puis 1, puis 2, puis 3 ... de la place logique de ce processeur.
• Critère 2 : pour s'assurer qu'un placement est possible pour tous les processeurs du réseau, quel que soit le nombre de processeurs fautifs ou non validés, on définit tout d'abord un ordre de placement des processeurs qui est constitué d'un processeur d'origine et d'une suite de processeurs englobant tous les processeurs. Chaque processeur nouveau est choisi parmi les processeurs voisins logiquement des processeurs précédents. Puis, en suivant cet ordre allant du processeur d'origine au dernier processeur, on définit S+l places possibles, S étant le nombre de processeurs supplémentaires, et l'ordre des places de chaque processeur, avec comme restriction qu'une et une seule place supplémentaire doit être utilisée par rapport aux places possibles des processeurs précédemment placés .
• Critère 3 : pour assurer la cohérence globale du réseau, on met éventuellement en place en fin de placement un mécanisme de respect de la cohérence qui consiste en une détection des inversions logiques de chaque couple de processeurs voisins logiquement dans chaque dimension et en une inversion des places des deux processeurs lorsqu'une telle inversion est détectée .
Pour remplir ces différents critères, le procédé de l'invention comprend les étapes suivantes :
- on détermine un ordre de placement des processeurs comme défini ci-dessus au critère 2 ; - pour chacun des processeurs, on essaie de le placer en commençant par sa place logique, puis si nécessaire en cas d'échec (processeur fautif ou place occupée par un autre processeur) en chacune des places situées à une distance 1, à une distance 2 etc., tout en respectant la loi énoncée dans le critère 2 : c'est- à-dire qu'une et une seule place supplémentaire doit être utilisée par rapport aux places possibles des processeurs précédemment placés . Si la place ne respecte pas cette loi, on essaie une autre place, qui peut être à une distance plus grande si nécessaire. On arrête lorsque S+l places ont été essayées ;
- si S+l places ont été essayées sans succès, on remonte au processeur précédent dans l'ordre de placement et on passe à la place suivante pour ce processeur ;
- lorsque les processeurs sont tous placés, on vérifie pour chaque dimension du système, par exemple en ligne et en colonne pour un tableau de processeurs, que l'ordre logique est respecté pour chaque couple de processeurs. Si ce n'est pas le cas, on inverse les places de ces processeurs .
L'organigramme illustré sur la figure 9 résume les trois dernières étapes de, ce procédé.
Les figures 10A et 10B illustrent un exemple de non cohérence dans le réseau après le placement des processeurs. En effet sur la figure 10A les deux processeurs P^ et Pι;j+ι sont voisins logiques et Pι: se situe avant Pij+i. Sur la figure 10B le processeur PLJ se trouve placé après le processeur PiD+ι contrairement à son ordre logique, la flèche 36 illustrant l'ordre de placement, les endroits marqués d'une croix indiquant des places occupées par des processeurs fautifs.
Cet algorithme de placement est certain d'aboutir à une solution du moment que le nombre de processeurs fautifs est inférieur ou égal au nombre de processeurs supplémentaires .
Deux types d'algorithmes de placement peuvent être induits du procédé de l'invention. Le premier type d'algorithme consiste en une utilisation directe du procédé de l'invention et est illustré par la figure 11 avec une structure de 4x4 processeurs élémentaires et 4 processeurs supplémentaires . la figure 11A illustre le réseau logique, les voisins logiques d'un processeur étant aux 4 points cardinaux de celui-ci. La figure 11B illustre l'ordre de placement des processeurs fonctionnels et la figure 11C illustre les places possibles de ces processeurs, les places à une distance de 1 de la place logique du processeur étant essayées avant les places à une distance de 2, etc.
Sur cette figure 11C on utilise les représentations suivantes : X^X : place logique du processeur place nouvelle du processeur place possible du processeur
L'ordre de placement est défini ainsi : le processeur d'origine est le processeur en haut à gauche P0,o- Les processeurs suivants sont les processeurs à droite P0,ι et en bas Plι0 du processeur d'origine Po,o, et ainsi de suite en respectant la diagonale Pι,0 ; Po,2 ; Pι,ι--- (voir figure 11B) . Cette solution, qui est une des solutions possibles pour le choix de l'ordre de placement, a l'avantage de permettre de bien respecter le critère 1 dans la suite, et donc de fournir un placement qui permet un bon routage. A partir de cet ordre de placement, les places de chaque processeur sont choisies parmi les cinq places définies sur la figure 11C, leur ordre de sélection respectant le critère 1. On note que, pour chaque processeur, le critère 2 est respecté.
Le deuxième type d'algorithme de placement est une application du procédé de l'invention en découpant le réseau en blocs de processeurs . Après avoir défini un ordre de placement des blocs, en partant d'un bloc d'origine on parcourt tous les blocs, de bloc voisin en bloc voisin. Si un tel algorithme est appliqué à chaque bloc en tenant compte d'une règle de placement telle que les places possibles pour les processeurs d'un bloc ne comportent pas de place logique des processeurs des blocs placés précédemment, le placement est sûr. La figure 12 illustre ce deuxième type d'algorithme en considérant un bloc formé d'une ligne de quatre processeurs. Les lignes de processeurs sont alors placées en partant de la ligne du haut pour aller à la ligne du bas. Pour chaque ligne on utilise des places de cette ligne, à laquelle appartiennent les processeurs logiques, et de la ligne immédiatement inférieure, ce qui permet de respecter la règle ci- dessus. Pour chaque ligne, l'ordre de placement est défini par le processeur d'.origine situé à l'extrême gauche et puis par les processeurs suivants à droite. Les cinq places possibles sont alors définies comme le montre la figure 12. Le même algorithme de placement est utilisé pour chaque ligne. La vérification de cohérence, inutile dans l'exemple considéré, ne doit alors s'effectuer que sur les lignes. L'avantage de cette variante du procédé de l'invention réside dans la rapidité de l'algorithme (moins de retour en arrière, vérification de cohérence plus courte) associée à un bon placement lorsque les blocs sont bien dimensionnés par rapport aux processeurs supplémentaires, ce qui est le cas de l'exemple considéré.
La figure 13A illustre un exemple de configuration du réseau dans une topologie de matrice, sans processeur fautif, pour des connexions ouest-est et nord-sud. La figure 13B illustre un exemple de reconfiguration du réseau dans le cas d'un processeur fautif, représenté avec des hachures.
On remarque que le passage par les éléments de commutation est obligatoire même en l'absence de processeurs fautifs, ce qui donne une certaine cohérence pour l'ensemble du système.
• Etape de rou tage
Cette étape est effectuée à l'aide d'un algorithme de recherche du plus court chemin connu de l'homme du métier.
De façon à rester cohérent avec les objectifs fixés en introduction, le nombre d'éléments d'interconnexion entre processeurs voisins logiques est limité à un petit nombre, typiquement 3 ou 4. Le nombre de chemins possibles pour aller d'un processeur à un processeur voisin est connu et assez faible, moins d'une dizaine en moyenne. On suppose que tous ces chemins sont connus. Un exemple simple de l'algorithme de routage des éléments d'interconnexion est donné ci-dessous : Initiαliser i etj à 0 Point 0 : Pour le couple C, de processeurs voisins : Point 1 : Si le chemin C,(i) existe : essayer le routage de Cs avec ce chemin Si il y a conflit sur un élément d'interconnexion incrémenter i et retour au Point I
Sinon,
Si il existe d'autres couples C de processeurs : incrémenter j et retour au Point 0 Sinon, routage réussi, fin
Sinon,
Si il existe un couple de processeurs dont le routage rend le routage de Cs impossible
Supprimer tous les routages entre ; et C, Incrémenter le chemin i de Ci et retour au point 0
Sinon
Routage impossible Fin
Ceci n'est qu'un exemple de routage connu de l'homme du métier permettant de donner un exemple de réalisation du procédé de reconfiguration de 1 ' invention.
Exemple d'un mode de réalisation d'un réseau de processeurs selon l'invention
Dans ce mode de réalisation le réseau de processeurs est constitué d'une matrice de neuf processeurs et de seize éléments d'interconnexion. Chaque processeur P est un simple élément de calcul intégrant une unité logique et arithmétique, un ensemble de registres de travail et une logique de test permettant d'effectuer le test automatique du processeur (test dit « intégré ») . Lors de l'exécution d'un programme de test, cette logique émet un signal de test d'intégrité t_i indiquant si le processeur est défaillant. Le processeur P n'est pas décrit ici car il est bien -connu de l'homme de métier.
Un élément d'interconnexion est du type de celui illustré sur la figure 3, les éléments d'interconnexion des figures 4A à 4H n'étant que des dérivés simplifiés de celui-ci. Cet élément d'interconnexion, illustré sur la figure 14A, est composé de six multiplexeurs de données de six entrées vers une sortie. Chacun de ces multiplexeurs est commandé par trois fils de sélection de la voie de sortie afin de permettre de relier chacune des sorties de l'élément d'interconnexion à n'importe quelle entrée. La largeur du champ de donnée de chacune des voies est ici de 4 bits. Les sélections des six multiplexeurs sont mémorisées dans deux registres 40 de 18 bits chacun (3 bits de sélection pour chaque multiplexeur) à l'intérieur de l'élément d'interconnexion. Ces registres 40 ont une double fonctionnalité puisqu'ils peuvent fonctionner en registres normaux et en registre à décalage lors du chargement. Ces deux registres de configuration 40 permettent à deux configurations différentes du réseau de cohabiter dynamiquement.
La figure 14B illustre le détail du contrôle d'un multiplexeur, la zone 41 étant la zone de commande de ce multiplexeur dans un des registres 40.
Le chargement des deux registres de reconfiguration 40 s'effectue en série grâce aux signaux nw_sw et confsw_in. Le signal nw_sw (« not- rite switch ») autorise l'écriture du signal de configuration confsw_in (« configuration switch input ») dans la première bascule d'un registre 40 lorsqu'il est à l'état bas et interdit cette écriture à l'état haut. Le chargement des configurations est synchrone et obéit donc à l'horloge globale du système clk. Lorsque l'écriture de confsw_in est autorisée dans la première bascule d'un des registres 40 le contenu de cette bascule est chargée dans la deuxième bascule et ainsi de suite jusqu'à la dernière bascule, dont le contenu constitue le signal confsw_in de l'élément d'interconnexion suivant. Le signal sel_swl2 (« sélection switch configuration 1/2 ») permet de sélectionner, lors du chargement, le registre où charger les configurations et également de sélectionner la configuration des éléments d'interconnexion de manière dynamique, c'est-à-dire de faire varier la configuration des éléments d'interconnexion lors du déroulement d'un programme, à chaque coup d'horloge. Un élément d'interconnexion est ainsi composé de 24 bits de données en entrée, de 24 bits de données en sortie, de deux signaux de chargement de configuration et d'un signal de changement dynamique de configuration (en cours de fonctionnement normal) entre les configurations chargées dans les registres internes des éléments d'interconnexion.
Les processeurs P et les éléments d'interconnexion Cm sont connectés comme illustré sur la figure 15. L'ensemble forme la matrice de processeurs qui est commandée par une unité de contrôle UC . Cette unité de contrôle UC envoie les instructions aux processeurs permettant d'effectuer les opérations et contrôle les éléments d'interconnexion à l'aide des trois signaux confsw_in, nw_sw et sel_swl2 précédemment cités. L'unité de contrôle permet ainsi le déroulement de programmes normaux ainsi que de programmes de test des processeurs. L'unité de contrôle effectue de façon périodique le test des processeurs qui retournent à un contrôleur leur état par l'intermédiaire du signal t_i . Le diagnostic de la matrice de processeurs est alors effectué par le contrôleur grâce à l'interprétation des signaux t_i de tous les processeurs. Le contrôleur peut effectuer le calcul des nouvelles configurations des éléments d'interconnexion correspondant à l'état de la matrice de processeurs. Il informe alors l'unité de contrôle de ces nouvelles configurations. L'unité de contrôle envoie alors les informations permettant de configurer les différents éléments d'interconnexion, puis envoie les commandes d'exécution des programmes de calculs sur les processeurs actifs . La matrice de processeurs ainsi que les éléments d'interconnexion peuvent être intégrés dans un circuit intégré spécifique (ASIC) . L'unité de contrôle peut être intégrée dans des composants de logique reconfigurable (FPGA pour « Field Programmable Gâte Array ») , ceci pour une plus grande souplesse d'utilisation. Le contrôleur peut être réalisé à l'aide d'un ordinateur, d'un composant FPGA ou même d'un module dédié.
Dans la description précédente, on a envisagé une commande dynamique séparée de chacun des éléments d'interconnexion par l'unité de contrôle ; on pourrait, sans sortir du cadre de l'invention, effectuer ladite commande de façon statique, sans passer par l'unité de contrôle, par exemple par le biais d'un processeur extérieur au système.
REFERENCES
[1] « Architectures électroniques » (CEA Technologies n° 29 « Le traitement du signal et de l'image », pages 3-5)
[2] « Hardwave-Efficient and Highly-Reconfigurable 4- and 2-Track fault Tolérant Designs For Mesh- Connected Multicomputers » de Nihar R. Mahapatra et Shantanu Dutt (IEEE, 1996, pages 272 à 281)

Claims

REVENDICATIONS
1. Réseau de processeurs élémentaires parallèles avec tolérance aux fautes de ces processeurs comportant lesdits processeurs élémentaires (P), des processeurs élémentaires supplémentaires (Sp), des éléments d'interconnexion (Cm) de ces processeurs et une unité de contrôle, caractérisé en ce qu'il comprend une succession de lignes d'éléments d'interconnexion et de lignes de processeurs en alternance, chaque processeur étant entouré de quatre éléments d'interconnexion, les lignes de processeurs étant des lignes de processeurs élémentaires, la dernière ligne de processeurs étant une ligne de processeurs élémentaires supplémentaires, les éléments de bord du réseau étant des éléments d'interconnexion ; et en ce que l'unité de contrôle, reliée aux processeurs et aux éléments d'interconnexion, envoie les instructions aux processeurs, contrôle les éléments d'interconnexion, et vérifie l'intégrité de ces processeurs, dans lequel chaque processeur (P) est relié à quatre éléments d'interconnexion (Cm), deux de ces éléments diamétralement opposés étant connectés aux deux entrées du processeur (P) , les deux autres éléments, également diamétralement opposés, étant connectés aux deux sorties du processeur (P) , ces éléments d'interconnexion (Cm) étant reliés entre eux par des liaisons verticales ou horizontales.
2. Réseau selon la revendication 1, dans lequel les éléments d'interconnexion internes au réseau (Cm) ont une complexité de six entrées et six sorties, quatre entrées et quatre sorties étant reliées aux éléments d'interconnexion internes au réseau (Cm) voisins, et deux entrées et deux sorties étant reliées aux processeurs voisins de l'élément d'interconnexion interne au réseau (Cm) voisin considéré.
3. Réseau selon la revendication 1, dans lequel un élément d'interconnexion (Cm) possède au moins une sortie ou une entrée monodirectionnelles reliée à une entrée ou une sortie d'au moins un processeur sud- ouest, nord-est, nord-ouest ou sud-est et au moins deux entrées et deux sorties monodirectionnelles reliées à au moins deux sorties et deux entrées des éléments d'interconnexion situés au nord, à l'est, au sud ou à 1 ' ouest .
4. Réseau selon la revendication 1, dans lequel un processeur est un élément de calcul intégrant une unité logique et arithmétique, un ensemble de registres de travail et une logique de test permettant d'effectuer le test automatique dudit processeur.
5. Réseau selon la revendication 1, dans lequel un élément d'interconnexion est composé de plusieurs multiplexeurs de données de n entrées vers une sortie, chacun de ces multiplexeurs étant commandé par les fils de sélection de la voie de sortie afin de permettre de relier chacune des sorties de l'élément d'interconnexion à n'importe quelle entrée, les sélections des multiplexeurs étant mémorisées dans deux registres internes audit élément d'interconnexion.
6. Réseau selon la revendication 1, dans lequel les processeurs et les éléments d'interconnexion sont intégrés dans un circuit intégré spécifique, l'unité de contrôle étant intégrée dans des composants de logique reconfigurable.
7. Procédé de reconfiguration du réseau de processeurs selon la revendication 1, comprenant :
- une étape de placement des processeurs fonctionnels du réseau logique ; - une étape de routage consistant en une programmation des éléments d'interconnexion sur le réseau physique, en choisissant un nombre maximal d'éléments d'interconnexion pouvant être traversés entre deux processeurs voisins utilisant un algorithme de recherche du plus court chemin.
8. Procédé selon la revendication 7, dans lequel :
- on détermine un ordre de placement des processeurs du réseau qui est constitué d'un processeur d'origine et d'une suite de processeurs englobant tous les processeurs ;
- Pour chacun des processeurs on essaie de le placer en commençant par sa place logique puis, si nécessaire en cas d'échec, en chacune des places situées à une distance 1, à une distance 2... de la place logique de ce processeur, avec comme restriction qu'une place supplémentaire doit être utilisée par rapport aux places possibles des processeurs précédemment placés, en arrêtant lorsque S+l places ont été essayées , S étant le nombre de processeurs supplémentaires ;
- si S+l places ont été essayés sans succès, on revient au processeur précédent dans l'ordre de placement et on passe à la place suivante pour ce processeur.
9. Procédé selon la revendication 8, dans lequel, lorsque tous les processeurs sont placés, on vérifie pour chaque dimension du réseau, que l'ordre logique est respecté pour chaque couple de processeurs, si ce n'est pas le cas on inverse les places de ces processeurs .
10. Procédé selon la revendication 7, dans lequel l'ordre de placement est défini ainsi : le processeur d'origine est le processeur en haut à gauche, les processeurs suivants sont les processeurs à droite et en bas du processeur d'origine, et ainsi de suite en respectant une diagonale.
11. Procédé selon la revendication 7, dans lequel on découpe le réseau en blocs de processeurs et on définit un ordre de placement des blocs en partant d'un bloc d'origine et en parcourant tous les blocs de bloc voisin en bloc voisin, les places possibles pour les processeurs d'un bloc ne comportant pas de place logique des processeurs des blocs placés précédemment.
PCT/FR2000/001860 1999-07-02 2000-06-30 Reseau de processeurs paralleles avec tolerance aux fautes de ces processeurs, et procede de reconfiguration applicable a un tel reseau WO2001002975A1 (fr)

Priority Applications (4)

Application Number Priority Date Filing Date Title
AT00949598T ATE298437T1 (de) 1999-07-02 2000-06-30 Gatter von parallelen prozessoren mit fehlertoleranz der prozessoren und rekonfigurierungsverfahren dafür
US09/763,164 US6681316B1 (en) 1999-07-02 2000-06-30 Network of parallel processors to faults-tolerant towards said processors and reconfiguration method applicable to such a network
DE60020933T DE60020933T2 (de) 1999-07-02 2000-06-30 Gatter von parallelen prozessoren mit fehlertoleranz der prozessoren und rekonfigurierungsverfahren dafür
EP00949598A EP1116130B1 (fr) 1999-07-02 2000-06-30 Reseau de processeurs paralleles avec tolerance aux fautes de ces processeurs, et procede de reconfiguration applicable a un tel reseau

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR9908553A FR2795840B1 (fr) 1999-07-02 1999-07-02 Reseau de processeurs paralleles avec tolerance aux fautes de ces processeurs, et procede de reconfiguration applicable a un tel reseau
FR99/08553 1999-07-02

Publications (1)

Publication Number Publication Date
WO2001002975A1 true WO2001002975A1 (fr) 2001-01-11

Family

ID=9547640

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2000/001860 WO2001002975A1 (fr) 1999-07-02 2000-06-30 Reseau de processeurs paralleles avec tolerance aux fautes de ces processeurs, et procede de reconfiguration applicable a un tel reseau

Country Status (6)

Country Link
US (1) US6681316B1 (fr)
EP (1) EP1116130B1 (fr)
AT (1) ATE298437T1 (fr)
DE (1) DE60020933T2 (fr)
FR (1) FR2795840B1 (fr)
WO (1) WO2001002975A1 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2471008C2 (ru) * 2010-12-09 2012-12-27 Михаил Яковлевич Шпирт Способ извлечения золота из золотосодержащего природного сырья

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2795839B1 (fr) * 1999-07-02 2001-09-07 Commissariat Energie Atomique Procede de reconfiguration applicable a un reseau d'elements fonctionnels identiques
US6745317B1 (en) * 1999-07-30 2004-06-01 Broadcom Corporation Three level direct communication connections between neighboring multiple context processing elements
US6938256B2 (en) 2000-01-18 2005-08-30 Galactic Computing Corporation System for balance distribution of requests across multiple servers using dynamic metrics
JP2001249824A (ja) * 2000-03-02 2001-09-14 Hitachi Ltd 論理エミュレーションプロセッサおよびそのモジュールユニット
US8538843B2 (en) 2000-07-17 2013-09-17 Galactic Computing Corporation Bvi/Bc Method and system for operating an E-commerce service provider
US6816905B1 (en) * 2000-11-10 2004-11-09 Galactic Computing Corporation Bvi/Bc Method and system for providing dynamic hosted service management across disparate accounts/sites
US7002975B2 (en) * 2000-08-11 2006-02-21 Texas Instruments Incorporated Multiprocessor network node failure detection and recovery
WO2002084509A1 (fr) 2001-02-24 2002-10-24 International Business Machines Corporation Nouveau superordinateur massivement parallele
CN1319237C (zh) * 2001-02-24 2007-05-30 国际商业机器公司 超级计算机中通过动态重新划分的容错
US7185174B2 (en) * 2001-03-02 2007-02-27 Mtekvision Co., Ltd. Switch complex selectively coupling input and output of a node in two-dimensional array to four ports and using four switches coupling among ports
US20040254965A1 (en) * 2001-03-02 2004-12-16 Eric Giernalczyk Apparatus for variable word length computing in an array processor
US7000033B2 (en) * 2001-09-28 2006-02-14 Sun Microsystems, Inc. Mapping of nodes in an interconnection fabric
FR2838209B1 (fr) * 2002-04-03 2005-02-04 Centre Nat Rech Scient Architecture de transport de donnees en anneau comprenant un reseau de retropropagation
US7451183B2 (en) * 2003-03-21 2008-11-11 Hewlett-Packard Development Company, L.P. Assembly and method for balancing processors in a partitioned server
JP2005078177A (ja) * 2003-08-28 2005-03-24 Nec Electronics Corp 並列演算装置
US7804504B1 (en) * 2004-12-13 2010-09-28 Massachusetts Institute Of Technology Managing yield for a parallel processing integrated circuit
US7870365B1 (en) 2008-07-07 2011-01-11 Ovics Matrix of processors with data stream instruction execution pipeline coupled to data switch linking to neighbor units by non-contentious command channel / data channel
US8145880B1 (en) 2008-07-07 2012-03-27 Ovics Matrix processor data switch routing systems and methods
US8131975B1 (en) 2008-07-07 2012-03-06 Ovics Matrix processor initialization systems and methods
US8327114B1 (en) 2008-07-07 2012-12-04 Ovics Matrix processor proxy systems and methods
US7958341B1 (en) 2008-07-07 2011-06-07 Ovics Processing stream instruction in IC of mesh connected matrix of processors containing pipeline coupled switch transferring messages over consecutive cycles from one link to another link or memory
US9160617B2 (en) 2012-09-28 2015-10-13 International Business Machines Corporation Faulty core recovery mechanisms for a three-dimensional network on a processor array
US8990616B2 (en) * 2012-09-28 2015-03-24 International Business Machines Corporation Final faulty core recovery mechanisms for a two-dimensional network on a processor array
CN105975435A (zh) * 2016-06-17 2016-09-28 广东工业大学 一种含开关及连线故障的处理器阵列的重构方法
US11360934B1 (en) 2017-09-15 2022-06-14 Groq, Inc. Tensor streaming processor architecture
US11243880B1 (en) 2017-09-15 2022-02-08 Groq, Inc. Processor architecture
US11114138B2 (en) 2017-09-15 2021-09-07 Groq, Inc. Data structures with multiple read ports
US11868804B1 (en) 2019-11-18 2024-01-09 Groq, Inc. Processor instruction dispatch configuration
US11170307B1 (en) 2017-09-21 2021-11-09 Groq, Inc. Predictive model compiler for generating a statically scheduled binary with known resource constraints
US11537687B2 (en) 2018-11-19 2022-12-27 Groq, Inc. Spatial locality transform of matrices
US11115147B2 (en) * 2019-01-09 2021-09-07 Groq, Inc. Multichip fault management
EP3938921A4 (fr) * 2019-03-11 2022-12-14 Untether AI Corporation Mémoire de calcul
US20220171829A1 (en) 2019-03-11 2022-06-02 Untether Ai Corporation Computational memory
US11342944B2 (en) 2019-09-23 2022-05-24 Untether Ai Corporation Computational memory with zero disable and error detection
US11468002B2 (en) 2020-02-28 2022-10-11 Untether Ai Corporation Computational memory with cooperation among rows of processing elements and memory thereof

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0190813B1 (fr) * 1985-01-29 1991-09-18 The Secretary of State for Defence in Her Britannic Majesty's Government of the United Kingdom of Great Britain and Cellule de traitement pour réseaux tolérant les fautes
US5323335A (en) * 1991-07-05 1994-06-21 General Electric Co. Regular and fault-tolerant Kalman filter systolic arrays
EP1037279B1 (fr) * 1994-03-22 2003-03-05 Hyperchip Inc. Dispositif de traitement d'information massivement parallèle comportant des cellules photovoltaiques permettant l'absorption de lumière ambiante

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
CLERMIDY F ET AL: "A new placement algorithm dedicated to parallel computers: bases and application", PROCEEDINGS 1999 PACIFIC RIM INTERNATIONAL SYMPOSIUM ON DEPENDABLE COMPUTING, PROCEEDINGS 1999 PACIFIC RIM INTERNATIONAL SYMPOSIUM ON DEPENDABLE COMPUTING, HONG KONG, 16-17 DEC. 1999, 1999, Los Alamitos, CA, USA, IEEE Comput. Soc, USA, pages 242 - 249, XP002139232, ISBN: 0-7695-0371-3 *
JOHN L K ET AL: "A DYNAMICALLY RECONFIGURABLE INTERCONNECT FOR ARRAY PROCESSORS", IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION (VLSI) SYSTEMS,US,IEEE INC. NEW YORK, vol. 6, no. 1, 1 March 1998 (1998-03-01), pages 150 - 157, XP000739209, ISSN: 1063-8210 *
MAHAPATRA N R ET AL: "HARDWARE-EFFICIENT AND HIGHLY-RECONFIGURABLE 4- AND 2-TRACK FAULT-TOLERANT DESIGNS FOR MESH-CONNECTED MULTICOMPUTERS", PROCEEDINGS OF THE INTERNATIONAL SYMPOSIUM ON FAULT-TOLERANT COMPUTING,US,LOS ALAMITOS, IEEE COMP. SOC. PRESS, vol. CONF. 26, 1996, pages 272 - 281, XP000679291, ISBN: 0-8186-7261-7 *
POPLI S P ET AL: "A RECONFIGURABLE VLSI ARRAY FOR RELIABILITY AND YIELD ENHANCEMENT", PROCEEDINGS OF THE INTERNATIONAL CONFERENCE ON SYSTOLIC ARRAYS. FROM 1990 PROCEEDINGS OF THE INTERNATIONAL CONFERENCE ON APPLICATION SPECIFIC ARRAY PROCESSORS,US,WASHINGTON, IEEE COMP. SOC. PRESS, vol. CONF. 2, 1988, pages 631 - 642, XP000756117 *
SHIGEI N ET AL: "ON EFFICIENT SPARE ARRANGEMENTS AND AN ALGORITHM WITH RELOCATING SPARES FOR RECONFIGURING PROCESSOR ARRAYS", IEICE TRANSACTIONS ON FUNDAMENTALS OF ELECTRONICS, COMMUNICATIONS AND COMPUTER SCIENCES,JP,INSTITUTE OF ELECTRONICS INFORMATION AND COMM. ENG. TOKYO, vol. E80-A, no. 6, 1 June 1997 (1997-06-01), pages 988 - 995, XP000740592, ISSN: 0916-8508 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2471008C2 (ru) * 2010-12-09 2012-12-27 Михаил Яковлевич Шпирт Способ извлечения золота из золотосодержащего природного сырья

Also Published As

Publication number Publication date
FR2795840B1 (fr) 2001-08-31
EP1116130A1 (fr) 2001-07-18
DE60020933D1 (de) 2005-07-28
EP1116130B1 (fr) 2005-06-22
FR2795840A1 (fr) 2001-01-05
US6681316B1 (en) 2004-01-20
ATE298437T1 (de) 2005-07-15
DE60020933T2 (de) 2006-05-11

Similar Documents

Publication Publication Date Title
EP1116130B1 (fr) Reseau de processeurs paralleles avec tolerance aux fautes de ces processeurs, et procede de reconfiguration applicable a un tel reseau
EP1116116B1 (fr) Procede de reconfiguration applicable a un reseau d'elements fonctionnels identiques
JP6856612B2 (ja) 多層相互接続による分散型プロセッサを有する処理システム
EP0398552B1 (fr) Architecture d'intégration à l'échelle de la plaquette pour un réseau à interconnexion linéaire
EP0272165B1 (fr) Dispositif de calcul reconfigurable
Dutt et al. Designing fault-tolerant systems using automorphisms
FR2860313A1 (fr) Composant a architecture reconfigurable dynamiquement
Werner et al. A survey on design approaches to circumvent permanent faults in networks-on-chip
FR2667706A1 (fr) Antememoire hierarchique a circuits integres.
WO2010037570A1 (fr) Dispositif de traitement en parallele d'un flux de donnees
EP2839378A1 (fr) Systeme et procede de gestion d'une coherence de caches dans un reseau de processeurs munis de memoires caches
FR2779843A1 (fr) Composant memoire multiport serie et application a un ordinateur
Bistouni et al. Reliability analysis of multilayer multistage interconnection networks
FR2992446A1 (fr) Systeme et procede de traitement de donnees a gestion d'une coherence de caches dans un reseau de processeurs munis de memoires caches.
SAMI et al. Fault tolerant computing approaches
FR2865290A1 (fr) Procede de gestion de donnees dans un processeur matriciel et processeur matriciel mettant en oeuvre ce procede
WO2006042736A1 (fr) Systeme de processeur parallele reconfigurable, modulaire et hierarchique
FR2793628A1 (fr) Systeme de transmission, recepteur et reseau d'interconnexion
WO2022095745A1 (fr) Procédé et système de récupération de ressource topologique, et dispositif électronique
EP0113272B1 (fr) Réseau maille modulaire de communications
Putkaradze et al. Fault-resilient NoC router with transparent resource allocation
Hébert et al. Evaluation of a distributed fault handler method for MPSoC
Blatt Soft configurable wafer scale integration: design, implementation and yield analysis
WO2016071329A1 (fr) Procede et dispositif de tolerance aux fautes sur des composants electroniques
FR2919401A1 (fr) Procede de test des chemins de donnees dans un circuit electronique

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): US

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE

WWE Wipo information: entry into national phase

Ref document number: 2000949598

Country of ref document: EP

Ref document number: 09763164

Country of ref document: US

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWP Wipo information: published in national office

Ref document number: 2000949598

Country of ref document: EP

WWG Wipo information: grant in national office

Ref document number: 2000949598

Country of ref document: EP