[go: up one dir, main page]

FR2588980A1 - Processeur de traitement de signal numerique comportant plusieurs multiplicateurs - Google Patents

Processeur de traitement de signal numerique comportant plusieurs multiplicateurs Download PDF

Info

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
Application number
FR8614724A
Other languages
English (en)
Other versions
FR2588980B1 (fr
Inventor
Ando Hideki
Nakaya Masao
Kondo Harufusa
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of FR2588980A1 publication Critical patent/FR2588980A1/fr
Application granted granted Critical
Publication of FR2588980B1 publication Critical patent/FR2588980B1/fr
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/544Methods 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/5443Sum of products
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent 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)

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.
FR8614724A 1985-10-23 1986-10-23 Processeur de traitement de signal numerique comportant plusieurs multiplicateurs Expired - Lifetime FR2588980B1 (fr)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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.

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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