Brevet FR2475250A1 — publié le 19810807

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