Brevet FR2620247A1 — publié le 19890310

Système de traitement de données pour l'exécution d'instructions, éventuellement différentes, en simultanéité sur plusieurs processeurs. La présente invention concerne un système de traitement de données pour l'exécution d'instructions, éventuellement différentes, en simultanéité sur plusieurs processeurs. Elle s'applique notamment à la réalisation de systèmes multiprocesseurs adaptés spécifiquement aux techniques de traitement du signal. Suivant ces techniques, les informations utiles aux traite.nents sont généralement extraites d'une quantité plus grande d'informatiors,jusqu'a' ce que le débit des informations extraites soit suffisamment réduit pour permettre des traitements plus sélectifs dépendant entièrement des données à traiter. Pour permettre exécution de ces traitements en des temps raisonnables, compatibles avec un fonctionnement en temps réel des sys te mes, plusieurs architectures de systèmes connues mettent en oeuvre plusieurs processeurs élémentaires sur lesquels sont réparties les diverses informations à traiter.Parmi ces architectures, celles connues sous la désignation SIMD qui est l'abréviation du terme anglosaxon "5inule Instruction Multiple Data", permettent de faire exécuter un programme unique en silmutanéité sur chaque processeur sur des données propres à chacun d'eux de sorte que chaque processeur exécute toujours au même instant la même instruction que l'ensemble des autres processeurs du système. Ces processeurs peuvent être considérés comme des blocs opératoires qui sont en général dédiés à une application de traitement de signal spécifique mais qui à la différence de ceux utilisés dans les structures informatiques traditionnelles ne possèdent pas de fonctionnement de séquencement leur permettant de commander l'exécution d'un programme.Certains aménagements permettent cependant de prendre en compte des traitements parallèles contenant un nombre faible d'instructions conditionnelles, le plus simple étant de proposer, à tous les processeurs, de façon séquentielle toutes es branches possibles du programme qui est à exécuter, chaque processeur choisissant, en fonction d'un test interne, d'exécuter ou non une branche particulière. Cependant ces méthodes ne conviennent plus ou donnent lieu à des temps de traitement trop long lorsque le nombre des tests qui sont demandés à chaque processeur devient trop important. Dans ce cas on préfère généralement confier les traitements correspondants à d'autres machines connues sous l'abréviation MIMD du terme anglosaxon "multiple instruction multiple data", ces machines étant capables d'exécuter des instructions différentes au cours d'un même cycle machine, mais alors les traitements ne sont plus exécutés-en simultanéité et la programmation devient extrêmement compliquée. Le but de l'invention est de pallier les inconvénients précités. A cet effet, l'invention a pour objet, un système de traitement de données pour exécution d'instructions, éventuellement différentes, en simultanéité sur plusieurs processeurs, du type comprenant N + I 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 leur prop-e mémoire, caractérisé en ce que les N processeurs élémentaires de calcul disposent en plus, chacun, d'une mémoire de programme qui lui est proFre et d'un circuit de multiplexage commandé par le processeur pilote pour permettre à chaque processeur de calcul d'exécuter une instruction contenue, soit dans sa propre mémoire de programme, soit dans la mémoire de programme du processeur pilote. L'invention a principalement pour avantage de permettre des configurations rapides du système soit dans une structure SIMD, soit dans une structure MIMD en offrant toujours au programmeur la visibilité de la structure SIMD pour les traitements non dépendants des données, en lui laissant cependant la possibilité de mettre en oeuvre des traitements sélectifs où les processeurs élémentaires peuvent choisir, en fonction des résultats de test effectués sur leurs propres calculs, la séquence de traitement à exécuter. L'invention permet également d'éviter des développements de matériels et de logiciels spécifiques en utilisant 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 signai, 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 I un schéma général d'un système de traitement de données selon l'invention utilisant comme processeur élémentaire un micro processeur de signal architecturé suivant le modèle Harvard; La figure 2 les contenus des mémoires de programme et d'extension de programme du système représenté à la figure 1 La figure 3 un mode de réalisation d'un système de traitement de données suivant l'invention utilisant comme processeur élémentaire des microprocesseurs architecturés suivant le mode de Von Neumann;; La figure 4 un exemple de déroulement d'une séquence de programme qui provoque le passage en mode MIMD du système selon l'inventison; La figure 5 un mode de déroulement de la séquence de programme qui provoque le passage d'un mode MIMD en mode SIMD. 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 à 3s~. Il -comprend également un processeur pilote 4 qui est couplé à une mérroire 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 Iî à 1N, d'une part, et 4 d'autre part, ont une structure de type Harvard, correspondant par exemple à celle du microprocesseur de signal ADSP 2100 commercialisé par la société Analog Devices. Les processeurs elémentaires de calcul 11 à IN 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 li à 1N au travers d'un dispositif à retard 8. De cette façon les cycles d'instructions sont simultanés, c'est-à-dire que les instants où com mence 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 à IN au travers du dispositif à retard 8. Chaque processeur élémentaire lî à 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, 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 4 et d'autre part, au travers d'un dispositif à retard 10, vers les bus DP de tous les autres processeurs élémentaires. Les processeurs élémentaires de calcul, 11...1N sont dotés chacun d'une mémoire de données 31 à 3N. Ces dernières sont couplées respectivement aux processeurs li... 1N 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 qu#i est représentée schématiquement à la figure 2. Chaque micro-instruction de la mémoire de program me 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 31 à 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é des processeurs élémentaires et l'autre, un numéro de page dans laquelle se trouvent les données, l'adresse d'une donnée dans chaque page étant contenue dans la mémoire de programme 5.La zone 13 est elle-même partagée en deux zones 13a et 13b contenant 1 bit chacune indiquant, l'une 13a le mode de fonctionnement SIMD ou MIMD du système et l'autre 13b contenant un bit RAZ de réinitialisation des processeurs élémentaires 11 à 1N 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 du 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 15 de tailles variables qui permettent d'assurer la commande 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. Chaque processeur élémentaire il à 1N est muni, en plus des mémoires de données 31 à 3N' de mémoire de programme 161 à 16N qui contiennent les suites d'instructions nécessaires à l'exécution du mode MIMD. Les sorties de ces mémoires sont reliées respectivement au bus DP du processeur élémentaire de calcul correspondant aux travers de multiplexeurs référencés respectivement 171 à 17N, ces multiplexeurs étant commandés par le signal de commande SIMD/MIMD émis par le mémoire de programme 6 au travers du dispositif à retard 10. La connexion est effective lorsque le signal SIMD/MIMD est à zéro.Dans le cas contraire lorsque le signal SIMD/MIMD est égal à 1, le bus DP de chaque processeur élémentaire de calcul est connecté à la micro-instruction commune issue de la mémoire de programme 5 du processeur pilote et retardée par le dispositif à retard 10. Tous les retards mentionnés précédemment sont identiques et leur durée est un multiple entier de la période de l'horloge commune H. Un circuit OU 18 à deux entrées élabore un signal de remise à zéro de tous les processeurs élémentaires de calcul 11 I à 1N à partir d'un signal de remise à zéro RAZ fourni par le séquenceur 9 ou d'un signal RAZ' contenu dans une instruction de programme de la mémoire d'extension de programme 6. 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 3, où 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é à véhiculer des données utilisées également pour le calcul, c'est pourquoi, ces microprocesseurs ne comportent généralement qu'un se#l bus d'adresses et un bus de données D accessibles de l'extérieur et qui servent à la fois, pour les insstructions 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 respectivernent de 191 à 19N Ces commutations sont commandées au moyen d'un signal P/D# fourni par le processeur pilote 4 au travers du dispositif à retard 8. Le signal P/Dx étant égal au "ET logique" retardé obtenu par un circuit ET 20 entre le signal SIMD/MIMD et le signal P/D. Ce signal indique que le bus D du processeur pilote 4 véhicule des bits d'instruction ou des bits de données. Le fonctionnement en mode MIMD est obtenu, en adjoignant aux zones de données contenues dans les mémoires de données 31 à 3N' des zones de programmes et en commandant les dispositifs de commutations 19 à 19N De même la remise à zéro (RAZ) des processeurs élémentaires doit être réalisée par un "OU logique" retardé obtenu à partir d'un circuit "OU" 21 qui prend en compte le signal de remise à zéro RAZ du processeur pilote 4 avec un bit RAZ' d'extension de mémoire fourni par la mémoire d'extension de programme 6. Le fonctionnement est expliqué ci-après à l'aide des tableaux des figures 4et 5. Dans ces tableaux le terme mnémonique GO TO X coit être pris au sens habituel qu'il a en informatique, pour désigner une instruction de branchement inconditionnel à une instruction X pour le microprocesseur de traitement de signal considéré, de même le terme mnémorique NOP correspond à une instruction quelconque du microprocesseur du traitement de signal à condition d'être une instruction différente de celle qui provoque un saut de programme. A l'origine, figure 4, tous les processeurs élémentaires 3t à 3N exécutent la même instruction "Instr.S" avec un retard T près égal au cycle d'instruction d'un microprocesseur de traitement de signal. La première instruction qui est exécutée en mode MIMD par les processeurs élémentaires doit naturellement se trouver dans leur mémoire de programme e à une adresse commune notée M.Le processeur élémentaire pilote 4 initialise le changement de mode en forçant en mode SIMD un saut inconditionnel (Go TO M) à l'adresse M et en délivrant les processeurs élémentaires de calcul à à3N du mode SIMD à l'instruction suivante (ou N instructions plus tard si le branchement nécessite N cycles instructions du microprocesseur de traitement du signal) en mettant à zéro le bit SIMD/MIMD dans la zone 13a d'activité de l'instruction (figure 2). Pour le retour du mode MIMD en mode SIMD (figure 5) (à une instruction située à l'adresse S' de la mémoire de programme du processeur élémentaire pilote) le processeur élémentaire pilote 4 initialise le changement en forçant à 1 le signal RAZ', dans la zone 13b, produisant ainsi une réinitialisation de tous les processeurs élémentaires de calcul 3t à 3N. Ce signal RAZ' dure un nombre de cycle minimal dépendant du type de microprocesseur de traitement de signal choisi. Une fois que l'action du signal RAZ' est terminée, le processeur pilote 4 force, en mode SIMD, un branchement inconditionnel (GO TO S') à l'adresse S', ce qui a pour effet de replacer tous les processeurs élémentaires de calcul 31 à 3N dans le même état pour l'exécution de la même instruction (S'). REVENDICATIONS 1. Système de traitement de données pour l'exécution d'instruction en simultanéité sur plusieurs processeurs du type comprenant N+1 micropro cesseurs monolitiques de traitement du signal répartis en N processeurs élémentaires de calcul (11 à 1N > disposant chacun d'une mémoire de données à à N 3N > et un processeur pilote (4) couolé à 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 leur propre mémoire (31 à 3N > ' caractérisé en ce que les N processeurs élémentaires de calcul (31 à 3N) dispose en plus chacun d'une mémoire de programme (161 à 16N) qui lui est propre et d'un circuit de multiplexage (171...17N) commandé par le processeur pilote (4) pour permettre à chaque processeur de calcul (31 à 3N) d'exécuter une instruction contenue, soit dans sa propre mémoire de programme (16 a' 16N), soit dans la mémoire de programme (5) du processeur pilote (4). 2. Système selon la revendication 1, caractérisé en ce que les processeurs de calcul (11 à 1N > sont couplés à un réseau d'interconnexions (2) au travers de leur mémoire de données (31 à 3N)~ 3. Système selon la revendication 2, caractérisé en ce que le réseau d'interconnexions (2) est commandé à partir d'instructions contenues dans une mémoire d'extension de programme (7', par le processeur pilote (4). 4. Système selon l'une quelconque des revendications 1 à 3, caracté risé en ce que les processeurs pilotes (4) et le calcul (11 à 1N 1N > ont des structrures identiques. 5. Système selon la revendication 4, caractérisé en ce que chaque processeur est un processeur de signal de rype Harvard. 6. Système selon la revendication 5, caractérisé en ce que chaque processeur est un processeur de type Von iKeumann.