FR 2617305 A1 19881230 FR 8709028 A 19870626 Système.de traitement de données pour itexécution à'instructions en stinultanéité sur plusieurs processeurs La présente invention concerne un système de traitement de données pour l'exécution d'instructions en simultanéité sur plusieurs processeurs. Elle concerne notamment les systèmes de traitement de données connus sous l'abréviation SIMD, du terme anglo-saxon "Single Instruction Multiple Data". Dans ces systèmes, plusieu#rs processeurs élementaires exécutent un programme unique sur des données qui leur sont propres, l'ensemble des processeurs exécutant la même instruction à chaque instant. Ces systèmes présentent l'avantage de simplifier les mises au point puisque les processeurs élémentaires sont, à leurs données près, dans le même état à chaque instant. La contrepartie est qu'ils ne peuvent être utilisés efficacement qu'a des traitements parallèle s dans lesquels l'exécution des programmes ne dépend pas des résultats de calcul.Jusqu'a présent, ces systèmes n'ont été conçus qu avec des modes de réalisation spécifiques, d'une part, des proresseurs élémentaires et du dispositif de commande de ceux-ci (séquenceur) chargé de fournir chacune des micro-instructions à exécuter et d'autre part, de l'outil de développement du logiciel correspondant. L'avantage est procuré par l'usage d'un seul séquenceur qui gère l'ensemble des ressources du système à chaque cycle machine. Cependant le jeu d'instructions machine qui est utilisé est généralement très compliqué et conduit à une programmation extrêmement complexe dans laquelle il faut tenir compte à chaque cycle machine des interactions entre les données et les traitements exécutés sur ces données, nécessitant pour les concepteurs de programme une connaissance permanente de la structure machine des systèmes. Ces difficultés rendent les calculateurs SIMD impropres à certaines applications spécifiques de traitement de l'information en temps réel, et en analyse spectrale du signal notamment, lorsqu'il s'agit par exemple, d'effectuer des calculs de transformées de Fourrier connus sous l'abréviation FFT du terme anglo-saxon "Fast Fourier Transformer", ou encore lorsqu'il s'agit, pour des applications plus spécifiques de radiogoniométrie par exemple, d'effectuer des traitements sur des signaux, simultanément et en temps réel sur plusieurs canaux. Le but de l'invention est de réduire le coût de ces développements . A cet effet, l'invention a pour objet, un système de traitement -de données pour l'exécution d'instructionsen simultanéité sur plusieurs processeurs caractérisé en ce qu'il comprend N l 1 microprocesseurs monolithiques de traitement du signal répartis en N processeurs élémentaires de calcul disposant chacun d'une mémoire de données et un processeur pilote couplé à au moins une mémoire de programme pour distribuer simultanément chaque instruction contenue dans la mémoire de programme à chaque processeur élémentaire, les processeurs élémentaires de calcul exécutant en simultanéité l'instruction reçue du processeur pilote sur les données contenues dans leurs propres mémoires. L'invention a principalement pour avantage qu'elle permet d'éviter des développements de matériel et de logiciel spécifiques en n'utilisant qu'un seul type de microprocesseur de traitement de signal en tant que processeur élémentaire, d'une part, et en tant que séquenceur, d'autre part. La perte de puissance de calcul par rapport aux solutions spécifiques, qui peut résulter de l'usage de microprocesseurs de traitement de signal, peut être compensée par la possibilité d'intégration importante qui est offerte par l'usage de ces mêmes microprocesseurs. D'autres caractéristiques et avantages de l'invention apparaîtront ci-après à l'aide de la description faite en regard des dessins annexés qui représentent - La figure 1 un schéma général d'un système de traitement de données selon l'inventionutilisant comme processeur élémentaire un microprocesseur de signal architecturé suivant le modèle Harvard. - La figure 2 le contenu des mémoires de programme et d'extension de programme de la figure 1. - la figure 3 un dispositif de commutation permettant l'exécution d'instructions particulières précâblées à la place des instructions contenues dans la mémoire de programme. - La figure 4 un mode de réalisation d'un système de traitement de données selon l'invention utilisant comme processeur élémentaire des microprocesseurs architecturés suivant le modèle de Von Neumann. Le système de traitement de données représenté à la figure 1 comprend un ensemble de N processeurs élémentaires référencés respectivement de 11 à 1N qui sont couplés à un réseau d'interconnexions 2 au travers respectivement de N mémoires de données référencées respectivement de 31 à 3N I1 comprend également un processeur pilote 4 qui est couplé à une mémoire de programme 5 et à deux mémoires d'extension de programme notées respectivement 6 et 7 au moyen d'un bus d'adresse AP L'ensemble des processeurs 11 à 1N d'une part et 4 d'autre part, ont une structure de type Harvard, du type de celle du microprocesseur de signal ADSP 2100 commercialisé par la société Analog Devices.Les processeurs élémentaires de calcul 11 à 1N fonctionnent tous sous le cadencement d'une horloge de phase H non représentée, commune également au processeur élémentaire pilote 4, mais qui est appliquée aux processeurs élémentaires 11 à 1N au travers d'un dispositif à retard 8. De cette façon les cycles d'instructions sont simultanés, ctest-à-dire que les instants où commence et se termine l'exécution d'une micro-instruction sont les mêmes pour tous les processeurs élémentaires de calcul. Ceci est également obtenu en reliant entre elles les entrées de remise à zéro RAZ des processeurs élémentaires et celle du processeur pilote.Le signal de remise à zéro est issu d'un séquenceur 9 commandé par la mémoire d'extension de programme 7 et appliqué directement sur l'entrée RAZ du processeur pilote 4 et de façon différée sur les autres processeurs élémentaires #11 à 1N au travers du dispositif à retard 8. Chaque processeur élémentaire 11 à 1N dispose de quatre bus notés AP, DP, AD et DD accessibles de l'extérieur. Le bus AP fournit . l'adresse de chaque micro-instruction et le bus DP achemine son contenu. Le bus AD est un bus d'adresse qui relie le processeur à sa mémoire de données correspondante. Le bus DD achemine les données échangées entre le processeur élémentaire et sa mémoire de données correspondante. Comme dans le cadre de l'invention le processeur pilote 4 n'a vocation que d'exécuter des programmes qui ne dépendent pas de résultats de calculs, dans l'exemple de la figure 1, il ne dispose seulement que d'une mémoire de programme 5 et de deux mémoires d'extension de programme 6 et 7 adressées toutes les trois par le bus d'adresses AP. La sortie de la mémoire de programme 5 est acheminée d'une part, sur le bus DP du processeur pilote et d'autre part, au travers d'un dispositif à retard T vers les bus DP de tous les autres processeurs. élémentaires. Les processeurs élémentaires de calcul, contrairement au processeur élémentaire pilote 4, ne disposent pas de mémoires de programme. Ils sont en revanche dotés chacun dd'une mémoire de données 31 à 3N Cette dernière est couplée au processeur au moyen d'un bus d'adresses AD et d'un bus de données DD. Les mémoires 31 à 3N sont également accessibles par le réseau d'interconnexions 2 dont la structure peut être réalisée de façon connue en soi, éventuellement suivant celle d'un bus en anneau par exemple ou encore celle d'un système "cross-bar".Le réseau d'interconnexions 2 est commandé par le séquenceur de transfert 9 sous le contrôle d'un programme mémorisé dans la mémoire d'extension de programme 7. Les contenus des trois mémoires de programme 5 et d'extension de programme 6 et 7 sont adressés par la même adresse qui est appliquée sur le bus AP par le processeur pilote 4 de la façon qui est représentée schématiquement a la figue 2. On peut voir à la figure 2 que chaque micro-instruction de la mémoire de programme 5 qui est adressée sur le bus AP par le processeur. pilote 4 contient deux parties 11 et 12. La partie 11 représente le code opératoire et la partie 12 l'adresse des données contenues dans les mémoires de données 31 à 3N et qui sont nécessaires à l'exécution de la micro-instruction.La mémoire d'extension de programme 6 comprend la suite des instructions qui sont nécessaires à la commande des processeurs élémentaires de calcul 11 à 1N et de leurs mémoires de données à à3N. Pour cela chaque instruction se compose d'au moins deux parties ou zones 13 et 14 comportant l'une, un code déterminant l'activité ou la non activité des processeurs élémentaires et l'autre, un numéro de page dans lequel se trouvent les données, l'adresse d'une donnée dans chaque page étant contenue dans la mémoire de programme 5. Pour permettre un fonctionnement correct du système les instructions contenues dans les mémoires 5 et 6 sont transmises aux processeurs élémentaires 11 à 1N au travers d'un dispositif à retard 10, qui introduit un retard de durée Identique à celui du dispositif å retard 8.Enfin, la mémoire d'extension de programme 7 contient une suite d'instructions formée par des champs de bits de tsilles variables qui permettent d'assurer le contrôle du séquenceur 9 pour assurer le transfert des données de l'extérieur vers les mémoires de données 31 à 3N au travers du réseau d'interconnexions 2. Un mode d'utilisation du champ d'activité des processeurs élémentaires 13 à chaque instruction contenue dans la mémoire d'extension de programme 6 est représenté à la figure 3. Ce champ est décodé par un circuit de décodage 16 qui décode sur N fils la valeur numérique qui est contenue dans la zone d'activité 13. Chacun des N fils est relié à un processeur élémentaire 11 à 1N et il permet, suivant la valeur du bit qu'il transmet d'indiquer au microprocesseur élémentaire correspondant s'il doit exécuter ou non la micro-instruction commune fournie à partir de la mémoire de programme 5, ou une micro-instruction précâblée notée NOP sur la figure 3.L'aiguillage entre l'instruction précâblée NOP et la micro-instruction commune å destination d'un processeur élémentaire 11 à 1N est réalisé au moyen respectivement de multiplexeurs 171 å 17N commandés respectivement par un bit d'activité ACT1 a ACTN présents sur chacune des N lignes couplées au circuit de décodage 16. L'adaptation du schéma de la figure 1 pour obtenir un système de traitement de données SIMD comportant des microprocesseurs de traitement de signal à structure de Von Neuman est représentée à la figure 4 ou les éléments homologues à ceux de la figure 1 sont représentés avec les mêmes références. Dans les microprocesseurs de type Von Neuman, du type par exemple de celui qui est commercialisé sous la référence 56000 par la société Motorola, le bus de- programme DP est amené a véhiculer des données utilisées également pour le calcul, c'est pourquoi, ces microprocesseurs ne comportent généralement qu un seul bus d'adresses et un bus de données D accessibles de l'extérieur et qui servent à la fois, pour les instructions et les données de calcul.Dans ces conditions, pour revenir à un fonctionnement équivalent à celui décrit à la figure 1 le bus de données D des processeurs élémentaires de calcul 31 à 3N est connecté soit, au bus DP transportant la micro-instruction commune fournie par le processeur pilote 4 soit, aux mémoires de données 31 å 3N au travers de dispositifs de commutation référencés respectivement de 181 à 18N Ces commutations sont commandées au moyen d'un signal P/D fourni par le processeur pilote 4 au travers du dispositif à retard 8. Ce signal indique que le bus D du processeur pilote 4 véhicule des bits d'instruction ou des bits de données. Bien que les exemples de réalisation de l'invention qui viennent d'être décrits peuvent être utilisés pour - toutes les applications mettant en oeuvre des traitements parallèles de l'information ne dépendant pas des données qui sont traitées et où toutes les opérations de calcul requises sont disponibles dans un seul microprocesseur, il est possible cependant d'envisager des variantes de réalisation de l'invention qui seront bien sûr adaptées à des traitements a forte dominance SIMD mais qui néanmoins comporteront un nombre réduit de branchements conditionnels pouvant amener les processeurs élémentaires 3j à 3N à exécuter à un instant donné au choix l'une ou l'autre branche d'un programme. Dans ce cas, le système pourra être doté de deux processeurs pilotes pouvant décrire chacun une des branches du programme pour délivrer aux processeurs élémentaires de calcul deux instructions simultanées, chaque processeur élémentaire de calcul 31 à 3N décidant alors par aiguillage dans un multiplexeur, commandé -par le résultat de son propre test, laquelle des instructions il devra exécuter. REVENDICATIONS 1. Système de traitement de données pour l'exécution d'instructions en simultanéité sur plusieurs processeurs caractérisé en ce qu'il comprend N+1 microprocesseurs monolithiques de traitement du signal répartis en N processeurs élémentaires de calcul (11 à 1N) disposant chacun d'une mémoire de données (31 à 3N) et un processeur pilote (4) couplé à au moins une mémoire de programme (5) pour distribuer simultanément chaque instruction contenue dans la mémoire de programme (5) à chaque processeur élémentaire (11 à 1N), les processeurs élémentaires de calcul (11 à 1N) exécutant en simultanéité l'instruction reçue du processeur pilote (4) sur les données contenues dans leurs propres mémoires t31 à 3N) 2.Système selon la revendication 1 caractérisé en ce que le processeur pilote (4) est couplé à une première mémoire d'extension de programme (6) contenant une suite des instructions permettant l'exécution par chaque processeur de calcul (11 ... 1N) d'instructions fournies par la mémoire de programme (5) ou d'une instruction précâblée(NOP). 3. Système selon l'une quelconque des revendications 1 et 2 caractérisé en ce que les processeurs de calcul sont couplés å un réseau d'interconnexions (2) au travers de leur mémoire de données (31 ~-- 3N) 4. Système selon la revendication 3 caractérisé en ce que le réseau d'interconnexions (2) est commandé à partir d'instructions contenues dans une deuxième mémoire d'extension de programme (7) adressée par le processeur pilote (4). 5. Système selon l'une quelconque des revendications 1 à 4 caractérisé en ce que les processeurs pilote (4) et de calcul (11 ... 1N) ont des structures identiques. 6. Système selon la revendication 5 caractérisé en ce que chaque processeur est un processeur de signal de type Harvard. 7. Système selon la revendication 5 caractérisé en ce que chaque processeur est un processeur de signal de type Von Neuman.