FR2568034A1 - DIGITAL MULTIPLIER - Google Patents

DIGITAL MULTIPLIER Download PDF

Info

Publication number
FR2568034A1
FR2568034A1 FR8511082A FR8511082A FR2568034A1 FR 2568034 A1 FR2568034 A1 FR 2568034A1 FR 8511082 A FR8511082 A FR 8511082A FR 8511082 A FR8511082 A FR 8511082A FR 2568034 A1 FR2568034 A1 FR 2568034A1
Authority
FR
France
Prior art keywords
cell
numbers
bit
multiplier
multiplier according
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.)
Pending
Application number
FR8511082A
Other languages
French (fr)
Inventor
Richard Charles John Hicks
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.)
Ferranti International PLC
Original Assignee
Ferranti PLC
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 Ferranti PLC filed Critical Ferranti PLC
Publication of FR2568034A1 publication Critical patent/FR2568034A1/en
Pending 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
    • G06F7/523Multiplying only
    • G06F7/525Multiplying only in serial-serial fashion, i.e. both operands being entered serially
    • 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
    • G06F2207/3892Systolic array

Abstract

UN MULTIPLICATEUR NUMERIQUE POUR MULTIPLIER ENTRE EUX DEUX NOMBRES BINAIRES, COMPREND UNE MATRICE LINEAIRE DE TRAITEMENT DE BITS. CHAQUE CELLULE COMPORTE DEUX CONNEXIONS D'ENTREE IA, IB AUXQUELLES ON APPLIQUE DES BITS SUCCESSIFS DE DEUX NOMBRES, ET DEUX CONNEXIONS DE SORTIE OA, OB AU MOYEN DESQUELLES ON APPLIQUE LES BITS SUCCESSIFS A LA CELLULE SUIVANTE. CHAQUE CELLULE COMPREND AUSSI DES MOYENS G POUR MULTIPLIER UN BIT AVEC CHACUN DES NOMBRES, ET UN ADDITIONNEUR AD CAPABLE D'ADDITIONNER ET DE STOCKER LES RESULTATS DES MULTIPLICATIONS SUCCESSIVES.A DIGITAL MULTIPLIER FOR MULTIPLYING TWO BINARY NUMBERS BETWEEN THEM, INCLUDES A LINEAR BIT PROCESSING MATRIX. EACH CELL CONTAINS TWO IA, IB INPUT CONNECTIONS TO WHICH SUCCESSIVE BITS OF TWO NUMBERS ARE APPLIED, AND TWO OA, OB OUTPUT CONNECTIONS BY MEANS OF WHICH SUCCESSIVE BITS ARE APPLIED TO THE FOLLOWING CELL. EACH CELL ALSO INCLUDES G MEANS FOR MULTIPLYING A BIT WITH EACH OF THE NUMBERS, AND AN ADDITIONER CAPABLE OF ADDING AND STORING THE RESULTS OF SUCCESSIVE MULTIPLICATIONS.

Description

L'invention concerne des multiplicateurs numériques, et en particulier desThe invention relates to digital multipliers, and in particular to

multiplicateurs qui sont particulièrement adaptés pour l'intégration à  multipliers that are particularly suitable for integration into

grande échelle en circuits intégrés.  large scale in integrated circuits.

Beaucoup d'opérations nécessaires au traite- ment du signal ou de l'image, telles que corrélation, convoi ution et filtrage, ne sont pas réalisées au  Many of the operations required for signal or image processing, such as correlation, convolution and filtering, are not performed at

-mieux sur un ordinateur d'architecture conventionnelle.  -best on a conventional architecture computer.

L'exigence de base pour ces opérations est l'aptitude à multiplier ensemble des flux de paires de nombres et à accumuler un total. En représentation binaire,-des nombres ayant une longueur de mot de 32 bits ont une  The basic requirement for these operations is the ability to multiply streams of pairs of numbers and accumulate a total. In binary representation, numbers having a word length of 32 bits have a

précision suffisante pour les opérations de traite-  sufficient precision for the processing operations

ment du signal présentes et futures, tandis que l'usage des produits à 64 bits minimisera les erreurs d'arrondi  present and future signals, while the use of 64-bit products will minimize rounding

dans le processus cumulatif.in the cumulative process.

La raison de l'inefficacité dans l'exécution des algorithmes des opérations de traitement du'signal mentionnées ci-dessus provient des allers et retours répétés d'un même élément de données entre une mémoire et un processeur. Une approche très intéressante pour  The reason for the inefficiency in the execution of the algorithms of the signal processing operations mentioned above stems from the repeated trips of the same data element between a memory and a processor. A very interesting approach for

le traitement de flux continus de données est l'utili-  the treatment of continuous data flows is the use of

sation d'une matrice contractée d'éléments de traite-  of a contracted matrix of

ment. Une telle matrice contractée est utilisée comme processeur particulier annexé à un ordinateur hôte d'usage-général, laissant ainsi l'ordinateur hâte  is lying. Such a contracted array is used as a particular processor attached to a general-purpose host computer, thus leaving the computer in a hurry.

disponible pour exécuter ses fonctions plus générales.  available to perform its more general functions.

Il est évident qu'un tel processeur particu-  It is obvious that such a particular processor

lier doit être capable de fournir les résultats de ses opérations de traitement à son ordinateur hôte à  link must be able to deliver the results of its processing operations to its host computer at

une vitesse compatible avec le flux entrant de données.  a speed compatible with the incoming data flow.

Ceci est accompli par l'approche à matrice contractée en faisant l'usage maximum de combinaisons séries/  This is accomplished by the contracted matrix approach by making maximum use of serial combinations.

parallèles, et en faisant plein usage de chaque élé-  parallel, and making full use of each

ment de données à son passage dans une certaine  data transfer as it passes through a certain

configuration d'éléments processeurs relativement sim-  configuration of relatively simple processor elements

ples et connectés localement.ples and connected locally.

Dans le cas des opérations de traitement du signal mentionnées ci-dessus, la fonction de base de chaque élément processeur identique est de multiplier ensemble des paires de nombres (dont la longueur de mot est suffisamment grande pour donner un niveau acceptable de précision), et de cumuler les sommes  In the case of the signal processing operations mentioned above, the basic function of each identical processor element is to multiply pairs of numbers (the word length of which is sufficiently large to give an acceptable level of precision), and to accumulate the sums

des produits.some products.

Les matrices contractées connues demandent un réseau de cellules multiplicatrices identiques, chacune d'entre elles multipliant un bit de chacun des nombres à multiplier ensemble. La demande de brevet  Known contracted matrices require an array of identical multiplier cells, each of which multiplies one bit of each of the numbers to be multiplied together. The patent application

britannique 2 106 278 A, par exemple, décrit une dis-  British Patent No. 2,106,278, for example, discloses a disclosure

position impliquant une matrice rectangulaire de cellules, chacune d'entre elles étant connectée à chaque cellule adjacente dans le réseau. Cependant, dans une telle matrice, le nombre de cellules du réseau augmente comme le carré du nombre de bits dans chaque nombre à multiplier. Par conséquent, pour les longueurs de mots habituelles, le nombre de cellules peut devenir très grand. Ceci est d'importance en particulier parce que l'opération la plus rapide serait obtenue avec un multiplicateur contenu sur une seule puce de silicium, car les connexions entre puces  position involving a rectangular matrix of cells, each of which is connected to each adjacent cell in the network. However, in such a matrix, the number of cells in the network increases as the square of the number of bits in each number to be multiplied. Therefore, for the usual word lengths, the number of cells can become very large. This is of particular importance because the fastest operation would be achieved with a multiplier contained on a single silicon chip, since the connections between chips

introduisent des retards.introduce delays.

C'est donc- l'un des objets de l'invention, que de proposer un multiplicateur numérique du type  It is therefore one of the objects of the invention to propose a numerical multiplier of the type

"série" dans lequel le nombre de cellules multiplica-  "series" in which the number of multiplying cells

trices n'augmente qu'en fonction linéaire de la taille  trices increases only in linear size

des nombres N multiplier.numbers N multiply.

Selon l'invention, on propose un multiplicateur  According to the invention, a multiplier is proposed

numérique pour multiplier ensemble deux nombres binai-  numerically to multiply together two binary numbers

res, comprenant un réseau linéaire de cellules de traitement au niveau du bit, chacune incluant deux  res, comprising a linear array of bit-level processing cells, each including two

connexions d'entrée auxquelles sont appliqués respec-  input connections to which

tivement les bits successifs de chacun des deux nombres binaires, deux connexions de sortie connectées 'à la cellule adjacente suivante et auxquelles sont appliqués les bits successifs, des moyens de multiplication qui agissent pour multiplier ensemble un bit de chacun des nombres, et des moyens d'addition qui agissent pour ajouter ensemble et mettre en mémoire les résultats des multiplications successives exécutées dans la  the successive bits of each of the two binary numbers, two output connections connected to the next adjacent cell and to which the successive bits are applied, multiplication means which act to multiply together a bit of each of the numbers, and means of multiplication. addition that act to add together and store the results of the successive multiplications performed in the

cellule.cell.

Le nombre de cellules dans le réseau linéaire est de préférence égal à la somme des nombres de bits  The number of cells in the linear network is preferably equal to the sum of the numbers of bits

dans les deux nombres à multiplier.  in the two numbers to multiply.

On va maintenant décrire l'invention en fai-  The invention will now be described in

sant référence aux dessins joints, dans lesquels: la figure 1 est un diagramme logique d'une cellule de traitement de bit selon un premier mode de réalisation de l'invention; la figure 2 est un diagramme schématique montrant l'interconnexion d'une matrice simple de cellules de traitement de bit de la figure 1 pour former un multiplicateur numérique; la figure 3 illustre le fonctionnement du multiplicateur numérique de la figure 2; 25. la figure 4 est un diagramme logique d'une cellule de traitement de bit selon un second mode de réalisation de l'invention; la figure 5 illustre le fonctionnement d'un multiplicateur comprenant un réseau de cellules de traitement de bit de la figure 4;  referring to the accompanying drawings, in which: FIG. 1 is a logic diagram of a bit processing cell according to a first embodiment of the invention; Fig. 2 is a schematic diagram showing the interconnection of a simple matrix of bit processing cells of Fig. 1 to form a digital multiplier; Figure 3 illustrates the operation of the digital multiplier of Figure 2; FIG. 4 is a logic diagram of a bit processing cell according to a second embodiment of the invention; Fig. 5 illustrates the operation of a multiplier comprising a bit processing cell array of Fig. 4;

la figure 6 montre un exemple du fonction-  Figure 6 shows an example of the function-

nement du multiplicateur de la figure 4; et la figure 7 montre un organigramme d'un appareil de traitement de signal comprenant un certain  multiplier of Figure 4; and Figure 7 shows a flowchart of a signal processing apparatus comprising a certain

nombre de multiplicateurs numériques.  number of digital multipliers.

En se référant à la figure 1, on voit une  Referring to Figure 1, we see a

forme de cellule de traitement de bit selon l'inven-  bit processing cell form according to the invention.

tion. La cellule représentée doit être utilisée pour multiplier ensemble deux nombres "a" et "b", et les flux de données des deux nombres arrivent en direc- tions opposées. La cellule représentée possède trois  tion. The cell shown should be used to multiply two numbers "a" and "b" together, and the data streams of the two numbers arrive in opposite directions. The represented cell has three

entrées de données marquées Ia, lb et Ic, cette der-  data entries marked Ia, Ib and Ic, this last

nière étant faite pour les bits de "retenue" engendrés par la cellule précédente du réseau. Chacune de ces  being done for the "hold" bits generated by the previous cell of the network. Each of these

entrées est connectée à une bascule bistable à transi-  Inputs are connected to a bistable flip-flop

tion déclenchée, séparée, marquée L1, L2 ou L3. Sur chaque bascule arrive aussi un signal impulsionnel d'horloge CK. La sortie de la bascule L1 constitue la sortie des données "a" vers la cellule suivante la plus proche à droite par l'intermédiaire de la connexion de sortie Oa, et est aussi connectée à une entrée d'une porte ET à double entrée, G. La sortie de la bascule L2 est connectée à l'autre entrée de la porte G, et constitue aussi la sortie des données "b" vers la cellule suivante la plus proche à gauche par  triggered, separated, marked L1, L2 or L3. Each flip-flop also has a clock pulse signal CK. The output of the flip-flop L1 constitutes the output of the data "a" towards the next nearest cell on the right via the output connection Oa, and is also connected to an input of a double-input AND gate. G. The output of flip-flop L2 is connected to the other input of gate G, and is also the output of data "b" to the next nearest cell on the left.

l'intermédiaire de la connexion de sortie Ob.  via the output connection Ob.

La sortie de la porte ET G est reliée à un circuit additionneur AD, ainsi que la sortie de la  The output of the AND gate G is connected to an adder circuit AD, as well as the output of the

bascule L3. Une sortie "retenue" du circuit addition-  flip-flop L3. A "hold" output of the add-on circuit

neur AD constitue la sortie "retenue" c' vers la  neur AD constitutes the "held" output c 'towards the

cellule suivante la plus proche à droite par l'inter-  next nearest cell on the right through

médiaire de la connexion de sortie Oc. Un signal de  mediate the Oc output connection. A signal of

"lecture" RD peut être appliqué au circuit addition-  "read" RD can be applied to the circuit addition-

neur AD pour provoquer le déversement de son contenu  neur AD to cause the spill of its contents

vers une sortie de données DO.to an output of data DO.

En fonctionnement, un bit de chacun des nombres "a" et "b" est appliqué à la porte ET G lorsqu'une impulsion d'horloge ou "top" est appliqué à chacune des bascules L1 et L2. La multiplication de deux nombres binaires à un seul bit consiste à faire simplement l'opération ET, puisque lorsque l'un ou les deux nombres sont nuls le produit est également nul. La sortie de la porte ET G est stockée dans le circuit additionneur AD. Tout bit de "retenue" de la cellule précédente est aussi appliqué au circuit  In operation, a bit of each of the numbers "a" and "b" is applied to the AND gate G when a clock pulse or "top" is applied to each of the latches L1 and L2. The multiplication of two single-bit binary numbers consists of simply doing the AND operation, since when one or both numbers are zero the product is also zero. The output of the AND gate G is stored in the adder circuit AD. Any "hold" bit of the previous cell is also applied to the circuit

additionneur, et toute retenue résultante est appli-  adder, and any resulting restraint is applied

quée immédiatementà la cellule suivante la plus proche. Lorsque l'opération entière de multiplication à effectuer par le réseau a été accomplie, le signal "lecture" RD est appliqué en séquence à chaque circuit additionneur du réseau, provoquant l'écoulement des  immediately to the next nearest cell. When the entire multiplication operation to be performed by the network has been completed, the read signal RD is sequentially applied to each adder circuit of the network, causing the flow of

bits successifs du résultat de l'opération de multi-  successive bits of the result of the operation of multi-

plication vers un bus de données. D'autres circuits peuvent être ajoutés pour extraire les signes et remettre à zéro les mémoires avant de démarrer une  plication to a data bus. Other circuits can be added to extract the signs and reset the memories before starting a

nouvelle opération de multiplication.  new multiplication operation.

La figure 2 montre comment un certain nombre de cellules de traitement de bit du modèle décrit peuvent être connectées entre elles pour former un multiplicateur. Le nombre de cellules de traitement de bit doit être au moins égal à la somme des nombres de bits dans chacun des deux nombres. Par exemple, la multiplication de deux nombres à trois bits demande six cellules, marquées sur la figure 2 de C1 à C6. Les connexions "lecture" et sortie sont aussi représentées  Figure 2 shows how a number of bit processing cells of the described model can be connected together to form a multiplier. The number of bit processing cells must be at least equal to the sum of the number of bits in each of the two numbers. For example, the multiplication of two three-bit numbers requires six cells, marked in Figure 2 from C1 to C6. "Read" and output connections are also represented

et repérées RD1 à RD6 et RO1 à RO6 respectivement.  and labeled RD1 to RD6 and RO1 to RO6 respectively.

La figure 3 illustre le fonctionnement du multiplicateur quand il multiplie entre eux deux nombres à trois bits. Le dessin montre le fonctionnement du multiplicateur pour chacun de neuf tops successifs, le multiplicateur étant représenté pour chaque top avec les positions des bits des deux nombres repérées respectivement a1, a2, a3 et b1, b2 et b3, les bits a3 et b3 étant les bits de plus grands poids des nombres respectifs. La multiplication de deux nombres de trois bits est représentée ci-dessous: b3 b2 b1 x a3 a2 a1 = i h g f e d o d = a1b1 e= a1b2 + a2b1 + retenue éventuelle de d f = a1b3 + a2b2 + a3b1 + retenue éventuelle de e g = a2b3 + a3b2 + retenue éventuelle de f h = a3b3 + retenue éventuelle de g i = retenue éventuelle de h. Il s'ensuit que chaque bit de l'un des nombres est multiplié à son tour par chacue bit de l'autre nombre. Les deux nombres seront généralement obtenus sur deux bus de données séparés, en même temps, et il faut que les bits de l'un des nombres, en l'occurence "b",  Figure 3 illustrates the operation of the multiplier when it multiplies between them two three-bit numbers. The drawing shows the operation of the multiplier for each of nine successive tops, the multiplier being represented for each top with the positions of the bits of the two numbers respectively labeled a1, a2, a3 and b1, b2 and b3, the bits a3 and b3 being the bits of larger weights of the respective numbers. The multiplication of two numbers of three bits is represented below: b3 b2 b1 x a3 a2 a1 = ihgfedod = a1b1 e = a1b2 + a2b1 + possible retention of df = a1b3 + a2b2 + a3b1 + possible retention of eg = a2b3 + a3b2 + possible retention of fh = a3b3 + possible retention of gi = possible retention of h. It follows that each bit of one of the numbers is multiplied in turn by each bit of the other number. The two numbers will generally be obtained on two separate data buses, at the same time, and the bits of one of the numbers, in this case "b",

soient appliqués en ordre inverse. On verra que la pre-  are applied in reverse order. We will see that the first

mitre cellule représentée, Cl, est une cellule "fictive"  miter cell represented, Cl, is a "fictional" cell

qui n'effectue aucune multiplication.  which does not perform any multiplication.

En se référant maintenant à la figure 3, le bit de moindre poids a1 du nombre "a" est appliqué à l'entrée "a" de la cellule Ci. Au deuxième top, a1 passe dans la cellule C2 mais il n'y a pas encore d'entrée "b". Au troisième top, a1 passe dans la cellule C3, le bit a2 est appliqué à la cellule C1 et au deuxième top le bit de plus grands poids b3 du nombre "b" est appliqué à la cellule C6. Au quatrième top, a1 passe dans la cellule C4, ainsi que b3, et par conséquent le produit a1b3 est mis en mémoire dans le circuit additionneur de la cellule C4. Egalement au quatrième top b2 est appliqué à la cellule C6, et a2 passe dans la  Referring now to FIG. 3, the least significant bit a1 of the number "a" is applied to the input "a" of the cell Ci. At the second top, a1 passes into the cell C2 but there is no no entry "b" yet. At the third top, a1 passes into cell C3, bit a2 is applied to cell C1 and the second top bit of larger weights b3 of the number "b" is applied to cell C6. At the fourth top, a1 passes into cell C4, as well as b3, and therefore product a1b3 is stored in the adder circuit of cell C4. Also at the fourth top b2 is applied to cell C6, and a2 goes into the

cellule C1.cell C1.

Les bits des nombres "a" et "b" continuent de passer dans le réseau de cellules, et chaque fois qu'un bit de chacun des nombres apparalt dans la même cellule,  The bits of the numbers "a" and "b" continue to pass in the cell network, and each time a bit of each of the numbers appears in the same cell,

un produit est effectué et mis en mémoire dans le cir-  a product is made and stored in the cir-

cuit additionneur de cette cellule. Lors de chaque opération de mise en mémoire, les retenues effectuées sont passées à la cellule suivante la plus proche à droite. Le processus continue jusqu'à ce que chaque bit de l'un des nombres ait été multiplié par chaque bit de l'autre nombre. On verra qu'après le top 8, le circuit additionneur de chacune des cellules contient l'un des nombres d à i mentionnés ci-dessus, sauf pour  baked adder of this cell. During each storage operation, the holdings made are passed to the next nearest cell on the right. The process continues until each bit of one of the numbers has been multiplied by each bit of the other number. It will be seen that after the top 8, the adder circuit of each of the cells contains one of the numbers d to i mentioned above, except for

la cellule Cl.the cell Cl.

Le résultat de l'opération de multiplication  The result of the multiplication operation

est obtenu en lisant en séquence les contenus des cir-  is obtained by reading in sequence the contents of the cir-

cuits additionneurs de chaque cellule, en commençant  cooked adders from each cell, starting

par la cellule C6.by cell C6.

Dans le mode de réalisation qu'on vient de  In the embodiment that has just been

décrire, les bits des deux nombres passaient en direc-  describe, the bits of the two numbers went

tions opposées à travers le réseau de cellules de  opposing views across the cell network of

traitement de bit, les bits étant appliques alternati-  bit processing, the bits being applied alternately

vement aux tops. Ceci exige naturellement que les deux nombres soient présents en même temps, et probablement,  tops. This naturally requires that both numbers be present at the same time, and probably,

que l'un d'entre eux soit mis en mémoire dans un regis-  that one of them be stored in a register

tre jusqu'à ce que l'autre soit disponible.  until the other is available.

Un second mode de réalisation comporte une  A second embodiment has a

disposition convenant au cas o les nombres apparais-  provision where the numbers appear

sent à des moments différents sur un bus. La figure 4 montre la disposition d'une cellule de traitement de bit pour un tel mode de réalisation. Celle-ci est semblable à la cellule de la figure 1, à part l'addition d'une bascule supplémentaire L4 entre la sortie de la bascule L2 et la connexion Ob de la sortie "b". De plus, on voit que les nombres entrent dans la cellule dans la même direction. L'effet de la bascule L4 est de retarder l'application de chaque bit du nombre "b" d'une impulsion d'horloge, ou d'un top par rapport aux  feel at different times on a bus. Figure 4 shows the arrangement of a bit processing cell for such an embodiment. This is similar to the cell of FIG. 1, except for the addition of an additional flip-flop L4 between the output of the flip-flop L2 and the connection Ob of the output "b". Moreover, we see that the numbers enter the cell in the same direction. The effect of the flip-flop L4 is to delay the application of each bit of the number "b" of a clock pulse, or of a peak with respect to the

bits du nombre "a", comme on va le décrire ci-dessous.  bits of the number "a", as will be described below.

Le figure 5 illustre le fonctionnement d'un  Figure 5 illustrates the operation of a

réseau de cellules de la figure 4, lors de la multi-  cell network of FIG. 4, during the multi-

plication l'un par l'autre de deux nombres à trois bits. Le retard supplémentaire donné à chaque bit du nombre "b" est représenté par un carré dans un coin  one by the other of two three-bit numbers. The extra delay given to each bit of the number "b" is represented by a square in a corner

du symbole représentant la cellule.  the symbol representing the cell.

En se référant maintenant a la figure 5, le bit de plus grand poids b3 du nombre "b" est appliqué à l'entrée de la cellule CD à laquelle le retard additionnel d'un top est appliqué. Au second top, le bit b3 est retenu par ce circuit de retard, cependant que le bit b2 est appliqué à la cellule CD. Au troisième top, le bit b3 passe à la cellule Cl, le bit b2 est retenu dans le circuit de retard de la cellule CD, et le bit de moindre poids b! est appliqué à la cellule CD. Les bits du nombre "b" continuent de passer dans la matrice de cellules à la cadence d'une cellule tous les deux tops. Au quatrième top, le bit de moindre poids a1 du nombre "a" est appliqué à la cellule CD, et passe à la  Referring now to FIG. 5, the largest weight bit b3 of the number "b" is applied to the input of the CD cell to which the additional delay of a top is applied. At the second top, bit b3 is retained by this delay circuit, while bit b2 is applied to cell CD. At the third top, the bit b3 goes to the cell C1, the bit b2 is retained in the delay circuit of the cell CD, and the bit of least weight b! is applied to the CD cell. The bits of the number "b" continue to pass through the cell array at the rate of one cell every two tops. At the fourth top, the least significant bit a1 of the number "a" is applied to the CD cell, and passes to the

cellule C1 au top suivant, lorsque le bit a2 est appli-  cell C1 at the next top, when bit a2 is applied

qué à la cellule CD. Le bit a1 se trouve dans la cellule Cl en même temps que le bit b1 et par suite le produit a1b1 est effectué et mis en mémoire dans le  to the CD cell. The bit a1 is in the cell C1 along with the bit b1 and therefore the product a1b1 is performed and stored in the memory.

circuit additionneur de la cellule C1.  adding circuit of the cell C1.

Au sixième top, le bit a1 passe dans la cellule C2 en même temps que le bit b2, et par suite le produit  At the sixth top, the bit a1 passes in the cell C2 at the same time as the bit b2, and consequently the product

a1b2 est effectué et mis en mémoire dans la cellule C2.  a1b2 is performed and stored in the cell C2.

Au septième top, les bits a1 et b3 sont multipliés dans la cellule C3, cependant que les bits a2 et b1 sont multipliés dans la cellule C2, le produit étant ajouté à celui des bits a1 et b2 déjà contenus dans le circuit additionneur. La retenue éventuelle est passée à la cellule C2. Le processus continue comme indiqué figure 5 jusqu'à ce que chaque bit de l'un des nombres ait été multiplié par chaque bit de l'autre nombre. On verra qu'après le top 11 les circuits additionneurs de chacune des cellules C1 à C6 contiennent les sommes des produits mentionnés ci-dessus, à l'exception de la cellule C6 qui ne contiendra qu'un produit éventuel  At the seventh top, the bits a1 and b3 are multiplied in the cell C3, while the bits a2 and b1 are multiplied in the cell C2, the product being added to that of the bits a1 and b2 already contained in the adder circuit. The eventual withholding is passed to cell C2. The process continues as shown in Figure 5 until each bit of one of the numbers has been multiplied by each bit of the other number. It will be seen that after the top 11 the add-on circuits of each of the cells C1 to C6 contain the sums of the products mentioned above, with the exception of the cell C6 which will contain only a possible product

venant de la cellule C5.coming from cell C5.

Le résultat de l'opération de multiplication  The result of the multiplication operation

est obtenu en lisant en séquence les contenus des cir-  is obtained by reading in sequence the contents of the cir-

cuits additionneurs de chaque cellule, en commençant  cooked adders from each cell, starting

par le bit de plus grand poids dans la cellule C6.  by the most significant bit in cell C6.

La figure 6 montre un exemple de l'opération qu'on vient de décrire, à savoir la mumtiplication des nombres 111 et 101. Les chiffres réels de chaque nombre ont été écrits dans les rectangles, et les résultats  Figure 6 shows an example of the operation just described, namely the numbering of the numbers 111 and 101. The actual numbers of each number were written in the rectangles, and the results

des multiplications sont indiqués au-dessous des rec-  multiplications are shown below the rec-

tangles concernés. La sortie finale 100011, est indi-  tangles concerned. The final output 100011, is indi-

quée au bas du diagramme, avec les flèches indiquant une "retenue" reportée du circuit additionneur d'une  at the bottom of the diagram, with the arrows indicating a "restraint" carried forward from the adder circuit of a

cellule à celui de la cellule suivante.  cell to that of the next cell.

Comme on l'a déjà indiqué, la technique décrite ci-dessus n'exige qu'un nombre de cellules de traitement de bit au moins égal à la somme des nombres de bits dans les deux nombres, et les multiplicateurs ayant l'une des deux formes décrites conviennent pour la multiplication  As already indicated, the technique described above requires only a number of bit processing cells at least equal to the sum of the number of bits in the two numbers, and the multipliers having one of the two described forms are suitable for multiplication

de grands nombres.large numbers.

Les multiplicateurs numériques du type décrit ci-dessus peuvent servir à de nombreux usages. Par exemple, la multiplication de deux matrices est une  Digital multipliers of the type described above can be used for many purposes. For example, the multiplication of two matrices is a

exigence commune dans le traitement des signaux numéri-  common requirement in the processing of digital

ques. Considérons, par exemple, la multiplication suivante de matrices: a a a b11 b12 bl r 013 Iil 12 1ilb3 2 13. ilC11 201 3 a21 a22 a23 X b21 b22 b23 [21 22 23 la31 a32 a 33 b31 b32 b33 e31 c32 e33l  c. Consider, for example, the following multiplication of matrices: a a b11b12bbl r 013il 12 1ilb3 2 13. ilC11 201 3 a21 a22 a23 X b21 b22 b23 [21 22 23 la31 a32 a 33 b31 b32 b33 e31 c32 e33l

o chaque nombre est lui-même composé de plusieurs bits.  o each number is itself composed of several bits.

Alors: Cll =allb1 + al2b21 + al3b31 e12 = allb12 + a12b22 + a13b32  Then: Cll = allb1 + al2b21 + al3b31 e12 = allb12 + a12b22 + a13b32

et ainsi de suite.And so on.

Un tel calcul peut être facilement exécuté en  Such a calculation can be easily performed in

utilisant un réseau de multiplicateurs du type déjà décrit.  using a multiplier network of the type already described.

Pour la multiplicaiton de matrices indiquée ci-dessus, il faut un réseau de neuf multiplicateurs numériques,comme indiqué figure 7. Les neuf multiplicateurs numériques  For the multiplication of matrices indicated above, a network of nine digital multipliers is required, as shown in Figure 7. The nine numerical multipliers

DM1 à DM9 comprennent chacun un réseau linéaire de cellu-  DM1 to DM9 each comprise a linear network of

les de traitement de bit, comme on l'a déjà décrit. Les neuf multiplicateurs sont disposées en un réseau de trois par trois, de sorte que quand un nombre passe dans un multiplicateur, il est passé bit par bit au multiplicateur suivant de la même ligne ou colonne. Le dessin montre aussi l'ordre dans lequel les nombres sont appliqués à la  bit processing, as already described. The nine multipliers are arranged in a network of three by three, so that when a number passes into a multiplier, it is passed bit by bit to the next multiplier of the same row or column. The drawing also shows the order in which the numbers are applied to the

matrice de multiplicateurs. Dans chaque rectangle repré-  matrix of multipliers. In each rectangle

sentant un multiplicateur, on a indiqué le résultat du calcuI effectué par ce multiplicateur, par exemple le multiplicateur DM3 calcule le résultat C13 de la matrice finale. On verra sur la figure 7 que les nombres ail et b1l sont d'abord appliqués au multiplicateur DM1, qui effectue le produit de ces deux nombres. Quand ceci a été fait, le nombre a11 passe au multiplicateur DM2, o il est multiplié par b12, cependant que b11 passe au multiplicateur DM4, o il est multiplié par a22. Au même moment, a12 et b21 sont appliques au multiplicateur  In the case of a multiplier, the result of the calculation made by this multiplier is indicated, for example the multiplier DM3 calculates the result C13 of the final matrix. We will see in Figure 7 that the numbers garl and b1l are first applied to the multiplier DM1, which produces the product of these two numbers. When this has been done, the number a11 goes to the multiplier DM2, where it is multiplied by b12, while b11 goes to the multiplier DM4, where it is multiplied by a22. At the same time, a12 and b21 are applied to the multiplier

DM1. Le produit a12b21 est effectué dans le multiplica-  DM1. The product a12b21 is carried out in the multiplication

teur DM1 et ajouté au produit a11b11 qui y est déjà en mémoire. La multiplication continue pas à pas jusqu'à ce que chacun des nombres "a" ait été multiplié par chacun des nombres "b". Les résultats finals sont lus  DM1 and added to the product a11b11 which is already in memory. The multiplication continues step by step until each of the numbers "a" has been multiplied by each of the numbers "b". The final results are read

dans les neuf multiplicateurs suivant la séquence voulue.  in the nine multipliers according to the desired sequence.

Du fait que les multiplicateurs numériques non seulement multiplient l'un par l'autre deux nombres à n bits, mais aussi ajoutent ensemble les résultats de trois telles multiplications, chaque multiplicateur devra comprendre plus de 2n cellules, puisqu'il peut y avoir des bits de "retenue". En fait, s'il y a "m" produits à ajouter les uns aux autres, le nombre N de cellules  Because the digital multipliers not only multiply two n-bit numbers one by one, but also add together the results of three such multiplications, each multiplier must have more than 2n cells, since there may be bits of "restraint". In fact, if there are "m" products to add to each other, the number N of cells

dans chaque multiplicateur est donné par N = 2n + (m-1).  in each multiplier is given by N = 2n + (m-1).

Dans le cas de la multiplication de matrices mentionné ci-dessus, o chaque résultat est l'addition de trois multiplications (m = 3), et o chaque nombre  In the case of the multiplication of matrices mentioned above, where each result is the addition of three multiplications (m = 3), and o each number

est un nombre à 32 bits (n = 32), on a alors pour cha-  is a 32-bit number (n = 32), then we have

cun des neuf multiplicateurs numériques, N = 66. Ceci signifie que chaque multiplicateur comprend un réseau  one of the nine digital multipliers, N = 66. This means that each multiplier includes a network

linéaire de 66 cellules, et non les 64 qui sont suffi-  66 cells, not the 64 that are sufficient

santes pour la multiplication de deux nombres de  for the multiplication of two numbers of

32 bits.32 bits.

La multiplication de matrices n'est qu'un exem-  The multiplication of matrices is only an example

ple des utilisations nombreuses qu'on peut faire d'un  many uses that can be made of a

multiplicateur numérique selon l'invention.  digital multiplier according to the invention.

Claims (9)

REVENDICATIONS 1. Un multiplicateur numérique pour multiplier l'un par l'autre deux nombres binaires, caractérisé par une matrice linéaire de cellules de traitement au niveau du bit, chacune comprenant deux connexions d'entrée à chacune desquelles sont appliqués respectivement les bits successifs de chacun des deux nombres binaires, deux connexions de sortie connectées à la cellule  A digital multiplier for multiplying one by one two binary numbers, characterized by a linear matrix of bit-level processing cells, each comprising two input connections each of which are respectively applied the successive bits of each. two binary numbers, two output connections connected to the cell adjacente suivante, et auxquelles sont appliqués les-  next adjacent, and to which the bits successifs déjà mentionnés, des moyens de multipli-  successive bits already mentioned, means of multiplying cation agissant pour multiplier ensemble un bit de chacun des nombres, et des moyens d'addition agissant  cation acting to multiply together a bit of each of the numbers, and addition means acting pour ajouter ensemble et mettre en mémoire les résul-  to add together and store the results tats des multiplications successives exécutées dans la  successive multiplications carried out in the cellule.cell. 2. Un multiplicateur selon la revendication 1,  2. A multiplier according to claim 1, caractérisé-par le fait que les premier et second cir-  characterized by the fact that the first and second cir- cuits à bascules bistables sont connectés entre chacune des connexions d'entrée et la connexion correspondante  bistable flip-flops are connected between each of the input connections and the corresponding connection de sortie.Release. 3. Un multiplicateur selon la revendication 2, caractérisé par le fait que les moyens de multiplication comprennent une-porte ET ayant deux entrées connectées  3. A multiplier according to claim 2, characterized in that the multiplying means comprise an AND gate having two connected inputs. aux sorties du premier et du second circuits à bascules.  at the outputs of the first and second toggle circuits. 4. Un multiplicateur selon l'une quelconque  4. A multiplier according to any one des revendications 1 à 3, caractérisé par le fait que  Claims 1 to 3, characterized in that les moyens d'addition de chaque cellule de traitement de bit, à l'exception de la première cellule du réseau, possèdent une entrée de retenues connectée à la cellule précédente par l'intermédiaire d'un circuit à bascules  the adding means of each bit processing cell, with the exception of the first cell of the network, has a hold input connected to the preceding cell by means of a flip-flop circuit bistable.bistable. 5. Un multiplicateur selon l'une quelconque  5. A multiplier according to any one des revendications 1 à 4, caractérisé par le fait que  Claims 1 to 4, characterized in that les moyens d'addition de chaque-cellule de traitement de bit, à l'exception de la dernière cellule du réseau, possèdent une sortie de retenues connectée à la cellule  the means for adding each bit-processing cell, with the exception of the last cell of the network, have a hold output connected to the cell suivante la plus proche.next closest. 6. Un multiplicateur selon l'une quelconque  6. A multiplier according to any one des précédentes revendications, caractérisé par des  previous claims, characterized by moyens de retard agissant pour retarder l'application des bits successifs de l'un des nombres à la connexion  delay means acting to delay the application of the successive bits of one of the numbers to the connection de sortie appropriée, d'un intervalle de temps prédé-  appropriate output, a predetermined time interval terminé, par rapport à chacun des bits successifs de  completed, with respect to each of the successive bits of l'autre nombre.the other number. 7. Un multiplicateur selon la revendication 6, caractérisé par le fait que les moyens de retard comprennent un troisième circuit bistable à bascules, connecté entre la sortie du second circuit à bascules  7. A multiplier according to claim 6, characterized in that the delay means comprise a third flip-flop circuit connected between the output of the second flip-flop circuit. et la connexion de sortie correspondante.  and the corresponding output connection. 8. Un multiplicateur selon l'une quelconque  8. A multiplier according to any one des précédentes revendications, caractérisé par le fait  previous claims, characterized by the fact que le nombre de cellules dans le réseau est au moins égal à la somme des nombres de bits dans chacun des  that the number of cells in the network is at least equal to the sum of the numbers of bits in each of the nombres binaires à multiplier l'un par l'autre.  binary numbers to multiply one by the other. 9. Un multiplicateur selon l'une quelconque  9. A multiplier according to any one des revendications 1 à 8, caractérisé par des moyens  Claims 1 to 8, characterized by means de lecture agissant pour extraire des circuits addi-  reading to act to extract additional circuits tionneurs de chaque cellule de traitement de bit le nombre qui y est mémorisé lorsque la multiplication  of each bit processing cell the number stored therein when the multiplication des deux nombres binaires est terminée.  two binary numbers is complete.
FR8511082A 1984-07-21 1985-07-19 DIGITAL MULTIPLIER Pending FR2568034A1 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB8418673A GB2162345B (en) 1984-07-21 1984-07-21 Digital multiplier

Publications (1)

Publication Number Publication Date
FR2568034A1 true FR2568034A1 (en) 1986-01-24

Family

ID=10564283

Family Applications (1)

Application Number Title Priority Date Filing Date
FR8511082A Pending FR2568034A1 (en) 1984-07-21 1985-07-19 DIGITAL MULTIPLIER

Country Status (6)

Country Link
JP (1) JPS6136840A (en)
DE (1) DE3525558A1 (en)
FR (1) FR2568034A1 (en)
GB (1) GB2162345B (en)
NL (1) NL8502077A (en)
SE (1) SE8503528L (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1986002474A1 (en) * 1984-10-16 1986-04-24 The Commonwealth Of Australia Care Of The Secretar A cellular floating-point serial-pipelined multiplier

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
ALTA FREQUENZA, vol. 37, no. 11, novembre 1968, pages 1079-1086, Milan, IT; L. DADDA et al.: "Digital multipliers: a unified approach" *
IEEE JOURNAL OF SOLID-STATE CIRCUITS, vol. SC-11, no. 5, octobre 1976, pages 669-678, New York, US; J. KANE: "A low-power, bipolar, two's complement serial pipeline multiplier chip" *
IEEE TRANSACTIONS ON COMPUTERS, vol. C-32, no. 2, février 1983, pages 194-198, IEEE, New York, US; F.P. PREPARATA: "A mesh-connected area-time optimal VLSI multiplier of large integers" *

Also Published As

Publication number Publication date
GB8418673D0 (en) 1984-09-12
SE8503528D0 (en) 1985-07-19
NL8502077A (en) 1986-02-17
JPS6136840A (en) 1986-02-21
DE3525558A1 (en) 1986-01-30
SE8503528L (en) 1986-01-22
GB2162345B (en) 1987-07-01
GB2162345A (en) 1986-01-29

Similar Documents

Publication Publication Date Title
EP3660849B1 (en) Memory circuit suitable for performing computing operations
EP0443679B1 (en) Method of calculating an operation of the type A.X modulo N in a coding method according to the RSA method
BE897441A (en) ASSOCIATIVE CALCULATOR FOR FAST MULTIPLICATION
EP0046708B1 (en) Digital distributed-arithmetic processing circuit using multiplexers at the input of a memory
EP0558125B1 (en) Neural processor with distributed synaptic cells
FR2853424A1 (en) ARCHITECTURE OF COMBINED POLYNOMIAL AND NATURAL MULTIPLIERS
EP0939362B1 (en) Modular arithmetic coprocessor for fast execution of non-modular operations
EP0939363B1 (en) Method for implementing modular multiplication according to the Montgomery method
FR2583184A1 (en) PROCESS FOR PROCESSING DIGITAL SIGNALS REPRESENTATIVE OF AN ORIGINAL IMAGE
EP0020185B1 (en) Method and apparatus for the serial-parallel addition of a great number of words
FR2568034A1 (en) DIGITAL MULTIPLIER
EP0785503B1 (en) Method of producing an error correcting parameter associated with the implementation of modular operations according to the Montgomery method
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
EP0785502B1 (en) Method of producing an error correcting parameter associated with the implementation of modular operations according to the Montgomery method
FR2785406A1 (en) MEMORY WITH VECTORIAL ACCESS
EP0784262B1 (en) Device and method for improving the processing speed of a modular arithmetic coprocessor
EP0927928B1 (en) Improved method of producing a parameter J0 associated with the implementation of modular operations according to the Montgomery method
EP0291613A1 (en) Processor with a plurality of serially connected stages
EP0140718B1 (en) Cell, and systolic architecture calculation circuit using such a cell
EP0329572B1 (en) Multiplier of binary numbers having a very large number of bits
FR2864320A1 (en) NEW FIFO MEMORY ARCHITECTURE AND METHOD FOR MANAGING SUCH A MEMORY.
EP0489885A1 (en) Neurocomputing system
EP4361888A1 (en) Integrated circuit configured to execute a neural network
FR2491652A1 (en) DEVICE FOR PERFORMING A MATHEMATICAL OPERATION AND DIFFERENT APPLICATIONS THEREOF
FR2666861A1 (en) Address generator for the data memory of a processor