Brevet FR2652428A1 — publié le 19910329

La présente invention concerne le domaine des calcula- teurs. Usuellement, les calculateurs fonctionnent sur la base de nombres positifs codés en binaire, c'est-à-dire que chaque chiffre (0 ou 1) d'un nombre correspond à une puissance de 2. Quand on veut traiter des ncmbres positifs ou négatifs, il existe des systèmes de codage dans lesquels on utilise des nDmbres en binaire simple auxquels on adjoint un bit de signe. On considérera ici un autre type de codage à base 2 dit codage à chiffres signés d'Avizienis. On part d'une représenta- tion dans laquelle chaque chiffre peut prendre la valeur 1, 0 ou -1 et correspondre à la multiplication par cette valeur d'une puissance de 2. Ainsi, le chiffre 0101-0 correspondra à la valeur 0+8+0-2+0 soit la valeur 6. On notera que ette valeur 6 aurait également pu s'écrire 00110. Le code est redondant puisque chaque nombre peut s'exprimer de plusieurs façons. L'un des avantages de ce code est que l'on passe sim- plement d'un nombre positif au nombre négatif correspondant en inversant chacun des bits. Par exemple on passera de +6 à -6 en passant de 0101-0 à 01-010 ou bien de 0110 à 01-1-0. Dans le cas de l'utilisation d'une telle représentation d'Avizienis pour un calculateur dans lequel on souhaite n'uti- liser que deux états de signaux (des états haut et bas ou 0 et 1) on ne peut utiliser directeaent la représentation susmentionnée qui correspond à trois états (0,1 et -1). En conséquence, chaque chiffre de la représentation d'Avizienis est traduit par un code à deux bits: = 1-0 pour la valeur 1 01 = 0-1 pour la valeur 1- 00 ou 11 = 0-0 ou 1-1 pour la valeur 0. La présente invention vise à prévoir dans un calcula- teur adapté à cette représentation codée un circuit de détermina- tion de la valeur absolue d'un nombre. Pour atteindre cet objet, la présente invention prévoit un circuit de détermination de la valeur absolue d'un nombre, appliqué à des nrombres exprimés selon une représentation en chiffres signés à base 2 dont chaque chiffre est codé par deux bits, le premier correspondant à une valeur positive et le deu- xième à une valeur négative. Ce circuit comprend des moyens pour déterminer le signe du chiffre non nul de poids le plus élevé, et des moyens pour inverser ou non les bits de ce chiffre non nul de poids le plus élevé et les bits des chiffres suivants selon que ce chiffre non nul est négatif ou positif. g1flnun1Tfld( d réa] isationfla la _ n _ ntarEntin wA d'indication de signe du chiffre précédent et fournissant ledit signal de coammande pour la première paire de multiplexeurs. Selon un mode de réalisation de la présente invention, ladite cellule comprend en tant que moyens d'inversion une deuxième paire de multiplexeurs à deux entrées et une sortie recevant sur leurs entrées les bits du chiffre considéré et fournissant en sortie ces bits tels quels ou inverses selon la valeur d'un signal de commiande correspondant à la sortie du deuxième multiplexeur de la première paire de multiplexeurs. 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 figures jointes parmi lesquelles: la figure 1 illustre de façon générale un circuit de détermination de valeur absolue de type parallèle selon la pré- sente invention; la figure 2 représente une cellule du circuit de la figure 1; et la figure 3 représente un circuit de détermination de valeur absolue selon la présente invention de type série. La figure 1 représente l'organisation générale d'un circuit de détermination de valeur absolue selon la présente invention fonctionnant en mode parallèle. Chaque chiffre, composé de deux bits arrive sur une cellule Ci. On a représenté en figure 1 trois cellules Ci+ 1, Ci, Ci 1 correspondant à trois chiffres successifs de poids successivement décroissant, chaque chiffre comprenant 2 bits ai et bi, les bits ai+l et b.i+ correspondant au chiffre de poids le plus élevé. Chaque oellule, par exemple la cellule Ci, comprend deux entrées ai et b, pour les deux bits du chiffre de poids correspondant et deux sorties a'i et b'i qui correspondent aux entrées ai et b1 dans oet ordre ou dans l'ordre inverse selon que le nombre considéré est positif ou négatif, c'est-à-dire doit être maintenu tel quel ou doit être inverse. La commande de la cellule Ci, pour déterminer un maintien ou une inversion, est fixé par des signaux d'indication de signe: s+i+1 et s-i_ en entrée et s+ iet s i en sortie. A partir du moment o le signe du nombre a été déterminé en considérant le signe de son chiffre de poids le plus élevé, les signaux s+ iet Si ine varient plus. Le fonctionnement d'une cellule sera mieux Compris en relation avec la figure 2 qui en illustre un mode de réalisa- tion. Cette oellule comprend une première paire de multiplexeurs M1 et M2 destinés à fournir les bits d'indication de signe s+ iet s i et une deuxième paire de multiplexeurs M3 et M4 destinés à fournir le signal de sortie a'i, b'i, inversé ou non par rapport à ai, b1. Le multiplexeur Ml reçoit sur sa première entrée le signal s+i + 1 et sa deuxième entrée le signal ai; le multiplexeur M2 reçoit sur sa première entrée le signal s i +1 et sur sa deuxième entrée le signal bz; le multiplexeur M3 reçoit sur sa première entrée le signal ai et sur sa deuxième entrée le signal bi; et le multiplexeur M4 re9oit sur sa première entrée le signal bl et sur sa deuxième entrée le signal a . En outre, chacun des multiplexeurs reçoit un signal de commande. Les multiplexeurs Ml et M2 reçoivent un mnme signal de commande correspondant au résultat d'une opération OU Exclusif (EOR) réalisée sur les signaux s-i+l et s+i+l et les multi- plexeurs M3 et M4 reçoivent un mnme signal de ommande correspon- dant à la sortie du multiplexeur M2. Quand leur signal de commande est à 1, les multi- plexeurs Ml et M2 fournissent sur leurs sorties s et s-i les signaux s+ i+ et s-i+. Quand leur signal de commande est à 0, oes multiplexeurs fournissent sur leurs sorties s+i et s i les signaux ai et b. Quand leur signal de commande est à 0, les multi- plexeurs M3 et M4 fournissent sur leurs sorties a'i et b'i les signaux ai et bl et quand leur signal de commande est à 1 les signaux inversés bz et ai. Si l'on se rappelle la définition donnée précédemuent du code, quand un chiffre est égal à 0, ses deux bits ai et bi sont identiques (tous deux égaux à O ou tous deux égaux à 1), quand un chiffre est égal à 1, son bit ai est égal à 1 et son bit bi. à zéro, et quand un chiffre est égal à 1son bit ai est égal à zéro et son bit bi à 1. La porte EOR fournit une sortie à zero tant que les bits incidents sont identiques, c'est-à-dire que les chiffres de poids fort précdemment rencontrés sont nuls et les sorties s+i et s-i correspondent alors, respectivement, aux chiffres ai et bi, c'est-à-dire sont identiques. Dès que l'on rencontre un chif- fre de poids fort non nul, la sortie de la porte EOR sera à 1 pour la cellule correspondant au chiffre suivant et pour toutes les cellules ultérieures. On trouvera donc comme valeur de s+ i... s+ 0 la valeur ai du chiffre non nul le plus significatif et pour s- i... s-o 0 la valeur bi du chiffre non nul le plus signi- ficatif. Comme les multiplexeurs M3 et M4 sont commiandés par le bit d'indication de signe s- i en sortie du multiplexeur M2, tous les multiplexeurs M3 et M4 des chiffres suivant le chiffre non nul le plus significatif seront commandés par un signal O (pas de changement) si le chiffre non nul le plus significatif correspond à 10 (+1) et par un signal 1 (inversion) si le chiffre non nul le plus significatif est 01 (- 1), c'est-à-dire qu'il y aura non inversion dans le premier cas entre a'i et b'i et ai, bi et inversion dans le second cas, ce qui est le résultat rechercthé. On a décrit précédemment en relation avec les figures 1 et 2, un système fonctionnant en parallèle en ce qui onCeroe l'obtention du nombre inversé ou non (avec toutefois une transmission séquentielle de l'indication de signe s+i, s-i)- Come cela est classique, au lieu de faire fonctionner le système en mode parallèle, il est possible de le faire fonc- tionner en mode série, dans lequel une seule cellule est utilisée et reçoit séquentiellement les chiffres successifs dans l'ordre des chiffres les plus significatifs aux chiffres les toins signi- ficatifs. Il faut alors conserver l'information d'indication de signe s+i, s-i. Ceci peut être réalisé en prévoyant des registres SR1 et SR2 en sortie de chacun des multiplexeurs M1 et M2, ces registres pouvant être de simples bascules à mémnoire (latch). Le fonctionnement de ce circuit s'explique de lui-même à la lecture du schéma de la figure 3. On notera qu'outre les éléments déjà décrits en relation avec la figure 2, il est rajouté une porte CU (OR) recevant un signal de remise à zéro R pour recaler les multiplexeurs M1 et M2 dans un état correspondant à l'arrivée d'un chiffre à deux bits identiques lors de la transition entre deux rombres successifs. REVENDICATIONS 1. Circuit de détermination de la valeur absolue d'un nombre, appliqué à des rombres exprimes selon une représentation en chiffres signés à base 2 dont chaque chiffre est codé par deux bits, le premier correspondant à une valeur positive et le deu- xième à une valeur rnégative, caractérisé en ce qu'il comprend: des moyens pour déterminer le signe du chiffre non nul de poids le plus élevé, des moyens pour inverser ou non les bits de oe chiffre non nul de poids le plus élevé et les bits des chiffres suivants selon que ce chiffre non nul est négatif ou positif. 2. Circuit selon la revendication 1, caractérisé en ce qu'il comprend une cellule agissant sur chaque chiffre et compre- nant comme moyens de détermination: une première paire de multiplexeurs (M1, M2) à deux entrées et une sortie dont chacun reçoit sur sa première entrée l'un de deux signaux d'indication de signe (s+i+l, s-i+1) provenant du traitement du chiffre précédent et sur sa deuxième entrée l'un des bits (ai, bi) du chiffre considéré, oes multi- plexeurs fournissant en sortie, en tant que signaux d' indication de signe (s+ i, s- i) pour le chiffre suivant, le signal sur leur première ou leur deuxième entrée en fonction de la valeur d'un même signal de cmmamnde, et une porte OU Exclusif (EOR) reoevant les deux signaux d'indication de signe du chiffre précédent et fournissant ledit signal de commande pour la première paire de multiplexeurs. 3. Circuit selon la revendication 2, caractérisé en ce que ladite cellule comprend en tant que moyens d'inversion une deuxième paire de multiplexeurs (M3, M4) à deux entrées et une sortie recevant sur leurs entrées les bits (ai, bi) du chiffre considéré et fournissant en sortie (a'i, b'i) ces bits tels quels ou inversés selon la valeur d'un signal de commande correspondant à la sortie du deuxième multiplexeur (M2) de la première paire de multiplexeurs. 4. Circuit selon la revendication 3, caracé.isé en ce qu'une pluralité de cellules sont disposées en parallèle, chacune traitant un chiffre du onmbre considéré. 5. Circuit selon la revendication 3, caractérisé en ce qu'il cemprend une seule cellule, la valeur de sortie des signaux de détermination de signe étant ménorisée et cette cellule ree- vant séquentiellement les bits correspondant à chaque chiffre du hombre considéré, dans l'ordre du poids le plus fort au poids le plus faihle, pour fournir sous forme série ladite valeur absolue.