Brevet FR2569021A1 — publié le 19860214

PROCESSEUR DE TRAITEMENT La présente invention concerne un processeur de traitement. On entend par processeur de traitement l'ensemble formé par une unité arithmétique et logique et une unité de contrôle. En pratique, la plupart des processeurs de traitement font appel, pour limiter leur encombrement et permettre éventuellement leur intégration, à une architecture à bus de données unique, auquel sont reliées les entrées-sorties de l'unité arithmétique et logique ainsi que les entrées-sorties de différents périphériques. Ce bus unique est utilisé en multiplexage lors des transferts successifs de données de, et vers, l'unité arithmétique et logique, ce qui a pour inconvénient d'accoître le temps d'exécution des instructions. Cet inconvient est considéré comme rédhibitoire pour une application du type "traitement de signal", à laquelle se rapporte plus particulièrement la présente invention, qui nécessite des temps d'exécution extrêmement courts. Une architecture adaptée à ce type d'application a été proposée dans la demande de brevet français n0 83 03 127 déposée le 25 février 1983 au nom de la demanderesse. Suivant cette architecture, l'unité arithmétique et logique est desservie par un bus de données unique découpé en plusieurs tronçons rendus indépendants par la présence de portes bidirectionnelles, les entrées-sorties de l'unité arithmétique et logique étant respectivement reliées chacune à un de ces tronçons. Des transferts de données de, et vers, l'unité arithmétique et logique peuvent ainsi être effectués simultanément sur les différents tron çons, d'où une réduction sensible du temps d'exécution des instructions. Cependant, dans le processeur décrit dans la demande de brevet précitée, comme dans d'autres processeurs connus, les opérations logiques effectuées par l'unité arithmétique et logique se limitent à des opérations simples telles que décalage d'éléments binaires, comparaison, décodage, contrôle ou génération de parité ... etc. L'exécution d'opératio#ns plus évoluées nécessite alors une décomposition en opérations élémentaires qui sont effectuées successivement, d'où un temps d'exécution global relativement long. La présente invention a pour objet un processeur de traitement doté, en plus d'une unité arithmétique et logique, d'une unité de traitement logique spécialisée, capable d'exécuter des opérations logiques complexes parallélement à l'exécution d'opérations logiques élémentaires, ou d'opérations arithmétiques, dans l'unité arithmétique et logique, ceci dans le but d'accroître la puissance de traitement du processeur, particulièrement en vue d'applications du type "traitement de signal". Le processeur suivant l'invention comporte d'une part 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, d'autre part un circuit de traitement logique spécialisé dont les entrées et la sortie sont reliées chacune à l'un de ces tronçons, toutes les portes bidirectionnelles, le circuit de calcul et le circuit de traitement logique spécialisé étant reliés à un dispositif de commande approprié élaborant les ordres de commande nécessaires au fonctionnement de ces portes, de ce circuit de calcul et de ce circuit de traitement logique spécialisé pour la mise en oeuvre des divers traitements effectués par le processeur. Les objets et caractéristiques de la présente invention appa paîtront plus clairement à la lecture de la description suivante d'un exemple de réalisation, faite en relation avec les dessins ci-annexés dans lesquels: - la figure 1 est un schéma général montrant l'architecture du processeur suivant l'invention. - la figure 2 est un schéma d'un exemple de circuit de traitement logique spécialisé. La description qui suit se rapporte plus particulièrement au traitement de signal effectué dans des appareils du type "émetteursrécepteurs multifréquences" que l'on trouve dans les centraux téléphoniques numériques, mais ceci ne constitue qu'un exemple et d'autres applications peuvent bien entendu être envisagées. 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 multiplieur-accumulateur parallèle 2 qui peut être du type à virgule fixe ou flottante, et d'un circuit de traitement logique spécialisé 2'. 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 10105 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ù Pon 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é, l'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 -des circuits 2 et 2' sont reliées à un bus 3 formant une boucle fermée divisée par trois portes bidirectionnelles 7, 8, 9 en trois tronçons référencés 4, 5 et 6 également appelés par la suite bus X, Y et P. La porte 7 est disposée entre les tronçons 4 et 6, la porte 8 entre les tronçons 5 et 6, et la porte 9 entre les tronçons 4 et 6. 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, on intercale entre la sortie du circuit 2 et le tronçon 6 un circuit 10 de traitement logique d'éléments binaires, capable d'effectuer des opérations dites élémentaires, par opposition au circuit 2' qui effectue des opérations plus complexes.Ce circuit 10 est 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 Il est reliée par une porte bidirectionnelle 12 au tronçon 4, et une 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 recpectivement référencées 7A, 8A, 9A, 12A et 14A. Les tronçons de bus 4 et 5 sont reliés chacun à un circuit de mémoire 15 et 16 respectivement. Ces circuits 15 et 16 comportent chacun une entrée d'adressage ITA, 16A respectivement, et une entrée de commande 15B, 16B respectivement Les circuits 15 et 16 peuvent être composés de mémoires mortes etlou 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 6 est relié à l'entrée d'un circuit à mémoire vive 17 dont les entrées d'adressage et de commande sont respectivement référencées 17A, 17B. 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 11 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, commes c'est le cas pour les proce#sseurs 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 et 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, les entrées de commande du circuit de traitement logique spécialisé 2', et, le cas échéant, l'entrée de commande 10A du circuit 10 sont toutes reliées à un dispositif de commande approprié 18, tel qu'un micro-séquenceur, capable de fournir en mode synchrone à ces portes et à ces circuits 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 pour chacun des canaux d'un signal multiplexé plusieurs fonctions consécutives, par exemple filtrage, calcul d'énergie et tri de fréquences, son dispositif de commande 18 doit comporter un programme correspondant à ces trois fonctions qui sont appelées successivement et répétitivement. L'ensemble de toutes les fonctions à réaliser forme un programme appelé programme général. Chaque fonction utilise une partie du programme général et les parties correspondant aux différentes fonctions ne sont pas néces sairement distinctes. Si l'on désire multiplexer dans le temps une fonction parmi n autres, il est de plus nécessaire de découper ces fonctions en paquets de micro-séquences avec, à chaque fin de paquet, une sauvegarde des résultats obtenus, I'adresse de fin de paquet étant conservée en mémoire et restituée lors du retour à la fonction à accomplir. On décrit maintenant en relation avec la figure 2 un exemple de circuit de traitement logique spécialisé. Ce circuit comporte essentiellement un ensemble de mémoires mortes de grande capacité dont les entrées d'adresse sont reliées aux bus X, Y, P, dont les entrées de commande sont reliées au dispositif de commande 18 (figure 1), et dont les sorties sont reliées au bus P et au dispositif de commande 18 par l'intermédiaire de registrestampons. Ce circuit comporte à titre d'exemple deux mémoires mortes 20 et 21, dites mémoire de conversion A et mémoire de conversion B, et deux autres mémoires mortes, 22 et 23, dites mémoire de décision A et mémoire de décision B (ces termes faisant référence aux fonctions de ces mémoires et étant mieux explicités par la suite). Les sorties de ces mémoires sont reliées au bus P par l'intermédiaire de registres-tampons 24, 25, 26 et 27, et au dispositif de commande 18 par l'intermédiaire d'un registre tampon 28. Les entrées C de commande (ou de validation) de tous ces éléments sont reliées au dispositif de commande 18. Le fonctionnement de ce circuit de traitement spécialisé est maintenant illustré en relation avec des exemples particuliers de traitement intervenant dans les émetteurs-récepteurs multifréquences déjà cités. Un premier exemple de traitement se rapporte à une opération de type transcodage linéaire-logarithmique, dans laquelle il s'agit de trans#former un mot binaire de 23 bits par exemple (répartis par exemple en 15 bits de poids forts sur le bus P et en 8 bits de poids faible sur le bus Y) en un mot compressé de 8 bits par pas de 0,25 dB. Les 15 bits de poids forts du bus P sont appliqués aux entrées de la mémoire de conversion A, les 10 bits de poids forts du bus P aux entrées de la mémoire de décision A, les 7 bits de poids faibles du bus P aux entrées de la mémoire de conversion B, et les 8 bits de poids forts du bus Y aux entrées de la mémoire de conversion B. Deux cas peuvent se presenter.Si le niveau du signal traité est élevé, la mémoire de conversion A reçoit assez d'informations pour coder ce signal avec une précision de û,25 dB. Si le niveau du signal traité est faible, la mémoire de conversion B reçoit assez d'infor- mations pour coder ce signal avec une précision de 0,25 dB. La mémoire de décision A reçoit, avec 10 bits, suffisamment d'infor- mations pour sélectionner soit la mémoire de conversion A, soit la mémoire de conversion B, par l'intermédiaire du dispositif de commande. La séquence est plus précisément la suivante. Les 23 bits formant le signal traité arrivent par les bus Y et P. La mémoire de conversion A est sélectionnée d'office, et quel que soit le résultat obtenu en sortie de cette mémoire, celui-ci est stocké dans le registre de sortie 24. La mémoire de décision A est ensuite sélectionnée et, suivant le résultat obtenu en sortie de cette mémoire, c'esta'-dire suivant que le niveau du signal traité est fort ou faible, le dispositif de commande met en oeuvre ou non la séquence suivante. Cette séquence consiste à sélectionner la mémoire de conversion B et à stocker le résultat dans le registre de sortie 26. Quel que soit le niveau du signal d'entrée, le résultat du transcodage se trouve donc dans l'un des registres de sortie. Un second exemple de traitement se rapporte à la détection du niveau le plus fort parmi plusieurs niveaux (par exemple 8) reçus successivement à l'entrée. Dans cette application, les niveaux à comparer à savoir le niveau incident et le niveau le plus fort trouvé jusqu'à présent, sont appliqués, respectivement par les poids forts des bus Y et P, aux entrées de la mémoire de décision B, le bus Y portant le niveau incident et le bus P le niveau le plus fort trouvé jusqu'à présent, stocké dans le registre de sortie 25 de la mémoire de décision A. La sortie de la mémoire de décision B établit si le niveau incident est supérieur ou non au niveau le plus fort trouvé jusqu'à présent. S'il est supérieur, la sortie de la mémoire de décision B déclenche, par l'intermédiaire du registre de sortie 28 et du dispositif de commande, le stockage du niveau incident dans le registre de sortie 25 de la mémoire de décision A. S'il est inférieur, le registre 25 garde son ancienne valeur. Après le passage des huit niveaux, le registre 25 contient le niveau le plus élevé. Le rang de ce niveau (parmi les huit niveaux considérés) est obtenu de la façon suivante. Un seul élément binaire de sortie de la mémoire de décision B est pris en considération (la sortie de cette mémoire représentant deux états possibles) et cet élément binaire est stocké dans le registre de sortie 27, du t#ype série-parallèle, qui est commandé à chaque nouvelle comparaison. Ainsi, si l'élément binaire de sortie de la mémoire de décision B est par exemple à "1" lorsque le niveau incident est supérieur au niveau le plus fort trouvé jusquà présent, après avoir effectué toutes les comparaisons, le dernier élément binaire à "1" du registre 27 indique le rang du niveau le plus fort. REVENDICATIONS 1. Processeur de traitement caractérisé par le fait qu'il comporte d'une part 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), d'autre part un circuit de traitement logique spécialisé (2') dont les entrées et la sortie sont reliées chacune à l'un de ces tronçons, toutes les portes bidirectionnelles, le circuit de calcul et le circuit de traitement logique spécialisé étant reliés à un dispositif de commande approprié (18) élaborant les ordres de commande nécessaires au fonctionnement de ces portes, de ce circuit de calcul et de ce circuit de traitement logique spécialisé 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 2, 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 logique 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-accumulateur. 7. Processeur selon l'une quelconque des revendications précédentes, caractérisé en ce que le circuit de traitement logique spécialisé (2') comporte un ensemble de mémoires mortes (20, 21, 22, 23) dont les entrées d'adresse sont reliées aux différents tronçon de bus, dont les entrées de commande (C) sont reliées au dispositif de commande (18), et dont les sorties sont reliées d'une part à l'un de ces tronçons, d'autre part au dispositif de commande (18), par l'intermédiaire de registres-tampons (24, 25, 26, 27, 28).