FR2588980A1 - Processeur de traitement de signal numerique comportant plusieurs multiplicateurs - Google Patents
Processeur de traitement de signal numerique comportant plusieurs multiplicateurs Download PDFInfo
- Publication number
- FR2588980A1 FR2588980A1 FR8614724A FR8614724A FR2588980A1 FR 2588980 A1 FR2588980 A1 FR 2588980A1 FR 8614724 A FR8614724 A FR 8614724A FR 8614724 A FR8614724 A FR 8614724A FR 2588980 A1 FR2588980 A1 FR 2588980A1
- Authority
- FR
- France
- Prior art keywords
- data
- arithmetic
- multipliers
- memory
- digital signal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000012545 processing Methods 0.000 title claims abstract description 36
- 230000015654 memory Effects 0.000 claims abstract description 54
- 230000006870 function Effects 0.000 claims description 2
- 238000009825 accumulation Methods 0.000 claims 1
- 230000005540 biological transmission Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 8
- 230000001186 cumulative effect Effects 0.000 description 5
- 241000702625 Mink enteritis virus Species 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000000034 method Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 241000238876 Acari Species 0.000 description 1
- 150000001768 cations Chemical class 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
- G06F7/5443—Sum of products
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- Complex Calculations (AREA)
Abstract
LA SECTION ARITHMETIQUE 3 D'UN PROCESSEUR DE TRAITEMENT DE SIGNAL NUMERIQUE COMPREND PLUSIEURS MULTIPLICATEURS 311, 312 CONNECTES DIRECTEMENT A UNE SECTION DE MEMOIRE 1, DE FACON A POUVOIR EFFECTUER DES OPERATIONS DE MULTIPLICATION EN PARALLELE. CETTE STRUCTURE PERMET D'AUGMENTER LA CAPACITE DE TRAITEMENT POUR LES OPERATIONS DE MULTIPLICATION ET D'ADDITION, ET D'AUGMENTER LE DEBIT DE DONNEES DU PROCESSEUR.
Description
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.
Claims (7)
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.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP60238829A JPS6297060A (ja) | 1985-10-23 | 1985-10-23 | デイジタルシグナルプロセツサ |
Publications (2)
Publication Number | Publication Date |
---|---|
FR2588980A1 true FR2588980A1 (fr) | 1987-04-24 |
FR2588980B1 FR2588980B1 (fr) | 1993-08-20 |
Family
ID=17035890
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR8614724A Expired - Lifetime FR2588980B1 (fr) | 1985-10-23 | 1986-10-23 | Processeur de traitement de signal numerique comportant plusieurs multiplicateurs |
Country Status (4)
Country | Link |
---|---|
US (1) | US4771379A (fr) |
JP (1) | JPS6297060A (fr) |
DE (1) | DE3636106A1 (fr) |
FR (1) | FR2588980B1 (fr) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0454050A2 (fr) * | 1990-04-25 | 1991-10-30 | Kabushiki Kaisha Toshiba | Circuit intégré pour le traitement du signal |
EP0754998A1 (fr) * | 1995-07-18 | 1997-01-22 | STMicroelectronics Limited | Unité arithmétique |
Families Citing this family (89)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2612308B2 (ja) * | 1988-06-03 | 1997-05-21 | 沖電気工業株式会社 | ディジタル信号処理プロセッサ |
GB2243469B (en) * | 1990-04-27 | 1993-10-20 | Pioneer Electronic Corp | Digital signal processor |
DE4123186A1 (de) * | 1990-07-13 | 1992-01-23 | Aisuke Katayama | Multiplikationseinrichtung vom typ fuer unterteilte produkte, die zum ausfuehren einer multiplikation numerischer werte mit vielen stellen bei hoher genauigkeit faehig ist |
US5623683A (en) * | 1992-12-30 | 1997-04-22 | Intel Corporation | Two stage binary multiplier |
DE4304198A1 (de) * | 1993-02-12 | 1994-08-18 | Itt Ind Gmbh Deutsche | Verfahren zur Beschleunigung der Datenverarbeitung eines Signalprozessors |
US5509129A (en) | 1993-11-30 | 1996-04-16 | Guttag; Karl M. | Long instruction word controlling plural independent processor operations |
US5541865A (en) * | 1993-12-30 | 1996-07-30 | Intel Corporation | Method and apparatus for performing a population count operation |
US5642306A (en) * | 1994-07-27 | 1997-06-24 | Intel Corporation | Method and apparatus for a single instruction multiple data early-out zero-skip multiplier |
US6275834B1 (en) * | 1994-12-01 | 2001-08-14 | Intel Corporation | Apparatus for performing packed shift operations |
US6738793B2 (en) | 1994-12-01 | 2004-05-18 | Intel Corporation | Processor capable of executing packed shift operations |
EP1302848B1 (fr) * | 1994-12-01 | 2006-11-02 | Intel Corporation | Microprocesseur pourvu d'une unité de multiplication |
US5819101A (en) * | 1994-12-02 | 1998-10-06 | Intel Corporation | Method for packing a plurality of packed data elements in response to a pack instruction |
CN101211255B (zh) | 1994-12-02 | 2012-07-04 | 英特尔公司 | 对复合操作数进行压缩操作的处理器、设备和计算系统 |
JP2636789B2 (ja) * | 1995-03-31 | 1997-07-30 | 日本電気株式会社 | マイクロプロセッサ |
US5752001A (en) * | 1995-06-01 | 1998-05-12 | Intel Corporation | Method and apparatus employing Viterbi scoring using SIMD instructions for data recognition |
US6385634B1 (en) | 1995-08-31 | 2002-05-07 | Intel Corporation | Method for performing multiply-add operations on packed data |
US7395298B2 (en) | 1995-08-31 | 2008-07-01 | Intel Corporation | Method and apparatus for performing multiply-add operations on packed data |
US5721892A (en) * | 1995-08-31 | 1998-02-24 | Intel Corporation | Method and apparatus for performing multiply-subtract operations on packed data |
CN101930352B (zh) * | 1995-08-31 | 2016-05-18 | 英特尔公司 | 控制移位分组数据的位校正的装置 |
JP3750820B2 (ja) * | 1995-08-31 | 2006-03-01 | インテル・コーポレーション | パック・データの乗加算演算を実行する装置 |
US6470370B2 (en) | 1995-09-05 | 2002-10-22 | Intel Corporation | Method and apparatus for multiplying and accumulating complex numbers in a digital filter |
US6237016B1 (en) | 1995-09-05 | 2001-05-22 | Intel Corporation | Method and apparatus for multiplying and accumulating data samples and complex coefficients |
US5983253A (en) * | 1995-09-05 | 1999-11-09 | Intel Corporation | Computer system for performing complex digital filters |
US6058408A (en) * | 1995-09-05 | 2000-05-02 | Intel Corporation | Method and apparatus for multiplying and accumulating complex numbers in a digital filter |
US5936872A (en) * | 1995-09-05 | 1999-08-10 | Intel Corporation | Method and apparatus for storing complex numbers to allow for efficient complex multiplication operations and performing such complex multiplication operations |
US5822459A (en) * | 1995-09-28 | 1998-10-13 | Intel Corporation | Method for processing wavelet bands |
US5984515A (en) * | 1995-12-15 | 1999-11-16 | Intel Corporation | Computer implemented method for providing a two dimensional rotation of packed data |
US5935240A (en) * | 1995-12-15 | 1999-08-10 | Intel Corporation | Computer implemented method for transferring packed data between register files and memory |
US5815421A (en) * | 1995-12-18 | 1998-09-29 | Intel Corporation | Method for transposing a two-dimensional array |
US5757432A (en) * | 1995-12-18 | 1998-05-26 | Intel Corporation | Manipulating video and audio signals using a processor which supports SIMD instructions |
US6792523B1 (en) | 1995-12-19 | 2004-09-14 | Intel Corporation | Processor with instructions that operate on different data types stored in the same single logical register file |
US5940859A (en) | 1995-12-19 | 1999-08-17 | Intel Corporation | Emptying packed data state during execution of packed data instructions |
WO1997024681A1 (fr) * | 1995-12-19 | 1997-07-10 | Intel Corporation | Systeme informatique effectuant une rotation bidimensionnelle de donnees comprimees representant des informations multimedia |
US5701508A (en) * | 1995-12-19 | 1997-12-23 | Intel Corporation | Executing different instructions that cause different data type operations to be performed on single logical register file |
US5835748A (en) * | 1995-12-19 | 1998-11-10 | Intel Corporation | Method for executing different sets of instructions that cause a processor to perform different data type operations on different physical registers files that logically appear to software as a single aliased register file |
US5857096A (en) * | 1995-12-19 | 1999-01-05 | Intel Corporation | Microarchitecture for implementing an instruction to clear the tags of a stack reference register file |
US5852726A (en) * | 1995-12-19 | 1998-12-22 | Intel Corporation | Method and apparatus for executing two types of instructions that specify registers of a shared logical register file in a stack and a non-stack referenced manner |
US5787026A (en) * | 1995-12-20 | 1998-07-28 | Intel Corporation | Method and apparatus for providing memory access in a processor pipeline |
US6036350A (en) * | 1995-12-20 | 2000-03-14 | Intel Corporation | Method of sorting signed numbers and solving absolute differences using packed instructions |
US5907842A (en) * | 1995-12-20 | 1999-05-25 | Intel Corporation | Method of sorting numbers to obtain maxima/minima values with ordering |
US5742529A (en) * | 1995-12-21 | 1998-04-21 | Intel Corporation | Method and an apparatus for providing the absolute difference of unsigned values |
US5880979A (en) * | 1995-12-21 | 1999-03-09 | Intel Corporation | System for providing the absolute difference of unsigned values |
US5793661A (en) * | 1995-12-26 | 1998-08-11 | Intel Corporation | Method and apparatus for performing multiply and accumulate operations on packed data |
US5983257A (en) * | 1995-12-26 | 1999-11-09 | Intel Corporation | System for signal processing using multiply-add operations |
US5740392A (en) * | 1995-12-27 | 1998-04-14 | Intel Corporation | Method and apparatus for fast decoding of 00H and OFH mapped instructions |
US5764943A (en) * | 1995-12-28 | 1998-06-09 | Intel Corporation | Data path circuitry for processor having multiple instruction pipelines |
US5835392A (en) * | 1995-12-28 | 1998-11-10 | Intel Corporation | Method for performing complex fast fourier transforms (FFT's) |
US6092184A (en) * | 1995-12-28 | 2000-07-18 | Intel Corporation | Parallel processing of pipelined instructions having register dependencies |
US5862067A (en) * | 1995-12-29 | 1999-01-19 | Intel Corporation | Method and apparatus for providing high numerical accuracy with packed multiply-add or multiply-subtract operations |
US6009191A (en) * | 1996-02-15 | 1999-12-28 | Intel Corporation | Computer implemented method for compressing 48-bit pixels to 16-bit pixels |
US5621674A (en) * | 1996-02-15 | 1997-04-15 | Intel Corporation | Computer implemented method for compressing 24 bit pixels to 16 bit pixels |
US5959636A (en) * | 1996-02-23 | 1999-09-28 | Intel Corporation | Method and apparatus for performing saturation instructions using saturation limit values |
US5822232A (en) * | 1996-03-01 | 1998-10-13 | Intel Corporation | Method for performing box filter |
US6070237A (en) * | 1996-03-04 | 2000-05-30 | Intel Corporation | Method for performing population counts on packed data types |
US5831885A (en) * | 1996-03-04 | 1998-11-03 | Intel Corporation | Computer implemented method for performing division emulation |
US5835782A (en) * | 1996-03-04 | 1998-11-10 | Intel Corporation | Packed/add and packed subtract operations |
US5881279A (en) * | 1996-11-25 | 1999-03-09 | Intel Corporation | Method and apparatus for handling invalid opcode faults via execution of an event-signaling micro-operation |
FR2758195B1 (fr) * | 1997-01-09 | 1999-02-26 | Sgs Thomson Microelectronics | Coprocesseur d'arithmetique modulaire comprenant deux circuits de multiplication operant en parallele |
US6014684A (en) * | 1997-03-24 | 2000-01-11 | Intel Corporation | Method and apparatus for performing N bit by 2*N-1 bit signed multiplication |
US6026421A (en) * | 1997-11-26 | 2000-02-15 | Atmel Corporation | Apparatus for multiprecision integer arithmetic |
US6081824A (en) * | 1998-03-05 | 2000-06-27 | Intel Corporation | Method and apparatus for fast unsigned integral division |
US6418529B1 (en) * | 1998-03-31 | 2002-07-09 | Intel Corporation | Apparatus and method for performing intra-add operation |
US6041404A (en) | 1998-03-31 | 2000-03-21 | Intel Corporation | Dual function system and method for shuffling packed data elements |
US7392275B2 (en) * | 1998-03-31 | 2008-06-24 | Intel Corporation | Method and apparatus for performing efficient transformations with horizontal addition and subtraction |
US6230257B1 (en) * | 1998-03-31 | 2001-05-08 | Intel Corporation | Method and apparatus for staggering execution of a single packed data instruction using the same circuit |
US6230253B1 (en) * | 1998-03-31 | 2001-05-08 | Intel Corporation | Executing partial-width packed data instructions |
US7395302B2 (en) | 1998-03-31 | 2008-07-01 | Intel Corporation | Method and apparatus for performing horizontal addition and subtraction |
US6571268B1 (en) | 1998-10-06 | 2003-05-27 | Texas Instruments Incorporated | Multiplier accumulator circuits |
US6557022B1 (en) * | 2000-02-26 | 2003-04-29 | Qualcomm, Incorporated | Digital signal processor with coupled multiply-accumulate units |
US7155601B2 (en) * | 2001-02-14 | 2006-12-26 | Intel Corporation | Multi-element operand sub-portion shuffle instruction execution |
US7725521B2 (en) * | 2001-10-29 | 2010-05-25 | Intel Corporation | Method and apparatus for computing matrix transformations |
US7624138B2 (en) | 2001-10-29 | 2009-11-24 | Intel Corporation | Method and apparatus for efficient integer transform |
US7739319B2 (en) * | 2001-10-29 | 2010-06-15 | Intel Corporation | Method and apparatus for parallel table lookup using SIMD instructions |
US7631025B2 (en) * | 2001-10-29 | 2009-12-08 | Intel Corporation | Method and apparatus for rearranging data between multiple registers |
US7685212B2 (en) * | 2001-10-29 | 2010-03-23 | Intel Corporation | Fast full search motion estimation with SIMD merge instruction |
US7430578B2 (en) | 2001-10-29 | 2008-09-30 | Intel Corporation | Method and apparatus for performing multiply-add operations on packed byte data |
US7818356B2 (en) | 2001-10-29 | 2010-10-19 | Intel Corporation | Bitstream buffer manipulation with a SIMD merge instruction |
US20040054877A1 (en) | 2001-10-29 | 2004-03-18 | Macy William W. | Method and apparatus for shuffling data |
US7047383B2 (en) * | 2002-07-11 | 2006-05-16 | Intel Corporation | Byte swap operation for a 64 bit operand |
US7424501B2 (en) | 2003-06-30 | 2008-09-09 | Intel Corporation | Nonlinear filtering and deblocking applications utilizing SIMD sign and absolute value operations |
US7640285B1 (en) * | 2004-10-20 | 2009-12-29 | Nvidia Corporation | Multipurpose arithmetic functional unit |
US8190669B1 (en) | 2004-10-20 | 2012-05-29 | Nvidia Corporation | Multipurpose arithmetic functional unit |
US8037119B1 (en) | 2006-02-21 | 2011-10-11 | Nvidia Corporation | Multipurpose functional unit with single-precision and double-precision operations |
US20080071851A1 (en) * | 2006-09-20 | 2008-03-20 | Ronen Zohar | Instruction and logic for performing a dot-product operation |
US8051123B1 (en) | 2006-12-15 | 2011-11-01 | Nvidia Corporation | Multipurpose functional unit with double-precision and filtering operations |
US8106914B2 (en) * | 2007-12-07 | 2012-01-31 | Nvidia Corporation | Fused multiply-add functional unit |
US8078836B2 (en) | 2007-12-30 | 2011-12-13 | Intel Corporation | Vector shuffle instructions operating on multiple lanes each having a plurality of data elements using a common set of per-lane control bits |
JP5742366B2 (ja) * | 2011-03-28 | 2015-07-01 | ヤマハ株式会社 | デジタル信号処理装置およびプログラム |
US10528346B2 (en) * | 2018-03-29 | 2020-01-07 | Intel Corporation | Instructions for fused multiply-add operations with variable precision input operands |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE2142636C3 (de) * | 1971-08-25 | 1979-08-23 | Siemens Ag, 1000 Berlin Und 8000 Muenchen | Rechenwerk für die Durchführung digitaler Multiplikationen |
JPS5547420B2 (fr) * | 1972-02-21 | 1980-11-29 | ||
JPS5615535B2 (fr) * | 1974-12-03 | 1981-04-10 | ||
DE3381326D1 (de) * | 1982-02-15 | 1990-04-19 | Secr Defence Brit | Digitales signalverarbeitungsgeraet. |
-
1985
- 1985-10-23 JP JP60238829A patent/JPS6297060A/ja active Pending
-
1986
- 1986-10-21 US US06/922,031 patent/US4771379A/en not_active Expired - Lifetime
- 1986-10-23 FR FR8614724A patent/FR2588980B1/fr not_active Expired - Lifetime
- 1986-10-23 DE DE19863636106 patent/DE3636106A1/de not_active Ceased
Non-Patent Citations (2)
Title |
---|
IBM TECHNICAL DISCLOSURE BULLETIN, vol. 16, no. 7, 7 décembre 1973, pages 2053-2054, New York, US; R.H. LARSON: "High-speed multiply using four input carry-save adder" * |
ISSCC 80, 13 février 1980, pages 40-41, IEEE, New York, US; Y. KAWAKAMI et al.: "A single-chip digital signal processor for voiceband applications" * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0454050A2 (fr) * | 1990-04-25 | 1991-10-30 | Kabushiki Kaisha Toshiba | Circuit intégré pour le traitement du signal |
EP0454050A3 (en) * | 1990-04-25 | 1992-10-21 | Kabushiki Kaisha Toshiba | Integrated circuit device for processing signals |
EP0754998A1 (fr) * | 1995-07-18 | 1997-01-22 | STMicroelectronics Limited | Unité arithmétique |
Also Published As
Publication number | Publication date |
---|---|
DE3636106A1 (de) | 1987-04-23 |
FR2588980B1 (fr) | 1993-08-20 |
US4771379A (en) | 1988-09-13 |
JPS6297060A (ja) | 1987-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
FR2588980A1 (fr) | Processeur de traitement de signal numerique comportant plusieurs multiplicateurs | |
EP0173383B1 (fr) | Processeur pour effectuer suivant différents modes le traitement de données et dispositif de multiplication convenant pour un tel processeur | |
FR2588981A1 (fr) | Processeur de traitement de signal numerique | |
BE897441A (fr) | Calculateur associatif permettant une multiplication rapide | |
FR2583540A1 (fr) | Gestion de memoire pour systeme a microprocesseur. | |
FR2819073A1 (fr) | Microarchitecture d'unite arithmetique | |
EP0683454B1 (fr) | Procédé pour tester le déroulement d'un programme d'instructions | |
EP0155731B1 (fr) | Dispositif d'adressage pour fournir à une mémoire des codes d'adresse | |
FR2583904A1 (fr) | Systeme d'ordinateur du type a trains multiples de donnees et instruction unique (simd), avec traitement selectif des donnees | |
FR2770660A1 (fr) | Microprocesseur, notamment pour carte a puce | |
EP0712070B1 (fr) | Procédé de production d'un paramètre de correction d'erreur associé à la mise en oeuvre d'opérations modulaires selon la méthode de Montgomery | |
FR2569288A1 (fr) | Dispositif de calcul d'adresse pour un appareil de traitement numerique | |
FR2632092A1 (fr) | Circuit de conditionnement d'ecriture d'antememoire retarde pour un systeme de microcalculateur a bus double comprenant une unite 80386 et une unite 82385 | |
FR2558613A1 (fr) | Appareil de traitement de donnees du type pipeline | |
FR2538928A1 (fr) | Unite de traitement de donnees pourvue d'une section de commande qui comporte un generateur d'adresses destine a produire des adresses composees de parties d'adresses caracteristiques | |
EP0683455B1 (fr) | Circuit intégré comprenant des moyens pour arrêter l'exécution d'un programme d'instructions quand une combinaison de points d'arrêt est vérifiée | |
EP1338956A1 (fr) | Dispositif électronique de traitement de données, en particulier processeur audio pour un décodeur audio/vidéo | |
EP0689366B1 (fr) | Circuit de détection de tonalité téléphonique | |
EP0520579A2 (fr) | Dispositif de traitement de l'information plus particulièrement adapté à un langage chaîné, du type FORTH notamment | |
FR2674044A1 (fr) | Agencement pour predire une adresse d'instruction resultant d'un branchement dans un systeme de traitement numerique des donnees. | |
FR2558612A1 (fr) | Appareil de multiplication binaire | |
FR2741973A1 (fr) | Procede de production d'un parametre jo associe a la mise en oeuvre d'operation modulaire selon la methode de montgomery | |
WO2006042736A1 (fr) | Systeme de processeur parallele reconfigurable, modulaire et hierarchique | |
EP0190514A1 (fr) | Dispositif de test en ligne de circuit de calcul de la transformée de Fourier discrète, et circuit comportant un tel dispositif | |
EP0927928A1 (fr) | Procédé de production amélioré d'un paramètre JO associé à la mise en oeuvre d'opérations modulaires selon la méthode de Montgomery |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
D6 | Patent endorsed licences of rights | ||
D6 | Patent endorsed licences of rights |