FR 2541795 A1 19840831 FR 8303127 A 19830225 PROCESSEUR UNIVERSEL, EN PARTICULIER POUR TRAITEMENT DE SIGNAL 7 La présente invention a pour objet un processeur universel, en particulier pour traitement de signal. Les processeurs utilisés actuellement dans des applications complexes, comme par exemple le traitement de signal, ont une architecture spécifique de chaque application envisagée, ce qui oblige à prévoir plusieurs processeurs différents lorsque l'on veut, dans un même appareillage, traiter plusieurs signaux différents et/ou traiter de façons différentes un même signal.Ainsi, si l'on veut, dans un central téléphonique numérique, réaliser un appareillage de traitement de signal comprenant par exemple un annuleur d'écho, un modem, un émetteurrécepteur multifréquence, et un appareil d'essais tel qu'un ATME, il faut réaliser un processeur différent pour chacune de ces fonctions, ce qui rend très onéreux cet appareillage Il existe d'autre part des processeurs de signal intégrés comme par exemple les circuits intégrés 2920 INTEL, 7720 NEC, 2811 AMI, TUS 320 T#l, etc Ces circuits intégrés réalisent plusieurs fonctions, mais pas la totalité des fonctions que l'on rencontre dans le domaine du traitement de signal.En outre, ces circuits intégrés sont monovoie, ont un programme figé non modifiable et une capacité de traitement limitée. La présente invention a pour objet un processeur, en particulier pour le traitement du signal, qui puisse réaliser avec une architecture unique pratiquement toutes les fonctions que l'on peut rencontrer dans un domaine d'application, ce à l'aide de circuits intégrés de grande diffusion et ayant une consommation la plus faible possible, ce processeur pouvant fonctionner en te#mps partagé sur un grand nombre de voies. Le processeur conforme à l'invention comporte un circuit de calcul parallèle dont les entrées et la sortie sont reliées à un bus formant une boucle fermée divisée en au moins trois tronçons par un nombre égal de portes bidirectionnelles, les deux entrées et la sortie du circuit de calcul étant respectivement reliées chacune à un de ces tronçons, au moins un de ces tronçons étant relié à une borne d'entrée-sortie du processeur via une porte bidirectionnelle, toutes les portes bidirectionnelles et le circuit de calcul étant reliés à un dispositif de commande approprié, par exemple un microprocesseur, élaborant les ordres de commande nécessaires au fonctionnement de ces portes et de ce circuit de calcul pour la mise en oeuvre des divers traitements effectués par le processeur de l'invention. Selon un mode de réalisation préféré de l'invention, les entrées du circuit de calcul sont également reliées chacune à un dispositif de mémoire, ce dispositif de mémoire pouvant être composé de mémoires mortes et/ou de mémoires vives, et la sortie du circuit de calcul est également reliée à un dispositif de sortie à mémoire vive. Selon une variante de ce mode de réalisation préféré, on insère entre la sortie du circuit de calcul et ledit dispositif de sortie un -circuit de traitement d'éléments binaires. Tous les dispositifs précités du mode de réalisation préféré et de sa variante sont commandés par ledit dispositif de commande. De façon avantageuse, le circuit de calcul est un circuit intégré multiplieur-accum ulateur La présente invention sera mieux comprise à la lecture de la description détaillée de deux modes de réalisation pris comme exemples non limitatifs et illustrés par le dessin annexé, sur lequel: - la figure 1 est un bloc-diagramme simplifié d'un processeur conforme à l'invention dans un cas général d'utilisation; - la figure 2 est le Mocdiagramme simplifié d'une variante perfectionnée du processeur de la figure 1, et - la figure 3 est un bloc-diagramme simplifié d'un processeur conforme à l'invention dans le cas de l'utilisation d'un circuit multiplieuraccumulateur particulier. Le processeur de l'invention est décrit ci-dessous pour des modes de réalisation se rapportant au traitement du signal numérique tel qu'effectué dans un central téléphonique numérique, par exemple: filtrage numérique, égalisation, annulation d'écho, démodulation, etc... Toutefois, le processeur de l'invention n'est pas limité à de telles applications et peut aussi bien être utilisé pour effectuer rapidement des opérations mathématiques, en particulier des opérations itératives ou récurrentes, sur des données quelconques, comme par exemple multiplication d'une donnée par une autre ou par un coefficient, avec ou sans sommation. Le processeur 1 représenté sur la figure 1 est configuré autour d'un circuit de calcul parallèle qui est dans le cas présent un multiplieuraccumulateur parallèle 2 qui peut être du type à virgule fixe ou flottante. Plusieurs fabricants de circuits intégrés produisent actuellement des circuits intégrés mono-puce capables d'effectuer la multiplication mutuelle de deux nombres de seize éléments binaires chacun en quelques dizaines de nanosecondes et capables d'accumuler de nombreux résultats de multiplications successives. Ce sont, par exemple, les circuits intégrés TDC 10103 de TRW, ou Am 29516 de AMD. Ces circuits sont du type à deux registres d'entrée généralement appelés X et Y et un registre de sortie généralement appelé P. Au cas où l'on utiliserait d'autres types de multiplieurs ne possédant pas de tels registres, on les rajouterait en amont des entrées et en aval de la sortie du multiplieur-accumulateur. Toutefois, l'invention n'est pas limitée à l'utilisation de tels circuits intégrés, ni à de telles capacités Elle peut par exemple utiliser des assemblages, connus en soi, de plusieurs circuits intégrés pour des capacités de multiplication plus élevées, ou des circuits intégrés de capacité moindre ou moins rapides, ces circuits pouvant être à virgule fixe ou flottante. L'accumulation de résultats successifs n'est nécessaire que si les opérations à effectuer font appel à des sommations ou à des opérations récurrentes, comme par exemple celles effectuées dans les filtres numériques. Et même dans le cas d'une telle nécessité, I'accumulation peut être effectuée par un circuit indépendant du multiplieur placé directement à sa sortie ou bien à la sortie du processeur. Le circuit de calcul peut également effectuer d'autres opérations telles qu'addition et soustraction. Les entrées et la sortie du circuit 2 sont reliées à un bus 3 formant une boucle fermée divisée en trois tronçons référencés 4, 5, et 6 par trois portes bidirectionnelles 7, 8, 9. La porte 7 est disposée entre les tronçons 4 et 5, la porte 8 entre les tronçons 5 et 6, et la porte 9 entre les tronçons 6 et 4.La première entrée du circuit 2, correspondant à son registre d'entrée X, est reliée au tronçon 4, et sa deuxième entrée, correspondant à son registre Y, est reliée au tronçon 5 La sortie du circuit 2 est reliée au tronçon 6. Selon une variante de l'invention, on intercale entre la sortie du circuit 2 et le tronçon 6 un circuit 10 de traitement logique d'éléments binaires, par exemple un comparateur, un décodeur, un contrôleur ou un générateur de parités un registre à décalage, ou un convertisseur de valeur numérique à virgule fixe en valeur numérique à virgule flottante, en fonction des éventuelles opérations à effectuer sur les résultats des calculs réalisés par le circuit 2. Une borne d'entrée-sortie 1 1 est reliée par une porte bidirectionnelle 12 au tronçon 4, et une autre borne d'entrée-sortie 13 est reliée par une porte bidirectionnelle 14 au tronçon 5. Les entrées de commande des portes 7, 8, 9, 12 et 14 sont respectivement référencées 7A9 8A7 BB, 12A et 14A. Les tronçons de bus 4 et 5 sont reliés chacun à un circuit de mémoire 15, 16 respectivement. Ces circuits 15, 16 comportent chacun une entrée d'adressage 15A, 161k respectivement, et une entrée de commande 15B, 16B respectivement. Les circuits 15 et 16 peuvent être composés de mémoires mortes et/ou de mémoires vives. Dans le cas où les circuits 15 et 16 comportent des mémoires vives, ces mémoires vives sont de préférence du type à entrées et sorties communes multiplexées. Le tronçon de bus ó est -relié à l'entrée d'un circuit à mémoire vive 17 dont les entrées dsadressage et de commande sont respectivement référencées aaw, 17BD Les mémoires vives constituant le circuit 17 sont, de préférence, également du type à entrées et sorties communes multiplexées.Si toutefois le processeur 1 est destiné à être relié par sa sortie à un dispositif comportant à l'entrée une mémoire vive, ou si dans une- application particulière les résultats de calcul du processeur 1 peuvent être pris en compte dès leur apparition, on peut supprimer le circuit de mémoires 17. Les entrées-sorties Il et 13 du processeur peuvent être reliées à toutes sortes d'organes périphériques classiques ou de sources de données, éventuellement via des interfaces appropriées, comme c'est le cas pour les processeurs de l'art antérieur. Le processeur 1 décrit ci-dessus étant symétrique, le signal "multiplicande" et le signal "multiplicateur" peuvent être indifféremment envoyés sur les bornes 11 ou 13. Les entrées de commande de toutes les portes bidirectionnelles du processeur 1, ainsi que les entrées de commande et d'adressage des circuits de mémoire 15, 16, 17, la borne d'entrée de commande multiple 2A du circuit 2, et, le cas échéant, l'entrée de commande 10A du circuit 10 sont toutes reliées à un dispositif de commande approprié, tel qu'un microprocesseur (non représenté), capable de fournir en mode synchrone à ces portes et à ces circuits de mémoire des signaux de commande et d'adressage selon une séquence qui est fonction de l'application envisagée. Ainsi, si le processeur 1 doit remplir de façon itérative (pour chacun des canaux d'un signal multiplexé) plusieurs fonctions consécutives, par exemple filtrage, égalisation et interpolation, son dispositif de commande doit comporter trois sous-programmes correspondant à ces trois fonctions qui sont appelés successivement et répétitivement par le programme principal qui définit tout le traitement. On va maintenant expliquer à l'aide de plusieurs exemples comment programmer le dispositif de commande du processeur 1 et comment ce processeur fonctionne. Lorsque le processeur 1 doit réaliser une fonction de filtrage numérique, les échantillons incidents sont par exemple envoyés sur la borne Il et parviennent, via la porte 12 rendue passante dans le sens convenable, au dispositif de mémoire 15 qui est alors constitué d'une ou plusieurs mémoires vives. Cette ou ces mémoires vives fonctionnent en lignes à retard numériques avec décalage fictif des échantillons retardés comme décrit dans le brevet français 2 447 646. Les coefficients du filtre sont rangés dans le dispositif de mémoire 16 qui peut être constitué de mémoires mortes aussi bien que de mémoires vives. Dans ce dernier cas, les coefficients peuvent être télé-chargés dans le dispositif 16 depuis un dispositif relié à la borne 13 et comprenant plusieurs séries de coefficients et sélectionnant la série appropriée en fonction d'un ordre extérieur.Les coefficients peuvent également être télé-chargés depuis un dispositif calculateur les élaborant selon un processus auto-adaptatif en fonction de résultats de mesure effectués sur le circuit dont proviennent les signaux ou sur le circuit qui doit recevoir des signaux filtrés. Il est bien entendu également possible d'envoyer les échantillons retardés du signal à filtrer (échantillons retardés provenant d'une ligne à retard numérique extérieure, qui peut être constituée d'une ou de plusieurs mémoires vives) sur la borne 11 et les coefficients provenant d'une source extérieure sur la borne 13. Etant donné que le processeur 1 est symétrique, on peut inverser les rôles des dispositifs 15 et 16 (ou des bornes #11 et 13) et faire ainsi parvenir les échantillons retardés au registre Y et les coefficients au registre X du circuit 2. Dans le cas ou le signal échantillonné à filtrer arrive sur la borne 11 et les coefficients sont rangés dans le dispositif de mémoire 16, toutes les portes bidirectionnelles du processeur 1 à l'exception de la porte 12 sont constamment maintenues bloquées dans les deux sens. Les échantillons retardés arrivent séquentiellement au registre ##, et les coefficients correspondants au registre Y du circuit 2.Le dispositif de commande du processeur 1 adresse de façon appropriée les mémoires des dispositifs 15 et 16 et envoie les ordres d'écriture ou de lecture correspondants aux mémoires vives du dispositif o Ce même dispositif de commande envoie des signaux de commande appropriés sur la borne 2A du circuit 2 pour commander la multiplication dès que les registres X et Y sont chargés, puis l'envoi du résultat de multiplication dans le registre P pour accumulation. Dès que la sommation complète a été effectuée dans le registre p du circuit 2, le résultat est envoyé, sous la commande d'un ordre approprié émis par le dispositif de commande sur la borne 2A, au dispositif de mémoire vive 17 qui le mémorise et le présente subséquemment sur la borne Il ou 13 sous la commande d'un autre ordre reçu du dispositif de commande, qui rend passantes dans le sens convenable les portes 9 et 12 ou 8 et 14. Bien entendu, si l'on utilise un circuit multiplieuraccumulateur dont le registre P peut recevoir des données depuis l'extérieur, on peut lui envoyer, sous la commande d'un ordre approprié toutes les données transitant sur le tronçon 6, le circuit 10, s'il est prévu dans le processeur, est rendu passant dans le sens tronçon 6 vers registre P ou court#circuité. Dans le cas où le filtre numérique est du type récursif, les résultats partiels accumulés dans le registre P du circuit 2 sont envoyés au dispositif 17 ou au dispositif 15 qui doit alors comporter des mémoires vives, et les mémoires vives du dispositif 15 ou 17 utilisé fonctionnent en ligne à retard numérique de la même façon que précisé ci-dessus à propos du dispositif 15 recevant les échantillons du signal à filtrer. Bien entendu, pour que les valeurs accumulées dans le registre P puissent parvenir aux mémoires vives du dispositif 15, ou pour que les valeurs retardées mémorisées dans le dispositif 17 parviennent à l'entrée du registre X du circuit 2, la porte 9 est rendue passante dans le sens tronçon 6 vers tronçon 4. Dans certains calculs, il peut être nécessaire d'élever au carré des valeurs contenues dans le registre P du circuit 2 Dans ce cas, on rend passantes dans le sens convenable les portes 9 et 7 ou 8 et 7, et la valeur à élever au carré contenue dans ledit registre P parvient simultanément aux registres X et Y du circuit 2. Dans d'autres cas, les résultats de calcul disponibles dans le registre P du circuit 2 doivent être traités par un organe périphérique, par exemple un comparateur ou un enregistreur, avant d'être envoyés soit à l'une des entrées X ou Y du circuit 2, soit dans le dispositif de mémoire vive 17 Dans ces cas, on rend passantes dans le sens convenable les portes 9 et 12 ou 8 et 14 pour envoyer le contenu du registre P vers l'organe périphérique approprié qui peut être relié soit à la borne 11, soit à la borne 13. Après traitement par cet organe périphérique, la valeur traitée est envoyée soit au dispositif de mémoire vive 15 ou 17, soit directement au circuit 2, la porte 12, et la porte 9 (dans le cas de l'envoi dans le dispositif 17) étant rendues passantes dans le sens convenable.Cette valeur traitée peut également être envoyée simultanément aux registres X et Y du circuit 2, les portes 12 et 7 étant rendues passantes dans le sens convenable, en vue d'effecuter une élévation au carré de ladite valeur traitée. Selon un autre cas d'utilisation, dans le cas où les organes reliés à la borne 11, et les organes reliés à la borne 13 n'ont pas de liaison directe entre eux, l'échange de données entre ces organes peut être effectué via les portes 12, 7 et 14 rendues passantes dans le sens approprié. L'invention s'applique également au cas ou le circuit de calcul 2 a, en plus ou au lieu de sa fonction de multiplication, une fonction d'addition et/ou de soustraction Si on veut effectuer la division d'un premier nombre binaire par un second avec le processeur de l1invention, on envoie le premier nombre sur l'une des entrées du circuit 29 par exemple l'entrée correspondant au registre Y, et on convertit le second nombre en son inverse avant de l'envoyer à l'autre entrée du circuit 2 fonctionnant en multiplieur.La conversion du second nombre en son inverse est réalisée, de façon connue en soi, à l'aide d'une mémoire morte de transcodage qui peut soit être contenue dans le dispositif de mémoire 15, soit être extérieure au processeur 1 et située en amont de la borne 1 lo Il est également possible d'effectuer des multiplications ou des divisions de nombres binaires en les convertissant en valeurs loga- rithmiques dans des mémoires mortes de transcodage extérieures ou contenues dans les dispositifs 15 et 169 et en les traitant à l'aide du circuit de calcul 2 fonctionnant alors en additionneur ou en soustracteur, respectivement. On a représenté sur la figure 2 le bloc-diagramme simplifié d'une variante perfectionnée du processeur de la figure 1, variante dans laquelle des éléments identiques à ceux du circuit de la figure 1 portent les mêmes références numériques. Le processeur 1A de la figure 22 diffère du processeur 1 de la figure 1 en ce que l'on a inséré une porte bidirectionnelle 18 entre les portes 7 et 9, et une autre porte bidirectionnelle 19 entre les portes 7 et 8. Le tronçon de bus 4 du processeur 1 se trouve ainsi divisé en deux tronçons 4A et 4B dans le processeur lA, le tronçon 4A étant celui situé le plus près de la porte 7, et le tronçon de bus 5 du processeur 1 se trouve divisé en deux tronçons SA et 5B, le tronçon 51k étant celui situé le plus près de la porte 7. Le dispositif 15 est relié au tronçon 4A, et la porte 12 est reliée au tronçon 4B. Le dispositif 16 est relié au tronçon 5A, et la porte 14 est reliée au tronçon 5B.Les bornes de commande des portes 18 et 19 sont respectivement référencées 18A et l9A. Le principe de fonctionnement et les applications du processeur lA sont les mêmes que ceux du processeur 1, mais le processeur 1A présente l'avantage de permettre d'effectuer simultanément le chargement des registres X et Y du circuit 2 depuis les dispositifs 15 et 16 et les envois d'informations du registre P (via le circuit 10 le cas échéant) vers les organes extérieurs reliés aux bornes Il -et/ou 13 ou les échanges d'informations entre le dispositif de mémoire 17 et lesdits organes reliés aux bornes Il et/ou 13, les portes 18 et 19 étant alors évidemment bloquées dans les deux sens. On accroît ainsi la rapidité de traitement du processeur de l'invention. On a représenté sur la figure 3 une variante du processeur de l'invention utilisant en tant que circuit de calcul un multiplieuraccumulateur 20 dont l'entrée de commande est référencée 20A, et qui est du type à entrées sur seize éléments binaires et sortie sur trente-deux éléments binaires, une liaison interne 21 étant établie entre les seize éléments binaires de poids faible de la sortie et l'entrée multiplexées du registre Y, pour économiser des broches de connexion du circuit intégré. On trouve un tel circuit par exemple chez TRW sous la désignation TDC 10103. Dans le circuit du processeur 1B de la figure 3, les éléments identiques à ceux du processeur 1 de la figure 1 ont été affectés des mêmes références numériques. Le bus tronçonné 3 est à seize éléments binaires au maximum. Le tronçon de bus 5 est toujours relié à l'entrée du registre Y du circuit 20 et aux éléments 7, 16, 14, mais il est également relié aux bornes de poids faibles de la mémoire vive 17, au nombre de seize. Le tronçon de-bus 6 est relié de la même façon que dans le circuit de la figure 1, mais il faut noter qu'il est relié seulement aux bornes de poids forts de la mémoire vive 17. Dans le cas d'un bus tronçonné 3 à seize éléments binaires, le tronçon 5 relie les seize sorties de poids faibles du circuit 20 (qui sont reliées par la liaison interne 21 à ce tronçon 5) aux seize bornes de poids faibles de la mémoire 17, tandis que le tronçon 6 relie les seize sorties de poids forts du circuit 20 (le cas échéant via le circuit 10) aux seize bornes de poids forts de la mémoire 17.La porte 8, lorsqu'elle est bloquée dans les deux sens, permet d'isoler le tronçon 5 du tronçon 6 lors de l'envoi de la partie de poids faibles des résultats contenus dans le registre P du circuit 20, via la liaison interne 21, vers la partie correspondante de la mémoire 17, ou bien lors de la transmission de la partie de poids faibles de données entre la mémoire 17 et la mémoire vive du dispositif 16 si ce dernier en contient une, ou les organes reliés à la borne 13 (la porte 14 étant rendue passante dans le sens approprié). Cette partie de poids faible peut également être envoyée de la mémoire 17 au registre Y via le tronçon 5. L'envoi de la partie de poids forts des résultats contenus dans le registre P du circuit 20 vers la partie correspondante de la mémoire 17 se fait directement via le tronçon 6. L'échange de la partie de poids forts de données entre la mémoire 17 et les organes reliés à la borne Il ou les mémoires vives du dispositif 15, ou bien l'envoi de cette partie de poids forts au registre X du circuit 20 se fait par les tronçons 6 et 4 via la porte 9, et le cas échéant la porte 12, rendues passantes dans le sens approprié. Cet échange peut également avoir lieu entre la mémoire 17 et les organes reliés à la borne 13 via les portes 8 et 14 rendues passantes dans le sens approprié. Le fonctionnement du processeur 1B est moins rapide que celui du processeur 1, puisqu'il faut multiplexer les parties de poids faibles et celles de poids forts, mais permet d'obtenir un résultat plus précis puisque déterminé sur un nombre double d'éléments binaires. Comme dans le processeur 1A de la figure 2, le processeur 1B peut comporter deux portes bidirectionnelles supplémentaires 22 et 23 (représentées en trait interrompu et comportant des entrées de commande 22A et 23A) permettant simultanément le chargement des registres X et Y du circuit 20 et l'échange de données entre le registre P du circuit 20 ou la mémoire 17 et les organes reliés à la borne Il et/ou à la borne 13. En conclusion, le processeur de l'invention permet de faire communiquer n'importe quelle sorte de sources de données (mémoires, registres, sources extérieures) avec n'importe quelle destination (mémoires, registres, organes extérieurs) en choisissant le chemin disponible ou le mieux adapté par commande des portes appropriées. Le processeur de l'invention présente en outre l'avantage d'une structure modulaire : il peut ne comporter que le circuit de calcul le plus simple et une seule mémoire aussi bien qu'un circuit de calcul complexe de grande capacité et un grand nombre de mémoires et de circuits annexes (circuit 10, registres, etc . . .) reliés au bus tronçonné et séparés entre eux par des portes bidirectionnelles en nombre voulu. REVENDICATIONS 1. Processeur universel, en particulier pour traitement de signal, caractérisé par le fait qu'il comporte un circuit de calcul parallèle (2) dont les entrées (x, Y) et la sortie (P) sont reliées à un bus (3) formant une boucle fermée divisée en au moins trois tronçons (4, 5, 6) par un nombre égal de portes bidirectionnelles (7, 8, 9), les deux entrées et la sortie du circuit de calcul étant respectivement reliées chacune à un de ces tronçons, au moins un de ces tronçons (4 ou 5) étant relié à une borne d'entrée-sortie (Il ou 13) du processeur via une porte bidirectionnelle (12 ou 14), toutes les portes bidirectionnelles et le circuit de calcul étant reliés à un dispositif de commande approprié élaborant les ordres de commande nécessaires au fonctionnement de ces portes et de ce circuit de calcul pour la mise en oeuvre des divers traitements effectués par le processeur. 2. Processeur selon la revendication 1, caractérisé par le fait que les entrées du circuit de calcul sont également reliées chacune à un dispositif de mémoire (15, 16). 3. Processeur selon la revendication T caractérisé par le fait que ledit dispositif de mémoire est composé de mémoires mortes et/ou de mémoires vives. 4. Processeur selon l'une quelconque des revendications précédentes, caractérisé par le fait que la sortie du circuit de calcul est également reliée à un dispositif de sortie (17) à mémoire#vive. 5. Processeur selon la revendication 4, caractérisé par le fait que l'on insère entre la sortie du circuit de calcul et ledit dispositif de sortie un circuit de traitement d'éléments binaires (10). 6. Processeur- selon l'une quelconque des revendications précédentes, caractérisé par le fait que le circuit de calcul est un circuit intégré multiplieur-accum ulateur.