Brevet FR2588980A1 — publié le 19870424

PROCESSEUR DE TRAITEMENT DE SIGNAL NUMERIQUE COMPORTANT PLUSIEURS MULTIPLICATEURS 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é destiné à accomplir efficacement des opérations de traitement de signal numérique. Un processeur de traitement de signal numérique est un microprocesseur spécialisé dans le traitement de signaux numériques, qui est conçu dans le but d'accomplir rapidement des opérations arithmétiques de multiplication et d'addition qui sont fréquemment nécessaires dans le traite- ment 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, décrit par exemple dans l'article intitulé "A Single-Chip Digital Signal Processor for Voiceband Applica- tions" par Y. Kawakami et col., 1980 IEEE International Solid-State Circuits Conference, pages 40-41. En considérant la figure 1, on note que le processeur de traitement de signal numérique 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 1 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 données à traiter dans la section arithmétique 3 et les données nécessaires pour le 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 (par exemple des données relatives à des constantes, etc, pour des multiplications) 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 les données de programme dans la MEM d'instruction 21, en syn- chronisme avec une horloge de base (non représentée) du pro- cesseur 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. L'in- formation de sortie du registre d'instruction 23 est appli- quée au décodeur d'instruction 24. Une partie de l'informa- tion de sortie binaire émise par le 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 qui proviennent du registre d'instruction 23 et il produit divers signaux de commande. Ces signaux de commande sont appliqués à la sec- tion 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 arithmétique 3 comprend un multiplica- teur 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 directement connectée au multiplicateur 31. L'autre entrée de l'UAL 32 reçoit un signal de sortie prove- nant de l'accumulateur 33. Une sortie de l'UAL 32 est connec- 2588 980 tée à l'accumulateur 33. L'accumulateur 33 est connecté au bus de données 4. Dans la structure décrite ci-dessus, le multiplica- teur 31 multiplie une valeur lue dans la MEV 11 par une cons- tante lue dans la MEM 12, et il applique le résultat de la multiplication à 'UAL 32. L'UAL 32 additionne le résultat de la multiplication effectuée par le multiplicateur 31 à la valeur totale cumulée des résultats des multiplications qui a été obtenue précédemment et qui a été enregistrée dans l'accumulateur 33, de façon à enregistrer le résultat de l'addition dans l'accumulateur 33. La valeur cumulée qui est enregistrée dans l'accumulateur 33 est fournie par l'inter- médiaire du bus de données 4. Ainsi, du fait que le processeur de traitement de signal numérique comprend le multiplicateur 31 qui est un circuit câblé spécialisé pour l'opération de multiplication, cette opération peut être effectuée plus rapidement que dans le cas o elle est effectuée par une série d'opérations d'addition dans 'UAL 32, comme dans un micro-ordinateur classique. De plus, du fait que le multiplicateur 31 est directement connecté à la MEV 11 et à la MEM 12, on peut charger des données dans le multiplicateur 31 avec une seule instruction. En outre, du fait que le multiplicateur 31 est directement connecté à i'UAL 32, on peut charger le résultat d'une multiplication dans 'UAL 32 avec une seule instruc- tion. Des chemins de transfert de données pour des opéra- tions arithmétiques de multiplication et d'addition sont ainsi établis séparément du bus de données 4, ce qui fait qu'il est possible d'accomplir des opérations arithmétiques de multiplication et d'addition simultanément à un transfert de données, et d'accomplir à une vitesse élevée un traite- ment faisant intervenir les opérations arithmétiques de mul- tiplication et d'addition. Cependant, dans un processeur de traitement de signal numérique tel que celui décrit ci-dessus, la vitesse de calcul dans le multiplicateur 31 est inférieure à la vitesse de traitement dans tous les autres circuits. Il en résulte que dans un tel processeur de traitement de signal numérique classique, le débit de données est habituellement déterminé par la vitesse de calcul du multiplicateur 31 et il n'est pas possible de l'améliorer davantage. Un but de l'invention est de procurer un proces- seur de traitement de signal numérique ayant un débit de don- nées supérieur à celui d'un processeur de traitement de signal numérique classique. En résumé, l'invention utilise un ensemble de mul- tiplicateurs dans une section arithmétique, et ces multipli- cateurs sont directement connectés à des mémoires de données et ils sont également directement connectés à une unité arithmétique et logique. Conformément à l'invention, un ensemble de multi- plicateurs sont directement connectés à des mémoires de don- nées, de façon à pouvoir accomplir des opérations de multi- plication de manière simultanée. Il est ainsi possible d'augmenter considérablement la capacité de traitement pour la multiplication et l'addition, par rapport à un processeur de traitement de signal numérique classique, et on peut donc augmenter le débit de données. 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 des mémoires de données destinées à enregistrer des données à multiplier; la sec- tion de commande comprend: une mémoire de programme desti- née à enregistrer des données de programme, des moyens de lecture destinés à lire successivement les données de pro- gramme enregistrées dans la mémoire de programme, et des moyens de sortie destinés à produire divers signaux de com- mande sur la base des données de. programme qui sont lues dans la mémoire de programme; et la section arithmétique com- prend: un ensemble de multiplicateurs directement connectés aux mémoires de données, pour multiplier des données prove- nant de ces mémoires de données, une unité arithmétique et logique directement connectée à l'ensemble de multiplica- teurs pour accomplir des opérations arithmétiques et logiques prédéterminées sur les informations de sortie des multiplica- teurs, et un accumulateur destiné à enregistrer temporaire- ment l'information de sortie de l'unité arithmétique et logi- que, de façon à appliquer cette information au bus de don- né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; La figure 4 est un diagramme séquentiel destiné à expliquer le fonctionnement du mode de réalisation représen- té sur la figure 3; et La figure 5 est un schéma de circuit montrant un exemple du circuit de retard représenté sur la figure 3. La figure 2 est un schéma synoptique qui montre un mode de réalisation de l'invention. Ce mode de réalisa- tion est identique à l'exemple classique représenté sur la figure 1, sauf en ce qui concerne les points décrits ci-dessous, et de ce fait les parties identiques sont dési- gnées par les mêmes références numériques et leur description n'est pas reprise. En considérant la figure 2, on note que ce mode de réalisation comprend une section de mémoire 1, une section de commande 2, une section arithmétique 3 et un bus de données 4, comme dans l'exemple classique de la figure 1. La section de commande 2 est entièrement identique à celle de l'exemple classique de la figure 1. La section de mémoire 1 comprend une MEV à deux accès, 13, à la place de la MEV 11 de la figure 1. La MEV à deux accès 13 comprend deux accès de sortie, de façon à pouvoir lire simultanément des données à deux adresses. Les données lues à une adresse sont présentées en sortie sur le premier accès 13a. Les données lues à l'autre adresse sont présentées en sortie sur le second accès 13b. Ces premier et second accès 13a et 13b sont con- nectés au bus de données 4. La section de mémoire 1 comprend une MEM 14 comportant deux zones de mémoire, à la place de la MEM 12 de la figure 1. Cette MEM 14 comporte deux zones de mémoire formées par exemple sur la même puce, chacune d'elles fonctionnant à la manière d'une MEM, de façon qu'on puisse lire simultanément des données dans les deux zones de mémoire. Chaque zone de mémoire de la MEM 14 est connectée au bus de données 4. La section arithmétique 3 comprend deux multipli- cateurs 311 et 312, deux UAL 321 et 322 et un accumulateur 33. Une entrée du premier multiplicateur 311 est connectée au bus de données 4 et est également connectée directement au premier accès 13a de la MEV à deux accès 13. L'autre entrée du premier multiplicateur 311 est connectée au bus de données 4 et est également connectée directement à l'une des zones de mémoire de la MEM 14. Une entrée du second multi- plicateur 312 est connectée au bus de données 4 et est éga- lement connectée directement au second accès 13b de la MEV à deux accès 13. L'autre entrée du second multiplicateur 312 est connectée au bus de données 4 et est également connectée directement à l'autre zone de mémoire de la MEM 14. Une entrée de la première UAL 321 est directement connectée au premier multiplicateur 311 et son autre entrée est directe- - ment connectée au second multiplicateur 312. Une entrée de la seconde UAL 322 est connectée au bus de données 4 et est éga- lement connectée directement à la première UAL 321. L'autre entrée de la seconde UAL 322 reçoit l'information de sortie de l'accumulateur 33. Ces première et seconde UAL 321 et 322 constituent une unité arithmétique et logique 320. L'informa- tion présente sur une sortie de la seconde UAL 322 est appli- quée à l'accumulateur 33. L'accumulateur 33 est connecté au bus de données 4. On va maintenant décrire le fonctionnement du mode de réalisation considéré ci-dessus. Les données de programme qui sont enregistrées dans la MEM d'instructions 21 sont lues successivement par le compteur d'instruction 22 et sont enregistrées dans le registre d'instruction 23. Le décodeur d'instruction 24 lit et décode les données de programme enregistrées dans le registre d'instruction 23 et il produit divers signaux de commande. Ces signaux de commande sont appliqués à la section de mémoire 1, à la section de comman- de 2, à la section arithmétique 3, etc, de façon à commander le fonctionnement de ces éléments. D'autre part, les données provenant du premier accès 13a de la MEV à deux accès 13 sont directement appli- quées à l'une des entrées du multiplicateur 311, sans passer par le bus de données 4. Les données provenant du second accès 13b de la MEV à deux accès 13 sont également directe- ment appliquées à l'une des entrées du second multiplicateur 312, sans passer par le bus de données 4. En outre, les données lues dans l'une des zones de mémoire de la MEM 14 sont directement appliquées à l'autre entrée du premier mul- tiplicateur 311, sans passer par le bus de données 4. Les données lues dans l'autre zone de mémoire de la MEM 14 sont également appliquées directement à l'autre entrée du second multiplicateur 312, sans passer par le bus de données 4. Par conséquent, le premier multiplicateur 311 multiplie les don- nées provenant du premier accès 13a de la MEV 13 par les données qui sont lues dans l'une des zones de mémoire de la MEM 14. Le second multiplicateur 312 multiplie les données provenant du second accès 13b de la MEV 13 par les données qui sont lues dans l'autre zone de mémoire de la MEM 14. Les résultats des multiplications effectuées par les premier et second multiplicateurs 311 et 312 sont appliqués à la pre- mière UAL 321 de façon à additionner ces résultats. Le résultat de l'addition effectuée par la première UAL 321 est directement appliqué à la seconde UAL 322, sans passer par le bus de données 4. La seconde UAL 322 additionne le résultat des multiplications que fournit la première UAL 321 à la valeur totale cumulée des résultats de multiplica- tions qui a été obtenue précédemment et qui est enregistrée dans l'accumulateur 33, de façon à enregistrer le résultat de l'addition dans l'accumulateur 33. La valeur totale cumu- lée des résultats des multiplications qui est enregistrée dans l'accumulateur 33 est fournie par le bus de données 4. Comme décrit ci-dessus, le mode de réalisation représenté sur la figure 2 comprend deux multiplicateurs et deux UAL, d'o il résulte que, pour des opérations arithmé- tiques de multiplication et d'addition, ce mode de réalisa- tion a une capacité de traitement deux fois plus grande que celle du processeur de traitement de signal numérique clas- sique qui est représenté sur la figure 1. Par conséquent, le débit de données peut être deux fois plus élevé qu'avec l'exemple classique de la figure 1. En outre, du fait que les premier et second multiplicateurs 311 et 312 sont direc- tement connectés à la MEV 13 et à la MEM 14, il est possible de charger des données dans les deux multiplicateurs 311 et 312 avec une seule instruction, ce qui permet d'améliorer l'efficacité du traitement. Bien que le mode de réalisation décrit ci-dessus comprenne deux multiplicateurs et deux UAL, si on utilise trois multiplicateurs ou plus et trois UAL ou plus, la capa- cité de traitement pour la multiplication et l'addition est encore plus augmentée, conformément au nombre de multiplica- teurs et d'UAL. Dans un tel cas, pour charger des données simultanément dans les multiplicateurs respectifs, il est nécessaire d'employer une MEV ayant des accès en nombre égal au nombre de multiplicateurs, à la place de la MEV à deux accès 13, ou bien d'employer des MEV à un seul accès en nom- bre égal au nombre de multiplicateurs. De la même manière, on doit dans un tel cas remplacer la MEM 14 ayant deux zones de mémoire par une MEM ayant des zones de mémoire en nombre égal au nombre de multiplicateurs, ou par plusieurs MEM ayant une seule zone de mémoire, le nombre de MEM étant égal au nombre de multiplicateurs. De plus, bien que dans le mode de réalisation décrit ci-dessus, les données variables enregistrées dans la MEV à deux accès 13 soient multipliées par les données fixes (telles que des données de constantes) enregistrées dans la MEM 14, il est possible de multiplier des données variables par d'autres données variables. Dans ce cas, on utilisera une MEV à deux accès à la place de la MEM 14. En outre, dans le cas o on utilise trois multiplicateurs ou plus et trois UAL ou plus, il est nécessaire de prévoir deux MEV ayant chacune un nombre d'accès égal au nombre des multipli- cateurs, ou bien plusieurs MEV à un seul accès, en nombre égal au double du nombre des multiplicateurs. Si la vitesse d'accès de la MEV et de la MEM utilisées dans la section de mémoire 1 est un grand nombre de fois supérieure à la vitesse de calcul de chaque multi- plicateur incorporé dans la section arithmétique 3, il est possible de charger des données dans les multiplicateurs en temps partagé et, dans un tel cas, on peut diminuer le nom- bre de MEV et le nombre de MEM. La figure 3 est un schéma synoptique montrant un autre mode de réalisation de l'invention, du type indiqué ci-dessus. Dans le cas de la figure 3, la vitesse d'accès de la MEV 11 et de la MEM 12 incorporées dans la section de mémoire i est un grand nombre de fois supérieure à la vitesse de calcul de chacun des premier et second multiplicateurs 311 et 312 qui sont incorporés dans la section arithmétique 3. Une sortie de la MEV 11 est connectée au bus de données 4 et est également connectée à une entrée de chacun des premier et second multiplicateurs 311 et 312. Une sortie de la MEM 12 est connectée au bus de données 4 et est également connectée aux autres entrées des premier et second multiplicateurs 311 et 312. Un circuit de retard 34 est intercalé entre le pre- mier multiplicateur 311 et i'UAL 321. Ce mode de réalisation a par ailleurs la même structure que le mode de réalisation représenté sur la figure 2. Dans la structure décrite ci-dessus, on suppose que chacun des multiplicateurs 311 et 312 est capable d'accomplir une opération de multiplication au cours d'un cycle machine. La MEV 11 et la MEM 12 fournissent des don- nées au premier multiplicateur 311 pendant la première moi- tié de la durée d'un cycle machine et elles fournissent des données au second multiplicateur 312 pendant la seconde moi- tié de la durée d'un cycle machine. Par conséquent, les pre- mier et second multiplicateurs 311 et 312 multiplient les données au cours de la durée d'un cycle machine, mais les caractéristiques temporelles de sortie du premier multipli- cateur 311 et celles du second multiplicateur 312 ne coinci- dent pas. Par conséquent, le circuit de retard 34 retarde d'une durée prédéterminée le signal de sortie du premier multiplicateur 311, de façon que les résultats de multipli- cation provenant des premier et second multiplicateurs 311 et 312 puissent être appliqués simultanément à i'UAL 321. Le reste du fonctionnement est identique à celui du mode de réalisation représenté sur la figure 2. On expliquera plus particulièrement le fonctionne- ment décrit ci-dessus en se référant à la figure 4. La figu- re 4 montre un cas dans lequel un cycle machine est défini par un cycle d'impulsions d'horloge 01 à 04. Au cours de la durée d'un cycle machine, l'adresse présente dans la MEM 12 est changée deux fois sous l'effet des impulsions d'horloge 01 et 03, de façon à lire des données dans la MEM 12. Les données provenant de la MEM 12 sont appliquées aux multipli- cateurs 311 et 312 sous l'action des impulsions d'horloge respectives 02 et 04, de façon à commencer la multiplication. Les signaux de sortie des multiplicateurs 311 et 312 pren- nent et conservent la valeur appropriée sous l'effet des impulsions d'horloge respectives 04 et 02. La phase du signal de sortie du multiplicateur 311 est en avance d'un demi-cycle machine par rapport à celle du signal de sortie du multipli- cateur 312, et on fait donc coincider les phases des signaux de sortie au moyen du circuit de retard 34, pour appliquer les signaux de sortie des multiplicateurs 311 et 312 à I'UAL 321. La figure 5 montre un exemple du circuit de retard 34 qui est utilisé dans ce cas. La figure 5 montre un registre du type appelé registre statique, comprenant deux transis- tors MOS 341 et 342 et deux inverseurs 343 et 344. Le tran- sistor MOS 341 est commandé par l'impulsion d'horloge 02 et le transistor MOS 342 est commandé par une version inversée d' de l'impulsion d'horloge 02. Plus précisément, lorsque l'impulsion d'horloge 02 monte, le transistor MOS 341 devient conducteur et le transistor MOS 342 se bloque, ce qui fait que les données mémorisées dans les inverseurs 343 et 344 et le transistor MOS 342 sont émises. Les modes de réalisation respectifs décrits ci-dessus comprennent deux UAL. Cependant, si la vitesse de calcul d'une telle UAL est plusieurs fois supérieure à la vitesse de multiplication de chaque multiplicateur, une seu- le UAL est nécessaire pour additionner les résultats de mul- tiplication provenant des multiplicateurs respectifs et pour additionner le résultat de l'addition à la valeur totale cumulée qui se trouve dans l'accumulateur 33. Il en est de même dans le cas o on utilise trois multiplicateurs ou plus. 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) remplissant la fonction d'une ligne de transmission de don- né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 des mémoires de données (11 et 12 ou 13 et 14) destinées à enregistrer des données à multiplier; 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 de sortie (24) destinés à produire divers signaux de commande sur la base des données de programme qui sont lues dans la mémoire de programme; et la section arithrnéti- que comprend: un ensemble de multiplicateurs (311 et 312) directement connectés aux mémoires de données, pour multi- plier des données provenant de ces mémoires de données, une unité arithmétique et logique (320) directement connectée à l'ensemble de multiplicateurs pour accomplir des opérations arithmétiques et logiques prédéterminées sur les informa- tions de sortie des multiplicateurs, et un accumulateur (33) destiné à enregistrer temporairement l'information de sortie de l'unité arithmétique et logique, de façon à appliquer cette information au bus de données. 2. Processeur de traitement de signal numérique selon la revendication 1, caractérisé en ce que l'unité arithmétique et logique (320) comprend un ensemble de cir- cuits arithmétiques et logiques. 3. Processeur de traitement de signal numérique selon la revendication 2, caractérisé en ce que l'ensemble de circuits arithmétiques et logiques comprend: un circuit arithmétique et logique (321) d'addition qui est directement connecté à l'ensemble de multiplicateurs (311, 312) de fagon à additionner les informations de sortie de l'ensemble de multiplicateurs, et un circuit arithmétique et logique (322) d'accumulation, directement connecté au circuit arithmétique et logique d'addition, et connecté à l'accumulateur (33) de façon à additionner l'information de sortie du circuit arith- métique et logique d'addition à une valeur qui est enregis- trée dans l'accumulateur. 4. Processeur de traitement de signal numérique selon la revendication 1, caractérisé en ce que les mémoires de données comprennent un ensemble de mémoires (13, 14). 5. Processeur de traitement de signal numérique selon la revendication 4, caractérisé en ce que l'ensemble de mémoires comprend: une mémoire vive (13) destinée à enregistrer des données variables, et une mémoire morte (14) destinée à enregistrer des données qui sont des constantes. 6. Processeur de traitement de signal numérique selon la revendication 5, caractérisé en ce que la mémoire vive comporte un ensemble d'accès de sortie (13a, 13b) directement connectés à une entrée de chacun des multipli- cateurs (311, 312), et la mémoire morte (14) comporte des zones de mémoire pouvant faire l'objet d'opérations de lec- ture de données indépendantes, et le nombre de ces zones de mémoire est égal au nombre de multiplicateurs. 7. Processeur de traitement de signal numérique selon la revendication 1, caractérisé en ce que les mémoi- res de données sont des mémoires (11, 12) ayant une vitesse d'accès suffisamment élevée, par rapport à la vitesse de traitement des multiplicateurs, pour que des données prove- nant de ces mémoires de données puissent être chargées en temps partagé dans chacun des multiplicateurs.