FR 2655750 A1 19910614 FR 8916334 A 19891211 Le domaine de l'invention est celui des systèmes de traitement de données multiprocesseurs. L'invention concerne un système de traitement de données multiprocesseur à bus actif reconfigurable. Il est connu que les configurations à multiprocesseurs permettent de multiplier les capacités de traitement des systèmes de traitement de données, notamment en implantant des mécanismes de traitement de données en parallèle Par ailleurs, les systèmes à architecture parallèle mettent en oeuvre diverses techniques de communication interprocesseurs. Parmi celles-ci, on peut distinguer la voie de communication partagée, le contrôle de la voie de communication étant distribuée entre les processeurs communicants ou centralisé au niveau d'un dispositif de commande de voie de communication On distingue aussi les réseaux de connexion processeur à processeur comme dans les hypercubes, "Tansputers", tableaux systoliques. La voie de communication interprocesseurs consiste typiquement en un bus parallèle, les transferts de données s'effectuant depuis l'unité de mémorisation associée à un processeur vers l'unité de mémorisation associée à un processeur éloigné. Les transferts de données interprocesseurs peuvent consister dans un mouvement de blocs importants de données mais aussi dans un mouvement d'une multiplicité de blocs de petite taille. Les processeurs communicants ayant en charge la gestion des transferts de données et la gestion de la configuration de la voie de communication, il est connu que la capacité de traitement en parallèle du système est considérablement affectée par les transferts fréquents de données entre les processeurs. Une solution à ce problème a été apportée par le brevet US-O 234182 (IBM) qui divulgue l'utilisation d'une mémoire à double accès permettant de tamponner les données à transférer via la voie de communication dans une première zone mémoire pendant que le processeur communicant continue un traitement en association avec une seconde zone mémoire. Cependant, un autre inconvénient majeur des machines multiprocesseurs à traitement parallèle réside dans leur irrégularité de puissance de calcul vis-à-vis des différents domaines d'applications Ainsi, les machines multiprocesseurs comportent en général des processeurs performants mais coûteux Les machines massivement parallèles comportent au contraire une multiplicité de processeurs modestes Les domaines d'applications de ces machines étant le plus souvent hétérogènes, de même que les algorithmes mis en oeuvre, notamment sur le plan des calculs arithmétiques, on obtient par conséquent une puissance de calcul non régulière pour l'une ou l'autre de ces deux catégories de machines En conséquence, la rigidité de structure des systèmes actuels de traitements de données multiprocesseurs est complètement inadaptée au nombre considérable d'algorithmes qui doivent être mis en oeuvre o seul le nombre d'unités de calcul est un facteur déterminant et il est avantageux de disposer d'un système combinant intrinsèquement les qualités des machines multiprocesseurs et des machines à traitement parallèle En particulier, le système de traitement de données à multiprocesseurs divulgué dans le brevet cité ci-dessus comporte un bus interprocesseur inerte qui ne procure aucune amélioration au niveau de la puissance de calcul de l'ensemble du système Par ailleurs, ce type de systèmes connus a des caractéristiques temporellement figées et ne permet pas un couplage interprocesseurs flexible. En conséquence, l'objectif de l'invention est de résoudre ces différents problèmes. Notamment un premier objectif de l'invention est de fournir un système de traitement de données multiprocesseurs à bus actif reconfigurable permettant de répartir entre les processeurs et le bus actif, des classes d'algorithmes de traitements de données de manière à constituer un système modulaire possédant deux couches distinctes, une première couche constituée d'unités de traitements de données cascadées du type à multiples instructions, multiples données, par exemple, induisant un parallélisme à grain moyen et une seconde couche constituée de circuits contrôlés par des flots de données intégrant des fonctions de communication, de synchronisation et de calculs parallèles à grain fin, cette couche formant le bus actif reconfigurable. Un autre objectif de l'invention est de fournir un système de traitement de données à bus actif reconfigurable, dans lequel le protocole de communication est géré directement au niveau de la voie de communication, c'est à dire au niveau du bus. Un autre objectif de l'invention est de fournir un système de traitement de données à bus actif reconfigurable dans lequel on a découplé les fonctions de traitement de données gérées par les processeurs du système et les fonctions de gestion du protocole de communication interprocesseurs gérées par le bus actif permettant d'obtenir une vitesse de communication et une puissance de calcul en parallèle très élevées. Ces objectifs ainsi que d'autres sont atteints à l'aide d'un système de traitement de données multiprocesseur à bus actif reconfigurable comprenant au moins deux modules interconnectables reliés par un bus d'interconnexion de modules, un module interconnectable comprenant une unité de traitement de données, une unité de mémorisation adressable et 4 2655750 commandable par l'unité de traitement de données via un bus système, caractérisé en ce que ledit module comprend en outre un socle configurable et reconfigurable constituant un noeud du bus d'interconnexion de modules, ledit socle comprenant un premier moyen interface d'entrée/sortie relié au bus système et fonctionnant avec l'unité de traitement de données et l'unité de mémorisation, des seconds moyens interfaces d'entrée/sortie reliés au bus d'interconnexion de modules pour fonctionner respectivement avec les seconds moyens interface d'entrée/sortie du module adjacent, des moyens de synthèse d'une pluralité de circuits opératoires recevant des données d'entrée depuis lesdits moyens interface et restituant des données résultantes vers lesdits moyens interface, des moyens de création et de commutation de chemins de données entre lesdits moyens interface d'entrée/sortie, ledit socle étant configuré et reconfiguré par l'unité de traitement de données au moyen d'une information de configuration via le bus système. Les moyens de synthèse de circuits opératoires dans le socle permettent une répartition de la puissance de calcul interne du module entre l'unité de traitement de données ou processeur et le socle ou noeud du bus de communication Les moyens interface d'entrée/sortie en association avec les moyens de création et de commutation des chemins de données configurables permettent un routage flexible des données sur le bus indépendamment de l'activité de l'unité de traitement de données Le socle étant configurable ou reconfigurable par le chargement d'une information de configuration, celui-ci se comporte comme un noeud intelligent de communication inter- modules On obtient ainsi un gain important au niveau des opérations de contrôle, de test ou de distribution des données gérées antérieurement par les processeurs du sytème. Selon une autre caractéristique de l'invention, l'unité de mémorisation comprend une première zone de mémorisation et une seconde zone de mémorisation, des moyens de transfert de données entre les deux zones de mémorisation, la première zone de mémorisation et les moyens de transfert étant adressables et commandables via le bus système par l'unité de traitement de données, la seconde zone de mémorisation et les moyens de transfert étant accessibles et commandables via un canal de communication par le socle comprennant en outre un troisième moyen interface d'entrée/sortie fonctionnant avec les moyens de création et de commutation de chemins de données. Grâce au partitionnement de l'unité de mémorisation et à son double accès, on réalise un véritable bouclage entre l'unité de traitement de données, le socle et l'unité de mémorisation De cette manière on obtient un recouvrement des tâches réalisées au niveau de l'unité de traitement de données et du socle La mémoire partitionnée à double accès permet un gain en bande passante et en opérations de contrôle. Le bouclage assure une diffusion des données à travers les canaux internes du module sans interrompre les traitements locaux en cours. D'autres caractéristiques et avantages de l'invention seront encore mieux compris à la lecture de la description qui va suivre et des dessins annexés dans lesquels: la figure 1 représente schématiquement un système de traitement de données multiprocesseur à bus actif reconfigurable comportant des modules interconnectables selon l'invention, la figure 2 représente schématiquement le système de traitement de données multiprocesseur à bus actif reconfigurable selon l'invention dans lequel chaque module comporte une mémoire à double accès. Le système de traitement de données multiprocesseur illustré en figure 1, comprend deux modules l OA, l OB interconnectables Le premier module comprend de façon typique une unité de traitement de données 20 A ou processeur, une unité de mémorisation de données et de programme 30 A reliée à l'unité 20 A par un bus système 50 A comportant de façon connue, des fils d'adresse et de contrôle de manière que l'unité de traitement de données est à même d'adresser et de commander l'unité de mémorisation. De façon similaire, le second module l OB comporte une unité de traitement de données 20 B reliée à une unité de mémorisation de données et de programme B via un bus système 50 B Les deux unités de traitement de données 20 A, 20 B sont cascadées et reliées par un réseau de communication 70 de façon à assurer un couplage faible entre eux Bien entendu, on pourra prévoir la connexion en cascade d'autres unités de traitement de données, de façon à réaliser un système comportant une pluralité de processeurs Les processeurs peuvent s'apparenter à des Transputers induisant un parallélisme à grain moyen. Le module l OA comprend en outre un socle 40 A placé en un noeud d'un bus d'interconnexion inter- modules 60 Il en est de même pour le module l OB et nous ne décrirons par la suite que le module l OA. Le socle 40 A selon l'invention est basé sur la technologie d'un tableau de cellules logiques communément appelé LCA (Logic Cells Array) Le LCA contient trois types d'éléments; un périmètre de blocs d'entrée/sortie, un tableau central de blocs logiques configurables et des ressources d'interconnexion de blocs. La configuration des trois types d'éléments est déterminée par une information de configuration 7 2655750 préalablement chargée dans le LCA, lequel est basculé à cet effet dans un mode configuration De tels circuits sont disponibles dans le commerce sous la référence AMD 3090 par exemple. Selon l'invention, on utilise une pluralité de blocs d'entrée/sortie du LCA pour constituer une première interface d'entrée/sortie parallèle 41 A comportant de préférence 32 blocs d'entrée/sortie de données et 4 blocs d'entrée/sortie affectés à des lignes de contrôle, la première interface d'entrée/sortie parallèle 41 A étant directement reliée au bus système 50 A de manière que le socle 40 A pourra être adressable et commandable via le bus système 50 A par l'unité de traitement de données 20 A On utilise de façon similaire une pluralité d'autres blocs d'entrée/sortie du LCA pour constituer deux seconds moyens interface d'entrée/sortie parallèles 42 A, 44 A par exemple deux fois 36 blocs pour relier au moins un module adjacent 10 B au module 10 A via le bus d'interconnexion de modules 60 et fonctionner respectivement avec les seconds moyens interface d'entrée/sortie 42 B, 44 B associés au second module adjacent. De façon préférentielle, le bus d'interconnexion de modules 60 comporte 32 lignes de transmission de données et 4 lignes de commande. Cependant, on pourra prévoir une organisation et une utilisation différentes des différentes lignes du bus d'interconnexion en fonction de la configuration des blocs d'entrée/sortie du LCA. Le tableau central de blocs logiques configurables permet la synthèse de circuits opératoires 43 A par exemple de fonctions logiques ou arithmétiques définie par le chargement de tables de scrutation internes au LCA. Les circuits opératoires selon leur configuration mettent en oeuvre des algorithmes de traitements en parallèle Le cheminement des données à travers les circuits opératoires synthétisés et entre les différents moyens interfaces d'entrée/sortie 41 A, 42 A, 44 A est obtenu par la configuration des ressources d'interconnexion 43 A du LCA permettant la création ou la modification de liens entre les blocs logiques du LCA Les circuits opératoires sont pilotés par le flux de données provenant des moyens interface d'entrée 41 A, 42 A, 44 A et les résultats des traitements sont aiguillés vers les moyens interface de sortie 41 A, 42 A, 44 A de manière que le socle 40 A constitue à lui seul un pseudo processeur à traitement de données en parallèle à grain fin. Le cheminement des données depuis et vers les moyens d'interface d'entrée/sortie 41 A, 42 A, 44 A et la constitution des circuits opératoires sont définis par une information de configuration du socle 40 A. L'information de configuration préalablement mémorisée dans l'unité de mémorisation 30 A est chargée dans le socle 40 A de manière connue via le bus système 50 A à l'initiative de l'unité de traitement de données 20 A et est modifiée de la même manière pour reconfigurer le socle 40 A selon le traitement ou les aiguillages de données à réaliser On pourra prévoir à l'initialisation du système de traitement de données multiprocesseur de charger l'ensemble des informations de configurations respectivement dans les unités de mémorisation 30 A, 30 B associées à chaque module 10 A, B depuis un site externe via le réseau interprocesseur 70. En phase de fonctionnement du système selon l'invention, chaque unité de traitement 20 A peut configurer son socle associé 40 A pour, d'une part établir logiquement les chemins de transfert des données via le bus d'interconnexion de modules 60, et d'autre part, synthétiser les circuits opératoires à fonctionnement parallèle ou non afin de déporter une partie de leur puissance de calcul Le socle 40 A joue ainsi le rôle d'un accélérateur de l'unité de traitement de données 20 A et permet d'établir de façon flexible un chemin de diffusion de données globales à l'ensemble des unités de traitement de données du système. Dans le cas d'une écriture vers l'unité de mémorisation 30 A des résultats délivrés par les circuits opératoires d'un socle 40 A, le socle 40 A réquisitionne l'accés du bus système 50 A et par conséquent affecte la capacité de traitement de l'unité de traitement de données 20 A qui partage le bus système A Il est donc avantageux d'alimenter directement les circuits opératoires synthétisés du socle 40 A sans réquisitionner le bus système 50 A. De façon préférentielle, et comme visible en figure 2, l'unité de mémorisation 30 A est une mémoire vidéo (VRAM) du type TM 544 C 251 de chez Texas Instruments et comporte une première zone de mémorisation 31 A, une seconde zone de mémorisation 32 A et des moyens de transfert de données 33 A caractéristique de la vidéo RAM permettant l'échange de données entre les deux zones de mémorisation Plus spécifiquement, la première zone de mémorisation 31 A est constituée d'une zone RAM associée à un port d'entrée/sortie parallèle accédé et commandé par l'unité de traitement de données 20 A, via le bus système 50 A La seconde zone de mémorisation 32 A est constituée d'un assemblage de registres série associés à un port d'entrée/sortie série accédé et commandé par le socle 40 A via un canal de communication 75 A reliant le port d'entrée/sortie associé à la seconde zone de mémorisation 32 A à un troisisème moyen interface d'entrée/sortie 45 A correspondant du socle 40 A constitué par une pluralité de blocs d'entrée/sortie du LCA Parmi les lignes du canal de communication 75 A, le socle 40 A pourra utiliser une ligne de requête pour lire séquentiellement les données mémorisées dans le port d'entrée/sortie série de la vidéo RAM, ou venir y ranger des données. L'unité de traitement de données 20 A via le bus système 50 A commande, de façon connue, le moyen de transfert de données 33 A pour transférer des données mémorisées dans la première zone mémoire 31 A vers la seconde zone mémoire 32 A pour alimenter le socle 40 A et inversement le socle 40 A commande le moyen de transfert de données 33 A via le canal de communication 75 A, pour transférer des données mémorisées dans la seconde zone mémoire 32 A vers la première zone mémoire 31 A pour alimenter l'unité de traitement de données 20 A. Selon un mode de fonctionnement du système selon l'invention mettant en oeuvre deux modules l OA, l OB interconnectés par le bus d'interconnexion 60, l'unité de traitement de données 20 A transfère en parallèle depuis la première zone de mémorisation 31 A de l'unité de mémoire 30 A, quatre opérandes vers le premier moyen interface configuré en entrée 41 A du socle 40 A Les moyens de synthèse de circuits opératoires 43 A étant configurés pour réaliser quatre opérations en parallèle, les quatre opérandes sont envoyés respectivement aux circuits opératoires synthétisés 43 A qui peuvent délivrer simultanément quatre résultats au second moyen interface configuré en sortie 44 A du socle 40 A, lesquels les transfèrent vers le second moyen interface configuré en entrée 42 B du socle 40 B du module l OB Le socle 40 B préalablement configuré pour établir des liens de communication de données entre le second moyen interface d'entrée 42 B et le troisième moyen interface configuré en sortie 45 B transfère les données résultantes à destination de la seconde zone de mémorisation 32 B de l'unité de mémorisation 30 B du module l OB Le socle 40 B provoque le transfert de données depuis la seconde zone de mémorisation 32 B vers la première zone de mémorisation 31 B L'unité de traitement de données 20 B accède ensuite aux données chargées dans la première zone de mémorisation 32 B pour terminer le traitement. Ainsi, comme décrit précédemment, on obtient un recouvrement partiel entre le calcul d'adressage effectué au niveau des unités de traitement de données A, 20 B, et les calculs et les transferts réalisés au niveau des socles 40 A, 40 B. On peut bien entendu optimiser les temps de traitement du système en configurant par exemple le socle 20 A en lecture directe du bus système 60. On voit donc que le bus d'interconnexion de module selon l'invention est à la fois un canal de traitement et un canal de communication permettant l'implantation d'un parallélisme pouvant être très fin ou d'algorithmes distribués Le système selon l'invention peut être considéré comme une couche de processeurs conventionnels (MIMD) contrôlant une couche de circuits combinatoires ou séquentiels reconfigurables selon les besoins de l'application. Enfin, le système de traitement de données multiprocesseur à bus actif reconfigurable présente l'intérêt d'être facilement extensible En interconnectant une pluralité de modules selon l'invention, il est facile par exemple de mettre en oeuvre des algorithmes de diffusion de messages via le bus d'interconnexion ou de configurer le socle de chaque module en crossbar comme dans les machines systoliques. Bien entendu l'invention n'est pas limitée à l'exemple de réalisation cidessus décrit et on pourra prévoir d'autres variantes sans pour cela sortir du cadre de l'invention. REVENDICATIONS 1 Système de traitement de données multiprocesseur à bus actif reconfigurable comprenant au moins deux modules interconnectables (O 10 a, lob) reliés par un bus d'interconnexion de modules ( 60), un module interconnectable (O 10 a) comprenant une unité de traitement de données ( 20 a), une unité de mémorisation ( 30 a) adressable et commandable par l'unité de traitement de données via un bus système ( 50 a), caractérisé en ce que ledit module (O 10 a) comprend en outre un socle configurable et reconfigurable ( 40 a) constituant un noeud du bus d'interconnexion de modules, ledit socle ( 40 a) comprenant un premier moyen interface d'entrée/sortie ( 41 a) relié au bus système ( 50 a) et fonctionnant avec l'unité de traitement de données ( 20 a) et l'unité de mémorisation ( 30 a), des seconds moyens interfaces d'entrée/sortie ( 42 a, 44 a) reliés au bus d'interconnexion de modules ( 60) pour fonctionner respectivement avec les seconds moyens d'interface d'entrée/sortie du module adjacent (lob), des moyens de synthèse d'une pluralité de circuits opératoires ( 43 a) recevant des données d'entrée depuis lesdits moyens d'interface ( 41 a, 42 a, 44 a) et restituant des données résultantes vers lesdits moyens d'interface, des moyens de création et de commutation de chemins de données ( 43 a) entre lesdits moyens d'interface d'entrée/sortie ( 41 a, 42 a, 44 a), ledit socle étant configuré et reconfiguré par l'unité de traitement de données ( 20 a) au moyen d'une information de configuration via le bus système ( 50 a) 2 Système de traitement de données multiprocesseur à bus actif reconfigurable selon la revendication 1, caractérisé en ce que l'unité de mémorisation ( 30 a) comprend une première zone de mémorisation ( 31 a) et une seconde zone de mémorisation ( 32 a), des moyens de transfert de données ( 33 a) entre les deux zones de mémorisation, la première zone de mémorisation et les moyens de transfert étant adressables et commandables via le bus système ( 50 a) par l'unité de traitement de données ( 20 a), la seconde zone de mémorisation et les moyens de transfert étant accessibles et commandables via un canal de communication ( 75 a) par le socle ( 40 a) comprennant en outre un troisième moyen interface d'entrée/sortie ( 45 a) fonctionnant avec les moyens de création et de commutation de chemins de données ( 43 a).