FR2568034A1 - DIGITAL MULTIPLIER - Google Patents
DIGITAL MULTIPLIER Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
- G06F7/523—Multiplying only
- G06F7/525—Multiplying only in serial-serial fashion, i.e. both operands being entered serially
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/3804—Details
- G06F2207/386—Special constructional features
- G06F2207/3884—Pipelining
- G06F2207/3892—Systolic 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)
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)
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 |
-
1984
- 1984-07-21 GB GB8418673A patent/GB2162345B/en not_active Expired
-
1985
- 1985-07-17 DE DE19853525558 patent/DE3525558A1/en not_active Withdrawn
- 1985-07-18 NL NL8502077A patent/NL8502077A/en not_active Application Discontinuation
- 1985-07-19 SE SE8503528A patent/SE8503528L/en not_active Application Discontinuation
- 1985-07-19 FR FR8511082A patent/FR2568034A1/en active Pending
- 1985-07-19 JP JP15844385A patent/JPS6136840A/en active Pending
Non-Patent Citations (3)
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 |