Brevet FR2627605A1 — publié le 19890825

Dispositif pour le calcul des bits de parité d'une somme de deux nombres L'invention se situe dans le domaine des additionneurs utilisés notamment dans les processeurs des ordinateurs. L'invention concerne plus particulièrement des circuits servant à calculer les bits de parité associés au nombre binaire qui est le résultat d'une addition calculée par un additionneur recevant en entrée deux nombres. binaires. D'une façon générale, les bits de parité associés à des mots ou des nombres binaires sont utilisés pour pouvoir détecter si ces mots ou ces nombres n'ont pas été entachés d'erreurs après avoir subi des manipulations dans les circuits de traitement. Le bit de parité d'un groupe de bits est habituellement défini comme le résultat de la combinaison par des opérations "OU EXCLUSIF" portant sur l'ensemble des bits constituant le groupe. Le bit de parité prend donc la valeur "1" si le nombre de "1" contenus dans le groupe est impair. Ainsi, lorsqu'un seul bit ou un nombre impair de bits du groupe sont erronés, le bit de parité prend la valeur complémentaire de la valeur qu'il devrait avoir. Les erreurs peuvent donc être détectées par simple comparaison entre la parité réelle calculée à partir du groupe et la parité attendue correspondant à la valeur du bit de parité. De plus, les mots peuvent être formés de plusieurs groupes de bits et à chaque groupe on associe un bit de parité. Un mot peut donc être associé à plusieurs bits de parité. Lorsque des opérations portant sur un ou plusieurs mots sont effectuées, il convient que le résultat de cette opération soit aussi associé à un ou plusieurs bits de parité. C'est le cas en particulier pour les opérations d'addition. Le ou les bits de parité du résultat d'une addition pourraient être calculés directement à partir du résultat. Toutefois, avec cette solution, les bits de parité du résultat ne peuvent être obtenus que bien après le résultat lui-même, ce qui retarde le moment o le résultat et ses bits de parité associés peuvent être utilisés dans la suite du traitement. - 2 - Par ailleurs, il est souhaitable que les bits'de parité puissent être calculés indépendamment du résultat proprement dit car on dispose alors d'un contrôle sur l'exactitude de l'addition. Le problème de prédiction des bits de parité d'une somme est abordé dans de nombreux articles qui donnent des solutions dans des cas particuliers. Cet état de la technique est par exemple illustré par la publication IBM (T) Technical Disclosure Bulletin, Volume 23, numéro 12, mai 1981, pages 5498 à 5502. Toutefois, lorsque les mots pour lesquels on veut calculer le ou les bits de parité comprennent un grand nombre de bits, tous ces dispositifs connus ne permettent pas un calcul rapide dans tous les cas. L'invention a pour but de permettre le calcul des bits de parité de la somme de deux nombres dans un temps le plus court possible. L'intérêt d'un calcul rapide des bits de parité réside dans le fait que ce calcul ne retarde pas le moment o l'additionneur redevient disponible pour l'opération suivante. Il en résulte que l'unité de calcul pourra travailler à une fréquence supérieure. Nous verrons ultérieurement que la rapidité du calcul des bits de parité d'une somme est conditionnée par la rapidité du calcul des bits de parité associés au mot qui est formé par les bits de retenue apparaissant au cours de 1 'addition. Ce.mot sera désigné par la suite par "mot de retenue". - Lorsque les nombres à additionner comportent un nombre important de bits, il est plus avantageux de considérer ce mot comme la concaténation de plusieurs groupes de bits et d'associer à chacun de ces groupes un bit de parité. Par exemple,'à un mot de 64 bits on peut associer huit bits de parité, chaque bit de parité étant associé à un groupe de huit bits du mot. Cette méthode permet notamment d'améliorer la détection des erreurs, en particulier dans les cas d'erreurs multiples portant sur des groupes différents. Par définition, le bit de parité associé à un groupe extrait du mot de retenue dépend en principe de tous les bits de retenue formés lors de l'addition. 26276OS -3- Le problème du calcul des bits de retenue s'était déjà posé pour réaliser les additionneurs. Il s'avère en effet qu'un bit de retenue est obtenu d'autant plus tard que son poids est plus élevé. C'est pourquoi dans les additionneurs, on essaie de réaliser des circuits d'anticipation de retenues pour calculer ces bits de retenue le plus rapidement possible. Cependant, même en utilisant des circuits performants, les retenues de poids fort sont toujours obtenues presqu'à la fin de l'opération d'addition. Ainsi, l'invention concerne une solution pour calculer les bits de parité associés aux groupes formant le mot de retenue selon laquelle une fois le calcul des bits de retenue effectué, le temps ensuite nécessaire pour calculer les bits de parité est réduit au maximum. Ce résultat est rendu possible par le fait que le dispositif selon l'invention effectue ce calcul en deux étapes - une première étape qui utilise comme variables d'entrée des variables qui dépendent uniquement des nombres à additionner; - une deuxième étape rapide faisant intervenir des bits de retenue. La première étape a lieu pendant le calcul des retenues par le circuit d'anticipation de l'additionneur et, compte-tenu de la lenteur relative de ce calcul, cette première étape est conçue de façon à effectuer le maximum de calculs préparatoires, permettant ainsi de simplifier la deuxième étape rendue par conséquent plus rapide. Plus précisémment, l'invention a pour objet un dispositif de calcul du bit de parité associé à au moins un groupe de m bits consécutifs extraits du mot de retenue apparaissant lors de l'addition de deux nombres binaires, lesdits nombres comprenant chacun au moins un groupe de m bits, lesdits groupes appartenant respectivement auxdits nombres et au mot de retenue étant constitués de bits respectivement de même poids, lesdits groupes extraits desdits nombres étant formés respectivement des bits am,. , ai, a2, a1 et des bits bm..., bi,..., b2, b1, l'indice i indiquant le poids dans le groupe du bit associé, ledit dispositif étant caractérisé en ce qu'il comprend: -4 - - un premier étage pour calculer pour tout i. compris entre i et m - 1 les valeurs: pi = ai 03 bi gi = ai. bi Odésignant l'opération "OU EXCLUSIF", - un premier opérateur pour calculer pour tout i compris entre i et m - 1 les valeurs Pi et les valeurs Gi vérifiant les équations logiques récurrentes suivantes: Pi = Pi * P i - avec P1i= P1 Gi = gi + pi G G 1g1 - un deuxième opérateur pour calculer: Y = G G2( " Gi () Gm - 1 X = P1![ P2()...(3 Pi (...( Pm - 1 - et un troisième opérateur pour calculer: PC = Y c)Cin X* o cin est la retenue de plus faible poids du groupe et o X* est le complément de X. Le dispositif précédent peut ensuite être modifié de façon à faire intervenir des bits de parité de chacun des opérandes pour fournir directement les bits de parité associés à leur somme, sans pour cela..DTD: retarder le calcul. L'invention a donc également pour objet un dispositif de calcul du bit de parité associé à au moins un groupe de m bits extraits de la somme de deux nombres caractérisé en ce qu'il comprend un dispositif de calcul selon le dispositif précédent mais auquel sont ajoutés des circuits supplémentaires "OU EXCLUSIF" pour introduire les parités PA et PB desdits nombres et disposés de façon à: - soit remplacer 1 'une quelconque des sorties Gi' du premier opérateur par le résultat de l'opération PA ( PB Gi réalisée grâce auxdits circuits suppl émentai res, - soit remplacer deux sorties quelconques Gi et Gj du premier opérateur par, respectivement, le résultat des opérations PAG Gi et PB)Gj. D'autres caractéristiques et avantages apparaîtront dans les modes de réalisation préférentiels qui vont être décrits. - La figure i représente un schéma d'ensemble comprenant un additionneur et un dispositif selon l'invention. - la figure 2 représente un dispositif de calcul du bit de parité associés à un groupe de huit bits extrait du mot de retenue. - La figure 3 représente un dispositif de calcul du bit de parité associé à un groupe de huit bits extrait d'une somme de deux nombres binaires. - la figure 4 représente un exemple de réalisation d'additionneur coopérant avec le dispositif selon l'invention. - La figure 5 représente un circuit d'anticipation des bits de retenue selon un mode de réalisation particulier de l'invention. - Les figures 6 et 7 montrent des schémas de réalisation de modules logiques pouvant être utilisés dans le dispositif selon l'invention. - La figure 8 montre le schéma d'un autre module logique pouvant être utilisé dans le dispositif selon l'invention. Avant de décrire l'invention en référence aux figures, il convient d'indiquer les bases théoriques de l'invention. Si nous considérons deux nombres A et B de N bits, constitués respectivement des bits aN, aN - 1, "', ai,, a2, a, et bN, bN - 1, bi,..., b2, bl, une méthode courante pour effectuer la somme de ces deux nombres consiste à utiliser un circuit d'anticipation du mot de retenue C formé des bits de retenue ci intervenant dans l'addition. Les additionneurs classiques de ce type comprennent un premier étage qui forme des variables intermédiaires pi et gi calculées à partir des bits ai, bi des deux nombres A et B s'elc les équations suivantes: --6- pi = ai (3 bi gi = ai. bi ( désignant l'opération "OU EXCLUSIF" Si l'on suppose connue la retenue ci de poids i, le bit si de poids i de la somme est obtenu par l'équation: Si = Pi G ci D'autre part, on a: ci = gi - 1 + Pi i 1 Ci - Ainsi les bits de retenue peuvent être calculés de proche en proche à partir des variables pi, gi qui dépendent des seuls bits ai, bi des opérandes. Ce calcul est effectué par le circuit d'anticipation des retenues mentionné précédemment. L'additionneur comporte alors un dernier étage de calcul des bits si de la somme S obtenus par la formule si = i () Ci. Considérons maintenant des groupes formés de bits consécutifs extraits des nombres A, B et C et constitués respectivement des bits ai, bi et ci, o i indique le poids dans le groupe du bit associé. En désignant par cq le bit de retenue de plus faible poids que l'on trouve dans l'un des groupes considérés, on peut démontrer qu'on a pour i supérieur à q: ci + 1 = Gi + Pi. cq o Pi et Gi sont définis par les formules récurrentes suivantes: P i = Pi Pi- 1 avec Pq = pq Gi = i + pi Gi _- 1 Gq = gq Ces dernières formules permettent de construire un circuit d'anticipation des retenues ayant un nombre réduit de circuits logiques branchés en cascade. La réalisation de ce circuit sera exposée en référence à la figure 3. - 7 - Concernant maintenant le problème des bits de parité, nous avons vu que les nombres sont généralement considérés comme formés par plusieurs groupes de m bits de même taille et qu'à chaque groupe, on associe un bit de parité. Ainsi les opérandes A et B, le mot de retenue C et la somme S sont par exemple constitués respectivement des groupes A1, A2, A3, A4, des groupes B1, B2, B3, B4, des groupes C1, C2, C3, C4 et des groupes S1, S2, 53, S4. A chaque groupe, par exemple Aj, on associe.un bit de parité correspondant, par exemple PAj. Dans la suite de l'exposé, en ce qui concerne les bits de. parité, nous considérerons uniquement les groupes homologues des opérandes, du mot de retenue et de la somme, c'est-à-dire les groupes constitués des bits de même poids. De plus, pour simplifier l'écriture, les indices identifiant les groupes ne seront plus utilisés. Enfin, l'indice i d'un bit sera le poids relatif au groupe considéré et aura donc une valeur comprise entre 1 et m, le poids i étant le poids le plus faible dans le groupe. Si nous désignons par PA, PB, PS les bits de parité associés respectivement aux groupes A, B et S, il est facile de démontrer que l'on a la relation-: PS = PA 6PB PC avec PC = cm (... 3 ci 63... (S c2 ( cl PC est donc le bit de parité du groupe formé par les bits de retenue intervenant lors de l'addition. Il apparait donc que pour obtenir PC selon la formule précédente, on doit disposer de toutes les retenues. Or des calculs théoriques montrent que PC peut se mettre sour la forme: PC = Y Gcin.X* o cin est égal à cl, c'est-à-dire est la retenue de plus faible poids du groupe et o X* est le complément de X, avec: Y = G1 G2 ( (D Gi (... Gm - 1 X = Pl 0++P2(... ( Pij **- Pm - 8- et o Pi et Gi vérifient les formules de récurrence suivantes: Pi = Pi - Pi - avec P1 = pl P1=p1.P11 avec P1=:Pl Gi = gi + pi G G G1 91 Bien entendu, pour le groupe constitué par les bits de plus faible poids du mot, nous avons cin = 0 lorqu'une addition normale est effectuée. Nous allons décrire maintenant comment l'exploitation des formules précédentes permet d'atteindre le but recherché. La figure i représente un additionneur associé à un générateur de bits de parité selon l'invention. Pour illustrer l'invention, nous avons supposé que les nombres à additionner A et B sont constitués de quatre groupes de bits, respectivement A1, A2, A3, A4 et B1, B2, B3, B4. Chaque groupe est associé à un bit de parité correspondant. Par exemple le groupe A1 est associé au bit de parité PAl, le groupe A2 est associé au bit de parité PA2, etc. Les opérandes A et B ainsi que les bits de parité associés à ces deux opérandes sont contenus dans des registres respectifs RA, RB, RPA et RPB. Nous allons maintenant considérer deux groupes homologues extraits des opérandes, par exemple A1 et B1. Le groupe A1 est constitué de m bits a1i et le goupe B1 est constitué de m bits bli. Les bits de mêmes poids ali et bli sont combinés dans un opérateur 11 comprenant des circuits "OU EXCLUSIF" et des circuits "ET" de façon à calculer les variables: Pli = ali ( bli gli = ali À bli Les circuits 12, 13 et 14 associés aux autres groupes sont identiques au circuit 11, l'ensemble de ces circuits formant le premier étage 10 de 1 'additionneur. Un circuit d'anticipation des retenues 20a reçoit en entrée les sorties du premier étage 10. Le circuit 20a connu en soi permet de calculer toutes les -9-. retenues cli, c2i, C3i, et c4j intervenant dans l'addition des deux opérandes. Ce circuit 20a peut être considéré comme constitué de plusieurs circuits 21a, 22a, 23a et 24a associés respectivement aux groupes dont sont formés les opérandes. Un dernier étage 30 constitué de "OU EXCLUSIF" reçoit les retenues du circuit 20a et les variables Pli à P4i issues du.premier étage 10. Le circuit 30 délivre en sortie les bits S1i à s4i du résultat S de 1 'addition. Le circuit 30 peut aussi être considéré comme constitué des circuits 31, 32, 33 et 34 associés respectivement aux groupes formant les opérandes. Ainsi, le circuit 31 délivre les bits sli du premier goupe vérifiant l'équation: Sli = Pli CCli Ce qui précède -concerne exclusivement l'additionneur et nous allons maintenant décrire la partie du circuit qui concerne le générateur de bits de parité. Dans l'exemple représenté, nous avons supposé que les opérandes A et B et leurs sommes S étaient constitués de quatre groupes m bits et qu'à chacun des groupes, est associé un bit de parité correspondant. Ainsi, le générateur de parité- comprend un ensemble constitué de quatre opérateurs 41, 42, 43 et 44 recevant respectivement les bits de parité des groupes homologues des opérandes et les variables issues du premier étage 10. Par exemple, l'opérateur 41 associé au premier groupe reçoit les parités PAl, PB1 et les variables Pli et gli issues du circuit 11. En fonction de ces signaux, 1 'opérateur 41 délivre les deux variables X1 et Y1 vérifiant les équations qui ont été exposées précédemment mais en l'absence d'indice. De façon analogue, les circuits 42, 43, 44 délivrent respectivement les variables X2, Y2; X3, Y3; X4, Y4. Un dernier étage constitué des opérateurs 51, 52, 53 et 54 reçoit les variables X, Y du groupe correspondant ainsi qu'un signal de retenue - 10dépendant du groupe considéré. Plus précisémment, l'opérateur 54 reçoit la retenue C3m + 1 issue du circuit 23a et qui est la retenue de plus faible poids du quatrième groupe. L'opérateur 53 reçoit la retenue C2m + 1 qui est la retenue de plus faible poids du troisième groupe, et l'opérateur 52 reçoit la retenue cm + 1 qui est la retenue de plus faible poids du second groupe. Dans le cas d'une addition normale, l'opérateur 51 reçoit la retenue c1 = O. D'une façon générale, en désignant par cin la retenue appliquée à l'opérateur correspondant, chaque opérateur délivre un signal de sortie PS1 PS4 vérifiant: PS = Y(Cin. X* Les variables PS1 à PS4 ainsi obtenues sont donc les bits de parité associés à chacun des groupes extraits de la somme. Il est évident que le dispositif précédent pourrait être généralisé pour un nombre quelconque de groupes et un nombre quelconque de bits par groupe. Les étages 10 et 30 de l'additionneur sont constitués de circuits logiques classiques du type "ET" et "OU EXCLUSIF". Leur réalisation est à la portée du l'homme du métier et ne sera donc par décrite en détail. Les opérateurs 41 à 44 ainsi que le circuit d'anticipation des retenues 20a méritent par contre un développement qui sera maintenant exposé en référence aux figures 2 à 8. Etant donné que les opérateurs 41 à 44 sont identiques, il suffira donc d'en décrire un, par exemple l'opérateur 41. Par ailleurs, nous avons vu dans l'introduction que la difficulté résidait dans le calcul de la parité associé aux bits de retenue du groupe considéré. Aussi, nous allons d'abord décrire en référence à la figure 2 un dispositif permettant le calcul de ce bit de 'parité. Nous exposerons ensuite en référence à la figure 3 comment modifier ce circuit. pour le transformer en générateur de bit de parité de la somme. 2627605' 11 - La figure 2 représente un circuit permettant le calcul du bit de parité associé aux bits de retenue d'un groupe de huit bits. Toutefois, il est clair que la description qui va suivre ne se limite pas à ce cas particulier et nous montrerons comment généraliser les circuits pour un nombre quelconque de bits. Le circuit de la figure 2 comprend un premier opérateur 41a recevant les variables P1, g91 à P7, g7 calculées par le circuit 11 exposé précédemment ou par un circuit séparé mais identique. Ce circuit 11 peut en effet Atre commun avec l'additionneur mais si l'on veut améliorer l'intégrité du circuit, il est préférable d'utiliser un circuit 11 indépendant de l'additionneur car l'utilisation d'un circuit 11 commun masquerait les erreurs qui pourraient se produire dans ce circuit. L'opérateur 41a est constitué exclusivement de modules logiques d'un premier type M1 recevant en entrée quatre variables binaires Px, Gx, Py, Gy et fournissant deux variables binaires de sortie Pz, Gz vérifiant les équations Pz Py. P Gz = Gy + Py. Gx L'utilisation de ces modules et leur disposition vont permettre de calculer les variables Pi et Gi, pour i compris entre 1 et 7 défini par les relations de récurrence: Pi = Pi - Pi - avec Pl =_pl =P, avec P1=:Pl Gi = gi + pi Gi _ 1 G1 = g9 La relation qui lie le couple de variables de sortie Pz, Gz aux deux couples de variables d'entrée Px, Gx et Py, Gy possède l'importante propriété d'être associative. Grâce à cette propriété, il est possible de disposer les modules M1 de façon à calculer les variables Pi et Gi tout en réduisant au maximum le nombre de couches de ce circuit, c'est-à-dire le -nombre de ces modules mis en cascade.- Nous allons maintenant indiquer la façon de construire le premier opérateur 41a en procédant par récurrence, l'indice i indiquant à la fois le poids du bit considéré et un rang correspondant de l'opérateur. - 12 - Pour i = 1, on obtient directement P1 = Pl et G1 = 9gl Pour i compris entre 1 et 2, on combine en outre Pl, 91 avec P2, g2 dans un premier module 1 qui fournit en sortie P2, G2. Pour i = 3, un troisième module 3 combine P3, 93 avec P2, G2 issus du premier module 1. Ce module 3 fournit P3, G3. Pour i = 4, un autre module 2 combine P3, 93 et P4, 94 et la sortie de ce module 2 est combinée dans un autre module 4 avec la sortie du module 1. Ce module 4'fournit P4, G4. On obtient bien ce résultat grâce'à l'associativité de la fonction réalisée par le module M1. Pour compléter la construction de l'opérateur 41a pour i supérieur à 4, il suffit de suivre la méthode suivante: le montage initial pour i compris entre 1 et 2n étant réalisé, le montage pour i compris entre 2n + 1 et 2n + 1 est obtenu en ajoutant des modules M1 disposés selon ce montage initial mais décalés de 2n rangs vers les poids forts, fournissant ainsi de nouvelles sorties. On dispose ensuite 2n modules M1 supplémentaires qui combinent les sorties de plus fort poids P2n, G2n issues du montage initial et, respectivement, chacune de ces nouvelles sorties. Bien entendu, la construction s'arrêtera à l'ordre m - 1. On disposera alors de toutes les valeurs des variables Pi et Gi. Dans l'exemple considéré, nous disposons donc en sortie du premier opérateur 41a des variables Pi, Gi jusqu'à l'ordre 7. Les sorties Pi, Gi de l'opérateur 41a sont ensuite appliquées aux entrées du second opérateur 41b. L'opérateur 41b est composé de modules logiques d'un deuxième type M2 qui sont simplement des circuits "OU EXCLUSIF" doubles à quatre entrées Xx, Yx, Xy, Yy et fournissant deux sorties Xz, Yzo vérifiant: Xz= Xx C) Xy YZ = Yx Yy On voit immédiatement qu'il suffit de disposer ces modules M2 selon une construction en pyramide qui est équivalente à un opérateur "OU EXCLUSIF" à E627605 - 13 - entrées multiples. Ce montage permettra donc d'obtenir les deux variables X et Y définies par les relations: Y = G1 G20..) Gi(...) Gm - 1 X = Pl P2 e P...Pi (... Pm - 1 Les variables X, Y et la retenue cin définie précédemment sont appliquées au troisième opérateur 51 dont la sortie PC est liée aux entrées par l'équation logique PC = Y( Cin. X* o Cin (ici Cin = c1) est la retenue de plus faible poids du groupe et ou X* est le complément de X. En pratique m est toujours une puissance de 2 et peut s'écrire m = 2n. Dans ce cas, on démontre facilement que le nombre de couches nécessaires pour obtenir les variables Pi, Gi est égal à n. Le nombre de couches de circuits nécessaires pour obtenir X et Y est égal à 2n et par conséquent le nombre total de couches pour obtenir la parité PC est égal à 2n + 1. Ainsi dans le cas o m = 8, le générateur de parité est constitué d'un circuit à sept couches. Pour réaliser un circuit capable de calculer le bit de parité associé à l'un des groupes extrait de la somme, le circuit précédent doit être modifié de façon à faire intervenir les bits de parité associés aux groupes extraits des opérandes. Comme on a la relation: PS = PA ( PB () PC avec PC = cm... c... () c2 c et compte tenu de la commutativité et de l'associativité de l'opération "OU EXCLUSIF", on voit qu'il suffit d'introduire les bits de parité PA et PB dans l'expression de Y. En ce qui concerne la réalisation pratique, on peut par exemple utiliser des "OU EXCLUSIF" de façon à remplacer l'une quelconque des sorties Gi du premier opérateur par 1 'expression PA) PB Gi. Une autre solution pourrait consister à remplacer deux sorties - 14 - quelconques Gij et Gj du premier opérateur par, respectivement, le résultat des opérations PAi)OGi et PB Gj. La figure 3 montre un exemple de modification du schéma de la figure 2 permettant d'obtenir ce résultat. Selon cette réalisation, les bits de parité PA et PB des groupes extraits des opérandes sont combinés dans un "OU EXCLUSIF" 5 dont la sortie est combinée dans un autre "OU EXCLUSIF" 6 avec la variable G1, la sortie du deuxième "OU EXCLUSIF" 6 délivrant en sortie la variable G'1 = PA G)PB ) G1. Sans rien changer. d'autre au circuit, la sortie de l'opérateur 51 représente maintenant le bit de parité PS de la somme pour le groupe considéré. La figure 4 représente une parite d'un mode de réalisation d'un additionneur comprenant le circuit d'anticipation 20a des bits de retenue. Bien que ce circuit en soi ne soit pas l'objet de la présente invention, sa description est utile car elle permettra de mieux comprendre le contexte de 1 'invention. Le circuit d'anticipation des bits de retenue du premier groupe 21a reçoit en entrée la variable cin et les sorties du premier étage 10. cin correspond au bit de poids faible c1 du mot de retenue. Pour une addition normale, on a cin = O. Cependant, l'additionneur peut être utilisé pour effectuer des soustractions. En effet, l'opération de soustration A - B revient à calculer A + B* + 1, B* étant le complément de B. Pour cela, on peut utiliser l'additionneur avec A et B* comme opérandes et avec cin = 1. De même le dispositif de calcul des bits de retenue pourra être utilisé à condition également d'introduire cin = 1 dans le circuit.51 du premier groupe. - 15 - Le circuit de la figure 4 est construit en application de la formule: ci + 1 = Gi + Pi Cq. Ce circuit comprend une pluralité de modules Ml-définis précédemment et destinés à calculer les variables Pi et Gi. Le circuit comprend également des modules d'un troisième type M3 à trois entrées Px, Gx, cy et ' une sortie Cz vérifiant la relation: Cz = Gx + Px - cy Les modules de type M1 et M3 sont disposés selon un montage appelé "recurrence solver" connu dans la technique des additionneurs. Ce circuit fournit en sortie les retenues ci qui sont ensuite combinées dans le circuit 31 avec les variables pi de même poids. Le circuit 31 délivre les bits si du résultat-de l'addition. L'additionneur comprend.également les circuits 22a et 32 pour le second groupe et d'autres circuits non représentés pour les groupes suivants. Ainsi, les retenues intervenant dans les générateurs de parité décrits aux figures 2 et 3 peuvent être extraites de ce circuit d'anticipation des retenues appartenant à l'additionneur. Cependant, en procédant de cette façon, les erreurs portant sur les bits de retenues utilisés dans le générateur de parité seraient totalement masquées. Pour cette raison, il est préférable de prévoir un circuit indépendant pour calculer ces bits de parité. Un tel circuit pourrait être identique à celui utilisé dans l'additionneur, mais il est intéressant de le simplifier de façon à ce qu'il ne fournisse que les bits de retenue intervenant dans la génération des bits de parité. La figure 5 représente un tel circuit d'anticipation des retenues spécifique du générateur de parité. Ce circuit représente le cas o les groupes sur lesquels portent les parités comprennent huit bits. Un premier - 16- sous-ensemble 21 fournit la retenue c9 qui servira de signal d'entrée au circuit 52 du deuxième groupe. Le circuit 22 fournit la retenue c17 servant d'entrée au circuit 53 du troisième groupe. Enfin le circuit 23 non représenté fournira la retenue c25 pour le quatrième groupe. Bien entendu, l'adaptation de ce circuit dans le cas o les groupes sont en nombre et de longueur quelconques est à la portée de l'homme du métier. Il est intéressant de noter que si les nombres à additionner comprennent N bits, o N est une puissance de 2, soit N 2r, le circuit d'anticipation des retenues comprendra r couches. Il en résulte que l'additionneur comprendra au total r + 1 couches. Ce résultat est à rapprocher des 2n + 1 couches nécessaires pour réaliser le générateur de parité. Il conviendra donc de choisir n en fonction de r. Si par exemple on a N = 64 et m = 8, on obtiendra exactement le même nombre de couches pour l'additionneur et pour le générateur de-parité. Toutefois, cela ne veut pas dire que ces deux circuits seront exactement aussi rapide. En effet, les modules logiques intervenant dans l'additionneur et dans le générateur de parité ne sont pas identiques. En particulier, au niveau de la dernière couche, l'opérateur 51 effectue une opération plus complexe que les "OU EXCLUSIF" de la dernière couche 31 de l'additionneur. Il en résulte que si le générateur de parité utilise les retenues en provenance de l'additionneur, les bits de parité pourraient être obtenus légèrement plus tard que le résultat de l'addition. Cependant, si l'on utilise un générateur de retenues indépendant des circuits de l'additionneur, ce handicap est compensé. En effet, en comparant les circuits représentés aux figures 4 et 5, on constate par exemple que l'un des modules M3 de l'avant dernier étage du circuit 21a alimente une pluralité de modules M3 alors que dans le circuit de la figure 5, cela-n'est pas le cas. Il en résulte une différence des capacités d'entrée de cet étage qui a pour conséquence que le circuit de la figure 5 sera plus rapide que celui de la figure 4. Ainsi, la complexité relative du générateur de parité sera largement compensé par la simplification du circuit d'anticipation des retenues. Nous allons maintenant donner des indications en vue de réaliser le générateur de parité selon l'invention en technologie CMOS. - 17 - Nous avons vu que les modules M1 réalisaient des fonctions: P -=Py P z: y P x Gz = Gy +Py. Gx Cependant, en technologie CMOS, il est plus facile d'obtenir les fonctions complémentaires et leur fonction duale. La figure 6 représente un circuit CMOS permettant d'obtenir la variable Gz* qui est le complément de Gz. Ce circuit peut alors être associé à une porte NON-ET (NAND) fournissant Pz* qui est le complément de Pz' La figure 7 présente un circuit permettant d'obtenir la fonction duale de la précédente. Ainsi, Gx*, Gy* Py* étant respectivement les compléments de Gx, Gy, Pyj, le circuit de la figure 7 délivre Gz vérifiant l'équation: Gz Gy + P G Le circuit de la figure 7, pourra être associé à une porte NI (NOR). Par conséquent, on pourra réaliser les circuits des figures 2 et 3 en utilisant à la place des modules M1 définis précédemment, alternativement ces circuits sans changer le résultat final, à condition de prévoir des inverseurs aux entrées appropriées. Ces circuits peuvent aussi être utilisés pour réaliser les modules M3 du circuit d'anticipation des retenues. I1 est inutile de détailler davantage la méthode pour effectuer le montage de ces circuits car elle est tout à fait à la portée de l 'homme du métier. La figure 8 représente à titre d'illustration un exemple de circuit CMOS pour réaliser la fonction "OU EXCLUSIF". Ce circuit pourra être utilisée par exemple pour réaliser les des modules M2 et 51 des figures 2 et 3. 26 7 6 0 5 - 18 - Revendications: 1. Dispositif de calcul du bit de parité (PC) associé à au moins un groupe de m bits consécutifs extraits du mot de retenue (C) apparaissant lors de l'addition de deux nombres binaires (A, B), lesdits nombres (A, B) comprenant chacun au moins un groupe de m bits, lesdits groupes appartenant respectivement auxdits nombres (A, B) et au mot de retenue (C) étant constitués de bits respectivement de même poids, lesdits groupes extraits desdits nombres (A, B) étant formés respectivement des bits am,.. ., ai, a2, a1, et des bits bm,..., bi....., b2, b1, l'indice i indiquant le poids dans le groupe du bit associé (ai, bi), ledit dispositif étant caractérise en ce qu'il comprend: -un premier étage (11) pour calculer pour tout i compris entre 1 et m - 1 les valeurs: pi = ai 3 bi gi = ai. bi désignant l'opération "OU EXCLUSIF", - un premier opérateur (41a) pour calculer pour tout i compris entre i et m - 1 les valeurs Pi et les valeurs Gi vérifiant les équations logiques récurrentes suivantes: Pi = Pi Pi - 1avec P1 = P1 Gi = gi + pi Gi _ 1 G1 = 91 - un deuxième opérateur (41b) pour calculer: Y = Gi 6 G2 0'...( G Gi).. Gm - 1 X = Pl 'a P2(... (* Pi (D... * * Pm - 1 - et un troisième opérateur (51) pour calculer: PC = Y() cin. X* o cin est la retenue de plus faible poids du groupe et o X* est le complément de X. - 19 - 2. Dispositif selon la revendication 1, caractérisé en ce que la retenue cin est calculée par un circuit distinct de l'additionneur (10, 20a, 30) associé audit dispositif. 3. Dispositif selon l'une des revendications précédentes, caractérisé en ce que le premier étage (10) est commun avec l'additionneur (10, 20a, 30) associé audit dispositif. 4. Dispositif selon 1 'une des revendications précédentes, caractérisé en ce que ledit premier opérateur (41a) est constitué de modules logiques d'un premier type (M1) opérant sur quatre entrées Px, Gx, Py, Gy et fournissant deux sorties Pz, Gz liées aux entrées par les équations suivantes: PZ = Py * Px i5 Gz G=G + Py. Gx lesdits modules étant montés conformément à la méthode récurrente suivante, o le poids i indique un rang correspondant de l'opérateur: a) pour i compris entre 1 et 2, un premier module (1) opère sur pl, gl, et p2 et g2 et fournit P2, G2 b) pour i compris entre 3 et 4, un deuxième module (2) opère sur p3, g3 et p4', g4, un troisième module (3) opère sur P2, G2 et p3, g3 et fournit P3, G3, un quatrième module (4) opère sur P2, G2 et les sorties du deuxième module (2) et fournit P4, G4 c) le montage initial pour i compris entre 1 et 2n étant réalisé, le montage pour i compris entre 2n + 1 et 2n + 1 est obtenu en ajoutant des modules (M1) disposés selon ledit montage initial mais décalés de 2n rangs vers les poids forts, fournissant ainsi de nouvelles sorties, 2 modules du premier type (M1) supplémentaires étant disposés pour opérer sur les sorties de plus fort poids (P2n, G2n) issues dudit montage initial et, respectivement, thacunes desdites nouvelles sorties. 5. Dispositif selon la revendication 4, caractérisé en ce que ledit deuxième opérateur (41b) est constitué de modules logiques d'un deuxième - 20 - type (M2) à quatre entrées Xx, Yx, Xy, Yy et fournissant deux sorties Xz, Yz liées aux entrées par les équations suivantes: Xz = Xx ()Xy Yz = Yx G Yz lesdits modules logiques du deuxième type (M2) étant disposés en pyramide. dont la base reçoit en entrée les sorties Pi, Gi du premier opérateur (41, 42, 43, 44) prises deux à deux autant que possible et disposées de façon à calculer: Y = G1G G2()...()Gi... Gm - 1 X = P1 )P2... G Pi(.- Pm - 1 6. Dispositif de calcul du bit de parité (PS) associé à au moins un groupe de m bits extraits de la somme (S) de deux nombres binaires (A, B), caractérisé en ce qu'il comprend un dispositif de calcul selon l'une des revendications précédentes auquel sont ajoutés des circuits supplémentaires "OU EXCLUSIF" (5, 6) pour introduire les parités PA et PB desdits groupes extraits desdits nombres (A, B) et disposés de façon à: - soit remplacer l'une quelconque des sorties Gi du premier opérateur (41a) par le résultat de l'opération PA(cPB (Gi réalisée grâce auxdits circuits supplémentaires (5, 6), - soit remplacer deux sorties quelconques Gi et Gj du premier opérateur (41a) par, respectivement, le résultat des opérations PA Gi et PB G)Gj. 7. Dispositif selon la revendication 6, caractérisé en ce que lesdits circuits "OU EXCLUSIF" supplémentaires (5, 6) sont et disposés de façon à ce que le nombre maximal de modules du premier type (M1) et de "OU EXCLUSIF" mis en cascade ne soit pas augmenté par l'insertion desdits "OU EXCLUSIF" supplémentaires (5, 6).