FR2929726A1 - Procede d'addition a operandes multiples, additionneur et produit programme d'ordinateur correspondants. - Google Patents

Procede d'addition a operandes multiples, additionneur et produit programme d'ordinateur correspondants. Download PDF

Info

Publication number
FR2929726A1
FR2929726A1 FR0852189A FR0852189A FR2929726A1 FR 2929726 A1 FR2929726 A1 FR 2929726A1 FR 0852189 A FR0852189 A FR 0852189A FR 0852189 A FR0852189 A FR 0852189A FR 2929726 A1 FR2929726 A1 FR 2929726A1
Authority
FR
France
Prior art keywords
bit
rank
value
signal
index
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
FR0852189A
Other languages
English (en)
Other versions
FR2929726B1 (fr
Inventor
Daniel Torno
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.)
Daniel Tomo SARL
Original Assignee
Sarl DANIEL TORNO A RESPONSABILITE Ltee Ste
R L DANIEL TORNO SARL SA
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 Sarl DANIEL TORNO A RESPONSABILITE Ltee Ste, R L DANIEL TORNO SARL SA filed Critical Sarl DANIEL TORNO A RESPONSABILITE Ltee Ste
Priority to FR0852189A priority Critical patent/FR2929726B1/fr
Priority to US12/936,337 priority patent/US8788563B2/en
Priority to PCT/EP2009/053976 priority patent/WO2009121943A1/fr
Publication of FR2929726A1 publication Critical patent/FR2929726A1/fr
Application granted granted Critical
Publication of FR2929726B1 publication Critical patent/FR2929726B1/fr
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/50Adding; Subtracting
    • G06F7/505Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
    • G06F7/509Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination for multiple operands, e.g. digital integrators
    • 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/50Adding; Subtracting
    • G06F7/505Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
    • G06F7/509Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination for multiple operands, e.g. digital integrators
    • G06F7/5095Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination for multiple operands, e.g. digital integrators word-serial, i.e. with an accumulator-register

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Error Detection And Correction (AREA)
  • Complex Calculations (AREA)
  • Logic Circuits (AREA)

Abstract

L'invention concerne un procédé d'addition permettant d'additionner une pluralité de nombres binaires d'entrée, de N bits chacun. Le procédé comprend au moins une itération, d'indice i+1 avec i >= 0, d'une étape d'accumulation permettant de générer un signal d'estimation U<i+1> sur N bits et un premier R<i+1> (ou second H<i+1> ) signal de correction sur N bits, à partir d'un nombre binaire de la pluralité de nombres binaires d'entrée, d'un signal d'estimation U' et d'un premier R<i> (ou second H<i>) signal de correction sur N bits issus d'une itération précédente i.En d'autres termes, un tel procédé d'addition permet de sommer un nombre binaire supplémentaire à un résultat représenté sous une forme binaire redondante de type « U/R » (ou « U/H »), ce résultat résultant d'une initialisation ou d'une sommation précédente, puis de générer un résultat également sous une forme binaire redondante de type « U/R » (ou « U/H »). Plus précisément, la présente invention permet de réaliser cette sommation autant de fois qu'il y a de nombres binaires à additionner.

Description

Procédé d'addition à opérandes multiples, additionneur et produit programme d'ordinateur correspondants. 1. DOMAINE DE L'INVENTION Le domaine de l'invention est celui des circuits et systèmes de traitement numérique de l'information et plus particulièrement, des calculateurs de traitement numérique de signal réalisant l'addition de nombres binaires. L'invention a de nombreuses applications, telles que par exemple dans les microprocesseurs, les processeurs numériques du signal ou DSP (pour Digital Signal Processor en anglais), les circuits intégrés spécifiques de traitement numérique de données ou ASIC (pour Application Specific Integrated Circuit en anglais), les blocs de base des circuits intégrés ou VLSI (pour Very Large Scale Integration en anglais), ou encore au sein des réseaux neuronaux, des calculateurs optiques ou quantiques. Plus précisément, l'invention concerne une technique d'addition à multiples opérandes permettant de fournir un résultat sous une forme binaire redondante.
L'invention s'applique notamment, mais non exclusivement, en traitement numérique de signal pour la sommation et/ou l'accumulation de résultats dans le cadre de la réalisation de filtres numériques, par exemple. L'addition binaire étant la plus utilisée des opérations arithmétiques, l'invention peut s'appliquer plus généralement dans tout circuit, système ou dispositif demandant une sommation de plusieurs opérandes. 2. ARRIÈRE-PLAN TECHNOLOGIQUE Les additionneurs sont des opérateurs extrêmement fréquents et indispensables non seulement dans les unités arithmétiques des microprocesseur et processeur de traitement de signal numérique, mais également dans tous les circuits logiques.
Cependant, les additionneurs se révèlent être souvent les opérateurs critiques d'un système de traitement numérique, notamment lors de certaines mises en application, tant du point de vue de leur vitesse d'exécution que du point de vue de leur conception et de leur testabilité. En effet, l'élaboration d'algorithmes de complexité croissante au sein des calculateurs rend, de nos jours, l'architecture des opérateurs de plus en plus difficile à mettre en oeuvre et des problèmes notamment de compacité apparaissent. Un choix entre complexité et vitesse d'exécution doit donc être généralement effectué. Le problème technique de la vitesse de calculs concernant les opérations d'addition de nombres binaires est un problème connu de l'Homme du Métier et plusieurs techniques ont déjà été proposées pour y répondre. Dans une première technique courante, l'additionneur binaire, plus couramment nommé additionneur à propagation retenue ou RCA (pour Ripple Carry Adder en anglais), permet au moyen d'une mise en cascade de plusieurs additionneurs complets (ou Full Adder en anglais) à 1 bit de propager la retenue d'additionneur en additionneur. L'inconvénient de cette première technique courante est la lenteur des calculs qu'elle met en oeuvre. En effet, le temps de calcul dépend directement du temps nécessaire à la propagation de la retenue de module d'additionneur en module d'additionneur. Ainsi, cette méthode ne peut être choisie que pour des opérations d'addition ne dépassant pas quelques bits. Une deuxième technique connue, tenant compte du fait que le calcul des retenues doit être accéléré, est un calcul par anticipation de retenue effectuée avec un additionneur, dit à retenue anticipée ou CLA (pour Carry Lookahead Adder en anglais). Un tel additionneur facilite notamment le calcul des retenues au moyen d'un circuit extérieur. Cependant, ce type d'additionneur standard présente l'inconvénient de fournir un temps de propagation encore trop important notamment pour des applications comprenant de complexes algorithmes et nécessitant un calcul rapide. Afin d'éviter la propagation des retenues et ainsi améliorer le temps d'exécution des calculs, une autre technique traditionnellement employée consiste en une addition de nombres binaires sous forme redondante, à l'aide d'une structure d'additionneur dite à sauvegarde de retenue (ou carry save adder en anglais). Ces additionneurs standards utilisent des expressions redondantes qui permettent d'effectuer des additions de façon parallèles, et donc sans propagation de retenues. À titre d'exemple, les documents de brevet américain US 6578063B1 (IBM) et US 6567835B1 (INTRINSITY) proposent deux architectures d'additionneur de nombres binaires de type carry save . Ces deux architectures permettent d'effectuer l'addition de cinq nombres binaires et d'en fournir le résultat sous forme d'une somme et d'une retenue. La méthode classique citée dans ces documents consiste à utiliser notamment une représentation redondante de chacun des nombres binaires additionnés.
Cependant, l'implantation standard Carry Save décrite nécessite un nombre de portes logiques et d'étages de traitement numérique intermédiaires importants. L'architecture et l'implantation des dispositifs logiques n'étant pas optimisée, cette méthode implique un temps de propagation encore important. Une technique connue, telle que décrite dans la demande internationale W02007122319 (TORNO), consiste, au moyen d'une représentation binaire redondante de type U/R des résultats intermédiaires de calcul, à effectuer plusieurs estimations des valeurs de bit de la somme de deux nombres binaires et à corriger successivement ces estimations à l'aide d'un signal de correction. Le nombre de portes logiques et d'étages de traitement numérique intermédiaires de ce type d'additionneur s'en trouve ainsi diminué. Cette méthode, basée sur une représentation de type U/R , n'est malheureusement aujourd'hui applicable que pour l'addition de deux nombres binaires. En conséquence, si l'on souhaite additionner plus de deux nombres binaires, il faut appliquer cette méthode sur deux nombres, puis (autant de fois que nécessaire) sur le résultat d'une addition précédente et d'un nouveau nombre binaire. Cette solution n'est pas optimale. 3. OBJECTIFS DE L'INVENTION L'invention, dans au moins un mode de réalisation, a notamment pour objectif de pallier ces différents inconvénients de l'état de la technique.
Plus précisément, dans au moins un mode de réalisation de l'invention, un objectif est de fournir une technique d'addition de nombres binaires à l'aide d'une représentation binaire redondante de type U/R (permettant ainsi d'éviter la propagation des retenues sur des résultats intermédiaires de calcul), offrant de meilleures performances que la technique connue précitée décrite dans la demande international W02007122319.
Au moins un mode de réalisation de l'invention a également pour objectif de fournir une telle technique qui permet de sommer plus de deux nombres binaires. Au moins un mode de réalisation de l'invention a également pour objectif de fournir une telle technique permettant de réduire le temps d'exécution de l'addition de multiples nombres binaires. Plus précisément, un objectif est de réduire le temps de propagation. Un autre objectif d'au moins un mode de réalisation de l'invention est de fournir une telle technique permettant de réduire le nombre de portes logiques nécessaire à l'additionneur de façon à gagner en compacité et à diminuer sa consommation en énergie. Un objectif complémentaire d'au moins un mode de réalisation de l'invention est de fournir une telle technique qui apporte une meilleure testabilité du fait notamment d'une implantation particulière de portes OU Exclusif ( EXOR en anglais) et ET ( AND en anglais).
Un objectif complémentaire d'au moins un mode de réalisation de l'invention est de fournir une telle technique qui facilite la mise en oeuvre d'une fiabilisation des calculs par contrôle de parité. Un objectif complémentaire d'au moins un mode de réalisation de l'invention est de fournir une telle technique qui soit simple à mettre en oeuvre et peu coûteuse. 4. EXPOSÉ DE L'INVENTION Dans un mode de réalisation particulier de l'invention, il est proposé un procédé d'addition permettant d'additionner une pluralité de nombres binaires d'entrée, de N bits chacun. Le procédé comprend au moins une itération, d'indice i+l avec i z 0, d'une étape d'accumulation permettant de générer un signal d'estimation U'+l sur N bits et un premier R'+' ou second H'+' signal de correction sur N bits, * selon les équations suivantes : IU':' = U: °Rn °Un, 0' cn (1) i+1 i i (U' n0' Rn 0' Un * ou selon les équations suivantes : 5
i+l 2929726 I un+l ù V n O l l n O c /5) ( H +l = (UH)(Ucn cn avec :
U'+ln : une valeur du bit de rang n dudit signal d'estimation Ui+1 avec 0 s n s N-1, obtenue lors de ladite itération d'indice i+l ;
5 U'n : une valeur du bit de rang n d'un signal d'estimation U', obtenue lors d'une itération précédente d'indice i si i > 0, ou une valeur d'initialisation déterminée U°n du bit de rang n d'un signal d'estimation U' si i = 0 ;
une valeur du bit de rang n-1 dudit signal d'estimation U', obtenue lors d'une itération précédente d'indice i si n > 0 et si i > 0,
10 ou une valeur d'initialisation déterminée U°n_1 du bit de rang n-1 dudit signal d'estimation U' si n > 0 et si i = 0, ou une valeur d'initialisation prédéterminée d'un bit fictif de rang n-1 dudit signal d'estimation U' si n = 0 ;
R'n : une valeur du bit de rang n d'un premier signal de correction R', obtenue lors 15 d'une itération précédente d'indice i si n > 0,
ou une valeur d'initialisation prédéterminée du bit de rang n dudit premier signal de correction R' si n = 0 ;
R'+1n+1 : une valeur du bit de rang n+l dudit premier signal de correction R1+1 obtenue lors ladite itération d'indice i+l ; 20 HIn : une valeur du bit de rang n d'un second signal de correction H', obtenue lors d'une itération précédente d'indice i ;
H'+1n+1 : une valeur du bit de rang n+l dudit second signal de correction H1+1 obtenue lors ladite itération d'indice i+l ;
en : une valeur du bit de rang n d'un nombre binaire d'entrée C compris dans ladite 25 pluralité de nombres binaires d'entrée et pris en compte dans ladite addition lors de ladite itération d'indice i+l de ladite étape d'accumulation.
Le principe général de l'invention consiste donc à sommer un nombre binaire supplémentaire à un résultat représenté sous une forme binaire redondante de type U/R (ce résultat résultant d'une initialisation ou d'une sommation précédente), puis de générer un résultat également sous une forme binaire redondante de type U/R .
Plus précisément, un tel procédé permet de réaliser cette sommation autant de fois qu'il y a de nombres binaires à additionner. On parle alors d'étapes d'accumulation de résultats intermédiaires de calcul. Plus précisément, à chaque étape d'accumulation, un signal d'estimation U et un signal de correction R sont générés sur N bits sous forme d'une représentation binaire redondante. De cette façon, un tel procédé permet de sommer un nombre binaire standard supplémentaire tout en évitant la propagation des retenues. De façon avantageuse, l'itération d'indice 1 de ladite étape d'accumulation est remplacée par une étape d'initialisation permettant de générer un signal d'estimation Ul sur N bits et un premier RI ou second HI signal de correction sur N bits, * selon les équations suivantes, avec 0 s n s N-1 : Un an O b, c) /2\ (anbn)(bncn) (3) * ou selon les équations suivantes, avec 0 s n s N-1 : {U'n = °bn ° n n (6) Hn+1 (anbn)(bncn)cn avec : a : une valeur du bit de rang n d'un nombre binaire d'entrée A compris dans ladite pluralité de nombres binaires d'entrée et pris en compte dans ladite addition lors de ladite étape d'initialisation ; 20 bn : une valeur du bit de rang n d'un nombre binaire d'entrée B compris dans ladite pluralité de nombres binaires d'entrée et pris en compte dans ladite addition lors de ladite étape d'initialisation ; en : une valeur du bit de rang n d'un nombre binaire d'entrée C compris dans ladite pluralité de nombres binaires d'entrée et pris en compte dans ladite addition lors 25 de ladite étape d'initialisation. De cette manière, il est possible d'additionner initialement trois nombres binaires et de générer un signal d'estimation U et un signal de correction R de première itération. Préférentiellement, le procédé d'addition comprend les étapes suivantes :15 - sélection d'un premier nombre binaire d'entrée compris dans ladite pluralité de nombres binaires d'entrée ; - obtention de valeurs d'initialisation prédéterminées pour : * chacun des N bits d'un signal d'estimation U°, * chacun des N bits d'un signal de correction R°, * un bit fictif de rang -1 dudit signal d'estimation U° ; - itération d'indice 1 de ladite étape d'accumulation avec, comme signaux d'entrée, ledit premier nombre binaire d'entrée et lesdites valeurs d'initialisation prédéterminées, permettant de générer un signal d'estimation Ul sur N bits et un premier RI signal de correction sur N bits ; - tant que ladite pluralité de nombres binaires d'entrée n'ont pas été pris en compte dans ladite addition : * sélection d'un nouveau nombre binaire d'entrée compris dans ladite pluralité de nombres binaires d'entrée et non déjà sélectionné ; * itération d'indice i+l, avec i > 0, de ladite étape d'accumulation avec, comme signaux d'entrée, ledit nouveau nombre binaire d'entrée, les signaux U' et R' générés lors de l'itération d'indice i de ladite étape d'accumulation, une valeur d'initialisation prédéterminée U'_1 d'un bit fictif de rang -1 dudit signal d'estimation U', et une valeur d'initialisation prédéterminée R'° du bit de rang 0 dudit premier signal de correction R'. Ainsi, l'invention permet de réaliser séquentiellement la somme d'un ensemble de nombres binaires, comme c'est le cas par exemple pour les filtres numériques. Selon une autre variante de réalisation, le procédé d'addition comprend les étapes suivantes : - sélection d'un premier nombre binaire d'entrée compris dans ladite pluralité de nombres binaires d'entrée ; - obtention de valeurs d'initialisation prédéterminées pour : * chacun des N bits d'un signal d'estimation U°, * chacun des N bits d'un signal de correction H°, - itération d'indice 1 de ladite étape d'accumulation avec, comme signaux d'entrée, ledit premier nombre binaire d'entrée et lesdites valeurs d'initialisation 20 25 30 prédéterminées, permettant de générer un signal d'estimation U' sur N bits et un second H' signal de correction sur N bits ; tant que ladite pluralité de nombres binaires d'entrée n'ont pas été pris en compte dans ladite addition : * sélection d'un nouveau nombre binaire d'entrée compris dans ladite pluralité de nombres binaires d'entrée et non déjà sélectionné ; * itération d'indice i+l, avec i > 0, de ladite étape d'accumulation avec, comme signaux d'entrée, ledit nouveau nombre binaire d'entrée, les signaux U' et H' générés lors de l'itération d'indice i de ladite étape d'accumulation, et une valeur d'initialisation prédéterminée Rio du bit de rang 0 dudit premier signal de correction R'. Dans un autre mode de réalisation avantageux de l'invention, il est proposé un dispositif d'addition permettant d'additionner une pluralité de nombres binaires d'entrée, de N bits chacun. Un tel dispositif comprend au moins un bloc d'accumulation permettant, à chaque fois qu'il est activé, d'effectuer une itération, d'indice i+l avec i z 0, d'un mécanisme d'accumulation, chaque bloc d'accumulation comprenant : * des premiers moyens d'estimation, permettant de générer un signal d'estimation U'+1 sur N bits, et des premiers moyens de correction, permettant de générer un premier signal de correction R'+1 sur N bits, lesdits premiers moyens d'estimation et lesdits premiers moyens de correction comprenant des moyens de mise en oeuvre des équations suivantes : Un+~ùUn°Rn°Un,0cn (1) i+1 i i i Rn+1 U~Rn~Unù1 Uc)l * ou des seconds moyens d'estimation, permettant de générer un signal d'estimation U'+1 sur N bits, et des seconds moyens de correction, permettant de 25 générer un second signal de correction H'+1 sur N bits, lesdits seconds moyens d'estimation et lesdits seconds moyens de correction comprenant des moyens de mise en oeuvre des équations suivantes : Fun+' = Un Hn lin (5) Hi+1 i i n+1ù( i Uc'Hn) Uno'/~+ l.n /~+ l.20 avec : U'+ln : une valeur du bit de rang n dudit signal d'estimation avec 0 s n s N-1, obtenue lors de ladite itération d'indice i+l ; U'n une valeur du bit de rang n d'un signal d'estimation U', obtenue lors d'une itération précédente d'indice i si i > 0, ou une valeur d'initialisation déterminée U°n du bit de rang n d'un signal d'estimation U' si i = 0 ; une valeur du bit de rang n-1 dudit signal d'estimation U', obtenue lors d'une itération précédente d'indice i si n > 0 et si i > 0, ou une valeur d'initialisation déterminée U°n_1 du bit de rang n-1 dudit signal d'estimation U' si n > 0 et si i = 0, ou une valeur d'initialisation prédéterminée d'un bit fictif de rang n-1 dudit signal d'estimation U' si n = 0 ; R'n : une valeur du bit de rang n d'un premier signal de correction R', obtenue lors d'une itération précédente d'indice i si n > 0, ou une valeur d'initialisation prédéterminée du bit de rang n dudit premier signal de correction R' si n = 0 ; R'+ln+i : une valeur du bit de rang n+l dudit premier signal de correction R'' obtenue lors ladite itération d'indice i+l ; H'n : une valeur du bit de rang n d'un second signal de correction H', obtenue lors d'une itération précédente d'indice i ; H'+ln+i : une valeur du bit de rang n+l dudit second signal de correction H'' obtenue lors ladite itération d'indice i+l ; en : une valeur du bit de rang n d'un nombre binaire d'entrée C compris dans ladite pluralité de nombres binaires d'entrée et pris en compte dans ladite addition lors de ladite itération d'indice i+l. Ainsi, l'additionneur peut recevoir un nombre binaire supplémentaire au niveau de chaque bloc d'accumulation en sus des signaux d'estimation et de correction issus du bloc d'accumulation situé en amont. De façon avantageuse, le bloc d'accumulation comprend, pour chaque bit n, un sous-bloc d'accumulation lui-même comprenant : - une première porte logique XOR recevant ladite valeur du bit de rang n-1 et d'indice i et ladite valeur R'n du bit de rang n et d'indice i, et générant un premier signal intermédiaire ; - une deuxième porte logique XOR recevant ledit premier signal intermédiaire et ladite valeur U'n du bit de rang n et d'indice i, et générant un deuxième signal intermédiaire ; - une troisième porte logique XOR recevant ledit deuxième signal intermédiaire et ladite valeur du bit de rang n d'un nombre binaire d'entrée C, et générant ladite valeur U'+ln du bit de rang n dudit signal d'estimation U'+l pour l'itération d'indice i+l ; - une quatrième porte logique XOR recevant ladite valeur U'n du bit de rang n et d'indice i et ladite valeur en du bit de rang n d'un nombre binaire d'entrée C, et générant un troisième signal intermédiaire ; et - une porte logique AND recevant ledit troisième signal intermédiaire et ledit deuxième signal intermédiaire, et générant ladite valeur du bit de rang n+l dudit premier signal de correction R'' pour l'itération d'indice i+l. Ainsi, l'architecture du bloc d'accumulation permet un temps de propagation plus court et facilite la testabilité. Selon une variante, le bloc d'accumulation comprend, pour chaque bit n, un sous-bloc d'accumulation lui-même comprenant : - une première porte logique XOR recevant ladite valeur du bit de rang n-1 et d'indice i et ladite valeur H'n du bit de rang n et d'indice i, et générant un premier signal intermédiaire ; - une deuxième porte logique XOR recevant ledit premier signal intermédiaire et ladite valeur en du bit de rang n d'un nombre binaire d'entrée C, et générant ladite valeur U'+ln du bit de rang n dudit signal d'estimation U'+l pour l'itération d'indice i+l ; - une porte logique XNOR recevant ladite valeur du bit de rang n-1 et d'indice i et ladite valeur en du bit de rang n d'un nombre binaire d'entrée C et générant un deuxième signal intermédiaire ; - une porte logique AND recevant ledit premier signal intermédiaire et ledit deuxième signal intermédiaire et générant un troisième signal intermédiaire ; et
- une troisième porte logique XOR recevant ledit troisième signal intermédiaire et ladite valeur en du bit de rang n d'un nombre binaire d'entrée C et générant ladite
valeur du bit de rang n+l dudit second signal de correction H'+' pour l'itération d'indice i+l.
De façon avantageuse, le dispositif d'addition comprend un bloc d'initialisation comprenant :
* des troisièmes moyens d'estimation, permettant de générer un signal
d'estimation Ul sur N bits, et des troisièmes moyens de correction, permettant de générer un troisième signal de correction RI sur N bits, lesdits troisièmes moyens d'estimation et lesdits troisièmes moyens de correction comprenant des moyens de mise en oeuvre des équations suivantes, avec 0 s n s N-1 : {U'n anc)bnc) n2\ Rn+1 (anbn)(bncn) * ou des quatrièmes moyens d'estimation, permettant de générer un signal d'estimation Ul sur N bits, et des quatrièmes moyens de correction, permettant de générer un quatrième signal de correction HI sur N bits, lesdits quatrièmes moyens d'estimation et lesdits quatrièmes moyens de correction comprenant des moyens de mise en oeuvre des équations suivantes, avec 0 s n s N-1: {Uln= anc)bnc)c n (6) Hn+1 (anbn)(bncn)cn avec :
an : une valeur du bit de rang n d'un nombre binaire d'entrée A compris dans ladite pluralité de nombres binaires d'entrée et pris en compte par ledit bloc d'initialisation ;
25 bn : une valeur du bit de rang n d'un nombre binaire d'entrée B compris dans ladite pluralité de nombres binaires d'entrée et pris en compte par ledit bloc d'initialisation ;20 en : une valeur du bit de rang n d'un nombre binaire d'entrée C compris dans ladite pluralité de nombres binaires d'entrée et pris en compte par ledit bloc d'initialisation ; le bloc d'initialisation remplaçant le bloc d'accumulation permettant d'effectuer l'itération d'indice 1. De cette manière, le bloc d'initialisation permet d'additionner directement trois nombres binaires en entrée. De façon préférentielle, le bloc d'initialisation comprend, pour chaque bit n, un sous-bloc d'initialisation lui-même comprenant : - une première porte logique XNOR recevant ladite valeur an du bit de rang n d'un nombre binaire d'entrée A et ladite valeur bn du bit de rang n d'un nombre binaire d'entrée B et générant un premier signal intermédiaire ; - une porte logique XOR recevant ledit premier signal intermédiaire et ladite valeur ladite valeur en du bit de rang n d'un nombre binaire d'entrée C et générant ladite valeur U'n du bit de rang n dudit signal d'estimation Ul pour l'itération d'indice 1 ; - une seconde porte logique XNOR recevant ladite valeur bn du bit de rang n d'un nombre binaire d'entrée B et ladite valeur en du bit de rang n d'un nombre binaire d'entrée C et générant un deuxième signal intermédiaire ; et - une porte logique AND recevant lesdits premier et deuxième signaux intermédiaires et générant ladite valeur R'n+l du bit de rang n+l dudit signal de correction RI pour l'itération d'indice 1. Selon une variante, le bloc d'initialisation comprend, pour chaque bit n, un sous-bloc d'intialisation lui-même comprenant : - une porte logique XNOR recevant ladite valeur an du bit de rang n d'un nombre binaire d'entrée A et ladite valeur bn du bit de rang n d'un nombre binaire d'entrée B et générant un premier signal intermédiaire ; - une première porte logique XOR recevant ledit premier signal intermédiaire et ladite valeur ladite valeur en du bit de rang n d'un nombre binaire d'entrée C et générant ladite valeur U'n du bit de rang n dudit signal d'estimation Ul pour l'itération d'indice 1 ; - une deuxième porte logique XOR recevant ladite valeur bn du bit de rang n d'un nombre binaire d'entrée B et ladite valeur en du bit de rang n d'un nombre binaire d'entrée C et générant un deuxième signal intermédiaire ; - une porte logique AND recevant lesdits premier et deuxième signaux intermédiaires et générant un troisième signal intermédiaire ; et - une troisième porte logique XOR recevant ledit troisième signal intermédiaire et ladite valeur en du bit de rang n d'un nombre binaire d'entrée C et générant ladite valeur H'n+i du bit de rang n+l dudit second signal de correction HI pour l'itération d'indice 1. Selon une caractéristique avantageuse, le dispositif comprend : - des premiers moyens de sélection, permettant de sélectionner un premier nombre binaire d'entrée compris dans ladite pluralité de nombres binaires d'entrée ; - des moyens d'obtention de valeurs d'initialisation prédéterminées pour : * chacun des N bits d'un signal d'estimation U°, 15 * chacun des N bits d'un signal de correction R°, * un bit fictif de rang -1 dudit signal d'estimation U° ; - des premiers moyens d'activation, permettant d'activer ledit bloc d'accumulation afin qu'il effectue l'itération d'indice 1 dudit mécanisme d'accumulation avec, comme signaux d'entrée, ledit premier nombre binaire d'entrée et lesdites 20 valeurs d'initialisation prédéterminées, permettant de générer un signal d'estimation Ul sur N bits et un premier RI signal de correction sur N bits ; - des seconds moyens d'activation, permettant d'activer les moyens suivants, tant que ladite pluralité de nombres binaires d'entrée n'ont pas été pris en compte dans ladite addition : * des seconds moyens sélection, permettant de sélectionner un nouveau nombre binaire d'entrée compris dans ladite pluralité de nombres binaires d'entrée et non déjà sélectionné ; * ledit bloc d'accumulation afin qu'il effectue une itération d'indice i+l, avec i > 0, dudit mécanisme d'accumulation avec, comme signaux d'entrée, ledit nouveau nombre binaire d'entrée, les signaux U' et R' générés lors de l'itération d'indice i dudit mécanisme d'accumulation, une valeur 10 25 30 d'initialisation prédéterminée U'_1 d'un bit fictif de rang -1 dudit signal d'estimation U', et une valeur d'initialisation prédéterminée R'° du bit de rang 0 dudit premier signal de correction R'. Ainsi, un seul bloc d'accumulation est suffisant.
Selon une variante de réalisation, le dispositif d'addition comprend : - des premiers moyens de sélection, permettant de sélectionner un premier nombre binaire d'entrée compris dans ladite pluralité de nombres binaires d'entrée ; - des moyens d'obtention de valeurs d'initialisation prédéterminées pour : * chacun des N bits d'un signal d'estimation U°, * chacun des N bits d'un signal de correction H°, - des premiers moyens d'activation, permettant d'activer ledit bloc d'accumulation afin qu'il effectue l'itération d'indice 1 dudit mécanisme d'accumulation avec, comme signaux d'entrée, ledit premier nombre binaire d'entrée et lesdites valeurs d'initialisation prédéterminées, permettant de générer un signal d'estimation Ul sur N bits et un second HI signal de correction sur N bits ; - des seconds moyens d'activation, permettant d'activer les moyens suivants, tant que ladite pluralité de nombres binaires d'entrée n'ont pas été pris en compte dans ladite addition : * des seconds moyens sélection, permettant de sélectionner un nouveau nombre binaire d'entrée compris dans ladite pluralité de nombres binaires d'entrée et non déjà sélectionné ; * ledit bloc d'accumulation afin qu'il effectue une itération d'indice i+l, avec i > 0, dudit mécanisme d'accumulation avec, comme signaux d'entrée, ledit nouveau nombre binaire d'entrée, les signaux U' et H' générés lors de l'itération d'indice i dudit mécanisme d'accumulation, et une valeur d'initialisation prédéterminée R'° du bit de rang 0 dudit premier signal de correction R'. Dans un autre mode de réalisation, l'invention concerne un produit programme d'ordinateur, téléchargeable depuis un réseau de communication et/ou enregistré sur un support lisible par ordinateur et/ou exécutable par un processeur, comprenant des 10 15 20 25 30 instructions de code de programme pour la mise en oeuvre du procédé de décodage tel que décrit précédemment. 5. LISTE DES FIGURES D'autres caractéristiques et avantages de modes de réalisation de l'invention apparaîtront à la lecture de la description suivante, donnée à titre d'exemple indicatif et non limitatif (tous les modes de réalisation de l'invention ne sont pas limités aux caractéristiques et avantages des modes de réalisation décrits ci-après), et des dessins annexés, dans lesquels : - la figure 1 illustre une architecture logique d'un module d'accumulation sous forme U/R selon un mode de réalisation particulier de l'invention ; - la figure 2 illustre une architecture logique d'un module d'initialisation sous forme U/R selon un premier mode de réalisation de l'invention ; - la figure 3 illustre une architecture logique d'un module d'initialisation sous forme U/R selon un second mode de réalisation de l'invention; - la figure 4 illustre un exemple d'un dispositif d'initialisation sous forme U/R sur 16 bits selon un mode de réalisation particulier du procédé de l'invention, comprenant 16 modules d'initialisation tels qu'illustrés à la figure 2 ou 3 ; - la figure 5 illustre un exemple d'un dispositif d'accumulation sous forme U/R sur 16 bits selon un mode de réalisation particulier du procédé de l'invention, comprenant 16 modules d'accumulation tels qu'illustrés à la figure 1 ; - la figure 6 présente une variante de réalisation, sous forme U/H, du module d'accumulation sous forme U/R illustré à la figure 1 selon l'invention ; - la figure 7 illustre une architecture logique d'un module d'initialisation sous forme U/H selon un premier mode de réalisation de l'invention ; - la figure 8 illustre une architecture logique d'un module d'initialisation sous forme U/H selon un second mode de réalisation de l'invention ; - la figure 9 représente un schéma fonctionnel d'un additionneur multi-opérandes en parallèle selon un mode de réalisation particulier du procédé selon l'invention ; - la figure 10 représente un schéma fonctionnel d'un additionneur multi-opérandes séquentiel selon un mode de réalisation particulier du procédé selon l'invention ; la figure 11 illustre un exemple de calcul numérique d'une sommation à sept opérandes, effectuée par l'additionneur de la figure 9. 6. DESCRIPTION DÉTAILLÉE Sur toutes les figures du présent document, les éléments et étapes identiques sont désignés par une même référence numérique. On présente maintenant, en relation avec la figure 1, une architecture logique d'un module d'accumulation sous forme U/R, selon un mode de réalisation particulier de l'invention, mettant en oeuvre l'étape d'accumulation du procédé selon l'invention. Plus particulièrement, le module d'accumulation 100 permet d'additionner, pour un rang n de bit donné, un résultat exprimé sous une forme binaire redondante U'/R' issu d'une itération d'indice i (i 0) et un nombre binaire standard, noté C, et d'en fournir de nouveau un résultat binaire sous forme redondante U'+'/R'+' obtenu pour une itération d'indice i+l. Le mécanisme d'accumulation mis en place par le module 100 permet de générer les valeurs binaires U'+ln et correspondant respectivement à la valeur du bit de rang n du signal d'estimation U'+' et à la valeur du bit de rang n+l du signal de correction R'+ln avec O s n s N-1. Dans ce mode de réalisation particulier, le module d'accumulation 100 est constitué d'une première porte logique de type OU Exclusif , également nommée porte XOR , apte à recevoir en entrée une valeur dite valeur du bit de rang n-1 du signal d'estimation U', obtenue lors d'une itération précédente d'indice i, et une valeur dite valeur du bit de rang n d'un signal de correction R', obtenue lors d'une itération précédente d'indice i. Cette première porte XOR génère en sortie un signal numérique intermédiaire 101. Une deuxième porte XOR reçoit à son tour le signal numérique intermédiaire 101 et une valeur Un, dite valeur du bit de rang n d'un signal d'estimation U' obtenue lors d'une itération précédente d'indice i et génère en sortie un autre signal numérique intermédiaire 102. Une troisième porte XOR reçoit le signal numérique intermédiaire 102 et en une valeur du bit de rang n d'un nombre binaire d'entrée C supplémentaire à additionner et délivre en sortie une valeur U'+l n dite valeur du bit de rang n dudit signal d'estimation U'+l obtenue lors d'une itération d'indice i+l.
Une troisième porte XOR permet de recevoir en entrée également la valeur U'n_1 et la valeur du bit du nombre binaire supplémentaire C et délivre en sortie un signal numérique intermédiaire 103. Une porte logique de type ET , également appelée porte AND , reçoit les deux signaux intermédiaires 102 et 103, et délivre en sortie une valeur R'+1n+1 dite valeur du bit de rang n+l du signal de correction obtenue lors d'une itération d'indice i+l. De cette façon, la valeur R'+1n+1 du bit de rang n+l du signal de correction d'indice i+l est élaboré à l'aide de la dernière estimation du bit de rang n Un, du dernier bit de correction de rang n de la dernière estimation du bit de rang n-1 U'n_1 et de la valeur en de bit de rang n du nombre binaire supplémentaire C. Il est important de noter que, dans le cas où le bit considéré correspond au bit de rang n = 0, le bit U'n_1 est considéré comme un bit fictif du signal d'estimation U' , et le bit comme un bit d'initialisation prédéterminée du bit du signal de correction R'. En outre, si l'étape d'accumulation correspondant à une itération d'indice 0, alors le bit correspond également à une valeur d'initialisation déterminée (avec n > 0) et le bit U°n à une valeur d'initialisation déterminée du signal d'estimation U'. Par conséquent, les signaux d'estimation Ui+1 sur N bits et de correction Ri+1 sur N bits sont déterminés à partir des équations génériques (1) suivantes, avec 0 s n s N-1 : i i i Rn+1 Uno'Rnc)Un-1 Uno'~~++ l.n avec : une valeur du bit de rang n du signal d'estimation Ui+1 obtenue lors de ladite itération d'indice i+l ; U'n une valeur du bit de rang n d'un signal d'estimation U', obtenue lors d'une itération précédente d'indice i si i > 0, ou une valeur d'initialisation déterminée U°n du bit de rang n d'un signal d'estimation U' si i = 0 ; une valeur du bit de rang n-1 du signal d'estimation U', obtenue lors d'une itération précédente d'indice i si n > 0 et si i > 0, 25 i+1 = i i Un Un R 0 Un-1 0 Cr, (1) ou une valeur d'initialisation déterminée U°n_1 du bit de rang n-1 du signal d'estimation U' si n > 0 et si i = 0, ou une valeur d'initialisation prédéterminée d'un bit fictif de rang n-1 du signal d'estimation U' si n = 0 ; une valeur du bit de rang n d'un premier signal de correction R', obtenue lors d'une itération précédente d'indice i si n > 0, ou une valeur d'initialisation prédéterminée du bit de rang n du signal de correction R' si n = 0 ; : une valeur du bit de rang n+l du signal de correction R'+1 obtenue lors la itération d'indice i+l ; en : une valeur du bit de rang n d'un nombre binaire d'entrée C compris dans ladite pluralité de nombres binaires d'entrée et pris en compte dans ladite addition lors de l'itération d'indice i+l de l'étape d'accumulation. Il est clair que d'autres architectures logiques (différentes de celle de la figure 1) 15 peuvent aisément être envisagées par l'homme du métier pour la mise en oeuvre des équations génériques (1), tout en restant dans le cadre de la présente invention. On présente maintenant, en relation avec la figure 2, illustre une architecture logique d'un module d'initialisation sous forme U/R selon un premier mode de réalisation de l'invention. Plus précisément, le module d'initialisation 200 met en oeuvre l'étape d'initialisation du procédé selon l'invention. En effet, il permet d'additionner trois nombres binaires standards A, B, et C et de générer un signal d'estimation U1 sur N bits et un R1 signal de correction sur N bits correspondant à une itération de rang 1. De manière classique, ces trois nombres binaires sont également exprimés sur N bits et 25 définis tels que : A I.G N-1.2N-1 + + a n - 2 n + + a1.21 + iy °.2° B = bN-1.2N-1 + + (l /1n b1 0 .2n + + 1.21 + bl 0.2° (2) C CN-1.2N-1 + + Cn.2n + + c1.21 + 00.20 avec : an , bn et en les valeurs de bit de rang n des nombres binaires d'entrées A, B et C pris en compte dans l'étape d'initialisation, n variant de 0 à N-1. 20 Le module comprend un premier sous-module 201, appelé module de pré-calcul, et un second sous-module 202, appelé module d'accumulation initial. Plus précisément, le module de pré-calcul 201, tel que décrit dans le document de brevet international WO2007122319 (TORNO), présente une première porte logique de type NON OU Exclusif , encore appelée porte XNOR , apte à recevoir les valeurs de bit d'entrées an_1, bn et générant en sortie une valeur de correction initiale R°n du bit de rang n. Deux portes logiques de type Inverseur , notée INV prenant en entrée la valeur de bit an_ 1 et bn fournissent respectivement en sortie une valeur d'estimation initiale U°n_1 du bit de rang n-1 et une valeur d'estimation initiale U°n du bit de rang n.
Dans ce mode de réalisation particulier, le module de pré-calcul 201 est situé en amont du module d'accumulation initial. Ce dernier, tel que décrit en relation avec la figure 1, permet d'ajouter la valeur du bit de rang n d'un nombre binaire supplémentaire (cn) aux valeurs U'n_1 R'n et U'n. Dans ce cas précis l'itération étant d'indice 0, les valeurs en entrée du module 202 sont donc U°n_1 R°n et U°n. Le principe et l'architecture du module 202 étant identique au module d'accumulation 100 de la figure 1, les valeurs obtenues en sortie du module d'initialisation sont donc incrémentées d'un indice de valeur 1. Au final, le module d'initialisation 200 génère les valeurs d'estimation Un et de correction Rln+1 respectivement de bit de rang n et n+l, définies par les équations (3) suivantes : 1 Un anc)bnc) n(3) Rn+1 (anbn)(bncn) avec OsnsN-1. En outre, le sous-module de pré-calcul permet de mettre en oeuvre les égalités suivantes : U~ an = U-1 a n-1 R0 an-1c)bn• En substituant les valeurs de bit obtenues par le sous-module de pré-calcul dans les équations génériques (1) en relation avec la figure 1, on obtient les équations suivantes : Un an0 an-i bn + n-lC' Cr, R1n+1 = an0 ~an-i bn~an-1 anOl~n) Puis, en posant l'égalité a n 0 b, )0 C n )_ (anbn) (b n 0 C n )' les équations précitées sont simplifiées, à savoir : Un anObnc) n Rn+1 (Fr,c)bn),,c)c,i) Ainsi, on note que la valeur de bit an_, ne fait plus partie de l'équation précitée. Par conséquent, après simplifications, on obtient les équations (3) élaborées précédemment en relation avec la figure 2 : Unn en (3) Ui_1 la valeur de bit de rang n-1 pour n=0 du signal d'estimation est arbitrairement donné égal à 1 car on considère qu'il est issu de l'équation : U1=a_10b_10 C_1 avec: a_1=0, b-1=0, C-1=0. Ce cas restant vrai quelle que soit l'itération du procédé. De même Rio la valeur de bit de rang n pour n=0 du signal de correction est arbitrairement donné égal à 1 car on considère qu'il est issu de l'équation : Ro= cL^0b_1) (F, ^0 c _1) avec : a_1=0, b_1=0, C_1=0.Cecas restant vrai quelle que soit l'itération du procédé. On présente maintenant, en relation avec la figure 3, une variante de réalisation du module d'initialisation illustré à la figure 2 selon l'invention. Cette variante permet notamment de mettre en oeuvre l'étape d'initialisation du procédé de façon optimal. Rn+1 (anbn)(bncn Plus particulièrement, le module d'initialisation 300 illustré sur cette figure réalise une addition de trois valeurs de bit an, bn et en issus de trois nombres binaires d'entrée quelconques A, B, C et génère en sortie une valeur Un dite valeur du bit de rang n du signal d'estimation Ul obtenu lors de l'itération 1, et une valeur R'n+i dite valeur du bit de rang n+l du signal de correction RI obtenu lors de l'itération 1. Une première porte logique de type XNOR reçoit les valeurs de bit de rang n des nombres binaires d'entrée an et bn et génère en sortie un signal numérique intermédiaire 301. Une porte logique de type OU Exclusif , également appelée XOR reçoit, quant à elle, le signal intermédiaire 301 ainsi que la valeur du bit de rang n du troisième nombre binaire en et délivre la valeur Un de rang n. Une seconde porte logique de type XNOR reçoit les valeurs de bit de rang n bn et en et génère en sortie un deuxième signal numérique intermédiaire 302. La porte AND reçoit, quant à elle, les deux signaux numériques intermédiaires respectivement 301 et 302 de façon à fournir la valeur R'n+i de rang n+l.
Il est clair que cette variante permet également de mettre en oeuvre l'étape d'initialisation également selon les équations (3) précitées. En outre, Il est évident que d'autres architectures logiques (différentes de celle de la figure 2 ou de la figure 3) peuvent aisément être envisagées par l'homme du métier pour la mise en oeuvre des équations (3), tout en restant dans le cadre de la présente invention. On trouvera en annexe 1 une explication sous forme d'équations du passage de l'art antérieur au module d'initialisation sous forme U/R et en annexe 2 une explication sous forme d'équations du passage du module d'initialisation sous forme U/R au module d'accumulation sous forme U/R .
On illustre maintenant, en relation avec la figure 4, un exemple d'un dispositif d'initialisation 400 permettant de traiter trois nombres binaires exprimés sur 16 bits. Plus précisément, il s'agit de réaliser une addition de trois nombres binaires standards A, B, et C définis sur 16 bits chacun (N = 16). Pour ce faire, seize modules d'initialisation 401 à 416, tels que décrits ci-dessus en relation avec la figure 2 ou la figure 3, sont assemblés en parallèles de façon à constituer un dispositif 400 pour exécuter l'étape d'initialisation sur 16 bits. Pour chaque bit de rang n, un module d'initialisation 401 à 416 reçoit les valeurs de bits de rang n de chacun des trois nombres binaires an, bn, cn, avec n compris entre 0 et 15. Il délivre en sortie les valeurs d'estimation Uln et de correction Rln+l respectivement de bit de rang n et n+l selon les équations (3) définies à la figure 2, et exprimées sur 16 bits dans cet exemple.
Dans ce mode de réalisation particulier, il convient de noter que, pour le bit de rang n = 0, la valeur d'initialisation prédéterminée correspondant au signal de correction RI est initialisée à 1 car celle-ci n'est pas généré par le fait que les modules ne génère une valeur de correction pour un rang n+l. On illustre maintenant, en relation avec la figure 5, un exemple d'un dispositif d'accumulation 500, selon le mode de réalisation illustrée à la figure 1, permettant de traiter des nombres binaires exprimés sur 16 bits, et plus particulièrement permettant de traiter un nombre binaire supplémentaire. Il s'agit de réaliser une addition d'un nombre binaire standard supplémentaire C de 16 bits avec les signaux d'estimation U' et de correction R', obtenus précédemment pour une itération d'indice i quelconque, également exprimés sur 16 bits. Pour ce faire, seize modules d'accumulation 501 à 516, tels que décrits ci-dessus en relation avec la figure 1 sont assemblés en parallèles de façon à constituer le dispositif 500 pour exécuter la phase d'accumulation sur 16 bits pour une itération i donnée. Chaque module d'accumulation 501 à 516 (c'est-à-dire pour chaque rang n) reçoit en entrée, la valeur du bit de rang n cn, la valeur du bit de rang n du signal d'estimation U', la valeur du bit de rang n du signal de correction R' ainsi que la valeur du bit de rang précédent n-1 du signal d'estimation U', n étant également compris entre 0 et 15. Chaque module d'accumulation délivre en sortie les valeurs d'estimation U'+ln et de correction R'+ln+l respectivement de bit de rang n et n+l, conformément aux équations (1) précitées en relation avec la figure 1, et exprimées sur 16 bits dans cette illustration. On se rapporte à présent à la figure 6 qui décrit une variante de réalisation du module d'accumulation illustré à la figure 1 selon l'invention mettant également en oeuvre l'étape d'accumulation du procédé selon l'invention. En effet, au lieu de calculer les valeurs d'estimation U'+ln et de correction R'+ln+l, on peut considérer uniquement U'+ln et une variable intermédiaire, notée H'+1n+,, définie telle que : H = R Ü n+1 n+1 n o o onù1 0 u= ù Un O R O U Cn H1n+1 (U0R0U0 O n n )(UCn URUù,Cn En partant des équations (3) de la figure 3 permettant la somme de trois nombres binaires A, B, et C, à savoir : Un I~L n O bnc) (3) Rn, (anbn)(bncn) 1 1 on obtient les équations suivantes, à l'aide de l'égalité H1 n+1 = Rn+1 O Un 1 Un anObnOlten 7 Hn+1 ar9bn l et après simplification : 1 Un anObnOlten 1 7 7 Hn+1 ldnObn -(bnOCn)OCn Les équations (1) pour une itération d'indice 1 par exemple, à savoir : c, Rn+1 Un deviennent alors les équations suivantes : n -1 U1 ù UO O R O O 0 O n n n Unù1 Cn ù (u° O oO o oO Hn+1 n C Ainsi, pour une itération d'indice i quelconque, on obtient les équations génériques 15 (5) suivantes : Un+lùU0Hn0Cn i+1 i Hn+1ù(UH)(UCn C Cette variante de module d'accumulation 600 permet, sur le même principe que le module d'accumulation de la figure 1 et pour un rang de bit n donné, d'additionner aux signaux d'estimation U' et de correction H', issus d'une itération i, un nombre 20 binaire standard C et de fournir de nouveau un résultat sous forme binaire redondante, à savoir un signal d'estimation U'+l et de correction Hi+1 d'itération d'indice i+l. 10 1 ! 0O R0n c, U0n-1)(ucn) (4) (5) Selon cette variante d'architecture du module d'accumulation, il est possible de générer en sortie du module 600 une valeur du bit de rang n du signal d'estimation U'+' et une valeur du bit de rang n+l du signal de correction H'' à partir des valeurs suivantes, obtenues lors d'une itération précédente d'indice i de l'étape d'accumulation :
une valeur du bit de rang n-1 d'un signal d'estimation U', H'n une valeur du bit de rang n du signal de correction H' et en la valeur du bit de rang n d'un nombre binaire standard C.
Plus précisément, les valeurs et issues de l'itération précédente i, sont reçues par une première porte logique de type OU Exclusif , aussi nommée porte
XOR , fournissant un signal numérique intermédiaire 601. Une deuxième porte XOR reçoit à son tour le signal numérique intermédiaire 601 et la valeur de bit en du nombre binaire supplémentaire C et génère en sortie la valeur U'+ln , dite valeur du bit de
rang n du signal d'estimation obtenue lors de d'une itération d'indice i+l.
Les valeurs et en sont reçues en entrée par une porte XNOR et délivre en
sortie un signal numérique intermédiaire 602. Une porte logique de type AND réceptionne ensuite les deux signaux intermédiaires 601 et 602 et pour délivrer un signal numérique intermédiaire 603. Enfin, la troisième porte XOR reçoit le signal
intermédiaire 603 et la valeur en du nombre binaire C et délivre la valeur dite valeur du bit de rang n+l du signal de correction H'' obtenue lors ladite itération
d'indice i+l.
Par conséquent, les bits estimés U'+ln et les bits corrigés H'+ln+, obtenus lors d'une itération d'indice i+l sont déterminés à partir des équations génériques suivantes (5) : Fun = Un Hn lin ~+ ~+ (5) Hn+1= (U Hn)(U n lem avec :
U''-'n : une valeur du bit de rang n dudit signal d'estimation avec 0 s n s N-1, obtenue lors d'une itération d'indice i+l ; U'n : une valeur du bit de rang n d'un signal d'estimation U', obtenue lors d'une itération précédente d'indice i si i > 0, ou une valeur d'initialisation déterminée U°n du bit de rang n d'un signal d'estimation U' si i = 0 ; une valeur du bit de rang n-1 dudit signal d'estimation U', obtenue lors d'une itération précédente d'indice i si n > 0 et si i > 0, ou une valeur d'initialisation déterminée U°n_1 du bit de rang n-1 dudit signal d'estimation U' si n > 0 et si i = 0, ou une valeur d'initialisation prédéterminée d'un bit fictif de rang n-1 dudit signal d'estimation U' si n = 0 ; 10 H'n : une valeur du bit de rang n d'un second signal de correction H', obtenue lors de l'itération précédente d'indice i ; : une valeur du bit de rang n+l dudit second signal de correction H'' obtenue lors l'itération d'indice i+l ; en : une valeur du bit de rang n d'un nombre binaire d'entrée C compris dans ladite 15 pluralité de nombres binaires d'entrée et pris en compte dans la addition lors de l'itération d'indice i+l de l'étape d'accumulation. Il est clair que d'autres architectures logiques (différentes de celle de la figure 6) peuvent aisément être envisagées par l'homme du métier pour la mise en oeuvre des équations génériques (5), tout en restant dans le cadre de la présente invention. 20 On présente à présent, en relation avec la figure 7, une architecture logique d'un module d'initialisation 700 susceptible d'être mis en oeuvre par la variante de réalisation de la figure 6 d'un module d'initialisation selon un mode de réalisation particulier mettant en oeuvre l'étape d'initialisation du procédé selon l'invention. Le module d'initialisation 700 comprend dans un premier sous-module 701, 25 appelé module de pré-calcul, et un second sous-module 702, appelé module d'accumulation initial. Plus précisément, le module de pré-calcul 701 présente, à la différence du module d'initialisation 200 de la figure 2, une seule porte logique de type INV apte à recevoir la valeur de bit de rang n d'entrées an et générant en sortie une valeur initiale de bit de rang n U°n. En effet, en reprenant les équations (4) et en posant 30 les égalités suivantes pour le module de pré-calcul 701, à savoir : H°R°U°_l avec U° _l = an_1 et ° = O =an_1^0 ,5 les équations du module de pré-calcul peuvent être simplifiées : H° ùbn etU°=an. Dans cette architecture, le module de pré-calcul 701 est situé en amont du module d'accumulation initial 702. Ce dernier, tel que décrit à la figure 6, permet d'ajouter la valeur du bit de rang n d'un nombre binaire supplémentaire noté en aux valeurs de bit d'estimation U'n_1 et de correction H'n respectivement de rang n-1 et n. L'itération étant d'indice 0, les valeurs en entrée du module 702 sont donc U°n_1 et H°n. En outre, le principe et l'architecture du module 702 étant identique au module d'accumulation 600 de la figure 6, les valeurs obtenues en sortie du module d'initialisation sont donc incrémentées d'un indice de valeur 1. On obtient ainsi les valeurs d'estimation Un et de correction H1n+1 respectivement de bit de rang n et n+l définies par les équations suivantes : _oc ~o, Un, cn En conséquence, le module 700 permet de mettre en oeuvre les équations (6) suivantes : 1 (6) Il est clair que d'autres architectures logiques (différentes de celle de la figure 7) peuvent aisément être envisagées par l'homme du métier pour la mise en oeuvre des 20 équations (6), tout en restant dans le cadre de la présente invention. On se rapporte à présent à la figure 8 qui décrit une variante de réalisation du module d'initialisation illustré à la figure 7. Cette variante est considérée comme permettant de mettre en oeuvre l'étape d'initialisation du procédé de façon optimale. Plus particulièrement, le module d'initialisation 800 illustré sur cette figure 25 réalise une addition de trois valeurs de bit an, bn et en issus de trois nombres binaires d'entrée quelconques A, B, C. Il génère en sortie une valeur Un dite valeur du bit de rang n du signal d'estimation U1 obtenu lors de l'itération 1, et une valeur R1n+1 dite Hn+1 (rT0RorT0 nn n-1)(ucn cn 1 Un anObn' n Hn+1 (1.Gn bn) (bn l.n) n valeur du bit de rang n+l du signal de correction RI obtenu également lors de l'itération 1. Pour ce faire, une première porte logique de type XNOR reçoit les valeurs de bit de rang n des nombres binaires d'entrée an et bn et génère en sortie un signal numérique intermédiaire 801. Une porte logique de type XOR reçoit, quant à elle, le signal intermédiaire 801 ainsi que la valeur du bit de rang n du troisième nombre binaire en et délivre la valeur du bit de rang n Uln de façon identique au module d'initialisation 300 de la figure 3. En outre, une seconde porte logique de type XOR reçoit les valeurs de bit de rang n bn et en et génère en sortie un deuxième signal numérique intermédiaire 802. La porte AND reçoit, quant à elle, les deux signaux numériques intermédiaires respectivement 801 et 802 et génère un troisième signal intermédiaire 803. Ce dernier est utilisé avec la valeur en au moyen d'une troisième porte XOR de façon à fournir la valeur Han+i de rang n+l.
On présente à présent, en relation avec la figure 9, un schéma fonctionnel d'un additionneur multi-opérandes en parallèle selon un mode de réalisation particulier conforme à l'invention. Plus précisément, cet additionneur réalise l'addition de sept nombres binaires notés E1 à E7, chaque nombre binaire étant exprimé sur 16 bits. Dans ce mode de réalisation particulier, on présente un premier étage de calcul, constitué du dispositif d'initialisation 400, tel que décrit précédemment en relation avec la figure 3, qui calcule la somme de trois nombres binaires El, E2 et E3 et permet de fournir en sortie les deux signaux d'estimation U'o_15 et de correction R11_15, d'itération i=1, représentés sous une forme redondante de type U/R . Un deuxième étage de calcul constitué du dispositif d'accumulation 500, tel que décrit précédemment en relation avec la figure 5, reçoit en entrée les signaux d'estimation U'o_15 et de correction R11_15 issus du dispositif 400 précédent (i=1) et un nombre binaire supplémentaire E4 sur 16 bits. Ce deuxième étage génère en sortie deux signaux d'estimation U2o_15 et de correction R21_15, d'itération d'indice 2 et également représentés sous une forme redondante de type U/R . De la même manière, trois autres étages 500 sont ajoutés afin de pouvoir sommer à chaque étage de calcul (c'est-à- dire à chaque itération d'indice i), un des trois nombres binaires supplémentaires restants, à savoir E5 (pour l'itération d'indice 3), E6 (pour l'itération d'indice 4) et E7 (pour l'itération d'indice 5). Au final, les derniers signaux d'estimation U5o_15 et de correction R51.15 issus dernier étage (itération d'indice 5) sont reçus par un additionneur 901 de type Carry- Look-Ahead ou Ripple-Carry adapté de façon à obtenir, à partir de signaux représentés sous une forme binaire redondante de type U/R , le résultat final So_15 en forme binaire standard des sept nombres binaires additionnés. Le détail de calcul de cette somme finale est décrit dans le brevet international WO2007122319 (TORNO). Il est à noter que les valeurs Rio et U'_1 sont les valeurs d'initialisation prédéterminée du bit de rang n = 0 du signal de correction et valeurs d'initialisation déterminée qui sont, dans ce cas précis, égaux à 1. En effet, chaque module générant un signal de correction R'n+1de rang n+l pour une itération d'indice i, le signal de correction de rang n = 0 d'itération i n'est donc pas existant. Il en est de même avec le bit fictif U'_1. En outre, il est à noter que les valeurs de bit de rang 16, notée R'16, ne sont pas utilisées dans ce mode de réalisation particulier. En effet, la dynamique d'expression sur 16 bits est suffisante pour que l'accumulation des sept nombres binaires puisse s'effectuer sans retenue de dépassement (ou overflow en anglais). On présente désormais, en relation avec la figure 10, un schéma fonctionnel d'un additionneur multi-opérandes séquentiel selon un mode de réalisation particulier conforme à l'invention. Plus particulièrement, cet additionneur réalise l'addition de sept nombres binaires notés El à E7, de 16 bits chacun. Il peut être utilisé notamment dans le cadre du filtrage numérique, par exemple. Dans ce mode de réalisation particulier, un seul dispositif d'accumulation 500 (tel que décrit à la figure 5) est nécessaire et un registre 1020 stocke tous les résultats intermédiaires de l'accumulation. Le calcul s'effectue donc de manière séquentielle pour i itérations, i variant de 1 jusqu'à 7. Dans un premier temps, le registre 1030 contenant les signaux U°o-15 et de correction R°1.15 est initialisé afin que chaque valeur de bit n Co-15 et R°1.16 ait la valeur 1, ainsi que U°_1 et R°o.
Dans un second temps, la commande de sélection du multiplexeur 1010 sélectionne le nombre binaire d'entrée El et un calcul d'itération d'indice 1 (i+1 avec i = 0) est alors effectué. Le dispositif d'accumulation 500, constitué de 16 modules d'accumulation, additionne les entrées U16_15, R11_16 sur 16 bits et El pour générer les valeurs U16_15 et R11_16. Les valeurs précédemment obtenues sont ensuite présentées à l'entrée du registre 32 bits et mémorisées par l'action de l'horloge. Puis, la commande de sélection du multiplexeur sélectionne l'entrée suivante E2. Il est à noter que les valeurs Ul_1 et R'0 sont toujours égales à 1 quelle que soit l'étape de calcul d'accumulation, en d'autres termes quelle que soit la valeur d'itération i. Les actions de l'étape précédente sont ensuite répétées pour i allant 2 à 7 afin de pouvoir additionner toutes les entrées E2 à E7 aux résultats intermédiaires U16_15 et R11_16 à U66_15 et R61-16 pour obtenir les résultats intermédiaires U20 15 et R21-16 à U76_15 et R71-16. Finalement, un calcul final est effectué au moyen d'un additionneur . Le résultat intermédiaire U76_15 et R71_15 correspondant à la dernière itération (i=7) est présenté à l'entrée d'un additionneur 901 de type Carry-Look-Ahead ou de type Ripple- Carry sur 16 bits adapté pour prendre en entrée une forme binaire redondante U/R tels que décrits dans le brevet international WO2007122319 (TORNO). Les bits U7_1 et R76 sont initialisés à 1. L'additionneur 901 permet ainsi de déterminer le résultat final sous forme binaire standard de la somme des sept nombres binaires El à E7. Il est à noter que les valeurs de bit de rang 16, notée R'16, ne sont également pas utilisées dans ce mode de réalisation particulier. En effet, la dynamique d'expression sur 16 bits est suffisante pour que l'accumulation des sept nombres binaires puisse s'effectuer sans retenue de dépassement (ou overflow en anglais). La figure 11 illustre un exemple d'un calcul numérique d'une sommation de sept nombres binaires, effectué par l'additionneur multi-opérandes de la figure 9. Chaque ligne de calcul est exprimée sur 16 bits de données et chaque signal d'estimation U et de correction R est illustré pour chacune des itérations du procédé conformément à l'invention. Le résultat binaire final S est également présenté sur 16 bits de données, ce dernier ayant été obtenu sous forme binaire standard.
On notera que l'invention ne se limite pas à une implantation purement matérielle mais qu'elle peut aussi être mise en oeuvre sous la forme d'une séquence d'instructions d'un programme informatique ou toute forme mixant une partie matérielle et une partie logicielle. Dans le cas où l'invention est implantée partiellement ou totalement sous forme logicielle, la séquence d'instructions correspondante pourra être stockée dans un moyen de stockage amovible (tel que par exemple une disquette, un CD-ROM ou un DVD-ROM) ou non, ce moyen de stockage étant lisible partiellement ou totalement par un ordinateur ou un microprocesseur.
Annexe 1 : Passage de l'art antérieur au module d'initialisation sous forme U/R Soient A,B et C les trois nombres, exprimés sur N bits, que l'on souhaite additionner : A aN-1.2N-1 + + an-2n + + a1.21 + ao.20 N-1 n 1 0 B = bN 1.2 + + b.2 + + b1.2 + bo.2 C CN-1.2N-1 + + Cn.2n + +6+1.21 +6+0.20 De façon classique, il est possible d'effectuer dans un premier temps une somme de ces trois nombres binaires et obtenir un résultat de la forme standard Carry-Save au moyen d'un réseau d'additionneurs de type full-adder . Ce réseau d'additionneurs 10 permet de générer en sortie une somme partielle, et une retenue partielle, telles que : Sn an0bnCn C/ n+l an-bn Cn.(an O bn) avec : Sn la somme partielle en n, et Cy n+1 la retenue partielle en (n+l). 15 De manière non évidente, pour obtenir une représentation dans la forme U/R , on considère la somme partielle et la retenue partielle comme 2 nombres binaires à additionner et on utilise la méthode dite d'estimation initiale décrite dans le document WO2007122319. De cette façon, on obtient les nombres U et R suivants : 20 Rn+1 C.yn+10 ^' En substituant les valeurs de Sn et C/ n+1 par leurs expressions en a 'b, 'C n, on obtient : lUr,=anc)bno'cr, Rn+1 an-bnOCn-\anObn anObnOCn 5 Après développement, on obtient les deux expressions suivantes : {Un a , c) b, c) Cn + 7
Rn+1ù(a,c) ln)b,c) cn-(l~Lnc)bn)c)
et après factorisation, on obtient les équations suivantes (3) mises en oeuvre par le mécanisme de la présente invention, à savoir : lUr,=anc)bno'cr,(3) IR1ù (.[ no'bn)(bn Olten) Annexe 2 : Passage du module d'initialisation sous forme U/R au module d'accumulation sous forme U/R
En partant des mêmes équations que précédemment, il est possible de construire un module d'accumulation permettant de recevoir en entrées un signal d'estimation U,
un signal de correction R et un nombre binaire standard c. Le détail des calculs permettant de déterminer le résultat sous forme redondante U/R sont exposés ci-après. À partir des équations (3) précitées, on peut construire à partir des nombres binaires A et B, par exemple, une forme initiale exprimée de la façon suivante : o u° an et Ün-1 an-1 0 R,+1 an0bn+1 Rn an-10b,
On peut alors déduire les valeurs an et bn, à savoir : bn = Rn O U_1 Puis, en substituant les valeurs de an et bn dans le système d'équations (1), on obtient l'expression suivante : ( o Un = Un > RnoOUn1 0 0 0 Rn+1=I 7 (RnOU0 n).((RnOUn-1)o cn) Après développement et simplification, on obtient les deux expressions suivantes : _ Un R oO Uon-10+ Un ù n en R'(u° O O O 0 O n+1 n 20 Si on généralise le calcul non plus à l'indice 1 mais à l'indice i+l, on obtient en conséquence, pour un indice i+l quelconque, les équations génériques (1) suivantes : 10 oRnoUn-1 (1) nnù1)(UCn)

Claims (8)

  1. REVENDICATIONS1. Dispositif d'addition de signaux numériques d'entrée comprenant une pluralité de nombres binaires d'entrée, de N bits chacun, caractérisé en ce qu'il comprend au moins un bloc d'accumulation permettant, à chaque fois qu'il est activé, d'effectuer une itération, d'indice i+l avec i >_ 0, d'un mécanisme d'accumulation, chaque bloc d'accumulation comprenant : * des premiers moyens d'estimation, permettant de générer un signal d'estimation Ui+1 sur N bits, et des premiers moyens de correction, permettant de générer un premier signal de correction Ri+1 sur N bits, lesdits premiers moyens d'estimation et lesdits premiers moyens de correction comprenant des portes logiques permettant de mettre en oeuvre des équations suivantes : Un = Un Rn Un-1 en R +'1= (U() RnUn_1)(UGc,) * ou des seconds moyens d'estimation, permettant de générer un signal d'estimation Ui+1 sur N bits, et des seconds moyens de correction, permettant de générer un second signal de correction Hi+1 sur N bits, lesdits seconds moyens d'estimation et lesdits seconds moyens de correction comprenant des portes logiques permettant de mettre en oeuvre des équations suivantes : U=Une' Hnecn H +'1=(U:~H:)(l avec : Ui+ln : une valeur du bit de rang n dudit signal d'estimation Ui+1, avec 0 n N-1, obtenue lors de ladite itération d'indice i+l ; U'n : une valeur du bit de rang n d'un signal d'estimation U', obtenue lors d'une itération précédente d'indice i si i > 0, ou une valeur d'initialisation déterminée 25 U°n du bit de rang n d'un signal d'estimation U' si i = 0 ; U'n_1 : une valeur du bit de rang n-1 dudit signal d'estimation U', obtenue lors d'une itération précédente d'indice i si n > 0 et si i > 0,ou une valeur d'initialisation déterminée U°n 1 du bit de rang n-1 dudit signal d'estimation U' si n > 0 et si i = 0, ou une valeur d'initialisation prédéterminée d'un bit fictif de rang n-1 dudit signal d'estimation U' si n = 0 ; R'n : une valeur du bit de rang n d'un premier signal de correction R', obtenue lors d'une itération précédente d'indice i si n > 0, ou une valeur d'initialisation prédéterminée du bit de rang n dudit premier signal de correction R' si n = 0 ; R'+'n+1 : une valeur du bit de rang n+l dudit premier signal de correction obtenue lors ladite itération d'indice i+1 ; Hia : une valeur du bit de rang n d'un second signal de correction H', obtenue lors d'une itération précédente d'indice i ; H'+'n+1 : une valeur du bit de rang n+l dudit second signal de correction H'+', obtenue lors ladite itération d'indice i+l ; en : une valeur du bit de rang n d'un nombre binaire d'entrée C compris dans ladite pluralité de nombres binaires d'entrée et pris en compte dans ladite addition lors de ladite itération d'indice i+1.
  2. 2. Dispositif selon la revendication 1, caractérisé en ce que ledit bloc d'accumulation comprend, pour chaque bit n, un sous-bloc d'accumulation lui-même comprenant : - une première porte logique XOR recevant ladite valeur U'n_1 du bit de rang n-1 et d'indice i et ladite valeur Ria du bit de rang n et d'indice i, et générant un premier signal intermédiaire ; - une deuxième porte logique XOR recevant ledit premier signal intermédiaire et ladite valeur U'ä du bit de rang n et d'indice i, et générant un deuxième signal intermédiaire ; - une troisième porte logique XOR recevant ledit deuxième signal intermédiaire et ladite valeur du bit de rang n d'un nombre binaire d'entrée C, et générant ladite valeur Ui+'n du bit de rang n dudit signal d'estimation pour l'itération d'indice i+1 ;- une quatrième porte logique XOR recevant ladite valeur du bit de rang n et d'indice i et ladite valeur en du bit de rang n d'un nombre binaire d'entrée C, et générant un troisième signal intermédiaire ; et - une porte logique AND recevant ledit troisième signal intermédiaire et ledit deuxième signal intermédiaire, et générant ladite valeur R`+'^+, du bit de rang n+l dudit premier signal de correction R'+' pour l'itération d'indice i+l.
  3. 3. Dispositif selon la revendication 1, caractérisé en ce que ledit bloc d'accumulation comprend, pour chaque bit n, un sous-bloc d'accumulation lui-même comprenant : - une première porte logique XOR recevant ladite valeur du bit de rang n-1 et d'indice i et ladite valeur H`n du bit de rang n et d'indice i, et générant un premier signal intermédiaire ; - une deuxième porte logique XOR recevant ledit premier signal intermédiaire et ladite valeur cä du bit de rang n d'un nombre binaire d'entrée C, et générant ladite valeur U`+',, du bit de rang n dudit signal d'estimation U'+' pour l'itération d'indice i+l ; - une porte logique XNOR recevant ladite valeur U'n_, du bit de rang n-1 et d'indice i et ladite valeur cä du bit de rang n d'un nombre binaire d'entrée C et générant un deuxième signal intermédiaire ; - une porte logique AND recevant ledit premier signal intermédiaire et ledit deuxième signal intermédiaire et générant un troisième signal intermédiaire ; et - une troisième porte logique XOR recevant ledit troisième signal intermédiaire et ladite valeur en du bit de rang n d'un nombre binaire d'entrée C et générant ladite valeur H'+'r,+, du bit de rang n+l dudit second signal de correction H'' pour l'itération d'indice i+1.
  4. 4. Dispositif selon la revendication 1, caractérisé en ce qu'il comprend un bloc d'initialisation comprenant : * des troisièmes moyens d'estimation, permettant de générer un signal d'estimation U' sur N bits, et des troisièmes moyens de correction, permettant de générer un troisième signal de correction R' sur N bits, lesdits troisièmes moyens d'estimation et lesdits troisièmes moyens de correction comprenant des porteslogiques permettant de mettre en oeuvre des équations suivantes, avec 0 n N-1 Un anObnOCn Rn+1 = (an O bä,)-(bn s Cn) * ou des quatrièmes moyens d'estimation, permettant de générer un signal d'estimation U' sur N bits, et des quatrièmes moyens de correction, permettant de générer un quatrième signal de correction H' sur N bits, lesdits quatrièmes moyens d'estimation et lesdits quatrièmes moyens de correction comprenant des portes logiques permettant de mettre en oeuvre des équations suivantes, avec 0 nN-1: Un an O bn O Cn 1 1- n+l an O bn .(b n) 5 Cn avec : an : une valeur du bit de rang n d'un nombre binaire d'entrée A compris dans ladite pluralité de nombres binaires d'entrée et pris en compte par ledit bloc d'initialisation ; bn : une valeur du bit de rang n d'un nombre binaire d'entrée B compris dans ladite pluralité de nombres binaires d'entrée et pris en compte par ledit bloc d'initialisation ; en : une valeur du bit de rang n d'un nombre binaire d'entrée C compris dans ladite pluralité de nombres binaires d'entrée et pris en compte par ledit bloc d'initialisation ; et en ce que ledit bloc d'initialisation remplace le bloc d'accumulation permettant d'effectuer l'itération d'indice 1.
  5. 5. Dispositif selon la revendication 4, caractérisé en ce que ledit bloc d'initialisation comprend, pour chaque bit n, un sous-bloc d'initialisation lui-même comprenant : - une première porte logique XNOR recevant ladite valeur an du bit de rang n d'un nombre binaire d'entrée A et ladite valeur bn du bit de rang n d'un nombre binaire d'entrée B et générant un premier signal intermédiaire ;- une porte logique XOR recevant ledit premier signal intermédiaire et ladite valeur ladite valeur en du bit de rang n d'un nombre binaire d'entrée C et générant ladite valeur U'n du bit de rang n dudit signal d'estimation U' pour l'itération d'indice 1 ; - une seconde porte logique XNOR recevant ladite valeur bn du bit de rang n d'un nombre binaire d'entrée B et ladite valeur en du bit de rang n d'un nombre binaire d'entrée C et générant un deuxième signal intermédiaire ; et - une porte logique AND recevant lesdits premier et deuxième signaux intermédiaires et générant ladite valeur R'n+, du bit de rang n+l dudit signal de correction R' pour l'itération d'indice 1.
  6. 6. Dispositif selon la revendication 4, caractérisé en ce que ledit bloc d'initialisation comprend, pour chaque bit n, un sous-bloc d'initialisation lui-même comprenant : - une porte logique XNOR recevant ladite valeur an du bit de rang n d'un nombre binaire d'entrée A et ladite valeur bn du bit de rang n d'un nombre binaire d'entrée B et générant un premier signal intermédiaire ; - une première porte logique XOR recevant ledit premier signal intermédiaire et ladite valeur ladite valeur en du bit de rang n d'un nombre binaire d'entrée C et générant ladite valeur Un du bit de rang n dudit signal d'estimation U' pour l'itération d'indice 1 ; - une deuxième porte logique XOR recevant ladite valeur bn du bit de rang n d'un nombre binaire d'entrée B et ladite valeur en du bit de rang n d'un nombre binaire d'entrée C et générant un deuxième signal intermédiaire ; - une porte logique AND recevant lesdits premier et deuxième signaux intermédiaires et générant un troisième signal intermédiaire ; et - une troisième porte logique XOR recevant ledit troisième signal intermédiaire et ladite valeur en du bit de rang n d'un nombre binaire d'entrée C et générant ladite valeur H'n+, du bit de rang n+l dudit second signal de correction H' pour l'itération d'indice 1.
  7. 7. Dispositif selon la revendication 1, caractérisé en ce qu'il comprend : - des premiers moyens de sélection, permettant de sélectionner un premier nombre binaire d'entrée compris dans ladite pluralité de nombres binaires d'entrée ;- des moyens d'obtention de valeurs d'initialisation prédéterminées pour : * chacun des N bits d'un signal d'estimation U°, * chacun des N bits d'un signal de correction R°, * un bit fictif de rang -1 dudit signal d'estimation U°; - des premiers moyens d'activation, permettant d'activer ledit bloc d'accumulation afin qu'il effectue l'itération d'indice 1 dudit mécanisme d'accumulation avec, comme signaux d'entrée, ledit premier nombre binaire d'entrée et lesdites valeurs d'initialisation prédéterminées, permettant de générer un signal d'estimation Ui sur N bits et un premier RI signal de correction sur N bits ; - des seconds moyens d'activation, permettant d'activer les moyens suivants, tant que ladite pluralité de nombres binaires d'entrée n'ont pas été pris en compte dans ladite addition : • des seconds moyens sélection, permettant de sélectionner un nouveau nombre binaire d'entrée compris dans ladite pluralité de nombres binaires d'entrée et non déjà sélectionné ; * ledit bloc d'accumulation afin qu'il effectue une itération d'indice i+l, avec i > 0, dudit mécanisme d'accumulation avec, comme signaux d'entrée, ledit nouveau nombre binaire d'entrée, les signaux U' et R` générés lors de l'itération d'indice i dudit mécanisme d'accumulation, une valeur d'initialisation prédéterminée U`_, d'un bit fictif de rang -1 dudit signal d'estimation U', et une valeur d'initialisation prédéterminée R`° du bit de rang 0 dudit premier signal de correction R`.
  8. 8. Dispositif selon la revendication 1, caractérisé en ce qu'il comprend : - des premiers moyens de sélection, permettant de sélectionner un premier nombre binaire d'entrée compris dans ladite pluralité de nombres binaires d'entrée ; - des moyens d'obtention de valeurs d'initialisation prédéterminées pour : * chacun des N bits d'un signal d'estimation U°, * chacun des N bits d'un signal de correction H°, - des premiers moyens d'activation, permettant d'activer ledit bloc d'accumulation afin qu'il effectue l'itération d'indice 1 dudit mécanisme d'accumulation avec, comme signaux d'entrée, ledit premier nombre binaire d'entrée et lesdites 20 25 30 5 10valeurs d'initialisation prédéterminées, permettant de générer un signal d'estimation Ul sur N bits et un second H' signal de correction sur N bits ; des seconds moyens d'activation, permettant d'activer les moyens suivants, tant que ladite pluralité de nombres binaires d'entrée n'ont pas été pris en compte dans ladite addition : * des seconds moyens sélection, permettant de sélectionner un nouveau nombre binaire d'entrée compris dans ladite pluralité de nombres binaires d'entrée et non déjà sélectionné ; * ledit bloc d'accumulation afin qu'il effectue une itération d'indice i+1, avec i > 0, dudit mécanisme d'accumulation avec, comme signaux d'entrée, ledit nouveau nombre binaire d'entrée, les signaux U` et H' générés lors de l'itération d'indice i dudit mécanisme d'accumulation, et une valeur d'initialisation prédéterminée Rio du bit de rang 0 dudit premier signal de correction R`. 15
FR0852189A 2008-04-02 2008-04-02 Procede d'addition a operandes multiples, additionneur et produit programme d'ordinateur correspondants. Active FR2929726B1 (fr)

Priority Applications (3)

Application Number Priority Date Filing Date Title
FR0852189A FR2929726B1 (fr) 2008-04-02 2008-04-02 Procede d'addition a operandes multiples, additionneur et produit programme d'ordinateur correspondants.
US12/936,337 US8788563B2 (en) 2008-04-02 2009-04-02 Method of addition with multiple operands, corresponding adder and computer program product
PCT/EP2009/053976 WO2009121943A1 (fr) 2008-04-02 2009-04-02 Procede d'addition a operandes multiples, additionneur et produit programme d'ordinateur correspondants

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0852189A FR2929726B1 (fr) 2008-04-02 2008-04-02 Procede d'addition a operandes multiples, additionneur et produit programme d'ordinateur correspondants.

Publications (2)

Publication Number Publication Date
FR2929726A1 true FR2929726A1 (fr) 2009-10-09
FR2929726B1 FR2929726B1 (fr) 2020-11-06

Family

ID=39885070

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0852189A Active FR2929726B1 (fr) 2008-04-02 2008-04-02 Procede d'addition a operandes multiples, additionneur et produit programme d'ordinateur correspondants.

Country Status (3)

Country Link
US (1) US8788563B2 (fr)
FR (1) FR2929726B1 (fr)
WO (1) WO2009121943A1 (fr)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040111455A1 (en) * 2002-12-05 2004-06-10 Micron Technology, Inc. Hybrid arithmetic logic unit
WO2007122319A1 (fr) * 2006-04-21 2007-11-01 S.A.R.L. Daniel Torno Additionneur n bits et procédé d'addition correspondant

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6567835B1 (en) 1999-08-17 2003-05-20 Intrinsity, Inc. Method and apparatus for a 5:2 carry-save-adder (CSA)
US6578063B1 (en) 2000-06-01 2003-06-10 International Business Machines Corporation 5-to-2 binary adder
US7899860B2 (en) * 2005-07-26 2011-03-01 Stmicroelectronics S.R.L. Method and system for high-speed floating-point operations and related computer program product
FR2890763B1 (fr) * 2005-09-12 2007-11-09 R L Daniel Torno Sarl Sa Additionneur n bits et procede d'addition correspondant
DE602007004097D1 (de) 2006-04-21 2010-02-11 Heuliez S und mit solch einem system ausgestattetes fahrzeug

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040111455A1 (en) * 2002-12-05 2004-06-10 Micron Technology, Inc. Hybrid arithmetic logic unit
WO2007122319A1 (fr) * 2006-04-21 2007-11-01 S.A.R.L. Daniel Torno Additionneur n bits et procédé d'addition correspondant

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
FANG LU ET AL: "A HIGH-SPEED CMOS FULL-ADDER CELL USING A NEW CIRCUIT DESIGN TECHNIQUE - ADAPTIVELY-BIASED PSEUDO-NMOS LOGIC", PROCEEDINGS OF THE INTERNATIONAL SYMPOSIUM ON CIRCUITS AND SYSTEMS. NEW ORLEANS, MAY 1 - 3, 1990; [PROCEEDINGS OF THE INTERNATIONAL SYMPOSIUM ON CIRCUITS AND SYSTEMS], NEW YORK, IEEE, US, vol. 1 OF 04, 1 May 1990 (1990-05-01), pages 562 - 565, XP000166897 *

Also Published As

Publication number Publication date
WO2009121943A1 (fr) 2009-10-08
US20110106869A1 (en) 2011-05-05
FR2929726B1 (fr) 2020-11-06
US8788563B2 (en) 2014-07-22

Similar Documents

Publication Publication Date Title
EP1805611B1 (fr) Procede d&#39;ordonnancement de traitement de tâches et dispositif pour mettre en oeuvre le procede
FR2819073A1 (fr) Microarchitecture d&#39;unite arithmetique
BE897441A (fr) Calculateur associatif permettant une multiplication rapide
EP1368747B1 (fr) Procede et dispositif pour reduire le temps de calcul d&#39;un produit, d&#39;une multiplication et d&#39;une exponentiation modulaire selon la methode de montgomery
EP0692762B1 (fr) Circuit logique de multiplication parallèle
EP0485921B1 (fr) Dispositif prévu pour le traitement de l&#39;algorithme de Viterbi comprenant un processeur et un opérateur spécialisé
FR3101980A1 (fr) Processeur
EP0924627B1 (fr) Processeur de calcul d&#39;une transformation rapide de Fourier à architecture dite &#34;pipelinée&#34;
EP1869545B1 (fr) Dispositif implementant la multiplication modulaire de montgomery
FR2849512A1 (fr) Multiplieur modulaire de montgomery et procede de multiplication correspondant
FR2897964A1 (fr) Procede de calcul numerique incluant la division euclidienne
EP0793165B1 (fr) Coprocesseur d&#39;arithmétique modulaire permettant de réaliser rapidement des opération non modulaires
WO2003083645A2 (fr) Procede cryptographique protege contre les attaques de type a canal cache
EP0939362A1 (fr) Coprocesseur d&#39;arithmétique modulaire permettant de réaliser des opérations non modulaires rapidement
FR2929726A1 (fr) Procede d&#39;addition a operandes multiples, additionneur et produit programme d&#39;ordinateur correspondants.
EP0476592A2 (fr) Générateur d&#39;adresses pour la mémoire de données d&#39;un processeur
EP0018238B1 (fr) Procédé et ensemble de calcul, aléatoirement par excès ou par défaut, pour fournir des résultats de calcul et en déterminer le nombre de chiffres significatifs exacts
EP0939363A1 (fr) Procédé de mise en oeuvre d&#39;une multiplication modulaire selon la méthode de Montgoméry
EP3814893A1 (fr) Accès mémoire de processeurs
FR3128542A1 (fr) Circuit intégré comprenant un calculateur matériel et procédé de calcul correspodant.
FR2809835A1 (fr) Systeme et procede d&#39;arrondissement base sur une selection pour des operations a virgule flottante
CA2359198C (fr) Unite de calcul pour l&#39;execution d&#39;un protocole cryptographique
EP0655685B1 (fr) Dispositif de calcul des bits de parité associés à une somme de deux nombres
FR3123134A1 (fr) Dispositif pour l’evaluation de polynômes
EP0718755A1 (fr) Composant électronique capable notamment d&#39;effectuer une division de deux nombres en base 4

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 9

PLFP Fee payment

Year of fee payment: 10

PLFP Fee payment

Year of fee payment: 11

TP Transmission of property

Owner name: DANIEL TORNO, FR

Effective date: 20180824

PLFP Fee payment

Year of fee payment: 12

PLFP Fee payment

Year of fee payment: 13

PLFP Fee payment

Year of fee payment: 14

CA Change of address

Effective date: 20210601

PLFP Fee payment

Year of fee payment: 15

PLFP Fee payment

Year of fee payment: 16

PLFP Fee payment

Year of fee payment: 17