[go: up one dir, main page]

FR2475250A1 - Fast multiplier for long binary numbers - uses multiple and=gates to multiply one bit of first number simultaneously with every bit of second number and groups like weighted bits - Google Patents

Fast multiplier for long binary numbers - uses multiple and=gates to multiply one bit of first number simultaneously with every bit of second number and groups like weighted bits Download PDF

Info

Publication number
FR2475250A1
FR2475250A1 FR8002089A FR8002089A FR2475250A1 FR 2475250 A1 FR2475250 A1 FR 2475250A1 FR 8002089 A FR8002089 A FR 8002089A FR 8002089 A FR8002089 A FR 8002089A FR 2475250 A1 FR2475250 A1 FR 2475250A1
Authority
FR
France
Prior art keywords
weight
stage
numbers
outputs
sep
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
FR8002089A
Other languages
French (fr)
Other versions
FR2475250B1 (en
Inventor
Jean-Pierre Houdard
Vladimir Chaverneff
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.)
Thales SA
Original Assignee
Le Materiel Telephonique Thomson CSF
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 Le Materiel Telephonique Thomson CSF filed Critical Le Materiel Telephonique Thomson CSF
Priority to FR8002089A priority Critical patent/FR2475250B1/en
Publication of FR2475250A1 publication Critical patent/FR2475250A1/en
Application granted granted Critical
Publication of FR2475250B1 publication Critical patent/FR2475250B1/en
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/5318Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel with column wise addition of partial products, e.g. using Wallace tree, Dadda counters

Landscapes

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

Abstract

LE DISPOSITIF MULTIPLIEUR DE L'INVENTION COMPORTE DES MULTIPLIEURS ELEMENTAIRES 5 REALISANT TOUTES LES COMBINAISONS POSSIBLES DE CHAQUE FOIS UN DES ELEMENTS BINAIRES DE L'UN DES NOMBRES A0-A63, AVEC UN DES ELEMENTS BINAIRES DE L'AUTRE NOMBRE B0-B63, ET PLUSIEURS ETAGES DE TRAITEMENT 6, 7, 8 DETERMINANT LE NOMBRE DE 1 DE CHAQUE POIDS D'ELEMENTS BINAIRES DE L'ETAGE PRECEDENT EN PONDERANT, PAR CABLAGE, LES ELEMENTS BINAIRES DE CE NOMBRE 1, UN ETAGE FINAL ADDITIONNEUR 9 REALISANT L'ADDITION DE DEUX NOMBRES BINAIRES FORMES PAR LES RESULTATS FOURNIS PAR LE DERNIER ETAGE DE TRAITEMENT 8. APPLICATION: FILTRES NUMERIQUES.THE MULTIPLIER DEVICE OF THE INVENTION INCLUDES ELEMENTARY MULTIPLIERS 5 ACHIEVING ALL THE POSSIBLE COMBINATIONS OF EACH TIME ONE OF THE BINARY ELEMENTS OF ONE OF THE NUMBERS A0-A63, WITH ONE OF THE BINARY ELEMENTS OF THE OTHER NUMBER B0-B63, AND SEVERAL PROCESSING STAGES 6, 7, 8 DETERMINING THE NUMBER OF 1 OF EACH WEIGHT OF BINARY ELEMENTS OF THE PREVIOUS STAGE BY WEIGHING, BY WIRING, THE BINARY ELEMENTS OF THIS NUMBER 1, A FINAL ADDITIONER STAGE 9 REALIZING THE ADDITION OF TWO BINARY NUMBERS FORMED BY THE RESULTS PROVIDED BY THE LAST PROCESSING STAGE 8. APPLICATION: DIGITAL FILTERS.

Description

La présente invention se rapporte à un procédé de multiplication rapide de deux nombres binaires et à un multiplieur numérique rapide pour la mise en oeuvre de ce procédé
Les multiplieurs numériques actuellement connus sont du type "série-parallèle", et leur vitesse de fonctionnement est suffisamment élevée pour la plupart des applications. Toutefois, lorsque l'on doit multiplier entre eux deux nombres binaires très longs en un temps très court, comme c'est le cas par exemple pour certains filtres numériques, ces multiplieurs connus ne sont pas assez rapides, ce qui force à réduire les performances des systèmes dans lesquels on doit les utiliser.
The present invention relates to a method for rapid multiplication of two binary numbers and to a fast numerical multiplier for the implementation of this method
Currently known digital multipliers are of the "serial-parallel" type, and their operating speed is sufficiently high for most applications. However, when one must multiply between them two very long binary numbers in a very short time, as is the case for example for some digital filters, these known multipliers are not fast enough, which forces to reduce the performances systems in which they must be used.

La présente invention a pour objet un procédé de multiplication de deux nombres binaires plus rapide que les procédés connus, et un multiplieur numérique permettant d'obtenir le résultat de la multiplication de deux nombres binaires de grande longueur beaucoup plus rapidement qu'avec des multiplieurs de l'art antérieur. The subject of the present invention is a method of multiplying two binary numbers faster than known methods, and a numerical multiplier making it possible to obtain the result of the multiplication of two binary numbers of great length much more rapidly than with multipliers of the prior art.

Le procédé de multiplication de deux nombres binaires conforme à la présente invention consiste, après avoir multiplié, de façon connue en soi, chacun des éléments binaires de l'un des nombres par chacun des éléments binaires de l'autre nombre, de préférence simultanément, à regrouper les résultats de la multiplication de chaque fois deux éléments binaires selon les poids respectifs de ces résultats, puis pour chaque poids de résultat à compter et à mémoriser le nombre de "1", à affecter à chaque nombre de "1" ainsi obtenu un poids qui est égal audit poids des résultats correspondants, à regrouper les éléments binaires de même poids des nombres ainsi pondérés, à compter et à mémoriser le nombre de "I" de chaque poids d'éléments binaires des nombres pondérés, et ainsi de suite jusqu a obtenir pour chaque poids d'éléments binaires de nombres pondérés un nombre de "1" égal au plus à deux, et enfin à additionner de façon connue en soi les derniers nombres pondérés. The method for multiplying two binary numbers according to the present invention consists, after having multiplied, in a manner known per se, each of the binary elements of one of the numbers by each of the binary elements of the other number, preferably simultaneously, to group together the results of the multiplication of each two bits according to the respective weights of these results, then for each result weight to count and to memorize the number of "1", to be assigned to each number of "1" thus obtained a weight which is equal to the weight of the corresponding results, to group the same weighted binary elements of the weighted numbers, to count and to store the number of "I" of each weight of the weighted numbers, and so on to obtain for each weight of binary elements of weighted numbers a number of "1" equal to at most two, and finally to add in a manner known per se weighted numbers.

Le dispositif multiplieur de mise en oeuvre du procédé conforme à la présente invention est relié aux différentes sorties de deux registres dans chacun desquels est mémorisé l'un des deux nombres à multiplier entre eux, et comporte - un étage de multiplication comprenant des portes ET à deux
entrées chacune et dont le nombre est égal au nombre total de
combinaisons possibles de chaque fois un des éléments binaires
de l'un des nombres avec un des éléments binaires de l'autre
nombre, l'une des entrées de chaque porte étant reliée à l'une
des sorties du premier des deux susdits registres, et l'autre
entrée étant reliée à une sortie de l'autre de ces deux registres,
de façon à obtenir toutes lesdites combinaisons, ces portes
étant, de préférence, regroupées suivant la somme des poids des
deux éléments binaires correspondants, - un ou plusieurs étages de traitement comprenant chacun plusieurs
blocs de détermination de nombre de "I" à chacun desquels on
attribue un poids depuis le poids zéro jusqu'au poids maximal
nécessaire, ces blocs ayant chacun un registre ou des bornes de
sortie, les cellules de ce registre ou les bornes de sortie étant
affectées d'un poids égal à leur propre poids augmenté du poids
-attribué à leurs blocs de détermination, les différentes entrées
de ces blocs étant à chaque fois reliées, pour le premier étage,
aux sorties de toutes les portes ET recevant deux éléments
binaires dont la somme des poids est la même, et pour le ou les
étages suivants, aux sorties de toutes les cellules ou aux bornes
de sortie de l'étage précédent et ayant, après pondération, le
meme poids, les blocs de détermination du dernier étage de traite
ment ayant au maximum deux bornes de sortie ou un registre à deux
cellules au maximum, les sorties du dernier étage de traitement
étant reliées à des entrées correspondantes d'un additionneur
rapide.
The multiplier device for implementing the method according to the present invention is connected to the different outputs of two registers in each of which is stored one of the two numbers to be multiplied between them, and comprises - a multiplication stage comprising AND gates to two
each entry and whose number equals the total number of
possible combinations of each time one of the binary elements
of one of the numbers with one of the binary elements of the other
number, one of the inputs of each door being connected to one
outputs of the first of the two aforesaid registers, and the other
input being connected to an output of the other of these two registers,
in order to obtain all of these combinations, these doors
being preferably grouped according to the sum of the weights of the
two corresponding bits, - one or more processing stages each comprising several
number determination blocks of "I" to each of which one
assigns weight from zero to maximum weight
necessary, these blocks each having a register or
output, the cells of this register or the output terminals being
assigned a weight equal to their own weight plus weight
-assigned to their determination blocks, the different inputs
of these blocks being each time connected, for the first floor,
at the outputs of all AND gates receiving two elements
binaries whose sum of weights is the same, and for the
following stages, at the outputs of all the cells or at the terminals
of the previous stage and having, after weighting, the
same weight, the determination blocks of the last milking stage
with a maximum of two output terminals or a two-digit
maximum cells, the outputs of the last treatment stage
being connected to corresponding inputs of an adder
quick.

Selon un mode de réalisation préféré de l'invention, chaque bloc de détermination de nombre de " 1 1t comporte un circuit de transcodage ayant une structure pyramidale à plusieurs étages de traitement, l'étage d'entrée, à la base de la pyramide, comportant en parallèle plusieurs circuits transcodeurs élémentaires fournissant chacun sur ses différentes sorties la valeur, en binaire pur, du nombre de 11 1I pour chaque poids binaire des nombres ou parties de nombres arrivantsur toutes ses entrées, les sorties d'au moins deux
circuits transcodeurs différents étant regroupées à chaque fois à
l'entrée d'un circuit additionneur, plusieurs étages de tels
circuits additionneurs étant disposés en cascade, le dernier étage,
au sommet de la pyramide, ne comportant qu'un seul circuit addi
tionneur.
According to a preferred embodiment of the invention, each number determination block has a transcoding circuit having a multi-stage pyramidal processing structure, the input stage, at the base of the pyramid, comprising in parallel a plurality of elementary transcoder circuits each providing on its different outputs the value, in pure binary, of the number of 11 1I for each bit weight of the numbers or parts of numbers arriving on all its inputs, the outputs of at least two
different transcoder circuits being grouped each time at
the input of an adder circuit, several stages of such
adding circuits being arranged in cascade, the last stage,
at the top of the pyramid, with only one addi
tionneur.

La présente invention sera mieux comprise à l'aide de la des
cription détaillée d'un mode de réalisation puis comme exemple non
limitatif et illustré par le dessin annexé, sur lequel
La figure I est un schéma simplifié d'un multiplieur conforme
à la présente invention,
La figure 2 est un schéma synoptique d'un transcodeur du multi
plieur de la figure i, et,
La figure 3 est un schéma partiel d'une variante du dispositif
de la figure 1.
The present invention will be better understood by means of the
detailed description of an embodiment and then as a non
limiting and illustrated by the attached drawing, in which
Figure I is a simplified diagram of a compliant multiplier
to the present invention,
FIG. 2 is a block diagram of a transcoder of the multi
Folder of Figure i, and,
FIG. 3 is a partial diagram of a variant of the device
of Figure 1.

Le multiplieur représenté schématiquement et partiellement sur
la figure I est destiné à la multiplication de deux mots binaires
A et B comportant chacun 64 éléments binaires respectivement réfé
rencés A0 à A63 et BO à B63. Il est toutefois bien entendu que
l'invention n'est pas limitée à des mots de 64 éléments binaires
chacun, et que des mots de n'importe quelle longueur peuvent être
multipliés entre eux, l'un d'eux pouvant meme etre plus long que
l'autre, le dispositif multiplieur étant alors modifié en consé
quence, d'une façon évidente pour l'homme de l'art à la lecture de
la description ci-dessous.Pour simplifier la figure I, ni les
entrées de signaux d'horloge des divers registres, ni les liaisons
de ces entrées à une source de signaux d'horloge appropriée, ni
cette source n'ont été représentées.
The multiplier shown schematically and partially on
FIG. 1 is intended for the multiplication of two binary words
A and B each having 64 bits respectively referenced
A0 to A63 and BO to B63. It is understood, however, that
the invention is not limited to words of 64 bits
each, and that words of any length can be
multiplied between them, one of them may even be longer than
the other, the multiplier device then being modified accordingly
quence, in a manner obvious to those skilled in the art on reading
the description below. To simplify Figure I, neither the
clock inputs of the various registers, or the links
such inputs to an appropriate clock signal source, or
this source have been represented.

Les deux nombres A, BF sont disponibles dans des registres 1,
2 respectivement, ces deux registres pouvant par exemple être les
registres de sortie de mémoires mortes ou vives. Chacune des cel veules des registres I et 2 est reliée à un fil correspondant d!une
matrice 3, 4 respectivement., de fils parallèles. Toutefois, des
matrices de toute autre conformation appropriée peuvent etre uti
lisées. A chaque fois un fil de la matrice 3 et un fil de la
matrice 4 est relié à une entrée d'une porte ET à deux entrées de
façon à obtenir toutes les combinaisons possibles de chacun des éléments binaires du nombre A avec chacun des éléments binaires du nombre B.Dans le cas où les nombres A et B ont 64 éléments binaires chacun, il existe donc 4096 combinaisons possibles. Ces différentes combinaisons et leurs poids respectifs peuvent par exemple être déterminés d'après le tableau 1 ci-dessous, dans lequel N désigne le nombre de combinaisons par poids. Dans ce tableau 1, la première colonne contient toutes les combinaisons de BO avec chacun des éléments binaires de A, de AOBO à A63BO, la seconde colonne contient toutes les combinaisons de Bl avec chacun des éléments binaires de
A, et ainsi de suite jusqu'à la 64è colonne qui contient toutes les combinaisons de B63 avec chacun des éléments binaires de A.
The two numbers A, BF are available in registers 1,
2, these two registers could for example be the
output registers of read / write memories. Each of the cells of the registers I and 2 is connected to a corresponding wire of a
matrix 3, 4 respectively, of parallel wires. However,
matrices of any other appropriate conformation can be used
lisées. Each time a wire of the matrix 3 and a wire of the
matrix 4 is connected to an input of an AND gate with two inputs of
in order to obtain all possible combinations of each of the bits of the number A with each of the bits of the number B. In the case where the numbers A and B have 64 bits each, there are therefore 4096 possible combinations. These different combinations and their respective weights can for example be determined from Table 1 below, in which N denotes the number of combinations by weight. In this table 1, the first column contains all the combinations of BO with each of the bits of A, from AOBO to A63BO, the second column contains all the combinations of B1 with each of the bit elements of
A, and so on until the 64th column which contains all the combinations of B63 with each of the binary elements of A.

Ces combinaisons sont disposées de haut en bas par ordre croissant de leurs poids respectifs. Ainsi, pour le poids 0, il n'existe qu'une seule combinaison : AOBO, qui est donc la seule combinaison de la première rangée. Pour le poids 1, (deuxième rangée) il existe deux combinaisons : AIBO et AOB1, et ainsi de suite jusqu'à la 127è rangée qui contient seulement A63B63 , TABLEAU I

Figure img00050001
These combinations are arranged from top to bottom in ascending order of their respective weights. Thus, for weight 0, there is only one combination: AOBO, which is therefore the only combination of the first row. For weight 1, (second row) there are two combinations: AIBO and AOB1, and so on until the 127th row which contains only A63B63, TABLE I
Figure img00050001

Poids <SEP> Combinaisons <SEP> d'éléments <SEP> binaires <SEP> N
<tb> 0 <SEP> A0B0 <SEP> 1
<tb> 1 <SEP> A1B0 <SEP> A0B1 <SEP> 2
<tb> 2 <SEP> A2B0 <SEP> A1B1 <SEP> A0B2 <SEP> 3
<tb> 3 <SEP> A3B0 <SEP> A2B1 <SEP> A1B2 <SEP> A0B3 <SEP> 4
<tb> ................................................................................................
<tb> ................................................................................................
<tb> 59 <SEP> A59B0 <SEP> A58B1 <SEP> .................... <SEP> A0B59 <SEP> 60
<tb> 60 <SEP> A60B0 <SEP> A59B1 <SEP> ......................... <SEP> A0B60 <SEP> 61
<tb> 61 <SEP> A61B0 <SEP> A60B1 <SEP> A59B2 <SEP> ......................... <SEP> A0B61 <SEP> 62
<tb> 62 <SEP> A62B0 <SEP> A61B1 <SEP> A60B2 <SEP> ......................... <SEP> A1B61 <SEP> A0B62 <SEP> 63
<tb> 63 <SEP> A63B0 <SEP> A62B1 <SEP> A61B2 <SEP> ................................ <SEP> A1B62 <SEP> A0B63 <SEP> 64
<tb> 64 <SEP> A63B1 <SEP> A62B2 <SEP> ................................ <SEP> A2B62 <SEP> A1B63 <SEP> 63
<tb> 65 <SEP> A63B2 <SEP> ................................<SEP> A3B62 <SEP> A2B63 <SEP> 62
<tb> 66 <SEP> A63B3 <SEP> .......................... <SEP> A4B62 <SEP> A3B63 <SEP> 61
<tb> 67 <SEP> A63B4 <SEP> .................... <SEP> A5B62 <SEP> A4B63 <SEP> 60
<tb> ................................................................................................
<tb> ................................................................................................
<tb> 124 <SEP> A63B61 <SEP> A62B62 <SEP> A61B63 <SEP> 3
<tb> 125 <SEP> A63B62 <SEP> A62B63 <SEP> 2
<tb> 126 <SEP> A63B63 <SEP> 1
<tb>
<SEP><SEP> Weights of <SEP> Binaries <SEP> N
<tb> 0 <SEP> A0B0 <SEP> 1
<tb> 1 <SEP> A1B0 <SEP> A0B1 <SEP> 2
<tb> 2 <SEP> A2B0 <SEP> A1B1 <SEP> A0B2 <SEP> 3
<tb> 3 <SEP> A3B0 <SEP> A2B1 <SEP> A1B2 <SEP> A0B3 <SEP> 4
<tb> ............................................... .................................................
<tb> ............................................... .................................................
<tb> 59 <SEP> A59B0 <SEP> A58B1 <SEP> .................... <SEP> A0B59 <SEP> 60
<tb> 60 <SEP> A60B0 <SEP> A59B1 <SEP> ......................... <SEP> A0B60 <SEP> 61
<tb> 61 <SEP> A61B0 <SEP> A60B1 <SEP> A59B2 <SEP> ......................... <SEP> A0B61 <SEP > 62
<tb> 62 <SEP> A62B0 <SEP> A61B1 <SEP> A60B2 <SEP> ......................... <SEP> A1B61 <SEP > A0B62 <SEP> 63
<tb> 63 <SEP> A63B0 <SEP> A62B1 <SEP> A61B2 <SEP> ............................... <SEP> A1B62 <SEP> A0B63 <SEP> 64
<tb> 64 <SEP> A63B1 <SEP> A62B2 <SEP> ................................ <SEP> A2B62 <SEP> A1B63 <SEP> 63
<tb> 65 <SEP> A63B2 <SEP> ................................ <SEP> A3B62 <SEP> A2B63 <SEP> 62
<tb> 66 <SEP> A63B3 <SEP> .......................... <SEP> A4B62 <SEP> A3B63 <SEP> 61
<tb> 67 <SEP> A63B4 <SEP> .................... <SEP> A5B62 <SEP> A4B63 <SEP> 60
<tb> ............................................... .................................................
<tb> ............................................... .................................................
<tb> 124 <SEP> A63B61 <SEP> A62B62 <SEP> A61B63 <SEP> 3
<tb> 125 <SEP> A63B62 <SEP> A62B63 <SEP> 2
<tb> 126 <SEP> A63B63 <SEP> 1
<Tb>

Les différentes portes ET ainsi reliées aux différents fils des matrices 3 et 4 forment un étage de multiplication 5. Pour la clarté du dessin, les différentes portes de l'étage 5 ont été groupées par poids successivement croissants de haut en bas, depuis le poids zéro jusqu'au poids 126. On détermine ainsi que du poids zéro au poids 63 le nombre de combinaisons d'éléments binaires par poids varie depuis une jusqu a 64, valeur maximale, et que ce nombre décroît régulièrement jusqu a une combinaison pour le poids 126, les poids étant référencés p, de p=O à p=126. The different AND gates thus connected to the various wires of the matrices 3 and 4 form a multiplication stage 5. For the clarity of the drawing, the different doors of the stage 5 have been grouped by weight successively increasing from top to bottom, since the weight Zero to weight 126. It is thus determined that from zero weight to weight 63 the number of combinations of bits per weight varies from one to a maximum of 64, and that this number regularly decreases to a combination for weight. 126, the weights being referenced p, from p = 0 to p = 126.

L'étage de multiplication 5 est suivi d'un premier étage de traitement 6 se composant de transcodeurs dont un exemple de réalisation est représenté sur la figure 2. Chacun de ces transcodeurs est affecté d'un poids, depuis 0 jusqu'à 126, et est relié aux sorties de toutes les portes ET correspondant aux combinaisons d'éléments binaires de mme poids. Les transcodeurs de l'étage 6 ont donc des tailles correspondant aux nombres de combinaisons pour chaque poids considéré. Ainsi, pour le poids zéro, le transcodeur peut être une simple bascule bistable, puisqu'il a une seule entrée, tandis que celui affecté du poids 63 comporte 64 entrées. The multiplication stage 5 is followed by a first processing stage 6 consisting of transcoders, an exemplary embodiment of which is shown in FIG. 2. Each of these transcoders is assigned a weight, from 0 to 126, and is connected to the outputs of all AND gates corresponding to bit combinations of the same weight. Transcoders of stage 6 therefore have sizes corresponding to the number of combinations for each weight considered. Thus, for the zero weight, the transcoder may be a simple flip-flop, since it has only one input, while the assigned one of the weight 63 has 64 inputs.

Etant donné que comme expliqué ci-dessous, les transcodeurs comportent un registre de sortie dont le nombre de cellules est égal au nombre maximal d'éléments binaires du nombre, exprimé en notation binaire, d'éléments binaires "1" présents sur ses différentes entrées, le nombre de cellules des registres de sortie des différents transcodeurs de l'étage de traitement 6 varie depuis 1 jusqu'à 7, une cellule de registre étant suffisante pour les poids zéro et 126, et sept cellules étant nécessaires pour le transcodeur correspondant au poids 63. La détermination du nombre de cellules de chaque registre de sortie des transcodeurs de l'étage 6 étant aussi aisée que la détermination du nombre de combinaisons d'éléments binaires par poids, elle ne sera pas expliquée plus en détail ci-dessous.On notera simplement que l'étage 6 comporte 127 transcodeurs, les transcodeurs affectés aux poids zéro et 126 pouvant être de simples bascules bistables. Since, as explained below, the transcoders comprise an output register whose number of cells is equal to the maximum number of bits of the number, expressed in binary notation, of bits "1" present on its various inputs. , the number of cells of the output registers of the different transcoders of the processing stage 6 varies from 1 to 7, a register cell being sufficient for the zero and 126 weights, and seven cells being necessary for the transcoder corresponding to the 63. Determining the number of cells in each output register of the transcoders of stage 6 being as easy as determining the number of combinations of bits by weight, it will not be explained in more detail below. It will be noted simply that the stage 6 comprises 127 transcoders, the transcoders assigned to the zero weights and 126 can be simple flip-flops.

Le premier étage de traitement 6 est suivi d'un second étage de traitement 7 également composé de transcodeurs similaires à ceux de l'étage 6, mais plus petits que ces derniers, mis à part le transcodeur correspondant au poids zéro, qui reste de même taille et peut être une bascule bistable. The first processing stage 6 is followed by a second processing stage 7 also composed of transcoders similar to those of the stage 6, but smaller than the latter, apart from the transcoder corresponding to the zero weight, which remains the same size and can be a flip-flop.

Les transcodeurs de l'étage 7 sont reliés aux sorties des cellules des registres de sortie des transcodeurs de l'étage 6 de la manière suivante On pondère les cellules des registres de sortie de chaque transcodeur de l'étage 6 en affectant à chaque cellule contenant l'élément binaire le moins significatif le même poids que celui affecté à ce transcodeur. Bien entendu, dans chaque registre de sortie des transcodeurs de l'étage 6, les cellules affectées aux éléments binaires de poids supérieurs sont pondérées en conséquence : ainsi, pour un transcodeur affecté du poids n, la cellule contenant l'élément binaire de poids le plus faible du registre de sortie est affectée du poids n, la cellule suivante du même registre est affectée du poids n+1, et ainsi de suite. The transcoders of stage 7 are connected to the outputs of the cells of the output registers of the transcoders of stage 6 in the following manner. The cells of the output registers of each transcoder of stage 6 are weighted by assigning each cell containing the least significant bit the same weight as that assigned to this transcoder. Of course, in each output register of the transcoders of the stage 6, the cells assigned to the binary elements of higher weight are weighted accordingly: thus, for an affected transcoder of the weight n, the cell containing the binary element of weight the the lower of the output register is assigned the weight n, the next cell of the same register is assigned weight n + 1, and so on.

On regroupe ensuite les sorties des cellules des registres de sortie des transcodeurs de l'étage 6 suivant leurs poids respectifs, et on les relie aux entrées des transcodeurs de poids correspondants de l'étage 7, chaque transcodeur de l'étage 7 étant également affecté d'un poids. The outputs of the cells of the output registers of the transcoders of the stage 6 are then grouped according to their respective weights, and they are connected to the inputs of the transcoders of corresponding weight of the stage 7, each transcoder of the stage 7 being equally assigned a weight.

On peut facilement vérifier que l'étage de traitement 7 comporte 127 transcodeurs, les deux premiers transcodeurs, affectés des poids zéro et 1, ayant une seule entrée et une seule sortie chacun, et pouvant donc également être de simples bascules bistables. On peut également facilement vérifier que, du fait que les transcodeurs de l'étage 7 ont au maximum 7 entrées, leurs registres de sortie comportent au maximum trois cellules. On notera en particulier que dans l'étage de traitement 7, le transcodeur affecté du poids 126 comporte deux entrées, et que donc son registre de sortie doit comporter deux cellules. It can easily be verified that the processing stage 7 comprises 127 transcoders, the first two transcoders, assigned weights zero and 1, having a single input and a single output each, and therefore can also be simple flip-flops. It can also be easily verified that, since the transcoders of the stage 7 have at most 7 inputs, their output registers comprise a maximum of three cells. It will be noted in particular that in the processing stage 7, the weighted transcoder 126 has two inputs, and therefore its output register must comprise two cells.

De la même façon que pour les registres de sortie des transcodeurs de l'étage 6, on pondère les cellules des registres de sortie des transcodeurs de l'étage 7 On relie ensuite les sorties des cellules des registres de sortie de l'étage 7 à des entrées correspondantes de transcodeurs d'un étage de traitement 8, ces transcodeurs de l'étage 8 étant également affectés chacun d'un poids binaire différent. Etant donné que dans l'étage 7 le registre de sortie du transcodeur affecté du poids 126 comporte deux cellules, la cellule comportant l'élément binaire de poids. In the same way as for the output registers of the transcoders of the stage 6, the cells of the output registers of the transcoders of the stage 7 are weighted. The outputs of the cells of the output registers of the stage 7 are then connected to corresponding inputs of transcoders of a processing stage 8, these transcoders of the stage 8 are also each assigned a different bit weight. Since in stage 7 the output register of the weight assigned transcoder 126 has two cells, the cell has the weight bit.

le plus élevé aura, après pondération, le poids binaire 127, et par conséquent l'étage 8 doit comporter un transcodeur affecté du poids p =127. Par conséquent, l'étage de traitement 8 comporte 128 transcodeurs affectés respectivement des poids zéro à 127, On remarquera que dans l'étage 8, les trois premiers transcodeurs affectés des poids zéro à 2, et le dernier transcodeur affecté au poids 127, ne comportent qu'une seule entrée et une seule sortie chacun,
Les sorties des différents registres de sortie de l'étage de traitement 8 sont reliées à un dernier étage de traitement 9 de la façon suivante.
the highest will, after weighting, the bit weight 127, and therefore the stage 8 must include a transcoder assigned the weight p = 127. Consequently, the processing stage 8 comprises 128 transcoders respectively assigned weights zero to 127. It will be noted that in the stage 8, the first three transcoders assigned weight zero to 2, and the last transcoder assigned to the weight 127, do not have only one entry and one exit each,
The outputs of the different output registers of the processing stage 8 are connected to a last processing stage 9 in the following manner.

Les cellules de sortie des trois premiers transcodeurs de poids les plus faibles de l'étage de traitement 8 sont reliées à un registre 10, tandis que les registres de sortie de tous les autres transcodeurs de l'étage de traitement 8 sont reliés à un additionneur rapide 11. Les trois sorties du registre 10, correspondant à ses trois entrées, sont référencées S0 à S2, et les 125 sorties de l'additionneur rapide 11 sont respectivement référencées S3 à 8127,
Sur les sorties S0 à S127, on recueille le résultat de la multiplication de A par B, le poids des éléments binaires du résultat correspondant aux numéros de chacune des sorties précitées S0 à 8127. On remarquera que l'on peut remplacer les portes ET par tout circuit réalisant la même fonction, par exemple des registres ou des circuits PLA
On va maintenant décrire, en référence à la figure 2, la structure du circuit transcodeur le plus volumineux utilisé dans le multiplieur représenté sur la figure 1, à savoir le transcodeur de l'étage de traitement 6 affecté au'poids binaire 63 et comportant 64 entrées, la structure des autres transcodeurs, comportant un plus faible nombre d'entrées, se déduisant d'une manière évidente pour l'homme de l'art de la structure du transcodeur représenté sur la figure 2 et décrit ci-dessous.
The output cells of the first three least significant transcoders of the processing stage 8 are connected to a register 10, while the output registers of all the other transcoders of the processing stage 8 are connected to an adder 11. The three outputs of the register 10, corresponding to its three inputs, are referenced S0 to S2, and the 125 outputs of the fast adder 11 are respectively referenced S3 to 8127,
On the outputs S0 to S127, the result of the multiplication of A by B is collected, the weight of the bits of the result corresponding to the numbers of each of the aforementioned outputs S0 to 8127. It will be noted that the AND gates can be replaced by any circuit performing the same function, for example registers or PLA circuits
With reference to FIG. 2, the structure of the largest transcoder circuit used in the multiplier represented in FIG. 1, namely the transcoder of the processing stage 6 assigned to the bit weight 63 and comprising 64 inputs, the structure of other transcoders, having a lower number of inputs, deduced in a manner obvious to those skilled in the art of the structure of the transcoder shown in Figure 2 and described below.

Le transcodeur 11 représente sur la figure 2, comporte 64 entrées respectivement référencées E0 à E63. Le transcodeur 11 comporte un premier étage de traitement 12 comprenant quatre circuits convertisseurs respectivement référencés 13, 14, 15 et 16
Les circuits convertisseurs 13 à 16 comportent chacun 16 entrées, et sont par exemple des circuits logiques connus sous la désignation PLA (programmable logic array), c'est-à-dire des circuits logiques programmables.Les circuits logiques 13 à 16 sont réalisés, de façon connue en soi, pour présenter sur leurs sorties la valeur, en notation binaire pure, du total "1" présents sur toutes leurs entrées, Etant donné que chacun des circuits 13 à 16 comporte 16 entrées, il y a au maximum 16 "1" présents sur leurs entrées à un instant déterminé, et ces circuits doivent comporter 5 sorties chacun du fait qu'il faut 5 éléments binaires pour représenter tous les nombres de 0 à 16.
The transcoder 11 represents in FIG. 2, comprises 64 inputs respectively referenced E0 to E63. The transcoder 11 comprises a first processing stage 12 comprising four converter circuits respectively referenced 13, 14, 15 and 16
The converter circuits 13 to 16 each have 16 inputs, and are, for example, logic circuits known under the designation PLA (programmable logic array), that is to say programmable logic circuits. Logic circuits 13 to 16 are implemented, in a manner known per se, to present on their outputs the value, in pure binary notation, of the total "1" present on all their inputs, Since each of the circuits 13 to 16 has 16 inputs, there is a maximum of 16 " 1 "present on their inputs at a given time, and these circuits must have 5 outputs each because it takes 5 bits to represent all the numbers from 0 to 16.

Les sorties des circuits convertisseurs 13 et 14 sont reliées à un registre 17 à 10 cellules, et les sorties des circuits convertisseurs 15 et 16 sont reliées à des entrées correspondantes d'un registre 18 à 10 cellules. Les dix sorties du registre 17 sont reliées à des entrées correspondantes d'un additionneur 19, tandis que les dix sorties du registre 18 sont reliées à des entrées correspondantes d'un autre additionneur 20, les additionneurs 19 et 20 formant un étage d'addition 21. The outputs of the converter circuits 13 and 14 are connected to a register 17 to 10 cells, and the outputs of the converter circuits 15 and 16 are connected to corresponding inputs of a register 18 to 10 cells. The ten outputs of the register 17 are connected to corresponding inputs of an adder 19, while the ten outputs of the register 18 are connected to corresponding inputs of another adder 20, the adder 19 and 20 forming an addition stage 21.

Etant donné que les additionneurs 19 et 20 sont reliés chacun à 2 circuits convertisseurs de l'étage d'entrée 12, ils doivent pouvoir présenter chacun sur leurs sorties un nombre au plus égal à 32, c'est-à-dire un nombre représenté sur 6 éléments binaires significatifs au maximum. Les additionneurs 19 et 20 doivent donc comporter chacun 6 sorties, Les 6 sorties de l'additionneur 19 sont reliées à des entrées correspondantes d'un registre à bascules bistables 22, tandis que les 6 sorties de l'additionneur 20 sont reliées à des entrées correspondantes d'un registre à bascules bistables 23. Les 6 sorties de chacun des deux registres 22 et 23 sont reliées à des entrées correspondantes d'un additionneur 24. Since the adders 19 and 20 are each connected to 2 converter circuits of the input stage 12, they must each be able to present on their outputs a number at most equal to 32, that is to say a number represented on 6 significant bits at most. The adders 19 and 20 must therefore each have 6 outputs, the 6 outputs of the adder 19 are connected to corresponding inputs of a flip-flop register 22, while the 6 outputs of the adder 20 are connected to inputs The six outputs of each of the two registers 22 and 23 are connected to corresponding inputs of an adder 24.

Etant donné que l'additionneur 24 doit présenter sur ses sorties un nombre au plus égal à 64, c'est-à-dire le nombre maximal d'entrées du transcodeur 11, cet additionneur 24 doit comporter sept sorties. Les sept sorties de l'additionneur 24 sont reliées, par l'intermédiaire d'un registre à baseulisbistabls 25 à sept bornes de sorties respectivement référencées S0 à S6 formant les sept sorties du dispositif transcodeur 11. Since the adder 24 must have at its outputs a number at most equal to 64, that is to say the maximum number of inputs of the transcoder 11, this adder 24 must have seven outputs. The seven outputs of the adder 24 are connected, by means of a bassinet register 25 to seven output terminals respectively referenced S0 to S6 forming the seven outputs of the transcoder device 11.

Les entrées CK de signaux d'horloge des registres 17, 18, 22, 23 et 25 sont toutes reliées à une borne commune 26 qui est elle-même reliée à un générateur de signaux d'horloge (non représente). The clock signal inputs CK of the registers 17, 18, 22, 23 and 25 are all connected to a common terminal 26 which is itself connected to a clock signal generator (not shown).

Il est bien entendu que le dispositif transcodeur représenté sur la figure 2 pourrait être constitué différemment si l'on disposait d'autres circuits : en particulier si l'on disposait de circuits logiques programmables à 64 entrées, le circuit de la figure 2 se réduirait à un seul tel circuit dont les sept sorties seraient reliées directement ou éventuellement par l'intermédiaire d'un registre aux bornes S0 à S6, ce qui augmenterait bien entendu la rapidité de traitement du circuit transcodeur. It is understood that the transcoder device shown in FIG. 2 could be constituted differently if other circuits were available: in particular if there were programmable logic circuits with 64 inputs, the circuit of FIG. 2 would be reduced to a single such circuit whose seven outputs would be connected directly or possibly via a register terminals S0 to S6, which would of course increase the processing speed of the transcoder circuit.

On va maintenant expliquer le fonctionnement du multiplieur décrit ci-dessus On sait qu'une porte ET permet de réaliser la multiplication de deux éléments binaires arrivant chacun sur l'une de ses deux entrées Etant donné que l'on a envisagé toutes les combinaisons possibles de chacun des éléments binaires du nombre A avec chacun des éléments binaires du nombre B, et que chacune de ces combinaisons est réalisée sous forme d'une multiplication par une porte ET correspondante, il faut et il suffit pour obtenir le produit A.B, -de faire la somme de tous les résultats partiels disponibles à la sortie des portes ET de l'étage 5, en tenant compte, bien entendu, du poids de chacun des résultats partiels. We will now explain the operation of the multiplier described above It is known that an AND gate allows for the multiplication of two bits each arriving on one of its two inputs Since all possible combinations have been considered of each of the binary elements of the number A with each of the binary elements of the number B, and that each of these combinations is realized in the form of a multiplication by a corresponding AND gate, it is necessary and sufficient to obtain the product AB, -de sum all the partial results available at the exit of the AND gates of the stage 5, taking into account, of course, the weight of each of the partial results.

A cet effet, on regroupe, pour chacun des 126 poids de résultats de multiplication, tous les résultats partiels de multiplication correspondants. Les étages de traitement 6, 7, 8 et 9 de la figure 1 sont destinés à réaliser, le plus rapidement possible, la somme de tous les résultats partiels, compte tenu de leurs poids respectifs.For this purpose, for each of the weights of multiplication results, all corresponding partial multiplication results are grouped together. The processing stages 6, 7, 8 and 9 of FIG. 1 are intended to produce, as quickly as possible, the sum of all the partial results, given their respective weights.

On va maintenant expliquer à l'aide d'un exemple simplifié de multiplication la façon dont fonctionnent les étages de traitement 6 à 9. We will now explain using a simplified example of multiplication how the processing stages 6 to 9 work.

On prend par exemple deux nombres A et B tels que A = 311 et
B = 249 soit, en notation binaire : A = 100110111, B = 011111001.
For example, we take two numbers A and B such that A = 311 and
B = 249 is, in binary notation: A = 100110111, B = 011111001.

La multiplication de A par B s'écrit de façon connue en soi comme on le voit ci-dessous, (tableau 2) mais, au lieu de déterminer colonne par colonne, le résultat en reportant à la colonne suivante toutes les retenues éventuelles on détermine, pour chaque colonne, le nombre de "1" y figurant sans s'occuper des éventuelles retenues, ce nombre de "1" étant écrit à la dernière rangée du tableau 2, en notation décimale. The multiplication of A by B can be written in a manner known per se as shown below (Table 2) but, instead of determining column by column, the result by referring to the next column all the possible detentions determined. , for each column, the number of "1" appearing there without taking care of possible deductions, this number of "1" being written in the last row of table 2, in decimal notation.

TABLEAU 2
100110111 100110111
100110111
100110111
100110111 100110111
1112323543431111
On établit ensuite le tableau 3 ci-dessous en convertissant en notation binaire le nombre, exprimé ci-dessus en notation décimale, de "1" pour chaque colonne, et en pondérant chacun de ces nombres selon sa colonne, c'est-à-dire en affectant à chacun de ces nombres le poids de la colonne correspondante, la colonne la plus à droite ayant bien entendu le poids 0, qui est le poids de l'élément binaire le moins significatif du nombre A. On obtient ainsi le tableau 3 ci-dessous, en remarquant que le nombre le plus élevé de "1" est de cinq, c'est-à-dire qu'il suffit de trois élé- ments binaires au maximum pour représenter tous ces nombres de "1".
TABLE 2
100110111 100110111
100110111
100110111
100110111 100110111
1112323543431111
Table 3 below is then obtained by converting the number, expressed in decimal notation, of "1" for each column in binary notation, and weighting each of these numbers according to its column, that is, say by assigning to each of these numbers the weight of the corresponding column, the rightmost column having of course the weight 0, which is the weight of the least significant bit of the number A. This gives the table 3 below, noting that the highest number of "1" is five, that is, only three bits are required to represent all of these "1" numbers.

A TABLEAU 3
001
001
001
001
011
100
011
100
101
011
010
011
010
001 001
-001
001121222121111111
A la dernière rangée de ce tableau 3, on a reporté, en notation décimale, le nombre de "1" pour chaque colonne correspondante
A partir du tableau 3* on recommence la pondération du résultat du comptage de "1" de chaque colonne, et l'on obtient alors le tableau 4 ci-dessous, dans lequel la première ligne du résultat indique, en notation décimale, le nombre de "1" dans chaque colonne, et la deuxième ligne est le résultat de l'addition de deux nombres binaires fictifs que l'on obtiendrait en disposant le tableau 4 sur deux lignes
TABLEAU 4 Ol
01
01
01
01
01
01
10
01
10
10
10
01
10
01
'01-
01202110201111111
10010111001111111
On constate que le résultat d'addition figurant à la dernière ligne du tableau 4 est égal au résultat de la multiplication de A par B, En partant du tableau 4, on peut recommencer la pondération du nombre de "1" et l'on obtient le tableau 5 ci-dessous dans lequel on a directement reporte sur la ligne du résultat le résultat, en notation binaire, de l'addition, colonne par colonne, des éléments binaires
TABLEAU 5
01
01
01
01
01
01 01
00
10
00
01
01
10
00
10 01
10010111001111111
On constate que le résultat d'addition du tableau 5 est aussi égal au résultat de la multiplication de A par B. Par conséquent, on peut obtenir le résultat de la multiplication de A par B d'après l'un quelconque des tableaux 2 à 5. En pratique, il est préférable de se servir du tableau 4, dans lequel chaque colonne comporte au maximum deux éléments binaires "1" Le résultat de la multiplication de A par B est alors obtenu par un additionneur binaire classique, de préférence un additionneur binaire rapide.
TABLE 3
001
001
001
001
011
100
011
100
101
011
010
011
010
001 001
-001
001121222121111111
In the last row of this table 3, the number of "1" for each corresponding column has been reported in decimal notation.
From Table 3 * the weighting of the result of the count of "1" of each column is restarted, and then Table 4 below is obtained, in which the first row of the result indicates, in decimal notation, the number of "1" in each column, and the second line is the result of the addition of two fictitious binary numbers that would be obtained by placing Table 4 on two lines
TABLE 4 Ol
01
01
01
01
01
01
10
01
10
10
10
01
10
01
'01 -
01202110201111111
10010111001111111
It can be seen that the result of addition in the last row of Table 4 is equal to the result of the multiplication of A by B. Starting from Table 4, the weighting of the number "1" can be repeated and we obtain Table 5 below, in which the result, in binary notation, of the addition, column by column, of the binary elements is directly transferred to the result line.
TABLE 5
01
01
01
01
01
01 01
00
10
00
01
01
10
00
10 01
10010111001111111
It is found that the addition result of Table 5 is also equal to the result of the multiplication of A by B. Therefore, the result of the multiplication of A by B can be obtained from any one of Tables 2 to 5. 5. In practice, it is preferable to use Table 4, in which each column has at most two bits "1" The result of the multiplication of A by B is then obtained by a conventional binary adder, preferably an adder fast binary.

Les tableaux 4 et 5 montrent que par une suite de pondérations et de comptages d'éléments binaires colonne par colonne, on arrive à obtenir un tableau dans lequel chaque colonne ne comporte plus qu'un seul élément binaire "1", il n'y a alors même plus a utiliser d'additionneur, mais à détecter la présence ou l'absence d'un élé- ment binaire "1". Toutefois, on remarquera que l'exemple décrit ci-dessus se rapporte à des nombres binaires relativement courts. Tables 4 and 5 show that, by a series of weights and counting of bits by column, we obtain a table in which each column has only one binary element "1". then even more to use adder, but to detect the presence or absence of a binary element "1". However, it will be noted that the example described above relates to relatively short binary numbers.

Si l'on a affaire à des nombres binaires beaucoup plus longs, ayant par exemple plusieurs centaines d'éléments binaires, on pourra vérifier que l'obtention d'un tableau similaire au tableau 5, c'est-à-dire d'un tableau dans lequel chaque colonne comporte au maximum un seul élément binaire "1", peut nécessiter un grand nombre de cycles de pondérations et de comptages d'éléments "1", alors que l'obtention d'un tableau similaire au tableau 4, c'està-dire d'un tableau dans lequel chaque colonne comporte au maximum deux éléments binaires, est relativement rapide.If we are dealing with much longer binary numbers, for example with several hundred bits, we can check that obtaining a table similar to Table 5, that is to say a table in which each column has at most a single binary element "1", may require a large number of weighting cycles and element counts "1", while obtaining a table similar to Table 4, c that is, a table in which each column has a maximum of two bits, is relatively fast.

On peut facilement vérifier que, lors de la multiplication de deux nombres binaires entre eux, en considérant l'un de ces deux nombres s'ils sont de meme longueur, ou en considérant le plus long d'entre eux s'ils sont de longueurs différentes, on obtient un tableau similaire au tableau 4, c'est-à-dire un tableau dans lequel chaque colonne ne comporte pas plus de deux éléments binaires "1", directement d'après un tableau similaire au tableau 2 si le nombre considéré n'a pas plus de trois éléments binaires, après une étape de pondération (réalisée par l'étage 7) si le nombre considéré comporte de 4 à 7 éléments binaires, après deux étapes de pondération (réalisées par les étages 7 et 8) si le nombre considéré comporte de 8 à 127 éléments binaires, et après trois étapes de pondération (réalisées par les étages 7 et 8 et par un étage de traitement supplémentaire inséré entre les étages 8 et 9) si le nombre considéré a de 128 à 2127-1 éléments binaires. One can easily check that, when multiplying two binary numbers between them, considering one of these two numbers if they are of the same length, or considering the longest of them if they are of lengths different, we obtain a table similar to Table 4, that is to say a table in which each column has not more than two bits "1", directly from a table similar to Table 2 if the number considered has not more than three bits, after a weighting step (performed by stage 7) if the number considered comprises from 4 to 7 bits, after two weighting steps (performed by stages 7 and 8) if the number considered comprises from 8 to 127 bits, and after three weighting steps (performed by stages 7 and 8 and by an additional processing stage inserted between stages 8 and 9) if the number considered has from 128 to 2127- 1 element binary ts.

A partir du tableau similaire au tableau 4, il n'y a plus qu'à effectuer l'addition de deux nombres binaires, et même si ces deux nombres binaires sont très longs, les additionneurs habituellement connus sont suffisamment rapides pour la plupart des applications.From the table similar to Table 4, it is only necessary to perform the addition of two binary numbers, and even if these two binary numbers are very long, the adder usually known are fast enough for most applications. .

Par conséquent, grâce au procédé de traitement exposé ci-dessus, on peut multiplier entre eux deux nombres binaires très longs dans un temps relativement très court. Therefore, thanks to the treatment method described above, two very long binary numbers can be multiplied between them in a relatively short time.

On a partiellement représenté sur la figure 3 une variante de réalisation du dispositif de la figure 1 pour réaliser la multiplication A.B. Au lieu de réaliser les circuits convertisseurs comme expliqué ci-dessus en référence à la figure 2, on supprime les additionneurs tels que les additionneurs 19, 20 et 24, on pondère directement les sorties des registres tels que 17 et 18, et on relie les sorties ainsi pondérées des registres tels que 17 et 18 aux entrées de poids correspondants du second étage de traitement qui est réalisé de la même façon que le premier étage de traitement, c'est-à-dire sans additionneurs. FIG. 3 partially shows an alternative embodiment of the device of FIG. 1 to perform the multiplication AB. Instead of producing the converter circuits as explained above with reference to FIG. 2, the adders such as the adders are omitted. 19, 20 and 24, the outputs of the registers such as 17 and 18 are directly weighted, and the thus weighted outputs of the registers such as 17 and 18 are connected to the corresponding weight entries of the second treatment stage which is produced in the same way. than the first treatment stage, that is to say without adders.

Sur le schéma partiel de la figure 3, on a représenté, pour les huit premiers poids, référencés p = 0 à p = 7, le début de l'étage de multiplication 5 à portes ET, cet étage restant inchangé par rapport à celui représenté sur la figure 1, ainsi que les huit premiers circuits de poids p = 0 à p = 7 des quatre étages de traitement 27, 28, 29 et 30 respectivement. En effet, on peut facilement démontrer qu'il faut, pour le dispositif de la figure 3, un étage de traitement de plus que pour le dispositif de la figure 1, mais chacun de ces étages de traitement ne comporte plus d'additionneurs. Chaque étage de traitement comporte seulement un circuit convertisseur tel que les circuits 13 à 16 de la figure 2, chacun des circuits convertisseurs ayant un nombre d'entrées et de sorties appropriés . Chaque circuit convertisseur est suivi d'un registre ayant un nombre de cellules correspondant.Toutefois, dans certains cas, en particulier si les circuits convertisseurs ont peu de sorties, on peut supprimer ces registres qui ne sont destinés qu'à présenter simultanément les informations de sortie de tout un étage de traitement. Dans le dispositif de la figure 3, le dernier étage de traitement, référencé 30, est suivi d'un étage 31, similaire à l'étage 9 du dispositif de la figure 1 et comportant un simple registre pour les poids 0 à 3, et un additionneur pour les autres poids. In the partial diagram of FIG. 3, for the first eight weights, referenced p = 0 to p = 7, the beginning of the multiplication stage 5 with AND gates is represented, this stage remaining unchanged with respect to that represented by FIG. in FIG. 1, as well as the first eight circuits of weight p = 0 to p = 7 of the four processing stages 27, 28, 29 and 30 respectively. Indeed, it can easily be demonstrated that for the device of FIG. 3, one more processing stage is necessary than for the device of FIG. 1, but each of these treatment stages no longer comprises adders. Each processing stage comprises only a converter circuit such as the circuits 13 to 16 of FIG. 2, each of the converter circuits having a number of appropriate inputs and outputs. Each converter circuit is followed by a register having a corresponding number of cells. However, in some cases, particularly if the converter circuits have few outputs, these registers which are intended only to present the information of output of a whole treatment stage. In the device of FIG. 3, the last processing stage, referenced 30, is followed by a stage 31, similar to the stage 9 of the device of FIG. 1 and comprising a simple register for the weights 0 to 3, and an adder for the other weights.

On peut facilement vérifier, en établissant des tableaux similaires aux tableaux 2 à 5 décrits ci-dessus, que le fonctionnement du dispositif de la figure 3 met en oeuvre le même procédé que le dispositif de la figure 1, à la seule différence que dans ces nouveaux tableaux plusieurs rangées successives peuvent avoir les mêmes poids étant donne qu il n'y a plus d'additionneurs effectuant eux mêmes la somme des éléments binaires de mêmes poids. It can easily be verified, by drawing up tables similar to Tables 2 to 5 described above, that the operation of the device of FIG. 3 implements the same method as the device of FIG. 1, with the only difference that in these new tables several successive rows may have the same weight since there are no more adders themselves carrying the sum of the binary elements of the same weight.

On remarquera que le procédé ci-dessus peut également s'appliquer si l'un des nombres A, B ou les deux se présente (nt) entièrement ou partiellement en série, les pondérations et les regroupements se faisant alors de façon évidente pour l'homme de l'art à la lumière de l'exemple décrit ci-dessus. It should be noted that the above method can also be applied if one or both of the numbers A, B and B are completely or partially in series, the weights and groupings then being obvious for the those skilled in the art in the light of the example described above.

Le dispositif de mise en oeuvre se trouve alors réduit en conséquence, et l'additionneur de l'étage 9 ou 31 est remplacé par un additionneur-accumulateur
Tous les circuits décrits ci-dessus peuvent être partiellement ou totalement intégrés, et on peut regrouper sur un même circuit intégré des transcodeurs dans un ordre différent de celui représenté sur les figures.
The implementation device is then reduced accordingly, and the adder of the stage 9 or 31 is replaced by an accumulator-adder
All the circuits described above may be partially or totally integrated, and transcoders may be grouped on the same integrated circuit in an order different from that shown in the figures.

Claims (4)

REVENDICATIONS 1. Procédé de multiplication rapide de deux nombres binaires selon lequel on multiplie, de façon connue en soi, chacun des éléments binaires de l'un des nombres par chacun des éléments binaires de l'autre nombre, de préférence simultanément, carac térisé par le fait que l'on regroupe les résultats de la multiplication de chaque fois deux éléments binaires selon les poids respectifs de ces résultats, que, pour chaque poids de résultat, on compte et on mémorise le nombre "1", que l'on pondère chaque nombre de "1" ainsi obtenu en lui affectant un poids qui est égal audit poids de résultat correspondant, que l'on regroupe les élé- ments binaires de même poids des nombres ainsi pondérés, que l'on compte et que l'on mémorise le nombre de "I" de chaque poids d'éléments binaires des nombres pondérés, que l'on procède ainsi de suite jusqu a obtenir pour chaque poids d'éléments binaires de nombres pondérés un nombre de "1" égal au plus à deux, et que l'on additionne, de façon connue en soi, les derniers nombres pondérés. 1. A method of rapid multiplication of two binary numbers in which each of the binary elements of one of the numbers is multiplied, in a manner known per se, by each of the binary elements of the other number, preferably simultaneously, charac terized by the that the results of the multiplication of each two bits are grouped according to the respective weights of these results, that, for each weight of result, the number "1" is counted and stored, that each weight is weighed number of "1" thus obtained by assigning it a weight which is equal to said corresponding result weight, which is grouped together the binary elements of the same weight of the numbers thus weighted, which are counted and stored the number of "I" of each weight of bits of the weighted numbers, which is then carried out until, for each weight of weighted number bits, a number of "1" equal to at most two is obtained, and that we ad finally, in a manner known per se, the last weighted numbers. 2. Dispositif multiplieur pour la mise en oeuvre du procédé selon la revendication 1, relié aux différentes sorties parallèles de deux registres dans lesquels sont mémorisés les deux nombres à multiplier entre eux, caractérisé par le fait qu'il comporte : - un étage de multiplication comprenant des portes ET à deux entrées 2. Multiplier device for implementing the method according to claim 1, connected to the different parallel outputs of two registers in which are stored the two numbers to be multiplied between them, characterized in that it comprises: - a multiplication stage comprising AND gates with two inputs chacune et dont le nombre est égal au nombre total de combi each and whose number is equal to the total number of combi naisons possibles de chaque fois un des éléments binaires de l'un  possible each time one of the binary elements of one des nombres avec un des éléments binaires de l'autre nombre, numbers with one of the binary elements of the other number, l'une des entrées de chaque porte ET étant reliée à l'une des one of the inputs of each AND gate being connected to one of the sorties du premier des deux susdits registres, et l'autre entrée outputs of the first of the two aforesaid registers, and the other input étant reliée à une sortie de l'autre de ces deux registres, de being connected to an output of the other of these two registers, façon à obtenir toutes lesdites combinaisons, ces portes étant, way to get all the said combinations, these doors being, de préférence, regroupées suivant la somme des poids des deux élé-  preferably grouped according to the sum of the weights of the two ments binaires correspondants, - un ou plusieurs étages de traitement comprenant chacun plusieurs corresponding binary elements, - one or more treatment stages each comprising several blocs de détermination de nombre de "1" à chacun desquels on number determination blocks of "1" to each of which one attribue un poids depuis le poids 0 jusqu'au poids maximal assigns a weight from weight 0 to maximum weight nécessaire, ces blocs de détermination ayant chacun un registre necessary, these determination blocks each having a register ou des bornes de sortie; les cellules de ce registre ou les bornes de sortie étant affectées d'un poids égal à leur propre poids augmenté du poids attribué à leurs blocs de détermination, les différentes entrées de ces blocs de détermination étant à chaque fois reliées, pour le premier étage, aux sorties de toutes les portes ET recevant deux éléments binaires dont la somme des poids est la même, et pour le ou les étages suivants, aux sorties de toutes les cellules ou aux bornes de sortie de l'étage précé- dent et ayant, après pondération, le même poids, les blocs de détermination du dernier étage de traitement ayant au maximum deux bornes de sortie ou un registre à deux cellules au maximum, - un additionneur rapide dont les différentes entrées sont reliées aux sorties correspondantes du dernier étage de traitement. or output terminals; the cells of this register or the output terminals being assigned a weight equal to their own weight plus the weight assigned to their determination blocks, the different inputs of these determination blocks being each time connected, for the first stage, at the outputs of all the AND gates receiving two bits whose sum of weights is the same, and for the next stage or stages, to the outputs of all the cells or to the output terminals of the preceding stage and having, after weighting, the same weight, the determination blocks of the last processing stage having a maximum of two output terminals or a maximum two-cell register, - a fast adder whose different inputs are connected to the corresponding outputs of the last processing stage. 3. Dispositif multiplieur selon la revendication 2, caractérisé par le fait que chaque bloc de détermination de nombre de "1" comporte un circuit de transcodage ayant une structure pyramidale à plusieurs étages de traitement, l'étage d'entrée, à la base de la pyramide, comportant en parallèle plusieurs circuits transcodeurs élémentaires fournissant chacun sur ses différentes sorties la valeur, en binaire pur, du nombre "1" pour chaque poids binaire des nombres ou parties de nombres arrivant sur toutes ses entrées, les sorties d'au moins deux circuits transcodeurs différents étant regroupées à chaque fois à l'entrée d'un circuit additionneur, plusieurs étages de tels circuits additionneurs étant disposés en cascade, le dernier étage, au sommet de la pyramide, ne comportant qu'un seul circuit additionneur. 3. Multiplier device according to claim 2, characterized in that each number determination block of "1" comprises a transcoding circuit having a pyramidal structure with several stages of treatment, the input stage, at the base of the pyramid, comprising in parallel a plurality of elementary transcoder circuits each providing on its different outputs the value, in pure binary, of the number "1" for each bit weight of the numbers or parts of numbers arriving on all its inputs, the outputs of at least two different transcoder circuits being grouped each time at the input of an adder circuit, several stages of such adder circuits being arranged in cascade, the last stage at the top of the pyramid comprising only one adder circuit. 4. Dispositif multiplieur selon la revendication 2, caractérisé par le fait que chaque bloc de détermination de nombre de "1" comporte un circuit de transcodage, par exemple une mémoire morte ou un circuit logique programmable, éventuellement suivi d'un registre.  4. Multiplier device according to claim 2, characterized in that each number determination block of "1" comprises a transcoding circuit, for example a read-only memory or a programmable logic circuit, optionally followed by a register.
FR8002089A 1980-01-31 1980-01-31 FAST MULTIPLIER Expired FR2475250B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR8002089A FR2475250B1 (en) 1980-01-31 1980-01-31 FAST MULTIPLIER

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR8002089A FR2475250B1 (en) 1980-01-31 1980-01-31 FAST MULTIPLIER

Publications (2)

Publication Number Publication Date
FR2475250A1 true FR2475250A1 (en) 1981-08-07
FR2475250B1 FR2475250B1 (en) 1986-04-11

Family

ID=9238059

Family Applications (1)

Application Number Title Priority Date Filing Date
FR8002089A Expired FR2475250B1 (en) 1980-01-31 1980-01-31 FAST MULTIPLIER

Country Status (1)

Country Link
FR (1) FR2475250B1 (en)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2365637A (en) * 2000-08-04 2002-02-20 Automatic Parallel Designs Ltd Parallel counter and multiplication logic circuit
US6883011B2 (en) 2000-08-04 2005-04-19 Arithmatica Limited Parallel counter and a multiplication logic circuit
US6909767B2 (en) 2003-01-14 2005-06-21 Arithmatica Limited Logic circuit
US7042246B2 (en) 2003-02-11 2006-05-09 Arithmatica Limited Logic circuits for performing threshold functions
US7136888B2 (en) 2000-08-04 2006-11-14 Arithmatica Limited Parallel counter and a logic circuit for performing multiplication
US7139788B2 (en) 2001-03-22 2006-11-21 Arithmatica Limited Multiplication logic circuit
US7170317B2 (en) 2003-05-23 2007-01-30 Arithmatica Limited Sum bit generation circuit
US7260595B2 (en) 2002-12-23 2007-08-21 Arithmatica Limited Logic circuit and method for carry and sum generation and method of designing such a logic circuit
US7308471B2 (en) 2003-03-28 2007-12-11 Arithmatica Limited Method and device for performing operations involving multiplication of selectively partitioned binary inputs using booth encoding
CN113380298A (en) * 2021-05-07 2021-09-10 中国科学院上海微系统与信息技术研究所 Nonvolatile Boolean logic two-bit multiplier and operation method

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
EXBK/76 *
EXBK/77 *

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2365637B (en) * 2000-08-04 2004-10-27 Automatic Parallel Designs Ltd A parallel counter and a multiplication logic circuit
US6883011B2 (en) 2000-08-04 2005-04-19 Arithmatica Limited Parallel counter and a multiplication logic circuit
US6938061B1 (en) 2000-08-04 2005-08-30 Arithmatica Limited Parallel counter and a multiplication logic circuit
GB2365637A (en) * 2000-08-04 2002-02-20 Automatic Parallel Designs Ltd Parallel counter and multiplication logic circuit
US7136888B2 (en) 2000-08-04 2006-11-14 Arithmatica Limited Parallel counter and a logic circuit for performing multiplication
US7139788B2 (en) 2001-03-22 2006-11-21 Arithmatica Limited Multiplication logic circuit
US7275076B2 (en) 2001-03-22 2007-09-25 Arithmatica Limited Multiplication logic circuit
US7260595B2 (en) 2002-12-23 2007-08-21 Arithmatica Limited Logic circuit and method for carry and sum generation and method of designing such a logic circuit
US6909767B2 (en) 2003-01-14 2005-06-21 Arithmatica Limited Logic circuit
US7042246B2 (en) 2003-02-11 2006-05-09 Arithmatica Limited Logic circuits for performing threshold functions
US7308471B2 (en) 2003-03-28 2007-12-11 Arithmatica Limited Method and device for performing operations involving multiplication of selectively partitioned binary inputs using booth encoding
US7170317B2 (en) 2003-05-23 2007-01-30 Arithmatica Limited Sum bit generation circuit
CN113380298A (en) * 2021-05-07 2021-09-10 中国科学院上海微系统与信息技术研究所 Nonvolatile Boolean logic two-bit multiplier and operation method

Also Published As

Publication number Publication date
FR2475250B1 (en) 1986-04-11

Similar Documents

Publication Publication Date Title
EP0142439B1 (en) Method of compressing a train of digital information, and apparatus therefor
FR2475250A1 (en) Fast multiplier for long binary numbers - uses multiple and=gates to multiply one bit of first number simultaneously with every bit of second number and groups like weighted bits
EP0858066A1 (en) Method and device for converting the digital image rate
WO2010037570A1 (en) Device for the parallel processing of a data stream
EP2846533A1 (en) Device for compressive image acquisition
EP0014151B1 (en) Method of treating successive signal samples and digital filter for carrying out the method
EP0319421B1 (en) Binary comparator and binary number sorting operator
EP0298002B1 (en) Transposition memory for a data processing circuit
FR2707789A1 (en) Semiconductor memory device which can be used as line buffer memory and associated read and write process
FR2989219A1 (en) PROCESSING CIRCUIT OF PIXELS
EP0262032A1 (en) Binary adder having a fixed operand, and a parallel/serial multiplier comprising such an adder
EP0147268A2 (en) Memory addressing circuit
EP0034956B1 (en) Television synchronization signal and test signal generator, and television system comprising such a generator
EP0317463B1 (en) Conference arrangement circuit for a plurality of participants in telecommunication systems
FR2773284A1 (en) Reed-Solomon signal decoding circuit
EP0750400A1 (en) Syndrome computing circuit
EP0046105B1 (en) Fast digital operator device
EP1542233A1 (en) Serial memory comprising means for protecting an extended memory range during a write operation
FR2729500A1 (en) HIGH SPEED DATA ACQUISITION SYSTEM
FR2660510A1 (en) Method and device for programmable interconnection between two electronic circuit assemblies and application to a programmable logic circuit
EP0407311B1 (en) Data shuffling circuit
FR2491652A1 (en) DEVICE FOR PERFORMING A MATHEMATICAL OPERATION AND DIFFERENT APPLICATIONS THEREOF
FR2556902A1 (en) Method and device for specified rank filtering of a digital signal and application to separable two-dimensional median filtering.
EP3764283A1 (en) System and method for generating descriptors of a scene
EP0500481B1 (en) Circuit and method for selecting the k largest data of a sequence of data

Legal Events

Date Code Title Description
ST Notification of lapse