FR2648585A1 - Procede et dispositif pour la multiplication rapide de codes a complement a 2 dans un systeme de traitement de signal numerique - Google Patents

Procede et dispositif pour la multiplication rapide de codes a complement a 2 dans un systeme de traitement de signal numerique Download PDF

Info

Publication number
FR2648585A1
FR2648585A1 FR9007569A FR9007569A FR2648585A1 FR 2648585 A1 FR2648585 A1 FR 2648585A1 FR 9007569 A FR9007569 A FR 9007569A FR 9007569 A FR9007569 A FR 9007569A FR 2648585 A1 FR2648585 A1 FR 2648585A1
Authority
FR
France
Prior art keywords
multiplier
bits
partial sum
significant bit
predetermined number
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
FR9007569A
Other languages
English (en)
Other versions
FR2648585B1 (fr
Inventor
Dae-Yoon Shim Jong-Sang Lim
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of FR2648585A1 publication Critical patent/FR2648585A1/fr
Application granted granted Critical
Publication of FR2648585B1 publication Critical patent/FR2648585B1/fr
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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/52Multiplying; Dividing
    • 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/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/53Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel
    • G06F7/5306Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel with row wise addition of partial products
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/386Special constructional features
    • G06F2207/3884Pipelining

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)

Abstract

L'invention concerne les multiplicateurs rapides. Le multiplicateur conforme à l'invention effectue une multiplication plus rapidement qu'un multiplicateur classique en recevant un premier nombre de bits prédéterminé d'un multiplicateur IR et un second nombre de bits prédéterminé d'un multiplicande IF; en produisant un multiplicateur multiplié séquentiellement un nombre de fois correspondant au second nombre de bits prédéterminé, à partir d'un bit de moindre poids; en combinant par une fonction logique OU 401, 402, 403 un bit de plus fort poids d'une somme partielle précédente avec un bit de plus fort poids d'une somme partielle présente, afin de corriger les sommes partielles; et en soustrayant 323 le signal de sortie d'une dernière somme partielle par rapport à une valeur produite en combinant par une fonction logique NON-ET 322 le multiplicateur et le bit de plus fort poids du second nombre de bits prédéterminé du multiplicande IF. Application aux systèmes de traitement de signal.

Description

La présente invention concerne de façon générale un multiplicateur en
temps réel (multiplicateur rapide) prévu pour l'utilisation dans un système de traitement de signal numérique, et elle porte plus particulièrement sur un multiplicateur en temps réel qui est prévu pour multi-
plier des nombres en code a complément à 2, au lieu de mul-
tiplier des données en code droit.
De façon générale, un système de traitement de
signal numérique ne traite pas toujours des valeurs positi-
ves. Par exemple, en considérant le cas dans lequel un con-
vertisseur A/N (analogique-numérique) convertit des données d'entrée analogiques en un signal numérique pour obtenir une nouvelle valeur par soustraction des signaux numériques ainsi convertis, lorsqu'une soustraction A-B est effectuée, si la valeur A est supérieure à la valeur B, les données de sortie seront produites avec une valeur positive et les données de sortie seront évidemment valides. Cependant, si la valeur A est inférieure à la valeur B, les données de
sortie seront produites sous la forme d'une valeur négati-
ve, qui a l'inconvénient d'être une valeur invalide.
On comprend donc qu'il est nécessaire de pouvoir traiter les données en code numérique non seulement dans le cas d'une valeur positive, mais également dans le cas d'une valeur négative. En pratique, les systèmes de traitement de signal numérique utilisent divers systèmes de codage pour
satisfaire cette exigence.
Premièrement, on utilise dans ce but un code du
type signe-valeur absolue qui comporte un bit supplémentai-
re en tête du code, qui est ajouté pour indiquer si la va-
leur du code est positive ou négative. Ce système de code
se divise en une partie destinée à indiquer la valeur abso-
lue du code et en une autre partie destinée à indiquer le
signe du code.
Secondement, on utilise dans le même but le sys-
tème de code dit de complément à 2. Le principe fondamental de ce code a complément à 2 est d'utiliser le concept de
complément de nombres. Ce système de code qui permet d'ef-
fectuer des calculs cohérents aussi bien pour l'addition que
la soustraction, est utilisé dans les systèmes de traite-
ment de signal numérique généraux. Dans un système de traitement de signal numérique général, on peut obtenir le même résultat indépendamment du système de code. Cependant, lorsqu'on utilise une fréquence très élevée (par exemple plusieurs dizaines de MHz) pour
l'horloge de commande du fonctionnement, les diverses ca-
ractéristiques, et en particulier la caractéristique de vi-
tesse du système de traitement de signal numérique, dépen-
dent fortement du système de code. Dans les principaux sys-
tèmes de traitement de signal numérique, on peut considérer
que la structure est formée par la combinaison d'un addi-
tionneur, d'un soustracteur, d'un multiplicateur et d'un di-
viseur, ayant tous pour but de traiter de façon correspon-
dante le code de données d'entrée (par exemple le code droit, le code signe-valeur absolue ou le code à complément
à 2).
Parmi les opérations qu'accomplissent l'addi-
tionneur, le soustracteur, le multiplicateur et le diviseur précités, les opérations du multiplicateur et du diviseur prennent un temps relativement long. La vitesse du système
dépend donc essentiellement de la structure du multiplica-
teur et du diviseur.
Il est bien connu que le système de code à com-
plément à 2 est avantageux dans la mesure o les nombres négatifs peuvent être exprimés et manipulés aisément, ce qui permet d'utiliser fructueusement la cohérence pour l'addition et la soustraction dans des manipulations de nombres. En considérant les figures 1A et 1B, on note qu'on peut réaliser l'addition (X+Y) avec le circuit de la figure lA, tandis qu'on peut réaliser la soustraction (X-Y)
avec le circuit de la figure lB. On note ainsi que la dif-
férence entre les deux circuits ci-dessus réside dans l'état de la borne d'entrée de report Cin et dans le fait qu'un inverseur 108 est incorporé seulement dans le circuit de la figure lB. Autrement dit, lorsque le signal d'entrée de report est égal à 0, le circuit de la figure 1A effectue l'addition, tandis que lorsque le signal de report est égal
à 1 le circuit de la figure lB effectue la soustraction.
Conformément à la théorie générale des opérations
binaires, tous les bits d'un nombre binaire sont addition-
nés aux bits correspondants d'un nombre binaire à addition-
ner, pour effectuer l'addition. Cependant, pour la sous-
traction de deux nombres binaires, tous les bits d'un nom-
bre sont additionnés aux bits correspondants du complément
à 2 du nombre binaire à additionner. Il faut noter au préa-
lable qu'on peut obtenir le complément à 2 d'un nombre en ajoutant 1 au complément à 1 de ce nombre. On peut exprimer cette relation de la façon suivante:
A - B =A + (-B) = A + B + 1..()
On peut mettre en oeuvre la formule (1) sous la forme d'un additionneur/soustracteur, comme le montre la
figure 2.
D'autre pat,dars le cas o on multiplie des codes à complément à 2, on les décompose en un signe et une valeur absolue, et on multiplie tout d'abord la valeur absolue,
après quoi on corrige séparement le signe.
Si on considère seulement la valeur absolue du code, on peut l'obtenir en accomplissant de façon répétée
l'addition du complément à 2. Cependant, si le multiplica-
teur et le multiplicande sont les codes d'un grand nombre, le système doit être complexe pour réaliser l'addition;
Pour résoudre ce problème, on utilise en général un dispo-
sitif connu destiné à simplifier le matériel du système, ce dispositif calculant les sommes partielles par l'addition
des deux codes. Les sommes partielles sont à nouveau addi-
tionnées les unes aux autres pour obtenir le résultat de la
multiplication. Lorsqu'on utilise un tel dispositif, le dé-
faut le plus important consiste en ce que la vitesse de
fonctionnement est considérablement réduite.
On va décrire un autre dispositif destiné à accé- lérer le fonctionnement, qui introduit un multiplicateur à
structure pipeline. La figure 3 représente un multiplica-
teur de valeur absolue classique ayant la structure pipeli-
ne. Toutes les bascules sur le dessin sont synchronisées
avec l'horloge du système. Le circuit de bascules 301 mémo-
rise la valeur d'entrée Y à n bits, et les additionneurs respectifs 310, 313, 317, 323 reçoivent tous le signal de
report Cin ayant l'état logique bas.
Ensuite, si la valeur d'entrée X à n bits est mé-
morisée dans le circuit de bascules 302, les portes 303 et
304 accomplissent l'opération ET de la valeur Y, respecti-
vement avec le bit de moindre poids (ou LSB) X0 et le se-
cond bit par ordre de poids croissant, X1. Simultanément, le circuit de bascules 306 mémorise la valeur d'entrée X.
Ensuite, le signal de sortie de l'additionneur 310 est mé-
morisé dans le circuit de bascules 311 pour être additionné dans l'additionneur 313 au signal de sortie de la porte ET 308. Le signal de sortie mémorisé Sn du circuit de bascules 316 devient donc Sn = X.Y0 + X. Y1.2 En outre, la somme partielle Ps dans ce cas est: Ps = 'X.Y 1.2 + X. Y2 2
De cette manière, on obtient les sommes partiel-
les dans chaque additionneur et on transfère le résultat
vers un étage suivant pour l'additionner au multiplicande.
Un tel multiplicateur de valeur absolue employant la structure pipeline a effectivement un point fort qui
consiste dans l'accélération du fonctionnement. Il est ce-
pendant toujours désavantageux dans la mesure o il ne peut
pas traiter le complément à 2.
Un but de l'invention est donc de procurer un
multiplicateur de valeur absolue capable d'augmenter la vi-
tesse de fonctionnement en employant le principe du complé-
ment à 2. Un autre but de l'invention est de procurer un
multiplicateur de valeur absolue destiné à traiter directe-
ment des codes à complément à 2, sans convertir un multi-
plicande en un code à complément à 2.
Un autre but encore de l'invention est de procu-
rer un multiplicateur de valeur absolue perfectionné, ayant
une structure pipeline, pour multiplier des codes à complé-
ment à 2.
Un but supplémentaire de l'invention est de pro-
curer un multiplicateur employant une multiplication à com-
plément à 2 directe, sans traiter séparément le signe et la
valeur absolue du multiplicande.
Un autre but de l'invention est de procurer un
procédé et un circuit qui non seulement effectuent correc-
tement la multiplication de code à complément à 2, mais permettent également à la structure pipeline de travailler
à une vitesse élevée.
Pour atteindre les buts et caractéristiques de
l'invention indiqués ci-dessus, ainsi que d'autres, un mul-
tiplicateur de valeur absolue ayant la structure pipeline
comprend: un correcteur de somme partielle, destiné à re-
cevoir un premier nombre de bits prédéterminé d'un multi-
plicateur et un second nombre de bits prédéterminé d'un
multiplicande, à produire un multiplicateur multiplié sé-
quentiellement un nombre de fois correspondant au second nombre de bits prédéterminé, à partir du bit de moindre poids (LSB), et à combiner par une fonction logique OU le
bit de plus fort poids (MSB) d'une somme partielle précé-
dente avec le bit de plus fort poids d'une somme partielle présente, afin de corriger les sommes partielles; et un
2648585.
correcteur de complément à 2 destiné à soustraire le résul-
tat d'une dernière somme partielle par rapport à une valeur
produite en combinant par une fonction NON-ET le multipli-
cateur et le bit de plus fort poids parmi le second nombre de bits prédéterminé du multiplicande. Pour permettre une meilleure compréhension de l'invention, et pour montrer comment on peut la mettre en oeuvre, on va maintenant se référer, à titre d'exemple, aux dessins annexés dans lesquels: Les figures 1A et lB représentent respectivement un additionneur et un soustracteur destinés à travailler sur des codes à complément à 2;
La figure 2 représente un additionneur/soustrac-
teur classique d'usage général;
La figure 3 mortre un multplicateur pipeline clas-
sique;
La figure 4 est un schéma de circuit d'un multi-
plicateur pipeline conforme à la présente invention; et
La figure 5 est une représentation destinée à il-
lustrer la multiplication de 5 x 12 conformément à la pré-
sente invention.
En considérant la figure 4, on voit un multipli-
cateur de valeur absolue conforme à l'invention, dans le-
quel tous les circuits de bascules, les portes ET et les additionneurs sont les mêmes que ceux représentés sur la figure 3. La seule différence sur le dessin, par rapport au multiplicateur de valeur absolue classique, consiste en ce
que les valeurs de bit de plus fort poids (ou MSB) de la sor-
tie des portes ET 303-304 sont appliquées à une porte OU 401, le signal de sortie de la porte OU 401 étant appliqué au circuit de bascules 311, tandis que le signal de sortie de MSB de la porte ET 308 et le signal de sortie de MSB du circuit de bascules 311 sont appliqués à une porte OU 402 pour corriger dans cette dernière une somme partielle. De la même façon, le signal de sortie de MSB du circuit de bascules 318 et le signal de sortie de MSB du circuit de bascules 319 sont appliqués à une porte NON-ET 322, et la sortie de la porte NON-ET 322 est connectée aux bornes
d'entrée de l'additionneur 323 dont d'autres bornes d'en-
trée sont connectées aux bornes de sortie du circuit de
bascules 320, dans le but de corriger les codes à complé-
ment à 2. De cette manière, on réalise une opération de soustraction pour les signaux de sortie de la porte NON-ET
322 et du circuit de bascules 320.
En outre, on peut connecter successivement aux bornes de sortie correspondantes respectives de la section b un ensemble de sections identiques à la section 40a qui est constituée par les circuits de bascules 305, 306, 311, 312, la porte ET 308, la porte OU 402 et l'additionneur 313. En considérant maintenant la figure 5, on voit une représentation spécifique d'un mode de réalisation de l'invention, dans lequel un multiplicande X est constitué
par des données à 12 bits et un multiplicateur Y est cons-
titué par 5 bits. Ce mode de réalisation montre un exemple de multiplication des deux valeurs X et Y. Pour la commodité de l'explication de l'invention, on décrira brièvement ci-après la théorie de la conversion du code droit en code à complément à 2. Lorsqu'on considère qu'un multiplicande F est multiplié par un multiplicateur a, les deux valeurs de code étant des codes à complément à 2,
on peut écrire les valeurs respectives de la manière sui-
vante: F = Fn-l' Fn-2'... F2, F1, F0 (par exemple, F = 101001)... (2) = Gn-l' Gn-2'...G2 G2, G1, G0 (par exemple, R = 011001)... (3) Les valeurs absolues des codes à complément à 2 ci-dessus sont: n-2 2n-l+ 1F2 F Iv = Fn-2 1 Fi2.... (4) i=0
n-I n-
| CR |v = -Rn-l'2 + 7 Ri2..(5) i=0 Dans les formules ci-dessus, si le bit de plus fort poids (MSB) est égal à 0, le code à complément à 2 est positif, tandis que si le bit de plus fort poids est égal à 1, le code à complément à 2 est négatif. On peut donc calculer de la manière suivante les valeurs des codes à complément a 2: 3 Fv = -2 + 2 + 1 = -23 (Négatif).
(6) Rv = 24 + 23 + 1 = 25 (Positif)...(7) De façon similaire au fonctionnement du circuit de la figure 4, le multiplicateur de la figure 5 ayant une structure pipeline effectue de façon répétée l'opération d'addition, comme décrit ci-dessus, dans le but de réaliser une multiplication désirée. Si le multiplicande F et le multiplicateur IR sont convertis en codes à complément à 2, on calcule les valeurs de la façon suivante: IR x F = ( IF) x -Rn_1.2 2 Ri2 i=0 = IF(-Rn_l).2n-1 +... + IF.R121..DTD: +IF.R020... (8)
avec Ri égal à 0 ou 1. Par conséquent, pour réaliser la
multiplication de deux codes à complément à 2, le multi-
plicande IF est additionné de façon répétée à lui-même, après avoir été décalé à chaque addition, conformément à la valeur de R.. Cette opération est identique à l'opération
d'addition de codes droits. Cependant, du fait d'une carac-
téristique spécifique des codes à complément à 2, lorsqu'on travaille sur les bits de plus fort poids, l'opération de
multiplication des codes à complément à 2 devient différen-
te de celle des codes droits. En effet, si la valeur du bit de plus fort poids, Rn1 est égale à 0, il n'y a aucun problème pour réaliser la multiplication du complément à. 2,
comme dans le cas de l'utilisation des codes droits. Cepen-
dant, si la valeur du bit de plus fort poids est égale à 1, le multiplicateur doit alors soustraire le bit de plus fort poids, c'est-àdire 1 dans ce cas, des sommes partielles
qui ont été additionnées jusqu'à présent.
Conformément à la théorie fondamentale du code à complément à 2, pour obtenir un code àa complément à 2 on doit tout d'abord inverser tous les bits d'un code (ce qui donne un complément à 1), après quoi on ajoute un 1 binaire
au résultat inversé. Par conséquent, comme le montre la fi-
gure lB, la soustraction est effectuée en inversant tous
les bits d'un code de multiplicande et en appliquant un si-
gnal de report de valeur logique 1 à la borne de report Cin.
Sur la base de ce principe, on peut effectuer la correction des codes à complément à 2, comme le montre la figure 4, en combinant par une fonction NON-ET les signaux
de sortie des circuits de bascules 318 et 319, dans la por-
te NON-ET 322, et en additionnant le signal de sortie de la porte NON-ET 322 au signal de sortie du circuit de bascules
Pour considérer la correction d'une somme par-
tielle produite par les portes OU 401, 402 et 403, on pré-
sente ci-après un exemple de codes à complément à 2 à 4 bits. Autrement dit, si les codes à complément à 2 sont IF 1100 et IR = 1011, on a:
2648585,
Fv = -23 + 2 =:4
3 1 O
Rv = -2 + 2 + 2 = -5 La multiplication est donc: F x (R = -4 x -5 = 20 x 1 0 1 1
11 0 0
1 1 00
1 1 0 0
X X X X X X XX
Pour cette opération, le multiplicateur et le
multiplicande sont respectivement soumis à une multiplica-
tion logique par les portes ET 303, 304, et les signaux de sortie respectifs des portes précités sont appliqués à l'additionneur 310, de façon à pouvoir obtenir le signal de
sortie résultant de l'addition, par l'intermédiaire du cir-
cuit de bascules 311.
Ainsi, en utilisant les caractéristiques spécifi-
ques des codes à complément à 2, on peut réaliser la multi-
plication de deux codes en additionnant les deux codes. A ce moment, une extension de signe doit être effectuée, et ceci est désigné par F dans la formule ci-dessus. On peut à
nouveau exprimer l'extension de signe de la manière suivan-
te: l1 < I
1 1 1 0 0
+ 0 0 0 0 0
1 1 1 0 0 Somme partielle Le résultat du calcul ci-dessus est appliqué à l'additionneur 313 pour être additionné au multiplicande combiné par une fonction logique ET avec le second bit du multiplicateur. Ensuite, les bits de plus fort poids du circuit de bascules 311 et de la porte ET 308 sont combinés selon une fonction logique OU par la porte OU 402, et le signal de sortie de la porte OU 402 est appliqué au circuit de bascules 316 dont le signal de sortie est: 1 1 1 1 0 0 Somme partielle
+ 110000
1 1 0 1 1 0 0 Somme partielle ' Dépassement de Capacité Les exemples d'cé. rations ci-dessus permettent de voir qu'un dépassement de capacité se produit lorsqu'on effectue l'extension de signe. Cependant, du fait que le dépassement de capacité est utilisé sans changement à l'étage suivant et que l'extension de signe est effectuée
naturellement, il n'est pas nécessaire de corriger les co-
des.
De cette manière, si un multiplicateur et un mul-
tiplicande à n bits sont respectivement appliqués aux cir-
cuits de bascules 301 et 302, le bit LSB0 (bit de moindre
poids) et le bit LSB1 du multiplicateur sont respectivement.
appliqués aux portes ET 303, 304, de façon à être combinés par une fonction logique ET (multiplication logique) avec le multiplicande à n bits, et les signaux de sortie des
portes ET sont additionnés ensemble par l'additionneur 310.
Dans ce mode de réalisation, on utilise la porte OU 401
pour corriger la somme partielle qui est produite par l'ad-
dition des signaux de sortie des portes ET 303, 304. Les signaux de sortie de l'additionneur 310 et de la porte OU 401 sont mémorisés dans le circuit de bascules 311. Par conséquent, la même opération sera répétée jusqu'à ce que le bit de plus fort poids (MSB) du multiplicateur soit
traité. Finalement, le bit MSB provenant du circuit de bas-
cules 318 et le multiplicande à n bits qui est transmis par le circuit de bascules 319 sont combinés selon une fonction
logique NON-ET par la porte NON-ET 322.
Ensuite, on réalise la soustraction entre le si-
gnal de sortie de la porte NON-ET 322 et le signal de sor-
tie du circuit de bascules 320 en additionnant les signaux de sortie cidessus au moyen de l'additionneur 323, pendant
que la borre de report Cin reçoit un état logique 1 d'in-
version, contrairement aux états logiques d'inversion des bornes de report Cin des additionneurs 310, 313, 317. Les opérations ci-dessus ont donc pour résultat de réaliser avec succès une multiplication de E x E. Contrairement au cas ci-dessus qui ne nécessite
pas la correction du complément à 2, on va maintenant envi-
sager un autre exemple qui exige la correction du complé-
ment à 2. Si une somme partielle est par exemple un nombre
binaire 11XXXX (dans lequel X représente un état "indiffé-
rent"), deux cas peuvent exister. Le premier correspond à
un état logique 1 qui indique la nécessité d'une multipli-
cation. L'autre est un état logique 0 qui indique qu'une multiplication n'est pas nécessaire. En pratique, lorsque
l'état logique est 0, il n'y a aucune difficulté pour mul-
tiplier les codes. Cependant, lorsque l'état logique est 1, l'opération "une somme partielle + une valeur à multiplier"
s'exprime de la façon suivante, conformément aux caracté-
ristiques du multiplicateur:
1 1 X X X X
+ 0cx x x
11 XXXX
0 1 1 X X X
Comme on peut le comprendre d'après l'opération ci-dessus, le résultat de la somme partielle a provoqué une
inversion du signe du code faisant passer d'un nombre néga-
tif à un nombre positif. On utilise les portes OU 401, 402, 403 pour corriger cette erreur de calcul. En outre, si le
résultat de la somme partielle inverse le signe en le fai-
sant passer d'un signe positif à un signe négatif, les por-
tes 401, 402, 403 produisent à nouveau le bit MSB, grâce à
quoi on peut accomplir la multiplication.
En se référant à la figure 5, on voit un autre exemple dans lequel le multiplicande est égal à 12 et le multiplicateur est égal à 5. Ainsi, en résumé, pour traiter
les codes à complément à 2, le multiplicateur de l'inven-
tion soustrait le signal de sortie de la porte NON-ET 322 du dernier étace, qui est destiné à traiter le bit MSB du code à complément à 2, par rapport au signal de sortie du
circuit de bascules 320, la borne d'entrée de report rece-
vant un signal logique donné pour permettre à l'addition-
neur d'effectuer la soustraction. Dans le calcul de la som-
me partielle, pour corriger le dépassement de capacité, le
bit MSB de la somme partielle fait l'objet d'une somme lo-
gique avec le bit MSB du multiplicande qui est fourni par l'intermédiaire des portes ET 304, 308, 315, conformément
aux bits correspondants du multiplicateur. La multiplica-
tion peut donc être accomplie par le processus de conver-
sion du bit MSB.
* Bien qu'on ait énuméré de manière concrète cer-
taines opérations en complément à 2, l'homme de l'art pour-
ra aisément atteindre les buts de l'invention dans le cas o la porte NONET 322 de la figure 4 est remplacée par une
porte ET existante, et o la borne de report Cin de l'addi-
tionneur 323 est fixée à "0" lorsque l'un des nombres est exprimé par un code à complément à 2 et l'autre est exprimé par un code droit, au lieu de la multiplication de codes à complément à 2, dans le cas o le bit MSB est corrigé dans
le processeur de signal numérique.
L'invention est donc efficace dans la mesure o elle effectue correctement un calcul portant sur un code à
complément à 2 et permet d'obtenir une vitesse de fonction-
nement élevée, ce qui est un avantage de la structure pipe-
line, permettant de calculer en complément à 2, ce qui est impossible dans le multiplicateur de valeur absolue à structure pipeline, grâce à la correction du bit MSB de la
somme partielle et du bit MSB du multiplicateur.
Il va de soi que de nombreuses modifications peu-
vent être apportées au dispositif et au procédé décrits et
représentés, sans sortir du cadre de l'invention.

Claims (5)

REVENDICATIONS
1. Dispositif pour la multiplication de codes à complément à 2, incorporé dans un multiplicateur pipeline comportant un ensemble de circuits de bascules (305, 306, 311, 312,...) et un ensemble d'additionneurs (310, 313, 317, 323), caractérisé en ce qu'il comprend: des moyens de correction de somme partielle (401, 402, 403) destinés à recevoir un multiplicateur ayant un premier nombre de bits prédéterminé et un multiplicande ayant un second nombre de bits prédéterminé, à produire un multiplicateur multiplié séquentiellement, un nombre de fois égal au second nombre de bits prédéterminé, en partant d'un bit de moindre poids (LSB), et à combiner par une fonction logique OU un bit de plus fort poids (MSB) d'une somme partielle précédente avec un bit de plus fort poids d'une somme partielle présente, afin de corriger les sommes partielles; et des moyens de
correction de complément à 2 (322, 323) destinés à sous-
traire un signal de sortie d'une dernière somme partielle par rapport à une valeur produite en combinant par une fonction NON-ET le multiplicateur et le bit de plus fort
poids du second nombre de bits prédéterminé du multiplican-
de.
2. Dispositif selon la revendication 1, caracté-
risé en ce que les moyens de correction de somme partielle comprennent: des moyens (401, 402, 403) qui sont connectés fonctionnellement aux bits de plus fort poids respectifs d'une somme partielle précédente et du multiplicateur, pour combiner par une fonction logique OU les bits de plus fort
poids respectifs; et des moyens, connectés fonctionnelle-
ment à la sortie des moyens de combinaison par une fonction
logique OU (401, 402, 403) et à la sortie d'une somme par-
tielle correspondante, pour produire une somme partielle corrigée.
3. Dispositif selon la revendication 2, caracté-
risé en ce que les moyens de correction de complément à 2 comprennent: des moyens (322) connectés fonctionnellement
au multiplicateur et au multiplicande, pour transférer sé-
lectivement le multiplicateur sur la base du bit de plus fort poids du multiplicande; et des moyens (323) connectés fonctionnellement aux moyens de transfert (322), pour sous- traire la dernière somme partielle du signal de sortie des
moyens de transfert.
4. Dispositif selon la revendication 2, caracté-
risé en ce que le nombre de moyens de combinaison par une fonction logique OU (401, 402, 403) est inférieur de deux
au second nombre de bits prédéterminé du multiplicande.
5. Procédé pour multiplier des codes à complément à 2 dans un multiplicateur pipeline, caractérisé en ce
qu'il comprend les opérations suivantes: on reçoit un pre-
mier nombre de bits prédéterminé d'un multiplicateur et un second nombre de bits prédéterminé d'un multiplicande; on produit un multiplicateur multiplié séquentiellement un
nombre de fois correspondant au second nombre de bits pré-
détermine, en partant d'un bit de moindre poids (LSB); on combine par une fonction logique OU un bit de plus fort poids (MSB) d'une somme partielle précédente avec un bit de plus fort poids d'une somme partielle présente, afin de corriger les sommes partielles; et on soustrait le signal de sortie d'une dernière somme partielle par rapport a une
valeur qui est produite en combinant par une fonction lo-
gique NON-ET le multiplicateur et le bit de plus fort poids
parmi le second nombre de bits prédéterminé du multiplican-
de.
FR9007569A 1989-06-20 1990-06-18 Procede et dispositif pour la multiplication rapide de codes a complement a 2 dans un systeme de traitement de signal numerique Expired - Fee Related FR2648585B1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019890008480A KR920003494B1 (ko) 1989-06-20 1989-06-20 디지탈 신호처리 시스템에서의 실시간 2's 콤플리멘트코드 숫자의 승산방법 및 회로

Publications (2)

Publication Number Publication Date
FR2648585A1 true FR2648585A1 (fr) 1990-12-21
FR2648585B1 FR2648585B1 (fr) 1997-01-31

Family

ID=19287253

Family Applications (1)

Application Number Title Priority Date Filing Date
FR9007569A Expired - Fee Related FR2648585B1 (fr) 1989-06-20 1990-06-18 Procede et dispositif pour la multiplication rapide de codes a complement a 2 dans un systeme de traitement de signal numerique

Country Status (6)

Country Link
US (1) US5181184A (fr)
JP (1) JP2608165B2 (fr)
KR (1) KR920003494B1 (fr)
DE (1) DE4019646C2 (fr)
FR (1) FR2648585B1 (fr)
GB (1) GB2234374B (fr)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0576262B1 (fr) * 1992-06-25 2000-08-23 Canon Kabushiki Kaisha Appareil pour la multiplication de nombres entiers à beaucoup de chiffres
US5404323A (en) * 1993-11-09 1995-04-04 United Microelectronics Corp. Pipelined multiplier for signed multiplication
US5734601A (en) 1995-01-30 1998-03-31 Cirrus Logic, Inc. Booth multiplier with low power, high performance input circuitry
US6347326B1 (en) * 1999-03-02 2002-02-12 Philips Electronics North America Corporation N bit by M bit multiplication of twos complement numbers using N/2+1 X M/2+1 bit multipliers
US6584483B1 (en) * 1999-12-30 2003-06-24 Intel Corporation System and method for efficient hardware implementation of a perfect precision blending function
US7124237B2 (en) * 2002-10-03 2006-10-17 Seagate Technology Llc Virtual machine emulation in the memory space of a programmable processor
EP2290525A3 (fr) * 2003-05-09 2011-04-20 Aspen Acquisition Corporation Unité de réduction de processeur permettant d'accumuler de multiples opérandes avec ou sans saturation
US8074051B2 (en) * 2004-04-07 2011-12-06 Aspen Acquisition Corporation Multithreaded processor with multiple concurrent pipelines per thread
DE102007056104A1 (de) * 2007-11-15 2009-05-20 Texas Instruments Deutschland Gmbh Verfahren und Vorrichtung zur Multiplikation von Binäroperanden
CN112749796A (zh) * 2019-10-31 2021-05-04 爱思开海力士有限公司 用于神经网络的计算设备
US11915125B2 (en) 2019-10-31 2024-02-27 SK Hynix Inc. Arithmetic devices for neural network

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR1149028A (fr) * 1956-04-16 1957-12-19 Electronique & Automatisme Sa Multiplieur numérique perfectionné

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3956622A (en) * 1974-12-20 1976-05-11 Bell Telephone Laboratories, Incorporated Two's complement pipeline multiplier
US4761756A (en) * 1983-08-24 1988-08-02 Amdahl Corporation Signed multiplier with three port adder and automatic adjustment for signed operands
US4736335A (en) * 1984-11-13 1988-04-05 Zoran Corporation Multiplier-accumulator circuit using latched sums and carries

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR1149028A (fr) * 1956-04-16 1957-12-19 Electronique & Automatisme Sa Multiplieur numérique perfectionné

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
IEEE TRANSACTIONS ON COMPUTERS. vol. C-22, no. 12, Décembre 1973, NEW YORK, US pages 1045 - 1047; C.R. BAUGH ET AL.: 'A two's complement parallel array multiplication algorithm' *
IEEE TRANSACTIONS ON COMPUTERS. vol. C-34, no. 8, Août 1985, NEW YORK, US pages 741 - 744; R. GNANASEKARAN: 'A fast serial-parallel binary multiplier' *
TECHNOLOGIE DE POINTE POUR LE TRAITEMENT DES SIGNAUX 14 Octobre 1975, LAUSANNE, CH pages 73 - 100; F. PELLANDINI: 'Methodes et structures specialisees pour le traitement digital des signaux' *

Also Published As

Publication number Publication date
DE4019646C2 (de) 1995-01-19
DE4019646A1 (de) 1991-01-10
KR910001535A (ko) 1991-01-31
KR920003494B1 (ko) 1992-05-01
US5181184A (en) 1993-01-19
GB9013572D0 (en) 1990-08-08
FR2648585B1 (fr) 1997-01-31
GB2234374A (en) 1991-01-30
GB2234374B (en) 1993-08-18
JPH0331930A (ja) 1991-02-12
JP2608165B2 (ja) 1997-05-07

Similar Documents

Publication Publication Date Title
EP0198729B1 (fr) Système de simulation d&#39;un circuit électronique
FR2788867A1 (fr) Procede arithmetique, appareil arithmetique et appareil de traitement cryptographique
JPH07248841A (ja) 非線形関数発生装置およびフォーマット変換装置
FR2648585A1 (fr) Procede et dispositif pour la multiplication rapide de codes a complement a 2 dans un systeme de traitement de signal numerique
Wang et al. Design, evaluation and fault-tolerance analysis of stochastic FIR filters
EP0692762B1 (fr) Circuit logique de multiplication parallèle
EP0223657A1 (fr) Dispositif de calcul d&#39;une transformée de fourier discrète, et son application à la compression d&#39;impulsion dans un système radar
EP3757756A1 (fr) Opérateur de produit scalaire de nombres à virgule flottante réalisant un arrondi correct
FR2593620A1 (fr) Circuit arithmetique et logique multifonction
EP0568146B1 (fr) Processeur neuronal muni de moyens pour normaliser des données
FR2727777A1 (fr) Circuit multiplieur et circuit diviseur pour operandes numeriques
FR2849512A1 (fr) Multiplieur modulaire de montgomery et procede de multiplication correspondant
EP0110767B1 (fr) Multiplieur binaire rapide
FR2689989A1 (fr) Calcul parallèle d&#39;un bit adhérent et de produits partiels dans une unité multiplicatrice à virgule flottante.
EP0237382B1 (fr) Dispositif de transformée en cosinus d&#39;un signal numérique échantilloné
FR2656124A1 (fr) Multiplieur serie programmable.
US6745219B1 (en) Arithmetic unit using stochastic data processing
EP1071008B1 (fr) Procédé pour effectuer une multiplication avec accumulation dans un corps de Galois.
FR2773284A1 (fr) Circuit de calcul de polynome de syndrome et un circuit de decodage reed-solomon
CN117980899A (zh) 带有不同准确度的按位乘法的混合信号电路
CN116783577A (zh) 用于归一化函数的数字电路
US11436302B2 (en) Electronic system for computing items of an outer product matrix
EP0209446B1 (fr) Multiplieur pour la multiplication de deux nombres complexes
EP0175623A1 (fr) Dispositif de traitement en temps réel de signal numérique par convolution
US20230385370A1 (en) Method and apparatus for computation on convolutional layer of neural network

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20100226