Brevet FR2588981A1 — publié le 19870424

PROCESSEUR DE TRAITEMENT DE SIGNAL NUMERIQUE La présente invention concerne un processeur de traitement de signal numérique, et en particulier un proces- seur de traitement de signal numérique perfectionné de façon à pouvoir accomplir efficacement des opérations de traite- ment de signaux numériques. Un processeur de traitement de signal numérique est un microprocesseur spécialisé pour le traitement de signaux numériques, qui est conçu dans le but d'accomplir rapidement des opérations de multiplication et d'addition qui sont fréquemment nécessaires dans le traitement de signaux numériques. La figure 1 est un schéma synoptique montrant un exemple d'un processeur de traitement de signal numérique classique, qui est décrit par exemple dans l'article inti- tulé "A Single-Chip Digital Signal Processor for Voiceband Applications" par Y. Kawakami et col., 1980 IEEE Interna- tional Solid-State Circuits Conference, pages 40-41. En considérant la figure 1, on voit que ce processeur de traitement de signal numérique classique comprend, comme dans un micro-ordinateur ordinaire, une section de mémoire 1, une section de commande 2, une section arithmétique 3 et un bus de données 4. La section de mémoire i comprend une mémoire vive (qu'on appellera ci-après MEV) 11 et une mémoire morte (qu'on appellera ci-après MEM) 12. Les don- nées à traiter dans la section arithmétique 3 et les don- nées nécessaires pour ce traitement sont enregistrées dans la MEV 11 et dans la MEM 12. Les données variables sont enregistrées dans la MEV 11 et les données fixes (telles que des données relatives à des constantes pour des multiplica- tions) sont enregistrées dans la MEM 12. La MEV 11 et la MEM 12 sont connectées au bus de données 4. La section de commande 2 comprend une MEM d'ins- tructions 21, un compteur d'instruction 22, un registre d'instruction 23 et un décodeur d'instruction 24. Les don- nées de programme sont enregistrées dans la MEM d'instruc- tions 21. Le compteur d'instruction 22 lit successivement des données de programme dans la MEM d'instructions 21 en synchronisme avec une horloge de base (non représentée) du processeur de traitement de signal numérique. Le registre d'instruction 23 enregistre temporairement les données de programme qui sont lues dans la MEM d'instructions 21. Une information de sortie du registre d'instruction 23 est appliquée au décodeur d'instruction 24. Une partie de l'in- formation de sortie binaire du registre d'instruction 23 est appliquée au bus de données 4. Le décodeur d'instruc- tion 24 décode les données de programme provenant du regis- tre d'instruction 23 et il produit divers signaux de com- mande. Ces signaux de commande sont appliqués à la section de mémoire 1, à la section de commande 2, à la section arithmétique 3, etc, de façon à commander le fonctionnement des circuits internes de ces éléments. La section de calcul 3 comprend un multiplicateur 31, une unité arithmétique et logique (qu'on appellera ci-après UAL) 32 et un accumulateur 33. Des entrées du mul- tiplicateur 31 sont connectées au bus de données 4. L'une des entrées du multiplicateur 31 est directement connectée à la MEV 11 et son autre entrée est directement connectée à la MEM 12. Une entrée de l'UAL 32 est connectée au bus de données 4 et est également connectée directement au multi- plicateur 31. L'autre entrée de l'UAL 32 reçoit une informa- tion de sortie de l'accumulateur 33. Une information de sor- tie de l'UAL 32 est appliquée à l'accumulateur 33. L'accumu- lateur 33 est connecté au bus de données 4. Dans la structure décrite ci-dessus, le multipli- cateur 31 multiplie une valeur lue dans la MEV 11 par une constante lue dans la MEM 12, et il applique le résultat à 'UAL 32. L'UAL 32 additionne le résultat de la multiplica- tion effectuée par le multiplicateur 31 à la valeur totale cumulée des résultats de multiplications effectuées précé- demment, qui est enregistrée dans l'accumulateur 33, et elle enregistre le résultat de l'addition dans l'accumulateur 33. La valeur totale cumulée qui est enregistrée dans l'accumu- lateur 33 est présentée en sortie par le bus de données 4. Du fait que le processeur de traitement de signal numérique comprend le multiplicateur 31 qui consiste en un circuit câblé spécialisé pour l'opération de multiplica- tion, comme décrit ci-dessus, il est possible d'effectuer l'opération de multiplication plus rapidement que dans le cas o elle est effectuée dans 'UAL 32, sous la forme d'une série d'additions, comme dans un microordinateur classique. De plus, du fait que le'multiplicateur 31 est directement connecté à la MEV 11 et à la MEM 12, il est possible de charger les données dans le multiplicateur 31 avec une seule instruction. En outre, du fait que le multi- plicateur 31 est directement connecté à 1UAL 32, il est possible de charger un résultat de multiplication dans l'UAL 32 avec une seule instruction. Les chemins de trans- fert de données pour les opérations de multiplication et d'addition sont ainsi établis séparément du bus de données 4, et il est donc possible d'effectuer des opérations de multiplication et d'addition simultanément au transfert de données, ce qui permet d'accomplir à une vitesse élevée un traitement relatif à des opérations de multiplication et d'addition. Dans un processeur de traitement de signal numéri- que classique tel que celui décrit ci-dessus, des données à multiplier sont enregistrées dans la MEV 11, ce qui fait apparaître un problème consistant en ce que plusieurs ins- tructions sont nécessaires pour l'exécution d'un traitement destiné à retarder les données (un tel traitement est sou- vent nécessaire dans un filtre numérique ou un dispositif analogue). A titre d'exemple, les instructions suivantes sont nécessaires pour le traitement destiné à retarder des données d'une durée correspondant à un échantillon. (1) Déterminer une adresse n dans la mémoire MEV 11. (2) Enregistrer le contenu de l'adresse n dans la MEV 11 dans un premier registre temporaire (non représenté), et incrémenter simultanément l'adresse dans la MEV 11. (3) Enregistrer le contenu de l'adresse (n + 1) dans la MEV 11 dans un second registre temporaire (non représenté). (4) Ecrire le contenu du premier registre tempo- raire à l'adresse (n + 1) dans la MEV 11. Comme décrit ci-dessus, dans le processeur de traitement de signal numérique classique, il est nécessaire de sauvegarder temporairement dans le registre temporaire les données qui sont enregistrées dans la MEV 11, et d'écri- re à nouveau dans la MEV 11 les données sauvegardées dans le registre temporaire, après avoir incrémenté l'adresse de la-MEV 11. Par conséquent, plusieurs instructions sont nécessaires pour établir un retard d'un échantillon. En outre, il est nécessaire d'effectuer le traitement décrit ci-dessus pour toutes les données qui doivent être retar- dées d'un échantillon. Un but de l'invention est de procurer un proces- seur de traitement de signal numérique capable d'effectuer un traitement consistant à retarder des données à multiplier, avec un nombre extrêmement faible d'instructions (par exem- ple une seule instruction). En résumé, l'invention est conçue de façon qu'au moins un élément parmi des premier et second éléments d'en- registrement faisant partie d'une section de mémoire, soit constitué par un registre à décalage. Conformément à l'invention, au moins un élément parmi des premier et second éléments d'enregistrement incor- porés dans une section de mémoire est formé par un registre à décalage, ce qui fait que des données à multiplier peuvent être retardées simplement par une opération de décalage, gra- ce à quoi le traitement consistant à établir un retard peut être effectué avec un nombre extrêmement faible d'instruc- tions. Un aspect de l'invention porte sur un processeur de traitement de signal numérique spécialisé dans le traite- ment de signaux numériques, comprenant une section de mémoi- re, une section de commande, une section arithmétique et un bus de données remplissant la fonction d'une ligne de trans- mission de données entre la section de mémoire, la section de commande et la section arithmétique, caractérisé en ce que la section de mémoire comprend: un premier élément d'enregistrement destiné à enregistrer une partie des don- nées à multiplier, et un second élément d'enregistrement destiné à enregistrer les autres données à multiplier, l'un au moins des premier et second éléments d'enregistrement étant constitué par un registre à décalage; la section de commande comprend: une mémoire de programme destinée à enregistrer des données de programme, des moyens de lecture destinés à lire successivement les données de programme enregistrées dans la mémoire de programme, et des moyens destinés à produire divers signaux de commande sur la base des données de programme lues dans la mémoire de programme; et la section arithmétique comprend: un multiplicateur con- necté directement aux premier et second éléments d'enregis- trement, pour multiplier des données provenant du premier élément d'enregistrement par des données provenant du second élément d'enregistrement, une unité arithmétique et logique connectée directement au multiplicateur, et un accumulateur destiné à enregistrer temporairement une information de sor- tie de l'unité arithmétique et logique, de façon à appliquer cette information de sortie au bus de données. L'invention sera mieux comprise à la lecture de la description qui va suivre de modes de réalisation, donnés à titre d'exemples non limitatifs. La suite de la description se réfère aux dessins annexés sur lesquels: La figure 1 est un schéma synoptique montrant un exemple d'un processeur de traitement de signal numérique classique. La figure 2 est un schéma synoptique montrant un mode de réalisation de l'invention. La figure 3 est un schéma synoptique montrant un autre mode de réalisation de l'invention. On voit sur la figure 2 un schéma synoptique d'un mode de réalisation de l'invention. En considérant la figure 2, on note que ce mode de réalisation comprend un registre à décalage 13 à la place de la MEV 11 représentée sur la figu- re 1. Ce registre à décalage 13 est conçu de façon à retar- der des données d'entrée, par exemple d'une période d'échan- tillon. Le reste de la structure de ce mode de réalisation est identique à l'exemple classique représenté sur la figure 1. Les parties identiques à celles de la figure i sont donc désignées par les mêmes références numériques et leur des- cription n'est pas reprise. On va maintenant décrire le fonctionnement du mode de réalisation considéré ci-dessus. Des données à retarder sont appliquées à l'entrée du registre à décalage 13. Le registre à décalage 13 retarde les données d'entrée d'une période d'échantillon, en décalant ces données. Par conséquent, pour retarder des données devant être multi- pliées dans le processeur de traitement de signal numérique de ce mode de réalisation, on peut effectuer le traitement destiné à retarder les données en employant une seule ins- truction, pour décaler les données se trouvant dans le registre à décalage 13. En d'autres termes, le traitement consistant à sauvegarder temporairement les données enregis- trées dans la MEV 11, afin d'écrire à nouveau les données, comme dans l'exemple classique représenté sur la figure 1, n'est pas nécessaire, ce qui permet de réduire le nombre d'instructions. On peut ainsi effectuer efficacement le traitement consistant à retarder les données, et on peut accomplir le traitement des signaux numériques à une vitesse élevée. Bien que le mode de réalisation décrit ci-dessus concerne le cas dans lequel toutes les données à multiplier (à l'exclusion des données de constantes qui sont enregis- trées dans la MEM 12) doivent être retardées d'une période d'échantillon (par exemple dans le cas du calcul effectué par un filtre numérique), s'il y a de nombreuses données qui ne doivent pas être retardées, on peut employer une MEV 11 ainsi que le registre à décalage 13 dans la section de mémoire 1, comme le montre la figure 3. Dans le mode de réalisation de la figure 3, les données qui doivent être retardées sont appliquées à l'entrée du registre à décalage 13 et les données qui ne doivent pas être retardées sont enregistrées dans la MEV 11. Le multiplicateur 31 est directement connecté à la fois au registre à décalage 13 et à la MEV 11, de façon qu'il puisse sélectionner et recevoir de façon appropriée un signal de sortie provenant de l'un ou de l'autre de ces éléments. Il va de soi que de nombreuses modifications peu- vent être apportées au dispositif décrit et représenté, sans sortir du cadre de l'invention. REVENDICATIONS 1. Processeur de traitement de signal numérique spécialisé dans le traitement de signaux numériques, compre- nant une section de mémoire (1), une section de commande (2), une section arithmétique (3) et un bus de données (4) rem- plissant la fonction d'une ligne de transmission de données entre la section de mémoire, la section de commande et la section arithmétique, caractérisé en ce que la section de mémoire comprend: un premier élément d'enregistrement des- tiné à enregistrer une partie des données à multiplier, et un second élément d'enregistrement destiné à enregistrer les autres données à multiplier, l'un au moins des premier et second éléments d'enregistrement étant constitué par un registre à décalage (13); la section de commande comprend: une mémoire de programme (21) destinée à enregistrer des données de programme, des moyens de lecture (22) destinés à lire successivement les données de programme enregistrées dans la mémoire de programme, et des moyens (24) destinés à produire divers signaux de commande sur la base des données de programme lues dans la mémoire de programme; et la sec- tion arithmétique comprend: un multiplicateur (31) connecté directement aux premier et second éléments d'enregistrement, pour multiplier des données provenant du premier élément d'enregistrement par des données provenant du second élément d'enregistrement, une unité arithmétique et logique (32) connectée directement au multiplicateur, et un accumulateur (33) destiné à enregistrer temporairement une information de sortie de l'unité arithmétique et logique, de façon à appliquer cette information de sortie au bus de données. 2. Processeur de traitement de signal numérique selon la revendication 1, caractérisé en ce que le registre à décalage (13) accomplit, avec une seule instruction, un traitement consistant à retarder les données à multiplier. 3. Processeur de traitement de signal numérique selon la revendication 1, caractérisé en ce que l'un quel- conque des premier et second éléments d'enregistrement est formé par un registre à décalage (13) et l'autre est formé par une mémoire morte (12) destinée à enregistrer des don- nées fixes. 4. Processeur de traitement de signal numérique selon la revendication 1, caractérisé en ce que l'un quelcon- que des premier et second éléments d'enregistrement est formé par un registre à décalage (13) et une mémoire vive (11), et l'autre est formé par une mémoire morte (12) destinée à enregistrer des données fixes.