Brevet FR2819073A1 — publié le 20020705

MICROARCHITECTURE D'UNITE ARITHMETIQUE La présente invention concerne une microarchitecture d'unité arithmétique. Les unités arithmétiques sont notamment utilisées dans des circuits intégrés programmables, tels des microprocesseurs ou microcontrôleurs. Elles permettent de réaliser un certain nombre d'opérations arithmétiques sur des opérandes. Un domaine d'application bien connu est le traitement de signal numérique, pour appliquer des filtres, des fonctions de transfert, des transformées,... Une opération arithmétique couramment utilisée pour ces différents traitements, est une opération dite de multiplication accumulation, par laquelle on calcule une somme de produits. Si on note A et B deux opérandes d'entrées et Y le contenu d'un accumulateur, cette opération permet de calculer RES=A.B+Y. Cette opération arithmétique nécessite classiquement un accumulateur pour contenir le nouveau résultat RES, qui sera utilisé à l'itération suivante, un multiplieur auquel sont appliqués les deux opérandes d'entrée A et B, et un additionneur qui reçoit en entrées le résultat de la multiplication A.B et le contenu courant Y de l'accumulateur. En pratique, le contenu courant de l'accumulateur est transféré dans l'additionneur par l'intermédiaire d'un registre. Le résultat de l'opération est lui transféré dans l'accumulateur. Une structure connue d'un multiplieur, comprend un étage de multiplication pour calculer les produits partiels Pl et P2 des deux opérandes d'entrée A et B, et un étage additionneur pour calculer la somme des produits partiels Pi et P2. En sortie, on obtient le résultat du produit des opérandes d'entrées: A.B= Pl+P2. Cette technique de multiplication est bien connue de l'homme du métier. Une microarchitecture d'unité arithmétique permettant de réaliser des opérations de multiplication-accumulation et utilisant un tel multiplieur, comprend ainsi deux additionneurs en cascade. Selon l'acception habituelle dans le domaine considéré, il faut entendre par additionneur, ou additionneur global, un circuit qui fournit le résultat de la somme de deux opérandes appliqués en entrée. Un tel additionneur peut par exemple être du type à retenue anticipée ou à propagation de retenue. Le premier additionneur permet de calculer la somme des produits partiels; le deuxième additionneur permet d'ajouter à cette somme, le contenu courant de l'accumulateur, et de fournir en sortie le résultat final, correspondant à l'opération de multiplication accumulation. Ce résultat est ensuite chargé dans l'accumulateur. Le deuxième additionneur fournit en outre un bit de retenue sortante, qui correspond à la retenue de sortie du rang correspondant au bit le plus significatif du résultat. Dans un exemple, avec des opérandes en format signé en complément à deux et un additionneur 40 bits le résultat a un format signé sur 40 bits, dont 1 bit de signe au rang 39, et 39 bits significatifs de rang 38 à 0, le rang du bit le plus significatif étant le rang 38. La retenue sortante sera ainsi notée C39. Cette retenue sortante C39, ou son complémentaire noté B39, est habituellement mémorisée dans un registre d'état. Ce registre d'état comprend un certain nombre de bits drapeau (flag) utilisés par les programmeurs dans des équations logiques propres à l'architecture considérée. Un problème de la microarchitecture qui vient d'être décrite est que les deux additionneurs en cascade offrent un temps de calcul non optimisé, d'autant plus pénalisant que les opérandes à traiter sont codés sur de nombreux bits. Avec deux additionneurs en cascade, le chemin de données est particulièrement long. Une microarchitecture d'unité arithmétique plus optimisée en terme de chemin de données utilise un circuit additionneur à sauvegarde de retenue, généralement désigné par l'acronyme anglais CSA (pour Carry Save Adder) et qui permet de faire correspondre à trois entrées, deux sorties. Le temps de calcul total du résultat est alors égal au temps de calcul d'un seul bit. On fait suivre ce circuit additionneur à sauvegarde de retenue par un additionneur, qui fournit le résultat final. On économise ainsi le temps de calcul d'un additionneur moins le temps de calcul de l'additionneur CSA. Dans cette microarchitecture, le circuit additionneur à sauvegarde de retenue reçoit ainsi en entrées les deux produits partiels Pl et P2 et le contenu courant Y de l'accumulateur. Il fournit en sortie un vecteur "retenue" et un vecteur "résultat". Ces deux vecteurs sont appliqués en entrées de l'additionneur, qui fournit en sortie le résultat RES. Un problème lié à cette microarchitecture optimisée, est que l'information de retenue sortante de l'additionneur qui fournit le résultat en sortie n'est pas égale à celle obtenue dans la première microarchitecture décrite, avec deux additionneurs en cascade. Ceci peut se comprendre, si l'on considère que les entrées de l'additionneur qui fournit le résultat et la retenue sortante ne sont pas les mêmes dans les deux microarchitectures: dans la première architecture, les deux entrées de cet additionneur reçoivent l'une la somme des produits partiels et l'autre, le contenu courant de l'accumulateur. Dans la microarchitecture optimisée, il s'agit des deux vecteurs retenue et résultat fournis par l'additionneur à sauvegarde de retenue. Or chaque bit de sortie de l'additionneur qui fournit le résultat final est élaboré à partir des bits appliqués en entrée de l'additionneur et des retenues générées en interne. La retenue sortante n'est rien d'autre que la dernière retenue interne générée. On comprend que l'on obtienne le même résultat en sortie de l'additionneur, mais avec une retenue sortante différente, que l'on note C39'. Cette retenue peut être appelée "retenue comprimée". Pour illustrer ce problème, prenons l'exemple de trois opérandes El, E2, Y, exprimés en complément à deux sur 4 bits. ES = 1 1 1 012 =-211o E2 = 0 0 0 112 = 1ll 0 y = 1 1 1 012 =-211o On a un additionneur N= 4 bits. La retenue sortante est la retenue de rang N-l=3, notée C3. O Détermination de la retenue sortante C3 fournie par le deuxième additionneur de la microarchitecture classique (2 additionneurs cascadés): E1 1 1 1 0 E2 0 0 0 1 TMP 1i 1i 1 1 Résultat du premier additionneur Y 1 1 1 0 RES 1 1 O 1 Résultat du deuxième additionneur C3 1 avec retenue sortante O Détermination de la retenue sortante comprimée C'3 fournie par l'additionneur qui fournit le résultat final dans la microarchitecture optimisée (Additionneur CSA et additionneur en cascade): Ej 1 11 0 E2 0 O 0 1 Y 1 1 1 0 E 0 0 0 1 Additionneur CSA: Vecteur Résultat R 1 1 O. et Vecteur Retenue RES 1 1 O 1 Résultat additionneur final C13 0 et retenue sortante comprimée On voit dans cet exemple que la retenue sortante comprimée C3' ne correspond pas à la retenue sortante C3. Ainsi, la retenue sortante comprimée ne correspond pas à la définition du bit drapeau correspondant dans le registre d'état. Un objet de l'invention est l'optimisation d'une microarchitecture d'unité arithmétique en sorte que la microarchitecture optimisée soit équivalente à la microarchitecture classique. Notamment, la nouvelle microarchitecture doit fournir les mêmes bits drapeau du registre d'état, en sorte que l'utilisation des ces bits drapeau par un programmeur soit indépendante de la microarchitecture effectivement implémentée. Une solution à ce problème technique a été trouvée dans l'invention, en déterminant la valeur de la retenue sortante considérée à partir d'équations logiques définies en rapport à la microarchitecture initiale. Pour cette détermination, on a étendu de N à N+1 l'additionneur final et l'accumulateur, pour déterminer la valeur de la retenue sortante CN-1 à partir des bits de rang N le plus élevé du résultat en sortie de l'additionneur final et du contenu courant de l'accumulateur. En utilisant dans la microarchitecture un additionneur final et un accumulateur étendus à N+l bits, on dispose alors en direct de ces bits qui sont les mêmes dans les deux microarchitectures, et par lesquels on peut recalculer la valeur de la retenue sortante correspondant à la première microarchitecture. Cette retenue sortante est aussi fonction du bit de rang le plus élevé de la somme des produits partiels. Cette somme n'est pas connue par la cascade de l'additionneur CSA avec un additionneur qui fournit le résultat final. Selon l'invention, on prévoit donc un circuit additionneur pour calculer la somme des produits partiels. La structure de cet additionneur est indifférente et peut-être optimisée en termes de circuiterie et de chemin de données, puisque seul le bit de rang le plus élevé est utilisé en sortie. On peut montrer qu'en terme de circuiterie, cet additionneur supplémentaire représente moins de 1% de la circuiterie de l'unité arithmétique. Un circuit combinatoire est enfin prévu pour combiner de manière appropriée les différents bits permettant de déterminer la valeur de la retenue sortante. De façon plus générale, l'unité arithmétique peut mettre en oeuvre d'autres opérations arithmétiques utilisant la structure cascade de l'additionneur à sauvegarde de retenue et de l'additionneur final pour des opérations de type accumulation. En effet cette structure cascade permet de calculer un résultat RES en sortie, correspondant à la somme d'au moins un opérande d'entrée quelconque avec le contenu courant de l'accumulateur. L'additionneur CSA comportant trois entrées, une des entrées peut être forcée à zéro. Par exemple, dans une application particulière permettant de faire des accumulations de nombres en double précision, on cherche à calculer la somme entre le résultat d'une concaténation de deux autres opérandes et le contenu courant de l'accumulateur. Dans ce cas, le bit de retenue sortante peut être déterminé en utilisant directement le bit de rang le plus élevé du nombre concaténé, en combinaison avec les bits de rang le plus élevé du résultat en sortie de l'additionneur final et du contenu courant de l'accumulateur. Telle qu'elle est caractérisée, l'invention concerne donc une microarchitecture d'une unité arithmétique, ladite unité arithmétique étant définie pour fournir un résultat sur N bits de rang 0 à N-1 d'une addition d'au moins deux opérandes, et un bit correspondant de retenue sortante, ladite microarchitecture comprenant un additionneur à sauvegarde de retenue pour fournir deux vecteurs de sortie à partir d'au moins deux opérandes d'entrée, un desdits opérandes correspondant au contenu courant d'un accumulateur et un additionneur final recevant en entrées les dits vecteurs et fournissant en sortie un résultat correspondant, caractérisé en ce que dans ladite microarchitecture, l'additionneur à sauvegarde de retenue, l'additionneur final et l'accumulateur sont des circuits N+l bits, pour appliquer le bit de rang N le plus élevé du résultat fourni par ledit additionneur final et le bit de rang N le plus élevé de l'opérande correspondant au contenu courant de l'accumulateur à un circuit de détermination dudit bit de retenue sortante. D'autres caractéristiques et avantages de l'invention sont détaillés dans la description suivante, faite à titre indicatif et non limitatif, et en référence aux dessins annexés dans lesquels: -la figure 1 représente une microarchitecture d'une unité arithmétique, à deux additionneurs en cascade; -la figure 2 représente une microarchitecture optimisée d'une unité arithmétique avec un exemple de réalisation d'un circuit de détermination de la retenue sortante selon l'invention; et -la figure 3 représente une microarchitecture optimisée d'une unité arithmétique avec un autre exemple de réalisation d'un circuit de détermination de la retenue sortante selon l'invention. La figure 1 représente une unité arithmétique permettant notamment de réaliser des opérations de multiplication accumulation. Dans l'exemple, elle permet aussi de réaliser des opérations d'accumulation de nombre en double précision, au moyen d'un circuit de concaténation. Dans cette microarchitecture, l'unité arithmétique comprend un multiplieur 1 de deux opérandes OPA, OPB appliqués en entrées de l'unité arithmétique. Ce multiplieur comprend un circuit 2 de calcul des produits partiels Pl et P2 des opérandes d'entrée suivi d'un additionneur 3 qui fournit en sortie le résultat P de cette multiplication, dont le format est le double des opérandes d'entrée. Dans l'exemple, cette unité arithmétique comprend aussi un circuit 20 de concaténation des deux opérandes d'entrée OPA et OPB. Il fournit en sortie un nombre concaténé NC, dont le format est le double du format des opérandes d'entrée. L'un ou l'autre de ces résultats P ou NC est appliqué sur une première entrée A d'un additionneur 4. L'autre entrée B de l'additionneur reçoit le contenu Y d'un registre 5 à décalage. Ce registre 5 reçoit en début d'opération, le contenu courant ACCU de l'accumulateur 6. Le résultat RES est fourni en sortie de l'additionneur 4, et transféré dans l'accumulateur 6 pour former le nouveau contenu courant de cet accumulateur, qui servira à l'itération suivante. Le contenu de l'accumulateur vu de l'architecture générale du circuit, et accessible par un programmeur est noté RESuet correspond au contenu ACCU de l'accumulateur 6. En pratique le format de l'additionneur 4, de l'accumulateur 6 et du registre 5 associé est supérieur au format des résultats P et NC. Aussi, ces résultats sont-ils préalablement étendus avant d'être appliqués à l'additionneur. Dans l'exemple, on s'intéresse à un format signé en complément à deux. Aussi l'extension de format est-elle une extension du signe. L'unité arithmétique comprend donc un multiplexeur MUX 7 pour appliquer soit le résultat P soit le résultat NC sur l'entrée A de l'additionneur 4, en fonction de l'opération à réaliser, suivi d'un circuit d'extension du bit de signe SXT 8, pour mettre le résultat sélectionné au format de l'additionneur. Le multiplexeur 7 est ainsi commandé par un signal logique insl fonction de l'opération à réaliser, multiplication-accumulation ou accumulation en double précision, pour sélectionner l'une ou l'autre des voies d'entrée du multiplexeur. L'additionneur 4 fournit un bit de retenue, qui est la retenue sortante de l'étage d'élaboration du bit le plus significatif du résultat. Dans l'exemple, l'additionneur 4 est un additionneur 40 bits fournissant un résultat RES sur 40 bits. En format signé en complément à deux, on a ainsi 1 bit de signe RES[39] au rang 39 et 39 bits significatifs RES[38:0] de rangs 38 à 0, le bit le plus significatif étant le bit de rang 38. Ainsi, la retenue sortante de cet additionneur est-elle notée C39. D'une manière générale, dans un additionneur N bits fournissant un résultat RES[N-l:0], la retenue sortante est notée CN-1. Cette retenue sortante fournie par l'additionneur 4 est habituellement mémorisée dans un registre d'état 7. Ceci se fait au moyen d'un circuit logique 8 comprenant un inverseur 9 et un multiplexeur 10. L'inverseur 9 fournit le bit complémentaire B39 du bit de retenue sortante C39. Le multiplexeur 10 transmet au registre d'état 7, un bit de drapeau CFtC égal au bit de retenue C39 ou au bit de retenue complémentaire B39 (Borrow, dans la littérature anglo-saxonne) selon que l'opération arithmétique réalisée avec l'accumulateur est une addition (P+ACCU) ou une soustraction (P-ACCU ou ACCU-P). Dans le premier cas on a une retenue positive. Dans le second cas, on a une retenue négative. Dans l'exemple représenté sur la figure 1, on considère des opérandes en format signé en complément à deux. Les opérandes OPA, OPB appliqués en entrée de l'unité arithmétique ont un format signé sur 17 bits: un bit de signe (rang 16) et 16 bits significatifs (rangs 15 à 0). Les résultats P et NC ont un format signé sur 34 bits. Quant à l'accumulateur 6, au registre à décalage 5 associé et à l'additionneur 4, ce sont des circuits de bits. Le circuit d'extension de format consiste de façon connue à recopier le bit de signe donné par le bit de rang 33 des opérandes P ou NC et à recopier ce bit aux rangs supérieurs 34 à 39. Une structure optimisée d'une telle unité arithmétique est représentée sur la figure 2. Un moyen d'optimiser un chemin de données comprenant des additionneurs en cascade est d'utiliser des additionneurs à sauvegarde de retenue, et un additionneur dans le dernier étage de la cascade. Appliqué à la microarchitecture représentée sur la figure 1, l'additionneur 3 est sorti du circuit multiplieur 1, et remplacé dans la figure 2 par un additionneur 11 à sauvegarde de retenue, du type à trois entrées F, G, et H vers deux sorties. Pour assurer un fonctionnement équivalent à celui de la microarchitecture représentée sur la figure 1, cet additionneur 11 doit permettre de calculer la somme des produits partiels Pl et P2 et du contenu Y du registre, ou la somme du nombre concaténé NC et du contenu Y du registre, en fonction de l'opération à réaliser. En outre les résultats Pl, P2 et NC doivent toujours être mis au format de l'additionneur, donc subir une extension de format. A deux entrées de l'additionneur 11, sont donc associés un multiplexeur et un circuit d'extension de format, tandis que la troisième entrée reçoit directement le contenu Y du registre 5 (correspondant au contenu courant de l'accumulateur). Une première entrée F de l'additionneur est associée au produit partiel P1[33:0] et au nombre concaténé NC[33:0]. Un premier multiplexeur MUX 12 reçoit ainsi en entrée le produit partiel Pl, et le nombre concaténé NC pour transmettre l'un ou l'autre en sortie Ml en fonction de l'opération en cours, déterminée par le signal logique insl. Ce premier multiplexeur est suivi d'un circuit 13 d'extension de format, qui fournit l'opérande El appliqué sur la première entrée F de l'additionneur 11. Une deuxième entrée G est associée au produit partiel P2[33:0] et à un vecteur nul VN[33:0]. En effet, dans le cas d'une opération d'accumulation en double précision qui réalise l'opération NC+Y, la deuxième entrée de l'additionneur 11 n'est pas utilisée. On la force donc à zéro. On a ainsi un multiplexeur MUX 14 qui reçoit en entrées le produit partiel P2 et le vecteur nul VN. Il transmet l'un ou l'autre en sortie M2 en fonction de l'opération en cours, déterminée par le signal logique insl. Ce multiplexeur 14 est suivi d'un circuit 15 d'extension de format, qui fournit l'opérande E2 appliqué sur la deuxième entrée G de l'additionneur 11. Une troisième entrée H de l'additionneur 11 reçoit l'opérande Y fourni par le registre 5 associé à l'accumulateur. En fonction des opérandes El, E2 et Y, l'additionneur à sauvegarde de retenue 11 fournit en sortie deux vecteurs: un vecteur somme VS et un vecteur retenue VR. Ces vecteurs somme VS et retenue VR sont appliqués en entrée de l'additionneur 4 à propagation de retenue, qui transmet le résultat RES obtenu, dans l'accumulateur 6. Si on compare les microarchitectures des figures 1 et 2, on constate que l'additionneur 4 à propagation de retenue n'a pas les mêmes entrées dans les deux: dans la première (figure 1) ses entrées sont E et Y; dans la deuxième (figure 2), ses entrées sont VS et VR. Comme cet additionneur 4 n'a pas les mêmes entrées dans la microarchitecture optimisée (figure 2), on obtient bien le même résultat dans l'accumulateur, mais la retenue sortante comprimée C39' de l'additionneur 3 n'est pas égale à la retenue sortante C39 de l'additionneur 3 dans la microarchitecture représentée à la figure 1. Or il est nécessaire de transmettre cette retenue C39, et non la retenue comprimée C39', au registre d'état 7, pour permettre à l'unité arithmétique d'assurer le même fonctionnement dans les deux microarchitectures. Notamment tous les traitements (dépassement, saturation, calculs multiprécision...) effectués en fonction du bit drapeau CFG mémorisé dans le registre d'état 7 doivent pouvoir être conduits de la même façon dans les deux microarchitectures. Selon l'invention, la microarchitecture représentée à la figure 2 comprend un dispositif de détermination de la retenue sortante C39. Ce dispositif est basé sur une détermination arithmétique de la valeur de cette retenue, relativement à la microarchitecture de l'unité arithmétique de la figure 1 et utilisant des opérandes que l'on peut obtenir dans la deuxième architecture, sans nécessiter une circuiterie complexe. Dans la première microarchitecture, on note: RES[i] le bit de rang i du résultat de l'additionneur 4; Ci la retenue interne sortant du rang i; E[i], le bit de rang i du premier opérande d'entrée de cet additionneur 4, correspondant soit à la somme (étendue) des produits partiels, soit au résultat de la concaténation; Y[i], le bit de rang i du deuxième opérande d'entrée de cet additionneur, correspondant au contenu courant de l'accumulateur, fourni par le registre 4; On peut écrire: RES[i+l]=E[i+i] XOR Y[i+l] XOR Ci (eql) Et Ci+,= E[i].Y[i] + Ci. (E[i] XOR Y[i]) (eq2) Ces équations eql et eq2 sont les équations générales d'un additionneur N bits, avec des opérandes sur N bits, E[N-1:0] et Y[N-1:0] et un résultat sur N bits RES[N-l:0]. La retenue sortante de l'additionneur est alors la retenue CN-1 sortant du rang N-1. Cette retenue sortante CN-, peut être utilisée pour calculer le bit somme de rang N dans un additionneur étendu à N+lbits. On a alors: RES[N] = E[N] XOR Y[N] XOR CN-1 (eq3) Avec un additionneur N+l=41 bits (N=40) comme deuxième additionneur 4 dans la microarchitecture de la figure 1, le bit le plus significatif RES[40] du résultat s'écrirait donc: RES[40] = E[40] XOR Y[40] XOR C39 d'o il vient C39= E[40] XOR Y[40] XOR RES[40] (eq4) Si on se reporte à la figure 1, le bit de rang 40 de l'opérande E est, en fonction du signal logique insl, soit égal au bit de rang 40 du nombre concaténé NC, après extension de format, qui est équivalent au bit de rang 33 de ce nombre: NC[33]; soit égal au bit de rang 40 de la somme P des produits partiels P1 et P2, après extension de format, ce qui est équivalent au bit de rang 33 de cette somme: P[33]. Plus généralement, si on note S[33:0] l'opérande fourni en sortie du multiplexeur 7 dans la figure 1, le bit de rang 40 de l'opérande E est égal au bit de rang 33 de cet opérande S. L'équation eq4 peut donc aussi s'écrire: C39= S[33] XOR Y[40] XOR RES[40] (eq5) o S[33] est égal à NC[33] ou P[33]. Or le bit NC[33] est connu directement. Il en ressort que dans la microarchitecture optimisée représentée sur la figure 2, en prévoyant un additionneur 4 et un accumulateur 6 étendus à N+ l bits, soit 41 bits dans l'exemple, la seule inconnue à la détermination de la retenue sortante C39 est P[33]. Dans ce cas, il faut aussi prévoir que l'additionneur CSA 11 soit un additionneur 41 bits. Les circuits d'extension de format deviennent des circuits d'extension à 41 bits. Ainsi comme représenté sur la figure 2, l'additionneur CSA 11 reçoit des opérandes étendus à 41 bits: El[40:0], E2[40:0] et Y[40:0], et fournit des vecteurs somme et résultats sur 41 bits VR[40:0] et VS[40:0]; Ces vecteurs somme et résultat sont appliqués à l'additionneur 4 qui fournit un résultat sur 41 bits RES[40:0] qui est transféré ensuite dans un accumulateur 6 41 bits avec un registre 5 associé 41 bits. Pour garder l'équivalence entre les deux microarchitectures, on prévoit que seuls les N premiers bits de l'accumulateur sont accessibles du programmeur en lecture. En d'autres termes RESU = ACCU[39:0]. Plusieurs mode de réalisation d'un circuit de détermination du bit de retenue C39 selon l'invention sont possibles, selon l'équation logique utilisée eq4 ou eq5 et selon que l'on discrimine les opérandes à traiter, selon l'opération en cours, ou pas. Dans tous les cas, le circuit de détermination de la retenue sortante C39 comprend un circuit d'évaluation du bit de rang le plus élevé de la somme des opérandes El et E2 appliqués en entrée de l'additionneur à sauvegarde de retenue, ou des opérandes équivalents. En pratique, selon la mise en oeuvre, et en se référant à la figure 1, on peut obtenir en sortie de ce circuit d'évaluation, soit E[40], soit S[33], soit P[33]. Dans un premier exemple de réalisation pratique du dispositif de détermination de la retenue sortante C39 représenté sur la figure 2, ce dispositif 16 de détermination comprend un circuit d'évaluation du bit S[33], et un circuit logique 18 mettant en oeuvre l'équation logique (XOR) entre les bits de l'équation eq5. Le circuit 17 d'évaluation du bit S[33] est basé sur un additionneur, auquel sont appliqués en entrée les sorties Ml et M2 des multiplexeurs 12 et 14. On obtient en sortie un résultat S[33:0]=Ml[33:0]+M2[33:0]. Cet additionneur a en pratique une structure limitée au strict nécessaire pour sortir le bit qui nous intéresse, à savoir le bit S[33]. Cette structure peut être de n'importe quel type, la plus optimisée de préférence, en termes de circuiterie et de chemin de données. On notera que l'on pourrait aussi bien appliquer en entrée de cet additionneur les opérandes El et E2 de l'additionneur à sauvegarde de retenue, pour obtenir E[40]. Mais le chemin de donnée est nécessairement plus long, ce qui n'est pas intéressant en pratique. En pratique, toute la structure de cet additionneur n'a pas à être implémentée. Seuls les éléments nécessaires à l'évaluation du bit de rang 33 de la somme doit être mise en oeuvre. La structure utilisée peut être optimisée en terme de circuiterie et de chemin de données. Selon que l'opération concernée est une accumulation en double précision ou une multiplication- accumulation, ce bit S[33] correspond en pratique au bit de rang 33 du nombre NC, car alors M1=NC et M2=VN; ou au bit de rang 33 de la somme P des produits partiels, car alors Ml=P1 et M2=P2. Le circuit logique 18 de type XOR du circuit de détermination 16 reçoit donc en entrées, ce bit S[33], le bit de rang 40 du contenu courant Y de l'accumulateur, donné par le registre 5, soit Y[40], et le bit de rang 40 du résultat RES en sortie de l'additionneur, soit RES[40]. Il fournit en sortie le bit de retenue sortante du rang 39, C39, appliqué en entrée du circuit 8, pour être mémorisé dans le registre d'état 7. Ainsi, l'unité arithmétique représentée est optimisée en terme de chemin de donnée et donc de vitesse, tout en fournissant un résultat complet, équivalent à la microarchitecture non optimisée à deux additionneurs cascades de la figure 1. La logique supplémentaire nécessaire pour évaluer le bit de retenue sortante est insignifiante au regard de la logique de l'unité arithmétique complète. Une telle unité arithmétique optimisée est donc particulièrement avantageuse, dans toutes les applications o la vitesse de traitement de données est cruciale. Sur la figure 3, on a représentée une variante de réalisation du circuit 16 d'évaluation de la retenue sortante C39. Dans cette variante on discrimine les opérandes à considérer pour l'évaluation du bit S[33] enfonction de l'opération à réaliser. On a donc une structure plus spécifique. Dans cet exemple, l'additionneur 17 du circuit d'évaluation du bit S[33] reçoit en entrées les produits partiels Pl et P2 et fournit en sortie la somme P résultante, ou plus exactement le bit de rang 33 de cette somme: P[33]. Le circuit d'évaluation du bit S[33] comprend en outre un multiplexeur 19, qui reçoit en entrées ce bit P[33] et le bit de rang 33 du nombre concaténé NC, soit NC[33]. Ce multiplexeur 19 fournit en sortie le bit S[33] appliqué en entrée du circuit logique 18. Ce bit est égal soit au bit P[33] soit au bit NC[33] en fonction de l'opération courante concernée, déterminée par le signal de commande insl appliqué au multiplexeur 19. Quelque soit la variante retenue, elle nécessite peu de circuiterie et permet d'utiliser une microarchitecture optimisée, équivalente à la microarchitecture d'origine, en sorte qu'elle peut être utilisée à sa place dans un circuit à microprocesseur, en toute équivalence. REVENDICATIONS 1. Microarchitecture d'une unité arithmétique, ladite unité arithmétique étant définie pour fournir un résultat (RESU) sur N bits de rang 0 à N-1 d'une addition d'au moins deux opérandes, et un bit correspondant de retenue sortante (C39), ladite microarchitecture comprenant un additionneur à sauvegarde de retenue (11) pour fournir deux vecteurs de sortie (VS, VR) à partir d'au moins deux opérandes d'entrée, un desdits opérandes correspondant au contenu courant d'un accumulateur (6), et un additionneur final (4) recevant en entrées les dits vecteurs (VS, VR) et fournissant en sortie un résultat correspondant (RES), caractérisé en ce que dans ladite microarchitecture, l'additionneur à sauvegarde de retenue, l'additionneur final et l'accumulateur sont des circuits N+l bits, pour appliquer le bit de rang N le plus élevé du résultat (RES) fourni par ledit additionneur final (4) et le bit de rang N le plus élevé de l'opérande (Y) correspondant au contenu courant de l'accumulateur (6) à un circuit (16) de détermination dudit bit de retenue sortante (C39). 2. Microarchitecture d'une unité arithmétique selon la revendication 1, ledit additionneur à sauvegarde de retenue recevant en entrées un premier (El), un deuxième (E2) et troisième (y) opérandes, ledit troisième opérande (Y) correspondant au contenu courant de l'accumulateur (6), caractérisé en ce que ledit circuit (16) de détermination du bit de retenue sortante (C39) comprend un circuit d'évaluation (17) du bit de rang le plus élevé (S[33]) de la somme desdits premier et deuxième opérandes d'entrée (El, E2) ou d'opérandes équivalents (Ml, M2). 3. Microarchitecture selon la revendication 2, caractérisé en ce que ledit circuit d'évaluation (17) comprend les éléments nécessaires d'un additionneur pour fournir le bit (S[33]) de rang le plus élevé de ladite somme. 4. Microarchitecture selon la revendication 2 ou 3, caractérisé en ce que le bit évalué (S[33]) fourni par ledit circuit d'évaluation, le bit de rang N (Y[40]) du contenu courant (Y) de l'accumulateur (6) et le bit de rang N (RES[40]) du résultat (RES) fourni par l'additionneur final (4) sont appliqués à un circuit logique (18) de type OU EXCLUSIF qui fournit en sortie ladite retenue sortante (C39). 5. Microarchitecture selon l'une des revendications 2 à 5 comprenant un multiplieur (1) pour fournir les produits partiels (Pl, P2) de deux opérandes (OPA, OPB) appliqués en entrées de l'unité arithmétique, caractérisé en ce que lesdits produits partiels (Pl, P2) sont appliqués comme premier et deuxième opérandes d'entrée (El, E2) de l'additionneur à sauvegarde de retenue (11). 6. Microarchitecture selon la revendication 2, caractérisé en ce qu'elle comprend un circuit (20) de concaténation d'opérandes (OPA, OPB) appliqués en entrée de l'unité arithmétique, fournissant en sortie un nombre concaténé (NC) pour réaliser des opérations d'accumulation en double précision avec le contenu courant de l'accumulateur (6), ledit nombre concaténé (NC) étant appliqué comme premier opérande d'entrée dudit additionneur à sauvegarde de retenue (11), le dit deuxième opérande étant forcé au vecteur nul (VN). 7. Microarchitecture selon la revendication 6 prise en combinaison avec la revendication 5, caractérisé en ce que le multiplieur et le dispositif de concaténation sont placés en parallèle, un circuit multiplexeur (12, 13) étant prévu pour appliquer soit le nombre concaténé (NC) et le vecteur nul (VN), soit lesdits produits partiels (Pl, P2), comme premier (El) et deuxième (E2) opérandes d'entrée de l'additionneur à sauvegarde de retenue (11), selon que l'opération en cours utilise le circuit de concaténation (20) ou le multiplieur (1). 8. Microarchitecture selon la revendication 7, caractérisée en ce que le circuit de détermination (16) du bit de retenue sortante comprend un circuit multiplexeur (19) pour fournir comme bit évalué (S[33]), soit le bit (P[33]) fourni par le circuit d'évaluation (17), soit le bit de rang le plus élevé (NC[33]) du nombre concaténé (NC), selon que l'opération en cours utilise le circuit de concaténation (20) ou le multiplieur (1) 9. Microarchitecture selon la revendication 2 ou 3, prise en combinaison avec l'une quelconque des revendications 4 à 8, un circuit à extension de format (13,15) étant prévu pour étendre à N+l bits les opérandes appliqués comme premier et deuxième opérandes d'entrée (El, E2) de l'additionneur à sauvegarde de retenue (11), caractérisé en ce que le circuit d'évaluation (17) du circuit de détermination (16) de la retenue sortante (C39) reçoit en entrées des opérandes (Ml, M2) correspondant auxdits premier et deuxième opérandes d'entrées (El, E2), avant extension de format. 10. Microprocesseur ou Microcontrôleur comprenant une unité arithmétique ayant une microarchitecture selon l'une quelconque des revendications 1 à 9.