FR 2489554 A1 19820305 FR 8018580 A 19800827 La présente invention a pour objet un circuit de traitement numérique en arithmétique distribuée. Elle trouve une application dans la réalisation de fil- tres numériques utilisables notamment en télécommuni- cations. Le traitement numérique que réalise le cir- cuit de l'invention est une somme pondérée pouvant s'exprimer par la relation p V = E ak Uk (1) k = 1 o uk désigne différents signaux numériques de rang k et o ak désigne des coefficients de pondération. Comme cas particulier d'un tel traitement on trouve le filtrage numérique récursif qui est classi- quement caractérisé par une expression de la forme: P q, Yn = ak xn-k bk Yn-k (2) = dék= o x n-k désigne des signaux d'entrée de rang n-k, yn-k des signaux de sortie de rang n-k réinjectés à l'entrée du filtre, ak des coefficients de la partie non récur- sive, dont l'ordre est p et bk des coefficients de la partie récursive, dont l'ordre est q; l'indice n prend toutes les valeurs, est un entier et caractérise le rang du signal de sortie. Un filtre numérique récursif apte à effectuer un tel traitement comprend p+l entrées recevant les si- gnaux xk et q entrées recevant les signaux Yk' soit au total p+q+l entrées; il comprend également une sortie délivrant la suite des signaux yn. La fonction de transfert H(z) d'un tel fil- tre, exprimée à l'aide de la variable complexe z, est: p -k ak z H(z) = k= (3) q 1+ E bkz-k k = 1 L'invention s'inscrit dans le cadre d'une technique particulière de traitement numérique dénom- mée "arithmétique distribuée". Cette technique est dé- crite dans le brevet américain n 3 777 130 délivré le 4 décembre 1973 à A. CROISIER, D.J. ESTEBAN, M.E. LEVILION et V. RISO et intitulé "Digital Filter for PCM Encoded Signals'" ainsi que dans l'article de A. PELED et B. LIU intitulé "A new Hardware Realization of Digital Filters" publié dans la revue "IEEE Trans. on ASSP" vol. ASSP 22, pp 456-462 en décembre 1974. En outre, l'article de C.S. BURRUS intitulé "Digital Fil- ter Structures Described by Distributed Arithmetic" pu- blié dans la revue "IEEE Trans on Circuits and Systems", vol. CAS-24, N 12, décembre 1977, pp 674-680, fournit une approche générale de cette question et décrit divers algorithmes et architectures utilisables. On pourra se reporter à ces documents pour tout détail concernant cette technique de l'arithméti- que distribuée, celle-ci n'étant que brièvement rappe- lée ci-dessous afin que la compréhension de l'invention en soit facilitée. Il s'agit d'effectuer une somme pondérée de signaux exprimée par la relation (1). On suppose que les uk sont codés sur r bits en code complément à 2 mais d'autres codes sont naturellement possibles. On note Uk(0) le bit de signe et uk(J) les bits représen- tatifs de la valeur absolue de Uk, l'indice j étant compris entre 0 (exclus) et r-l (inclus). On peut donc écrire: r - 1 = -Uk (0)20 + U (j) 2-j (4 j =1 si-1 peut écrire v sous la forme: - v = -20 U() É)a 2-j uk(Ja) (5) k = 1 j = 1 k = 1 Dans cette relation, le terme Uk(j) qui figu- re dans l'expression entre parenthèses est le bit de rang j de uk et ce bit ne peut prendre que deux va- leurs: 0 ou 1. Pour le premier produit ul(j)a1 il n'y a donc que deux valeurs possibles: 0 ou ai. De même pour le produit u2(j)a2 qui ne peut prendre que les deux valeurs 0 et a2; il n'y a donc que 4 valeurs possibles pour la somme de ces deux produits, à savoir 0, ai, a2, ou a1+ a2. De proche en proche, on voit qu'il y a finalement 2P valeurs possibles pour la somme: p uk(j) akÀ k = 1 Cette somme, qui sera notée wj (puisqu'elle dépend du rang j considéré) prend donc l'une quelconque de 2P valeurs déterminées uniquement par les coefficients ak. Le calcul de la somme pondérée revient donc au calcul de l'expression: r 1 v - - 2w0 + wj 2-j j =1 o les w peuvent être prédéterminés dès que l'on s'est fixé un jeu de coefficients ak. Celle de ces 2P valeurs qui doit être retenue pour former wj est définie par l'ensemble des p bits de rang j des signaux d'entrée, à savoir ul(j), u2 (j)... Up(j). Dans un circuit de traitement à arithmétique distribuée les quantités w. sont inscrites dans une mé- moire de 2P mots de m bits, si m est le nombre de bits nécessaire pour exprimer ces sommes partielles. Le mot correspondant à un wj particulier est situé, dans cette mémoire, à l'adresse correspondant aux p bits de rang j des signaux d'entrée uk. Le nombre m est déterminé à partir des con- traintes du problème à traiter et il peut être réduit de deux manières différentes: par troncation des coef- ficients ak comme dans une réalisation conventionnelle, ou par troncation directe des quantités wj (mais alors le traitement n'est plus rigoureusement linéaire). Cet- te dernière méthode est décrite dans l'article de R. LAGADEC et D. PELLONI intitulé "A Model for Distri- buted Arithmetic for Filters with Post-Quantized Look- up Table" publié dans "National Telecommunication Con- ference" 1977, pp 29: 3-1 à 29: 3-6. Si les signaux d'entrée uk sont introduits dans des registres série, poids faible en tête, et si l'on dispose en sortie de la mémoire contenant les w. précalculés d'une unité arithmétique composée d'un ad- ditionneur-soustracteur, d'un registre accumulateur à entrées parallèles et sorties parallèles pouvant être décalé, on peut réaliser la somme pondérée v en r opé- rations élémentaires telles que: - lecture de la mémoire à l'adresse donnée par les p bits uk(j), - addition du contenu du registre accumulateur parallè- le-parallèle et du mot contenu dans la mémoire à l'adresse indiquée (pour j = 0, il faut soustraire le contenu de la mémoire au contenu du registre) , - décalage du registre accumulateur parallèle-parallè- le et des registres série d'entrée (qui correspond à une division par deux du résultat intermédiaire). L'organisation matérielle d'un tel circuit est illustrée sur la figure 1. Le circuit représenté comprend: p registres- série 10/1, 10/2,...,10/p de r bits recevant les p signaux d'entrée 20, une mémoire morte de 2P mots de m bits, un additionneur-soustrac- teur 30, un registre à entrées parallèles et sorties parallèles 40 décalable et un circuit d'horloge 50. La mémoire possède p entrées reliées aux sor- ties des p registres d'entrée et elle contient les 2P quantités suivantes: p L akEk k = 1 o Ek prend les valeurs 0 ou 1; l'adresse de chaque quantité est constituée par p bits appliqués aux p en- trées. - Avec de tels moyens on réalise en r coups d'horloge l'équivalent de p multiplications et (p-l) additions, le déroulement des opérations étant le sui- vant: Les quantités uk se présentent poids faible en tête dans les registres 10/l,...,10/p. La première quantité calculée est: P Wr-1 = E uk(r-l)ak k=l k = l puis, après décalage du registre 40, on calcule: r-11, r- puis la somme wr2 + 2-Wrw wlw"r2r r-1 puis, après un nouveau décalage, on calcule 2(Wr-2 + 2 Wr-1) 2 Wr-2 + 2 Wr-1 et ainsi de suite jusqu'au r ième coup d'horloge, o l'on doit effectuer une soustraction correspondant aux bits de signe Uk(0). Après ce dernier coup, les regis- tres série 10/1,...,10/p doivent être décalés. On peut également tronquer ou arrondir le résultat v. Pour fai- re de la troncation, il suffit de ne pas prendre en compte les bits de faible poids, à partir d'un certain moment. Pour faire de l'arrondi, il faut ajouter, avant troncation des résultats,un demi-poids faible. Ces principes peuvent être appliqués à la réalisation d'un filtre numérique récursif. L'opéra- tion à effectuer est alors celle de la relation (2) et le circuit correspondant est celui de la figure 2. Il comprend une partie non récursive constituée de p+l re- gistres série 10/0, 10/1,...,10/p recevant les signaux xn, Xnl1...,Xnp et une partie récursive constituée de q registres 11/1, 11/2,...,11/q recevant les signaux Yn-1' Yn-2'''''Yn-q' le registre 11/1 étant à charge- ment parallèle et les autres à chargement série; les registres 10/0 à 10/p-1 ont leur sortie reliée à l'en- trée du registre suivant, de même que les registres 11/1 à 11/q-l. Le circuit comprend encore une mémoire à p+q+l entrées reliées à la sortie des registres, cette mémoire contenant 2p+q+l mots de m bits, ces mots étant les quantités: P q ajj+l - Z bk p+q+2-k j =o0 k = 1 o les sont égaux à 0 ou 1, j allant de 1 à p+q+l. Le circuit comprend enfin les organes de traitement arithmétique déjà mentionnés, à savoir: un additionneur-soustracteur 30, un registreaccumulateur à entrées parallèles et sorties parallèles, ainsi qu'une horloge 50 assurant le déroulement convenable des opérations (décalage des registres, chargement des registres parallèles, remise à zéro de l'accumulateur à la fin du cycle). Par rapport au circuit de la figure 1, on note donc deux modifications: - le registre 11/1 correspondant à yn-1 est à charge- ment parallèle; le contenu du registre parallèle- parallèle 40 doit être limité à r bits (par tronca- tion ou arrondi), puis, à la fin de chaque cycle de calculs (r opérations élémentaires) chargé dans le registre yn-1 de manière parallèle, - les différents registres série sont connectés les uns aux autres. La fréquence de lecture de la mémoire et de décalage des registres est égale à rfE si fE est la fréquence d'échantillonnage du filtre numérique. Si les données xk entrent dans le dispositif sous forme série, poids faible en tête, à la bonne cadence et avec le bon nombre r de bits, le premier registre 10/0 n'est pas indispensable. S'il est maintenu, avec en quelque sorte un rôle de registre tampon, le résultat est retardé d'une période 1/f E Dans certaines applications, les données se présentent sous forme parallèle: le premier registre doit alors être à chargement parallèle. Dans un tel dispositif, la taille de la mé- moire devient importante dès que les ordres p et q du filtre atteignent des valeurs de l'ordre de 6, ce qui correspond aux gabarits nécessaires à la transmission d'informations par impulsions codées (MIC). Pour diminuer la taille de la mémoire, une solution consiste à utiliser un ou des multiplexeurs, au prix toutefois d'une augmentation de la fréquence de travail. M multiplexeurs peuvent être disposés à la sortie de la mémoire, comme il est décrit dans l'arti- cle de C.S. BURRUS cité plus haut. Ces multiplexeurs possèdent M entrées et une sortie. Un tel multiplexeur sera symbolisé par la suite par la notation M 1. Il est commandé par un compteur modulo M à f3 sorties qui reçoit des impulsions de l'horloge. La mémoire est alors composée de M mémoires différentes, chacune de 2n mots de m bits, ces mémoires possédant n entrées d'adressage et une sortie. Le circuit comprend au total nM registres d'entrée répartis en n groupes chacun as- socié à une mémoire. La taille de l'ensemble de mémori- sation est alors de M.2n mots de m bits, ce qui est inférieur à la taille de 2nM que devrait présenter une seule mémoire sans multiplexeurs pour pouvoir traiter nM signaux d'entrée. L'invention retient une disposition légère- ment différente qui consiste à placer les multiplexeurs à l'entrée de la mémoire et non plus à la sortie. Cela permet d'utiliser une seule mémoire (au lieu de M) et n multiplexeurs M- 1 au lieu de m. Le circuit correspon- dant est représenté sur la figure3. Il comprend encore nM registres d'entrée répartis en n groupes respective- ment 10/1, 10/2,...10/M pour le premier groupe, 10/M+l, /M+2,...,10/2M pour le second, etc..., 10/nM-M+l, 10/nM-M+2,...,10/nM pour le dernier, un ensemble de n multiplexeurs M-, 1 respectivement 15/1, /2,...,15/n, chacun de ces multiplexeurs possédant M entrées reliées aux sorties des M registres du groupe correspondant et une sortie, une mémoire à 2B+n mots de m bits. Cette mémoire est partitionnée en 2 blocs de 2n mots chacun. Cette mémoire possède d'une part B en- trées (fo,...,f 1) d'adressage d'un des blocs et d'au- tre part n entrées el, e2,...,en d'adressage d'un mot à l'intérieur d'un bloc. Ces dernières entrées sont re- liées aux sorties des n multiplexeurs. Quant aux pre- mières elles sont reliées aux 5 sorties d'un compteur modulo M, lesquelles sont également reliées à des entrées de sélection 14/1, 14/2...14/n des multiple- xeurs. Le compteur reçoit des impulsions à la fréquence M.rfE provenant de l'horloge 50. Le circuit comprend encore un additionneur-soustracteur 30 et un registre- accumulateur 40. Par comparaison avec la figure 1 (o l'on avait p = nM), on voit que la capacité de la mémoire est réduite de 2nM à 2n+3, soit puisque M est ici égal à 2B, une réduction de 2nM à M2n. Cette réduction s'ef- fectue au détriment du nombre d'opérations qui passe de r à Mr. Le fonctionnement de ce circuit est le sui- vant. La somme pondérée v est calculée en Mr opérations élémentaires telles que: - lecture de la mémoire à l'adresse donnée par les n bits délivrés par les multiplexeurs dans le bloc sé- lectionné par le contenu du compteur, - addition du mot lu dans la mémoire à cette adresse et du contenu du registre parallèle-parallèle (sous- traction pour les bits de signe), - incrémentation du contenu C du compteur d'une unité par une impulsion d'horloge, - décalage des registres série et du registre parallè- le-parallèle uniquement lorsque le contenu C du comp- teur atteint M si l'on compte de 1 à M, ou M-1 si l'on compte de 0 à M-1. Comme les quantités uk se présentent poids faible en tête, la première quantité calculée lorsque le contenu du compteur est C = 1 est: n - 1 w(rl,1) = a(+1k)U(l+M) u (r-l) = 0 puis, lorsque le contenu passe à 2: w(r 1,2) + w(r - 1,1) et ainsi de suite jusqu'à: M Z w( Un décalage des registres d'entrée et du re- gistre sortie intervient alors. Le résultat intermé- diaire est alors divisé par 2, soit M 2 1; w(r - 1,C) auquel il vient s'ajouter w(r - 2,1) puis w(r - 2,2), etc... L'organisation de la figure 3 présente un in- convénient qui est le suivant. Elle suppose que le nom- bre M est une puissance exacte de 2 (M = 25). Si ce n'est pas le cas, la mémoire, dont la capacité est presque toujours une puissance de 2 en raison de ce que les constructeurs se bornent à fabriquer de telles mé- moires, n'est pas complètement utilisée. Ainsi, avec M = 3, le compteur possède 5 = 2 sorties et la mémoire possède 4 blocs, l'un des quatre blocs n'étant jamais sélectionné par le compteur puisque celui-ci n'atteint jamais la valeur 4 (ou 3 si l'on compte de 0 à 2). La présente invention a justement pour objet un circuit qui résout ce problème d'optimalisation d'utilisation de la mémoire. L'idée sur laquelle se fonde l'invention est la suivante. On suppose que le contenu du compteur va- rie entre 0 et M - 1 (un raisonnement analogue pourraUt etre tenu si ce contenu variait entre 1 et M). Les configurations binaires correspondant à M, M-l,,. 25-1 ne sont donc jamais délivrées par les a sorties du compteur. Cela signifie que certaines configurations comprises entre 0 et M-1 seront entièrement caractéri- il sées par un nombre de bits inférieur strictement à D. Autrement dit, parmi les f3 bits délivrés par le comp- teur, il en est qui peuvent ne pas être significatifs, c'est-à-dire n'avoir aucune incidence sur la commande des multiplexeurs et de l'adressage de la mémoire. Selon l'invention, on n'adresse pas ces bits non significatifs sur la mémoire de sorte qu'on libère des entrées supplémentaires qui peuvent alors être re- liées à des registres série supplémentaires. Tout se passe comme si on avait partitionné la mémoire en M blocs qui ne sont plus nécessairement de la même tail- le, tous les blocs étant maintenant utilisés, l'ac- croissement de taille des blocs les plus grands par rapport aux plus petits correspondant aux entrées sup- plémentaires libérées. On montrera par la suite que, d'une façon gé- nérale, la mémoire peut être partitionnée en CM -(21f-M)] blocs de 2n mots et en (20-M) blocs de 2n mots et que le nombre de registres supplémentaires peut atteindre (21e-M). Quant à la commutation de ces entrées de la mémoire libérée tantôt sur des registres- série supplémentaires,-tantôt sur les sorties du comp- teur, elle s'effectue par un moyen de commutation ap- proprié. La définition précise de l'objet de l'inven- tion est alors la suivante. Il s'agit d'un circuit de traitement numérique réalisant une somme pondérée de signaux numériques, comprenant n groupes de M regis- tres-série dans lesquels les signaux à traiter sont introduits, n multiplexeurs à M entrées et une sortie, les M entrées de chaque multiplexeur étant reliées aux sorties des M registres-série d'un des groupes, une mé- moire contenant des quantités précalculées caractéris- tiques de la somme pondérée à effectuer, cette mémoire ayant une capacité de 2n mots répartie en différents blocs, un compteur modulo M à e sorties, la mémoire possédant d'une part D entrées d'adressage des diffé- rents blocs, reliées aux 5 sorties du compteur et, d'autre part, n entrées d'adressage d'un mot à l'inté- rieur d'un bloc reliées aux sorties des n multi- plexeurs, un additionneur-soustracteur relié à la mé- moire, un registre-accumulateur relié à l'addition- neur-soustracteur, et une horloge actionnant le comp- teur et les registres, ce circuit est caractérisé en ce que le nombre M étant inférieur à 25, la mémoire est partitionnée en lM - (21-M)] blocs de 2n mots et en (2fi-M) blocs de 2n+l mots, ces blocs étant sélectionnés par les bits délivrés sur les sorties du compteur, et en ce qu'il comprend des registres-série supplémentai- res en nombre au plus égal à 25-M, ces registres-série recevant des signaux supplémentaires à traiter, et en ce qu'il comprend encore un moyen de multiplexage pos- sédant des entrées qui sont reliées à ces registres supplémentaires ainsi qu'à celles des sorties du comp- teur qui peuvent délivrer des bits non significatifs à l'égard de l'adressage des blocs de la mémoire, ce moyen de multiplexage étant commandé par des sorties du compteur qui indiquent l'apparition de bits non signi- ficatifs, certaines des entrées d'adressage de blocs de la mémoire étant reliées aux sorties dudit moyen de multiplexage de telle manière qu'elles se trouvent re- liées à travers ce moyen de multiplexage, soit aux re- gistres supplémentaires lorsque des bits non siginifi- catifs apparaissent à la sortie du compteur, soit au compteur en l'absence de tels bits. De préférence, le moyen de multiplexage est constitué par des multiplexeurs à deux entrées et une sortie. Les caractéristiques de l'invention apparai- tront mieux après la description qui va suivre, d'exem- ples de réalisation donnés à titre explicatif et nulle- ment limitatif. Cette description se réfère à des des- sins annexés qui font suite aux dessins déjà décrits et sur lesquels: - la figure 4 illustre un mode particulier de réalisation correspondant à M = 3 et utilisant 7 regis- tres-série (dont 1 supplémentaire); - la figure 5 illustre un autre mode particu- lier de réalisation correspondant à M = 5 et utilisant 13 registres-série (dont 3 supplémentaires). Le circuit représenté sur la figure 4 com- prend des éléments déjà représentés (de manière généra- le) sur la figure 3, à savoir 6 registres-série 10/1 à 10/6, 2 multiplexeurs 15/1 et 15/2 à trois entrées et une sortie (ce qui correspond donc à M = 3), une mémoi- re 20 à 16 mots de m bits répartis en un bloc de 8 mots et deux blocs de 4 mots. Cette mémoire possède deux entrées d'adressage e1 et e2 reliées aux multiplexeurs /1 et 15/2 et deux entrées f0 et f1 (la première étant également désignée par e3 pour des raisons qui apparaîtront par la suite) reliées aux deux sorties du compteur 25 modulo 3, un additionneursoustracteur 30, un registre accumulateur 40 et enfin une horloge 50. Le circuit comprend en outre et selon une ca- ractéristique de l'invention, un septième registre-sé- rie 10/7 qui reçoit un septième signal à traiter, un multiplexeur 16 à deux entrées de signal 16/1 et 16/2, une entrée de commande 16/3 et une sortie 16/4 reliée à l'entrée f0 de la mémoire. Le compteur délivre sur ses deux sorties deux bits b0 (de poids faible) et b1 (de poids fort). Le bit b1 est appliqué à l'entrée de com- mande 16/3 du multiplexeur 16 et à l'entrée f1 de la mémoire. Le bit b0 est appliqué à l'entrée 16/2 du mul- tiplexeur 16. Par ailleurs, les bits b0 et b1 sont ap- pliqués aux multiplexeurs 15/1 et 15/2 qu'ils comman- dent. Avec les notations précédentes, le circuit de la figure 4 illustre donc le cas o M = 3, g = 2, n = 2. Son fonctionnement est alors le suivant. Le compteur 25 compte de 0 à 2. Les configurations binai- res délivrées par ses sorties sont donc les suivantes b 1 b50 0 O O 1 1 E La configuration binaire 11 n'est jamais pro- duite puisque le contenu du compteur n'atteint pas 3. Il en résulte que, si b1 est à 1, le bit de poids faible b0 n'est pas significatif puisqu'à lui seul b1 = 1 suf- fit pour adresser un des blocs de la mémoire et pour commander les multiplexeurs 15/1 et 15/2, le bit b0 n'intervenant pas dans cet adressage et cette commande. On peut donc libérer une entrée supplémentaire de mé- moire lorsque b1 = 1 et affecter cette entrée à un re- gistre d'entrée, ce qui permet de constituer un bloc mémoire de taille double. Cette commutation est obtenue par le multiplexeur 16. La sortie 16/4 de cet organe est reliée à l'entrée 16/1 lorsque le bit b1 appliqué sur 16/3 est à 1. Elle est reliée à 16/2 lorsque ce bit est à 0. Par ailleurs, la sortie du multiplexeur 16 est réunie à l'entrée f0/e3 de la mémoire. Cette entrée est donc reliée soit au septième registre 10/7 lorsque b1 = 1, soit au compteur 25 lorsque b1 = 0, ce qui ex- plique sa double notation. En même temps, le bit b1 = 1 appliqué à l'entrée f1 sélectionne le bloc de 8 mots de la mémoire, un mot de ce bloc étant adressé par les trois bits appliqués en e1, e2 et e3. Lorsque b1 est à 0, le bit b0 est appliqué à l'entrée f0 de la mémoire à travers le multiplexeur 16 et il sélectionne l'une ou l'autre (selon qu'il est à 0 ou à 1) des deux blocs- mémoire-de 4 mots et ces blocs-mémoire travaillent cha- * cun avec les deux entrées e et e2. Les 16 mots de la mémoire sont donc bien tous utilisés. Il apparaît, sur cet exemple, que le bit b0 n'a une signification en ce qui concerne la sélection d'un bloc mémoire, que lorsque le bit b1 n'est pas à 1. Dans le cas contraire, le bit b0 ne participe pas à la sélection d'un bloc mémoire, ce rôle étant exclusive- ment dévolu au bit b1. C'est en ce sens qu'on peut dire que ce bit est quelquefois "non significatif". Dans l'exemple de la figure 4, la mémoire de 24 mots est partitionnée en un bloc de 23 mots et en deux blocs de 22 mots, c'est-à-dire, en reprenant la notation n déjà utilisée (avec n = 2) en un bloc de 2n+l mots et en deux blocs de 2n mots. On peut montrer que cette manière d'organiser la mémoire est générale. En effet, une mémoire de 2 +n mots peut être partitionnée en mémoires de 2 mots et en mémoires de 2n+l mots, ce qui résulte de l'égalité: 2n+n = [M (2-M)] 2+ ( 25-M) 2 n+l de démonstration immédiate. Dans cette égalité le terme entre crochets vérifie les inégalités: O et le terme entre parenthèses l'inégalité 25-M 0 car 2-1 t M. 2n et en (25-M) blocs de taille 2n+l. D'une manière générale, et conformément à l'invention, on peut donc libérer (25-M) entrées sup- plémentaires, ce qui porte le nombre possible d'entrées p à: Pmax =nM + 2 - M (12) pour 2-1 Si M est égal à la puissance D de 2, le nombre d'entrées supplémentaires tombe à zéro puisque l'on retrouve le cas de la figure 3. Le tableau suivant illustre diffé- rents cas pour toutes les valeurs de M comprises entre 2 et 8. M Df Pmax Capacité Nombre de coups mémoire d'horloge 2 1 2n 2n+l 2r 3 2 3n+l 2n+2 3r 4 2 4n 2n+2 4r 3 5n+3 2n+3 5r 6 3 6n+2 2n+3 6r 7 3 7n+1 2n+3 7r 8 3 8n 2n+3 8r Ce tableau montre qu'en fonction du nombre d'entrées p et pour une taille de mémoire donnée, plu- sieurs solutions sont possibles; celle qui conduit au nombre de coups d'horloge le plus faible sera choisie en pratique. EXEMPLES: l)p = 4 peut être obtenu avec: M =2 et n = 2 M = 3 eetn=l 1 M = 4 et n = 1 pour une capacité mémoire de 8 mots de m bits. Le nombre de coups d'horloge minimal est obtenu avec la première solution. 2)p = 7 peut être obtenu avec: M = 3 et n = 2 M = 4 et n = 2 M = 5 et n = 1 M= 6 et n = 1 M = 7 et n = 1 M = 8 et n = 1 pour une capacité mémoire de 16 mots de m bits. Le nombre de coups d'horloge minimal est obtenu avec la première solution. La figure 5 représente un autre exemple de réalisation correspondant au cas suivant: p = 13, n = 5, D = 3, 2e = 8 et n = 2 Par rapport au cas précédemment illustré, on note les différences suivantes: tout d'abord les mul- tiplexeurs 15/1, et 15/2 sont à 5 entrées au lieu de 3, le compteur 25 est modulo 5 au lieu de 3 et il possède 3 sorties au lieu de 2, lesquelles délivrent 3 bits bo, b1 et b2 et il existe 3 registres supplémentaires 10/11, 10/12, et 10/13; par ailleurs, le moyen de mul- tiplexage 14 est maintenant constitué par 3 multiple- xeurs 2 1, respectivement 17, 18 et 19, commandés res- pectivement par les bits b0, b1 et b2. Les deux multi- plexeurs 17 et 18 réalisent deux étages de multiplexa- ge, ce qui permet d'adresser sur l'entrée f2/e4 de la mémoire soit le bit b2, soit l'une quelconque des sor- ties des registres supplémentaires 10/12 et 10/13. Le fonctionnement de ce circuit est le sui- vant. Le compteur voit son contenu passer de 0 à 4 et il délivre les configurations binaires suivantes b2 b1 b0 0 0 0 0 0 1 1 0 1 1 1 S on Quand le bit b2 est à 1, le bits b1 et b0 ne sont pas significatifs. Quand le bit b1 est à 1, le bit b2 n'est pas significatif, et cela deux fois de suite. Il semblerait alors qu'on puisse libérer 4 entrées supplé- mentaires au lieu des 3 envisagées précédemment. En fait, on ne peut pas indépendamment utiliser toutes ces entrées supplémentaires. Ce point apparaît lorsqu'on partitionne la mémoire en 5 blocs: 1er bloc:taille 4 mots; correspond à l'adresse 000 2emebloc:taille 4 mots; correspond l'adresse 001 23emebloc:taille 8 mots; correspond aux l'adresse 010 èmet 110 43 mebloc:taille 8 mots; correspond aux adresses Oll et 111 ème 5mebloc:taille 8 mots; correspond aux adresses 10011 ème 5 bloc:taille 8 mots; correspond aux adresses 100 et 101. Les adresses 110 et 111 sont déjà utilisées eme ème dans le 3me et le 4me blocs et ne peuvent pas être ème réutilisées dans le 5eme bloc. La taille totale de la mémoire est bien de 32 mots, soit 25+n = 25. Naturellement, dans un circuit tel que celui de la figure 5, d'autres dispositifs de multiplexage que les 3 multiplexeurs 2 -f1 pourraient être utilisés pour obtenir le même résultat, par exemple deux multi- plexeurs 2---1 disposés chacun à la sortie d'un des registres 10/12 ou 10/13, ou un multiplexeur à 3 en- trées reliées à 10/12, 10/13 et b2, etc...D'une manière générale, et comme il a été indiqué dans la définition de l'invention donnée plus haut, il convient d'utiliser un moyen de multiplexage apte à relier les entrées li- bérées de la mémoire soit aux registres supplémentaires lorsque des bits non significatifs apparaissent à la sortie du compteur, soit au compteur en l'absence de tels bits. A partir des deux exemples décrits correspon- dant à M = 3 et M = 5, on peut aisément poursuivre le raisonnement: - Pour M = 6, le contenu du compteur va passer de 0 à 5 et le compteur va délivrer les configurations 0 0 0 O 0 1 O1 0 1 0 1 o les bits non significatifs sont encadrés et l'on peut libérer 2 entrées supplémentaires correspondant à ces bits. - Pour M = 7, le contenu du compteur va passer de 0 à 6 et le compteur va délivrer les configurations: 0 0 0 O 0 1 0 1 0 on1,1 1 0 0 1 11 0 et on peut libérer 1 entrée supplémentaire correspon- dant au seul bit non significatif encadré. La description qui précède se rapporte à un circuit réalisant une somme pondérée. L'application à la réalisation d'un filtre récursif est immédiate comme les figures 1 et 2 l'ont montré. Il suffit pour cela de relier les registres-série en cascade avec un charge- ment parallèle du premier registre de la partie récur- sive (11/1 de la figure 2). Ce filtre peut d'ailleurs être du type à su- réchantillonnage comme décrit dans la demande de brevet français n0 EN... déposée par les mêmes demandeurs et intitulée "Filtre récursif de suréchantillonnage en arithmétique distribuée". REVENDICATIONS 1. Circuit de traitement numérique réalisant une somme pondérée de signaux numériques, comprenant n groupes de M registres-série (10/1,...10/nM) dans les- quels les signaux à traiter sont introduits, n multi- plexeurs (15/1, 15/2,...15/n) à M entrées et une sor- tie, les M entrées de chaque multiplexeur étant reliées aux sorties des M registres-série d'un des groupes, une mémoire (20) contenant des quantités précalculées ca- ractéristiques de la somme pondérée à effectuer, cette mémoire ayant une capacité de 2e+n mots répartie en différents blocs, un compteur (25) modulo M à f3 sor- ties, la mémoire (20) possédant d'une part 3 entrées d'adressage des différents blocs (f0' fl...) reliées aux 5 sorties du compteur et, d'autre part, n entrées d'adressage d'un mot à l'intérieur d'un bloc (el, e2...) reliées aux sorties des n multiplexeurs, un ad- ditionneur-soustracteur (30) relié à la mémoire, un re- gistre-accumulateur (40) relié à l'additionneur-sous- tracteur, et une horloge (50) actionnant le compteur et les registres, ce circuit étant caractérisé en ce que le nombre M étant inférieur à 2, la mémoire est parti- tionnée en [M - (23-M)] blocs de 2n mots et en (2e-M) blocs de 2n+l mots, ces blocs étant sélectionnés par les bits délivrés sur les sorties du compteur, et en ce qu'il comprend des registres-série supplémentaires en nombre au plus égal à 25-M, ces registres-série rece- vant des signaux supplémentaires à traiter, et en ce qu'il comprend encore un moyen de multiplexage (21) possédant des entrées qui sont reliées à ces registres supplémentaires ainsi qu'à celles des sorties du comp- teur qui peuvent délivrer des bits non significatifs à l'égard de l'adressage des blocs de la mémoire, ce moyen de multiplexage étant commandé par des sorties du compteur qui indiquent l'apparition de bits non signi- ficatifs, certaines des entrées d'adressage de blocs de la mémoire étant reliées aux sorties dudit moyen de multiplexage de telle manière qu'elles se trouvent re- liées à travers ce moyen de multiplexage, soit aux re- gistres supplémentaires lorsque des bits non siginifi- catifs apparaissent à la sortie du compteur, soit au compteur en l'absence de tels bits. 2. Circuit selon la revendication 1, carac- lO térisé en ce que le moyen de multiplexage (21) est constitué par au moins un multiplexeur (16, 17, 18, 19) à deux entrées et une sortie. 3. Circuit selon la revendication 1, carac- térisé en ce que la somme pondérée effectuée correspond à un filtrage récursif, les registres-série de la par- tie non récursive d'une part, et de la partie récursive d'autre part étant alors reliés les uns aux autres en cascade, le premier registre de la partie récursive (11/1) étant à chargement parallèle à partir du regis- tre-accumulateur (40).