FR2475250A1 - Multiplieur rapide - Google Patents

Multiplieur rapide 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
numbers
stage
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
English (en)
Other versions
FR2475250B1 (fr
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/fr
Publication of FR2475250A1 publication Critical patent/FR2475250A1/fr
Application granted granted Critical
Publication of FR2475250B1 publication Critical patent/FR2475250B1/fr
Expired 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/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.

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.
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.
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.
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.
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.
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.
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.
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.
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
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>
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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).
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.
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.
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.
On va maintenant expliquer à l'aide d'un exemple simplifié de multiplication la façon dont fonctionnent les étages de traitement 6 à 9.
On prend par exemple deux nombres A et B tels que A = 311 et
B = 249 soit, en notation binaire : 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.
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".
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.

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.
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
chacune et dont le nombre est égal au nombre total de combi
naisons 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 ET é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 "1" à chacun desquels on
attribue un poids depuis le poids 0 jusqu'au poids maximal
nécessaire, ces blocs de détermination 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 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.
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.
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.
FR8002089A 1980-01-31 1980-01-31 Multiplieur rapide Expired FR2475250B1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR8002089A FR2475250B1 (fr) 1980-01-31 1980-01-31 Multiplieur rapide

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR8002089A FR2475250B1 (fr) 1980-01-31 1980-01-31 Multiplieur rapide

Publications (2)

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

Family

ID=9238059

Family Applications (1)

Application Number Title Priority Date Filing Date
FR8002089A Expired FR2475250B1 (fr) 1980-01-31 1980-01-31 Multiplieur rapide

Country Status (1)

Country Link
FR (1) FR2475250B1 (fr)

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 (zh) * 2021-05-07 2021-09-10 中国科学院上海微***与信息技术研究所 一种非易失布尔逻辑两位乘法器及运算方法

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 (zh) * 2021-05-07 2021-09-10 中国科学院上海微***与信息技术研究所 一种非易失布尔逻辑两位乘法器及运算方法

Also Published As

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

Similar Documents

Publication Publication Date Title
EP2846533B1 (fr) Dispositif d&#39;acquisition compressive d&#39;une image
FR2475250A1 (fr) Multiplieur rapide
EP0858066A1 (fr) Procédé et dispositif de conversion de debit d&#39;images numériques
EP0014151B1 (fr) Procédé de traitement des échantillons successifs de signaux et filtre numérique pour la mise en oeuvre du procédé
EP0298002B1 (fr) Mémoire de transposition pour circuit de traitement de données
EP2846535A1 (fr) Dispositif et procédé d&#39;acquisition compressive d&#39;images
FR2707789A1 (fr) Dispositif de mémoire à semiconducteur pouvant être utilisé comme mémoire tampon de ligne, et procédé de lecture et d&#39;écriture associé.
EP0262032A1 (fr) Additionneur binaire comportant un opérande fixé, et multiplieur binaire parallèle-série comprenant un tel additionneur
EP0147268A2 (fr) Dispositif d&#39;adressage de memoire
EP0034956B1 (fr) Générateur de signaux de base et de signaux de test de télévision, et système de télévision comportant un tel générateur
EP0319421B1 (fr) Comparateur binaire et opérateur de tri de nombres binaires
EP0183610A1 (fr) Mémoire vive et circuit d&#39;interpolation linéaire en comportant application
EP0317463A1 (fr) Circuit de mise en conférence d&#39;une pluralité de participants dans des systèmes de télécommunications
FR2729500A1 (fr) Systeme d&#39;acquisition de donnees a grande vitesse
EP0046105B1 (fr) Dispositif opérateur numérique rapide
EP3764283A1 (fr) Système et procédé de génération de descripteurs d&#39;une scène
EP0407311B1 (fr) Circuit de brassage de données
FR2660510A1 (fr) Procede et dispositif d&#39;interconnexion programmable entre deux ensembles de circuits electroniques et application a un circuit logique programmable.
FR2556902A1 (fr) Procede et dispositif de filtrage de rang determine d&#39;un signal numerique et application au filtrage median bidimensionnel separable
FR2786880A1 (fr) Appareil de detection
EP1542233A1 (fr) Mémoire série comprenant des moyens de protection d&#39;un plan mémoire étendu pendant une opération d&#39;écriture
CH633922A5 (en) Digital filter and use thereof in a voice-synthesis device
EP0071511B1 (fr) Générateur d&#39;événements à taux d&#39;occurrence et distribution prédéterminés
EP0322695B1 (fr) Générateur de signal temporel périodique à caractère récursif
EP1161034B1 (fr) Dispositif de sélection par valeur numérique d&#39;au moins un élément parmi des éléments candidats à la sélection

Legal Events

Date Code Title Description
ST Notification of lapse