Brevet FR2609819A1 — publié le 19880722

CIRCUIT ACCUMULATEUR A VIRGULE FLOTTANTE La présente invention concerne des circuits électroniques accumulateurs et plus particulièrement un circuit intégré accumulateur à virgule flottante. Dans l'art antérieur, des accumulateurs électroniques ont été typiquement conçus en tant que produits à plusieurs niveaux de cartes de circuits, ayant typiquement une architecture générale semblable à celle représentée en figure 1. Dans de tels dispositifs, des nombres à virgule flottante ont été accumulés en comparant les exposants de deux nombres à virgule flottante, en alignant la virgule binaire pour les deux nombres, en ajoutant les deux nombres, en normalisant le résultat en un nombre à virgule flottante, et en fournissant le résultat qli est alors renvoyé à ltentrée pour addition avec l'entrée de nombre suivante du circuit. Pour un système de processeur extrêmement rapide, il serait souhaitable de pouvoir accumuler des nombres à virgule flottante en pas plus d'un cycle d'horloge de l'horloge maître du système. Dans l'art antérieur mentionné ci-dessus, il est ou bien extrêmement coûteux ou bien pratiquement impossible de concevoir un circuit accumulateur qui présente de telles caractéristiques. Avec les progrès de la technologie, des circuits constitués de plusieurs niveaux de cartes peuvent être condensés en une puce de circuit intégré unique. La réduction de la dimension du circuit entraînera de façon inhérente une vitesse de traitement plus rapide. Cependant, dans certains cas, par exemple dans des ordinatelrs de traitement graphique spécifiques à grande vitesse, des vitesses toujours plus élevées sont souhaitables. En conséquence, la présente invention prévoit une nouvelle conception de circuit qui assure un fonctionnement à très haute vitesse en utilisant une architecture en pipeline et en renvoyant la sortie du circuit d'addition à l'entrée du circuit accumulateur avant que la normalisation ne prenne place.Il en résulte une certaine perte de précision mais cela accroit notablement la vitesse du processus d'accumulation, permettant ainsi l'utilisation d'une fréquence d'horloge plus rapide et une accumulation en un seul cycle d'horloge. Dans de nombreux cas, la perte de précision est négligeable ou tolérable, et les bénéfices liés au fonctionnement à vitesse plus élevée surpassent cette perte. En conséquence, un objet de la présente invention est de prévoir un accumulateur à virgule flottante en pipeline, fonctionnant en un seul cycle d'horloge, à haute vitese, présentant une boucle de réaction non normalisée. Ces objets, caractéristiques et avantages ainsi que d'autres de la présente invention seront exposés plus en détail dans la description suivante de modes de réalisation particuliers faite en relation avec les dessins joints parmi lesquels La figure 1 est un schéma sous forme de blocs d'une architecture d'accumulateur de l'art antérieur ; et Les figures 2a et 2b sont des schémas détaillés sous forme de blocs du circuit accumulateur selon l'invention. Les références numériques identiques dans les diverses figures se réfèrent à des éléments identiques. La présente invention peut être décrite de façon générale comme un circuit intégré accumulateur à virgule flottante présentant une architecture en pipeline, avec un retard de pipeline de 1400 nanosecondes et un cycle de 100 nanosecondes pour une horloge de 10 MHz (en utilisant des chiffres à virgule flottante à 32 bits dans le mode de réalisation préféré). De façon générale, l'architecture en pipeline selon la présente invention peut être décrite sous forme de cinq sections interdépendantes. Ce sont la section d'entrée ; la section de comparaison d'exposants et complément à deux ; la section d'accumulation ; la section de normálisation ; et la section de sortie. La section d'entrée est constituée d'une bascule, d'un multiplexeur et d'un registre d'entrée. La bascule est utilisée seulement quand des données entrent dans la puce sous forme multiplexée dans le temps. Des signaux de données et de commande sont mémorisés dans le registre d'entrée pour être utilisés dans la section suivante. La section de comparaison d'exposants de complément à deux est utilisée pour déterminer quel mantisse -celle du chiffre à virgule flottante ou celle du chiffre accumulé -- devra être décalée pour aligner les virgules binaires de sorte qe l'addition dans la section d'accumulation puisse avoir lieu. La partie de complément à deux de cette section convertit la mantisse en provenance d'un chiffre d'amplitude muni d'un signe en un chiffre de complément à deux pour simplifier l'addition dans la section d'accumulation. Un registre à l'extrémité de cette section mémorise la mantisse de complément à deux, un code de décalage, des signaux de commande pour indiquer laquelle des mantisses est la plus petite (et en conséquence doit être décalée), et l'exposant le plus grand (qui est également renvoyé à cette section pour la comparaison d'exposant suivante). La section d'accumation reçoit des entrées en provenance de la section de comparaison d'exposants et de complément à deux, et effectuer un renvoi à partir d'un registre accumulateur. La mantisse correspondant à l'exposant le plus petit (tel qu'il a été déterminé dans la section précédente) est envoyée dans un circuit de décalage vers la droite et décalée de la façon déterminée par le code de décalage calculé. La mantisse décalée et la mantisse non décalée sont alors ajoutées. En tenant compte convenablement du dépassement des deux nombres ajoutés, la sortie est mémorisée dans un registre accumulateur. L'exposant le plus grand, tel qu'il est déterminé dans la section de comparaison d'exposants, est transmis sans changement par la section d'accumulation et est également mémorisé dans un registre. La section de normalisation convertit la mantisse en complément à deux de la section d'accumulation en retour en un format d'amplitude muni d'un signe. L'exposant le plus grand est augmenté de un si le registre d'accumulateur présentait une identication de dépassement. Le signe, l'exposant et la mantisse sont combinés en un nombre à virgule flottante. Si un dépassement ou une sous-valeur d'exposant survenait, cette section détecte cet état et établit la sortie de cette section à une infinité négative ou positive (dans le cas d'un dépassement), ou à zéro (en cas d'une sous-valeur). Le nombre résultant de cette section est mémorisé dans un registre de sortie. La section de sortie mémorise- les résultats de la section de normalisation précédente et alimente les lignes de signal de sortie. La présente invention utilise le format de virgule flottante standard proposé par IEEE, qui consiste en 23 bits de mantisse, 8 bits d'exposant et 1 bit de signe. Dans ce format, on entend qu'une virgule binaire existe entre les positions de bits 22 et 23. Un nombre à virgule flottante est représenté de l'une des façons suivantes 1. Si l'exposant est non nul, alors Nombre = [ (-1) (signe) 2(exposant #127).(1. données) ] 2. Si l'exposant est zéro, mais que les données sont non nulles (identiquant un nombre dénormalisé), alors Nombre : [ (-1) (signe) 2(-127) .(0. données) ] 3. Si à la fois l'exposant et les données sont nulles, alors Nombre = 0.0 4. Si l'exposant est FF16 et la mantisse est zéro, alors Le nombre est considéré comme étant : + ou - l'infini 5.Si le nombre est FF16 et que la mantisse est non nulle, alors Le nombre est considéré comme étant : pas un nombre. Pour simplifier le circuit selon la présente invention, un nombre dénormalisé est forcé à zéro et tout nombre d'exposant FF16 est forcé à + ou - l'infini, selon le bit de signe. Le circuit accumulateur selon la présente invention ajoutera "n" nombres positifs sans erreur pourvu que le résultat ne dépasse l'une ou l'autre des frontières du système de nombres à virgule flottante. Quand un nombre négatif est ajouté au total accumulé, une certaine erreur en résulte en raison des approximations suivantes qui ont été faites pour accroître la vitesse du circuit 1. Les nombres sont normalisés seulement avant qu'ils quittent la puce. Ils ne sont pas normalisés pendant l'accumulation. 2. Il n'y a pas de circuit d'arrondissement prévu à la conception. 3. Des nombres négatifs sont reconvertis en un format d'amplitude muni d'un signe avec une opération de complément à un au lieu d'une opération de complément à deux. De façon interne, la mantisse va jusqu'à 25 bits (23 bits de données d'entrée, 1 bit caché et 1 bit de garde quand cela est nécessaire). L'exposant est porté à 9 bits de précision jusqu'à la section de normalisation, où un autre bit est ajouté pour une détection de sous-valeur. Les figures 2a et 2b représentent un schéma détaillé sous forme de blocs du circuit selon l'invention. Dans le mode de réalisation préféré du circuit selon l'invention, un circuit supplémentaire est ajouté pour la commodité de l'utilisateur final. La présence de ce circuit ne doit pas être considérée comme une limitation de l'invention fondamentale. Dans une version sous forme de circuit intégré de la présente invention, il existe 49 entrées et 34 sorties. Sur les 49 entrées, 32 entrées sont destinées aux données. Sur ces 32 entrées, 16 peuvent être ignorées, si on le souhaite, et 32 bits de données peuvent être introduits en multiplexage temporel sur les 16 entrées restantes. Les 17 autres entrées sont destinées à des signaux de commande, un signal d'horloge, un signal d'échantillonnage et une entrée série vers les registres de sortie pour des données de test. Les 34 sorties comprennent la sortie de donnée à 32 bits (c'est-a-dire un nombre à virgule flottante), une sortie série en provenance des registres à balayage dans des buts de tests, et un signal de commande. Parmi les signaux de commande vers la partie d'entrée du circuit se trouvent les signaux suivants Drapeau de Premier Terme (FTO) -- indique le premier terme d'une accumulation. Un "1" logique initialise le circuit accumulateur. BYPASSO -- quand il est utilisé avec le Drapeau de Premier Terme, les entrées de données vers le circuit passeront par le circuit sans être modifiées, apparaissant sur les sorties du circuit trois cycles d'horloge après avoir été introduites. Changement de signe (CHSign) -- utilisé pour soustraire le nombre d'entrée du nombre accumulé ; amène le circuit à changer le signe de la mantisse d'entrée. Pas d'opération (NOOPO) -- signifie que l'entrée de données vers le circuit est invalide et ne doit pas être accumulée. HOLDINO) -- amène les données d'entrée à être maintenues dans le registre d'entrée en tant que données pour l'opération suivante. HOLDOUT -- maintient les données de sortie dans le registre de sortie. Le circuit continue à accumuler des données mais les signaux de données du circuit ne changent pas. Sélection de multiplexage (MULTPX) -- utilisé pour choisir le mode d'entrée multiplexé temporel. La section d'entrée du circuit accumulateur comprend une bascule 1, un multiplexeur 2, un registre d'entrée 3, et une porte ET d'entrée 14. Les lignes de signaux d'entrée vers la section d'entrée comprennent les 16 bits les plus significatifs des données d'entrée (c'est-à-dire un nombre à virgule flottante) sur un premier ensemble de lignes de données 5, et les 16 bits les moins significatifs sur un second ensemble de lignes de données 6. Une ligne de commande de multiplexage (MULTPX) 7 est utilisée pour déterminer si les entrées de données sont acceptées d'une façon multiplexée dans le temps à 16 bits ou sous forme de signaux d'entrée à 32 bits pendant un cycle d'horloge unique. Si la ligne de signal de multiplexage 7 est active, les 16 bits de données les moins significatifs sont mémorisés dans la bascule 1 au moment du front descendant d'un signal d'échantillonnage. Ceci simplifie l'utilisation, puisque les signaux d'horloge et d'échantillonnage peuvent être liés au même signal de façon externe dans une configuration multiplex normale.Une fois que les 16 bits les moins significatifs ont été mémorisés dans la bascule 1, les 16 bits les plus significatifs entrent directement dans le registre de données 3 sur le second ensemble de lignes de signal 6, tandis que la sortie de la bascule 1 est simultanément introduite dans le registre d'entrée 3 par l'intermédiaire du multiplexeur 2. Dans un système non multiplexé, les 16 bits les plus significatifs sont introduits dans le registre d'entrée 3 par l'intermédiaire du multiplexeur 2 sur le premier ensemble de lignes de signal 5, simultanément avec l'entrée des 16 bits les moins significatifs vers le registre d'entrée 3 sur le second ensemble de lignes de signal 6. Dans ce dernier cas, la bascule t n'est pas utilisée. Le but de la bascule 1 et du multiplexeur 2 est simplemeot de mémoriser dans le registre d'entrée 3, les 32 bits comprenant le nombre à virgule flottante à accumuler. La porte ET d'entrée 4 avant l'entrée d'horloge du registre d'entrée 3 gouverne la commande d'horloge de ce registre. Les états logiques d'une ligne 8 de signal de Non Opération (NOOP O) et d'une ligne 9 de signal HOLDIN1 commandent la transmission du signal d'horloge vers le registre d'entrée 3. Le signal HOLDING est identique au signal HOLDINO mais retardé d'une étape de pipeline. Les entrées de commande restantes vers le circuit sont mémorisées dans le registre d'entrée 3 pour être utlisées ultérieurement dans le circuit si la ligne 8 de signal de Non Opération et la ligne 9 de signal HOLDIN1 sont activés pour permettre la transmission du signal d'horloge par l'intermédiaire de la porte d'entrée ET 14. La seconde section du circuit comprend le circuit de comparaison d'exposants et de complément à deux. Les entrées vers cette section comprennent les signaux de données et de commande en provenance du registre d'entrée 3. A moins que le nombre d'entrée en cours en provenance du registre d'entrée 3 soit le premier terme d'une accumulation, une entrée supplémentaire à cette section est un terme d'exposant le plus grand (LGEXP2) et un signal de dépassement (OFLW2), qui sont renvoyés à partir de la section suivante, à savoir la section d'accumulation. Les sorties de la seconde section sont le nouvel exposant le plus grand, à code de décalage calculé, les signaux de commande du multiplixeur effaçables, et une mantisse de complément à deux.La section d'accumulation utilise le code de décalage pour aligner les virgules binaires et les termes de l'addition des nouvelles mantisses et des données accumulées (à moins bien sûr que le nombre d'entrées en cours soit le premier terme d'une accumulation). Une comparaison d'exposants se réfère à la différence entre l'exposant le plus grand dans un calcul et l'exposant du nombre à virgule flottante d'entrée en cours en provenance du registre d'entrée 3. Fondamentalement, le circuit doit garder trace de l'exposant le plus grand rencontré depuis le premier nombre d'entrée dans une série d'accumulations. Le nombre d'entrée à virgule flottante est traité légèrement différemment si le signal de commande de drapeau de premier terme FTO est actif. Si le nombre d'entrée à virgule flottante est le premier terme d'une succession d'accumulations, il est considéré automatiquement comme ayant le plus grand exposant, et l'exposant passe par le circuit de comparaison d'exposants vers la section suivante sans changement. Dans ce cas, le code de décalage est fixé à zéro, et les signaux de commande utilisés dans le signal d'accumulation sont choisis pour effacer la valeur accumulée précédemment. Que le nombre d'entrée soit le premier terme d'une succession d'accumulations ou non, cette section calcule d'abord pour voir si le nombre d'entrée est équivalent à zéro, au moyen d'une porte NON OU de test 20. Puisque le circuit accumulateur force les nombres dénormalisés à zéro, le calcul de test de zéro doit seulement examiner les huit bits d'exposant du nombre d'entrée. Si les bits d'exposant sont tous à zéro, un signal ZERO 1 est activé pour indiquer que l'entrée est à zéro, pourvu que le signal BYPASS ne soit pas actif. Le but du signal ZéRO1 est d'établir tous les bits (signe, exposant et mantisse) du nombre d'entrée à zéro. Le signal ZéRO1 est utilisé en même temps que le signal BYPASS pour déterminer le calcul du signe pour l'exposant de sortie. Si le circuit complet doit être court-circuité le signe du nombre d'entrée ne peut en aucun cas être modifié. La sortie (SIGN1) d'une porte ET de signe 22 indique le signe de l'exposant à moins qu'il soit forcé à zéro par le signal ZéRO1, ou si le circuit doit être contourné, comme cela est indiqué par le signal BYPASS. Le signal de changement de signe (CHSign) détermine également si le signal SIGN1 doit être établi pour indiquer - un nombre négatif ou un nombre positif. Puisque la mantisse d'un nombre d'entrée à virgule, flottante est selon une représentation d'amplitude munie d'un signe, et que l'additionneur de la section d'accumulation agit sur des nombres représentés sous forme de complément à deux, le signal SIGN1 détermine également# si la mantisse doit ou non être rendue négative et incrémentée de 1 (c'est-à-dire transformée sous sa forme de complément à deux) par un élément de circuit de complément à deux 23. Si la mantisse d'entrée est négative, alors la mantisse doit être convertie en une forme de complément à deux par l'élément de circuit de complément 23. La mantisse du nombre d'entrée, mémorisée temporairement dans le registre d'entrée 3, s'est confondue avec un tX1t' logique à la position de bit le plus significatif, remplaçant le "1" implicite inhérent dans le standard IEEE proposé de nombres à virgule flottante à 32 bits, avant d'entrer dans l'élément de circuit de complément à deux 23. La comparaison de l'exposant d'entrée avec l'exposant précédent le plus grand prend place dans un comparateur 24. La sortie du comparateur 24 est la différence entre l'exposant le plus élevé précédent et l'exposant du nombre d'entrée en cours. Si la sortie du comparateur 24 est négative (comme cela est déterminé par le bit de signe de la différence DIFF (9)), ou si le nombre d'entrée est le premier terme d'une succession d'accumulations, un premier multiplexeur à 9 bits 25 et un second multiplexeur à 9 bits 26 seront immédiatement mis en oeuvre pour laisser passer l'exposant du nombre d'entrée en tant qu'exposant le plus grand. Dans ces deux cas, l'exposant du nombre d'entrée est toujours l'exposant le plus grand d'une somme. Si le nombre d'entrée n'est pas le premier terme et que la sortie du comparateur d'exposants 24 est non négative, l'exposant antérieur le plus grand (LGEXP2) est choisi comme sortie du premier multiplexeur 25. La sortie du second multiplexeur 26 est choisie à partir de deux entrées potentielles sur la base de la valeur d'un signal de dépassement (OFLW2) 27. Si le signal de dépassement est actif (indiquant que la somme des mantisses dans le cycle d'horloge antérieur a provoqué un signal de dépassement), l'exposant le plus grand doit être augmenté de 1. Ceci est effectué par un circuit additionneur 28. Dans ce cas, la sortie du second multiplexeur 26 est choisie à partir du circuit additionneur 28 ; autrement, la sortie directe du premier multiplexeur 25 est choisie. La sortie du second multiplexeur 26 consiste en un nouveau "plus grand exposant" (LGEXP1) qui est mémorisé dans un registre intermédiaire 29. En parallèle avec la détermination du plus grand exposant suivant, un code de décalage utilisé dans la section d'accumulation pour aligner les points binaires des deux termes de l'addition est calculé. La sortie du comparateur d'exposants 24 représente à quelle distance vers la droite la virgule binaire de la mantisse du nombre d'entrée est située (en terme de position de bits) à partir de la virgule binaire du nombre mémorisé dans le registre accumulateur dans la section suivante. Cette différence indique combien de fois la mantisse du plus petit nombre doit être décalée pour aligner sa virgule binaire à la virgule binaire du nombre le plus grand. Dans le présent mode de réalisation, seul un circuit de décalage vers la droite est utilisé, simplifiant ainsi le circuit d'ensemble.Comme seul un registre à décalage vers la droite est utilisé, si la sortie du comparateur d'exposants 24 est négative, plutôt que de décaler la mantisse du nombre d'entrée, la mantisse du nombre accumulé sera au lieu de cela décalée de sorte que sa virgule binaire sera alignée avec la virgule binaire du nombre d'entrée. Le code de décalage est basé sur l'amplitude de la différence entre les exposants comparés dans le comparateur d'exposants 214. Dans le mode de réalisation préféré, pour un fonctionnement plus rapide, la sortie du comparateur d'exposants 24 est acheminée vers deux circuits séparés de sorte qu'un calcul en parallèle peut prendre place. Le premier circuit est fondamentalement un additionneur 30 qui ajoute un à la sortie du comparateur d'exposants 214. Si la différence entre les exposants envoyés au comparateur 24 est positive, la sortie de l'additionneur 30 est simplement la différence plus un. Si la différence est négative, ajouter "un" amène essentillement le complément à un de la différence à être envoyé à partir de l'additionneur 30. Une sortie du circuit additionneur 30 est un signal CLRB qui est activé si la sortie du circuit additionneur 30 est plus grande que vingt-quatre. La signification du nombre vingt-quatre est que, si la différence entre les deux exposants comparés est supérieure à vingt-quatre, alors le décalage de la plus petite mantisse (qui comprend 24 bits dans le mode de réalisation préféré) pour aligner sa virgule binaire à la virgule binaire du nombre le plus grand, décalera complétement le plus petit nombre en dehors du circuit de décalage, et ainsi le plus petit nombre est approximativement égal à zéro. Cette approximation est acceptable puisqu'elle signifie que le plus grand nombre est de vingt-quatre ordres binaires d'amplitude supérieur au plus petit nombre. En conséquence, le circuit efface le plus petit nombre à zéro en activant le signal CLRB. La sortie du comparateur d'exposants 24 est également acheminée vers un circuit de complément conditionnel 31 qui laisse passer de façon inchangée la différence si celle-ci est positive, mais fournit le complément à deux de la différence si celle-ci est négative. De façon similaire au circuit additionneur 30, le circuit de complément conditionnel 31 comprend un signal CLRA qui est activé si sa sortie est supérieure à vingt-quatre. Les sorties du circuit additionneur 30 et du circuit de complément conditionnel 31 sont acheminées vers un circuit multiplexeur effaçable à 6 bits 32. L'entrée choisie pour être fournie à partir du multiplexeur 32 est choisie sur la base du signal de dépassement OFLW2. Si aucun dépassement ne prend place, la sortie de circuit de complément conditionnel 31 est choisie par le multiplexeur effaçable 32. Dans ce cas, si la différence des exposants est positive, cette différence devient le code de décalage. Si la différence des exposants est négative, le code de décalage est le complément à deux de la différence. (Puisque seul un circuit de décalage vers la droite est utilisé, les différences négatives sont complémentées pour les transformer en nombres positifs). Si un dépassement des mantisses ajoutées prend place dans le cycle d'horloge antérieur, la sortie du circuit additionneur 30 est choisie par le multiplexeur effaçable 32. Dans ce cas, si la différence des exposants est positive, un "un" est ajouté à l'exposant pour fournir un code de décalage qui amène le registre à décalage vers la droite à tenir compte d'une position de bit de plus dans la somme des mantisses (la position de bit de dépassement). Si la différence est négative, le code de décalage est le complément de la différence. Le code de décalage de sortie du multiplexeur effaçable 32 est mémorisé dans le registre intermédiaire 29 pour la section suivante. La sortie de code de décalage du multiplexeur effaçable 32 peut être effacée à zéro si le signal de Premier Terme FT1 est actif. Le signal CLRA ou CLRB est également choisi par le circuit multiplexeur effaçable 32 simultanément avec la sélection des entrées à 5 bits en provenance du circuit additionneur 30 et du circuit de complément conditionnel 31 et forme un signal de sortie désigné maintenant par "CLRC". La sortie CLRC du multiplexeur effaçable 32 est établie à zéro si le signal ZéRO1 est actif. Le signal CLRC est combiné au signal de signe de différence DIFF (9) et au signal de drapeau de Premier Terme FT1 par l'intermédiaire de deux portes ET 33 et 34 pour former un signal MUXCLR1. Le signal MUXCLR1 est utilisé pour effacer le multiplexeur dans la section d'accumulation qui choisit la mantisse qui provient de l'exposant le plus faible (et la mantisse associée aux données d'entrée de premier terme) et laisse passer ces signaux vers le circuit de décalage. Le signal MUXCLR1 est activé seulement si le signal CLRC est actif et ou bien que la différence des exposants est positive ou bien que l'entrée de nombre dans le registre d'entrée 3 est le premier terme d'une succession d'accumulations. Dans le premier cas, si la différence des exposants est positive et que le signal CLRC est actif, cela signifie que l'exposant le plus grand précédent est suffisamment plus grand que l'exposant du nombre d'entrée pour que le registre à décalage décale complètement le nouveau nombre de sorte que le nouveau nombre est ramené à zéro. Dans le second cas, quand le signal de drapeau de Premier Terme FT1 est actif et que le signal CLRC est actif, le terme dans le registre d'accumulation 40 est considéré comme étant égal à zéro et doit être effacé. Un signal formé à partir de la combinaison du signal de signe de différence DIFF (9) du comparateur d'exposants 214 et du signal de drapeau de Premier Terme FT1 (formé par la porte ET 33) est utilisé pour commander un multiplexeur dans la section d'accumulation. Ce signal, le signal MUXSEL1, est toujours désactivé si le signal de Premier Terme FT1 est activé, autrement il est identique au bit de signe de la différence des exposants. Ceci assure que, dans la section d'accumulation, le nombre d'entrée d'un nombre de Premier Terme, ou le nombre avec le plus petit exposant dans les autres cas, va toujours vers le registre à décalage. D'autres signaux qui sont mémorisés dans le registre intermédiaire 29 sont le signal BYPASS, le signal de premier terme FT1, le signal de signe d'entrée INSIGN1, et le signal de non opération NOOP1. La section suivante du circuit est la section d'accumulation. Les entrées vers cette sectidn sont les signaux qui ont été mémorisés dans le registre intermédiaire 29 à partir de la section de comparaison d'exposants et de complément à deux. En plus, une entrée vers cette section est la somme accumulée des nombres d'entrée antérieur qui est renvoyée à partir d'un registre accumulateur 140. Les sorties de cette section sont des mantisses accumulées dénormalisées, le nouveau signe du nombre accumulé (NSIGN2), l'exposant le plus grand accumulé (LGEXP2), et un signal de dépassement (OFLW2). Egalement mémorisé dans le registre accumulateur 40, se trouve le signal BYPASS et le signal de signe d'entrée (INSIGN2). Un premier multiplexeur à 25 bits 41 et un second multiplexeur à 25 bits 142 sont utilisés pour choisir quel trajet les deux termes de l'addition (la mantisse en provenance de la section antérieure et la mantisse accumulée en provenance du registre accumulateur 40) doivent suivre.Le signal MUXSEL2 en provenance de la section antérieure est utilisé en tant que signal de sélection pour les deux multiplexeurs 141 et 142. Si le signal MUXSEL2 n'est pas actif, alors la mantisse en provenance du nouveau nombre passe par le premier multiplexeur 41 et la mantisse du nombre accumulé passe par le second multiplexeur 142. Ceci est toujours le cas chaque fois qu'il existe un signal actif de Premier Terme FT2 ou si l'exposant du nouveau nombre est plus petit que l'exposant accumulé le plus grand. Dans tous les autres cas, le flux de données dans les deux multiplexeurs 141 et 42 est inversé. Si le signal de Premier Terme FT2 est activé, toutes les données accumulées dans le second multiplexeur 42 sont effacées, d'où il résulte que les sorties de ce multiplexeur sont toutes des zéros. Ceci entraînera que le nouveau nombre d'entrée est ajouté à zéro. De même, la sortie du premier multiplexeur 141 sera effacée si le signal MUXCLR2 est actif, amenant les données accumulées à être ajoutées à zéro. La sortie du premier multiplexeur 141 est couplée à un circuit de registre à décalage vers la droite de 25 bits 143. Le code de décalage en provenance de la section antérieure commande le nombre de fois dont le nombre d'entrée introduit dans le registre à décalage vers la droite 43 est décalé. Tandis que le nombre d'entrée est décalé vers la droite, la valeur du bit le plus significatif (le bit de signe) est utilisée pour remplir les positions de bits supérieures du nombre décalé pour préserver sa représentation de données de complément à deux.Les sorties du registre à décalage 43 et du second multiplexeur 42 sont couplés en tant qu'entrées à un circuit additionneur à 26 bits 1414. De façon interne à l'additionneur, les deux nombres d'entrées sont étendus à partir de vingt-cinq bits jusqu'à vingt-six bits en répétant le signe de bit de chaque nombre pour assurer que le signe du résultat sera valide pour tous les termes de l'addition possibles. Le bit 26 sera toujours le signe correct de la somme. La sortie de l'additionneur à 26 bits 1414 consiste en la somme des deux nombres d'entrée, un signal de dépassement OFLW2 qui est produit si le bit 25 est différent du bit -26, et un signal de nouveau signe (NSIGN2). La sortie à 25 bits de l'additionneur à 26 bits 1414 est couplée à un multiplexeur à 24 bits 145 de sorte que l'entrée "A" du multiplexeur 45 consiste en les bits O à 23 de la somme, et l'entrée "B" du multiplexeur 45 consiste en les bits 1 à 214. Si aucun dépassement n'a lieu, l'entrée "A" du multiplexeur à 24 bits 145 est fournie en tant que somme accumulée.Si le signal de dépassement est actif, ce signal sélectionnera à l'entrée "B" du multiplexeur 44 pour qu'elle soit fournie en sortie (le bit le moins significatif est ignoré). La valeur d'exposant la plus grande en provenance de la section antérieure, le signal du nouveau signe NSIGN2 en provenance de l'additionneur à 26 bits 1414, le signal de dépassement OFLW2, et les mantisses accumulées sont tous mémorisées dans le registre accumulateur 140 pour l'étage suivant en pipeline. Le signal de dépassement OFLW2 est également immédiatement renvoyé dans la section de pipeline antérieure (la section de comparaison d'exposants et de complément à deux). Le signal d'horloge vers le registre accumulateur 40 est commandé par l'intermédiaire d'une porte ET 46 par le signal de non opération NOOP2 qui, quand il est activé, empêchera tout changement dans le registre accumulateur 40. La section suivante du circuit selon l'invention est la section de normalisation. Les entrées dans cette section sont les sorties du registre accumulateur 140. Le but de la section de normalisation est de convertir la somme accumulée à nouveau sous forme de virgule flottante. Vingt-quatre des vingt-cinq bits de la mantisse mémorisés dans le registre accumulateur 40 sont couplés à un circuit conditionnel de complément à un 50 (le bit de signe n'est pas utilisé). En outre, tous les vingt-cinq bits de la mantisse (y compris le bit de signe) sont renvoyés à la section antérieure d'accumulateur en tant qu'entrée pour le premier multiplexeur 41 et le second multiplexeur 142. Le signal de nouveau signe NSIGN3 en provenance du registre accumulateur 40 détermine si la mantisse dans le circuit conditionnel de complément à un 50 passe dans celui-ci sans changement (dans le cas d'un nombre positif) ou si chaque bit de la mantisse est inversé pour former la représentation des compléments à un (si la mantisse est négative). (De façon idéale, on devrait effectuer le complément à deux de la mantisse, mais en raison des contraintes de synchonisation dans la technologie de la présente mise en oeuvre, un circuit de complément à un a été utilisé). La sortie du circuit conditionnel de complément à un 50 est couplée à un codeur de priorité 51 et à un circuit de décalage vers la gauche 52. Le circuit de décalage vers la gauche 52 est actionné par le codeur de priorité 51. Le codeur de priorité 51 détermine un code de décalage égal au nombre de zéros de tête dans la sortie du circuit de complément à un conditionnel 50. Un signal spécial, ZER03 est activé si tous les bits de l'entrée vers le codeur de priorité 52 sont à zéro, indiquant un résultat égal à zéro. Le code de décalage déterminé par le codeur de priorité 51 est couplé au circuit de décalage vers la gauche 52, qui décale la sortie du circuit de complément à un 50 vers la gauche de la quantité du code de décalage. Des zéros sont décalés vers les positions de bits les moins significatives.Ainsi, la sortie du circuit de décalage vers la gauche 52 constituera la forme normalisée de la mantisse initialement mémorisée dans le registre accumulateur 40. Puisque tous les zéros de tête de l'entrée vers le registre à décalage 52 ont été éliminés par décalage, le bit le plus significatif de la sortie du circuit de décalage vers la gauche 52, qui doit donc être un "1", est traité comme le "1" implicite de la représentation du nombre à virgule flottante, et n'est pas pris en considération. Toutefois, un bit de signe est rajouté à la sortie du circuit de décalage vers la gauche 52 pour former la mantisse normalisée finale pour la somme accumulée.Ce bit de signe est le signal de nouveau signe NSIGN3 calculé dans la section d'accumulation si le circuit n'est pas dans le mode BYPASS et, autrement, est le signe d'entrée (INSIGN3) du nombre initial envoyé au circuit si le mode BYPASS est actif. Dans ce dernier cas, fondamentalement, le signe est le même que le signe d'entrée initial ayant passé par tous les retards de registre du circuit. Celui des deux signes qui est sélectionné est déterminé par le signal BYPASS, qui commande l'action d'un multiplexeur à 1 bit 53 dont les deux entrées sont le signal de nouveau signe produit dans la section d'accumulation et le signe d'entrée intitial. Le code de décalage produit par le codeur de priorité 51 est également utilisé pour calculer l'exposant de sortie. D'abord, l'exposant le plus grand LGEXP3, mémorisé dans le registre accumulateur 40 est couplé à un circuit additionneur 54 et ajouté au signal de dépassement OFLW3. Si le signal de dépassement est actif, ceci augmente effectivement l'exposant le plus grand de un. Ensuite, la sortie de l'additionneur 54 est couplée à une entrée d'un circuit soustracteur 55 qui soustrait du nouveau nombre de plus grand exposant le code de décalage produit par le codeur de priorité 51, réglant ainsi l'exposant pour tenir compte du décalage dans la virgule binaire de la mantisse après normalisation. La sortie du soustracteur 55 est alors rajoutée à la sortie du circuit de décalage vers la gauche 52 et du multiplexeur à 1 bit 53 pour former le nombre complet à virgule flottante accumulé par le circuit. Ce nombre complet est appliqué à l'entrée d'un multiplexeur à 32 bits 56.L'autre entrée du multiplexeur consiste en des signaux prédéterminés représentant les limites du système. Un signal de "verrouillage" est produit pour sélectionner la sortie des multiplexeurs à 32 bits 56 sous forme, ou bien du nombre accumulé à virgule flottante, ou bien d'une représentation de plus ou moins l'infini, ou bien de zéro. Le signal de verrouillage produit par une porte OU 59 est actif si le signal ZER03 en provenance du codeur de priorité 51 est actif, ou si l'exposant calculé est plus grand que l'exposant permis le plus élevé, ou si l'exposant est négatif, ou si les bits de l'exposant sont ou bien tous des zéros ou bien tous des uns, tandis que le circuit n'est pas dans le mode BYPASS. Dans tous les cas, la mantisse vers l'entrée "B" du multiplexeur à 32 bits 56 est toujours établie à zéro. L'exposant de la valeur de verrouillage est zéro si l'exposant du nombre accumulé est négatif, si le signal ZER03 en provenance du codeur de priorité 51 est actif, ou si les bits de l'exposant sont tous des zéros. Dans tous les autres cas de verrouillage, les bits d'exposant pour la valeur de verrouillage sont établis à un. Le signe de la valeur de verrouillage est zéro si les bits de exposant sont tous des zéros, autrement le signe est égal à la valeur du signal de nouveau signe NSIGN3 en provenance du registre accumulateur 140. La sortie du multiplexeur à 32 bits 56 est couplée à un registre de sortie 60 qui comprend la sortie pour le circuit complet. L'horloge vers le registre de sortie 60 est commandée par l'intermédiaire d'une porte-ET 61 par le signal de non opération NOOP3 et le signal HOLDOUT. Si l'un ou l'autre signal est activé, l'entrée vers le registre de sortie 60 est invalidée et la sortie du circuit complet reste inchangée. Alors que la présente invention a été décrite en relation avec un mode de réalisation préféré, ceci n'a pas pour but de constituer une limitation. Diverses variantes du mode de réalisation préféré ainsi que d'autres modes de réalisation de l'invention apparaîtront à l'homme de l'art qui se référerait à la description. Par exemple, le circuit fondamental selon l'invention pourrait facilement être adapté à une architecture non en pipeline. REVENDICATIONS 1. Circuit accumulateur de nombres à virgule flottante à architecture en pipeline pour totaliser une multiplicité de nombres à virgule flottante, ces nombres comprenant un signe, un exposant et une mantisse, caractérisé en ce qu'il comprend a. une section d'entrée pour recevoir et mémoriser temporairement un nombre d'entrée à virgule flottante b. une section de comparaison d'exposants couplée à la sortie de la section d'entrée et d'un registre intermédiaire (29), pour déterminer un code de décalage indicatif du plus grand entre l'exposant du nombre d'entrée et l'exposant du résultat numérique précédemment accumulé dans le circuit, et pour mémoriser temporairement l'exposant le plus grand et le code de décalage dans le registre intermédiaire c. une section d'accumulation, couplée à la sortie de la section de comparaison d'exposants et d'un registre accumulateur (40) pour décaler la mantisse du plus petit entre le nombre d'entrée et le résultat numérique non normalisé prédédemment accumulé par la quantité de code de décalage pour aligner les virgules binaires des deux nombres, et pour sommer les deux nombres alignés et accumuler le résultat numérique non normalisé dans le registre accumulateur d. une section de normalisation, couplée au registre accumulateur, pour convertir le résultat numérique de la section d'accumulation sous forme d'un nombre normalisé à virgule flottante ; et e. une section de sortie, couplée à la sortie de la section de normalisation, pour mémoriser temporairement le résultat normalisé dans un registre de sortie (60) et pour fournir le résultat normalisé à partir du circuit. 2. Circuit accumulateur à virgule flottante selon la revendication 1, caractérisé en ce que la section de comparaison d'exposants comprend en outre un circuit conditionnel de -complément à deux (23) pour calculer le complément à deux de la mantisse du nombre d'entrée si le nombre d'entrée est négatif. 3. Circuit accumulateur à virgule flottante selon la revendication 2, caractérisé en ce que la section de normalisation comprend des moyens pour convertir le résultat numérique non normalisé sous forme normalisée et en ce qu'elle comprend a. un circuit de complément conditionnel (50) pour calculer le complément de la mantisse du résultat numérique si le résultat est négatif b. un moyen de circuit (52) pour décaler la mantisse du résultat jusqu'à ce que tous les bits zéro de tête soit enlevés et c. un moyen de réglage d'exposant pour régler l'exposant du résultat numérique-de la quantité de décalage d'enlèvement de zéros. 4. Circuit accumulateur à virgule flottante selon la revendication 1, caractérisé en ce que la section de normalisation comprend des moyens pour convertir le résultat numérique non normalisé sous forme normalisée, ces moyens comprenant a. un moyen de circuit (52) pour décaler la mantisse du résultat jusqu'à ce que tous les bits zéro de tête soient enlevés ; et b. un moyen de réglage d'exposant pour régler l'exposant du résultat numérique de la quantité de décalage d'enlèvement de zéros. 5. Circuit accumulateur à virgule flottante selon la revendication 1, caractérisé en ce que la section d'entrée comprend en outre des moyens de circuit (1,2) pour recevoir des parties du nombre d'entrée selon une séquence multiplexée dans le temps. 6. Circuit accumulateur à virgule flottante selon la revendication 1, caractérisé en ce que la section de comparaison d'exposants comprend en outre des moyens de circuit pour ajuster le code de décalage si la somme en provenance de la section d'accumulation présente un dépassement. 7. Circuit accumulateur de nombres à virgule flottante à architecture en pipeline pour totaliser une multiplicité de nombres à virgule flottante, ces nombres comprenant un signe, un exposant et une mantisse, caractérisé en ce qu'il comprend a. une section d'entrée pour recevoir et mémoriser temporairement un nombre d'entrée à virgule flottante b. une section de comparaison d'exposants et de complément à deux couplée à la sortie de la section d'entrée et d'un registre intermédiaire (29), pour déterminer un code de décalage indicatif du plus grand entre l'exposant du nombre d'entrée et l'exposant du résultat numérique précédemment accumulé dans le circuit, pour calculer le complément à deux de la mantisse du nombre d'entrée si le nombre d'entrée est négatif, et pour mémoriser temporairement l'exposant le plus grand et le code de décalage dans le registre intermédiaire c. une section d'accumulation, couplée à la sortie de la section de comparaison d'exposants et d'un registre accumulateur (40) pour décaler la mantisse du plus petit entre le nombre d'entrée et le résultat numérique non normalisé prédédemment accumulé par la quantité de code de décalage pour aligner les virgules binaires des deux nombres, et pour sommer les deux nombres alignés et accumuler le résultat numérique non normalisé dans le registre accumulateur d.Une section de normalisation, couplée au registre accumulateur, pour convertir le résultat numérique de la section d'accumulation sous forme d'un nombre normalisé à virgule flottante, comprenant un circuit de complément conditionnel (50) pour calculer le complément de la mantisse du résultat numérique si le résultat est négatif, un moyen de circuit (52) pour décaler la mantisse du résultat jusqu'à ce que tous les bits zéro de tête soient supprimés et un moyen de réglage d'exposant pour régler l'exposant du résultat numérique au moyen de la quantité de décalage d'enlèvement de zéros ; et e. une section de sortie, couplée à la sortie de la section de normalisation, pour mémoriser temporairement le résultat normalisé dans un registre de sortie (60) et pour fournir le résultat normalisé à partir du circuit. 8. Circuit accumulateur à virgule flottante selon la revendication 1, caractérisé en ce que la section d'entrée comprend en outre un moyen de circuit (1, 2) pour recevoir des parties du nombre d'entrée selon une séquence multiplexée dans le temps. 9. Circuit accumulateur à virgule flottante selon la revendication 7, caractérisé en ce que la section de comparaison d'exposants comprend en outre un moyen de circuit pour régler le code de décalage si la somme en provenance de la section d'accumulation présente un dépassement. 10. Circuit accumulateur de nombres à virgule flottante à architecture en pipeline pour totaliser une multiplicité de nombres à virgule flottante, ces nombres comprenant un signe, un exposant et une mantisse, caractérisé en ce qu'il comprend a. une section d'entrée pour recevoir et mémoriser temporairement un nombre d'entrée à virgule flottante b. une section de comparaison d'exposants couplée à la sortie de la section d'entrée et d'un registre intermédiaire (29), pour déterminer un code de décalage indicatif du plus grand entre l'exposant du nombre d'entrée et l'exposant du résultat numérique précédemment accumulé dans le circuit, et pour mémoriser temporairement l'exposant le plus grand et le code de décalage dans le registre intermédiaire c. une section d'accumulation, couplée à la sortie de la section de comparaison d'exposants et d'un registre accumulateur (40) pour décaler la mantisse du plus petit entre le nombre d'entrée et le résultat numérique non normalisé prédédemment accumulé par la quantité de code de décalage pour aligner les virgules binaires des deux nombres, et pour sommer les deux nombres alignés et accumuler le résultat numérique non normalisé dans le registre accumulateur d. une section de normalisation, couplée au registre accumulateur, pour convertir le résultat numérique de la section d'accumulation sous forme d'un nombre normalisé à virgule flottante ; et e. une section de sortie, couplée à la sortie de la section de normalisation, pour mémoriser temporairement le résultat normalisé dans un registre de sortie (60) et pour fournir le résultat normalisé à partir du circuit.