Brevet FR2855627A1 — publié le 20041203

Circuit intégré et procédé pour le faire fonctionner L'invention concerne un circuit intégré, notamment un décaleur logarithmique, et un procédé pour faire fonctionner le circuit intégré. Au coeur de l'unité de traitement des microprocesseurs modernes et de microrégisseurs modernes, ce que l'on appelle la " Central Processing Unit " (CPU), se trouve le trajet de données qui représente l'interconnexion de toutes les unités fonctionnelles pour le traitement de données. L'interconnexion s'effectue par un faisceau de lignes, ce que l'on appelle des 10 bus de données, qui comprend, entre autres, les unités fonctionnelles multiplexeur, unité logique arithmétique (ALU), décaleur et fichier de registres. La structure et la coopération des unités fonctionnelles de trajet de données sont connues depuis longtemps de l'homme du métier, de sorte que l'on renoncera à les décrire de manière plus précise. Le décaleur sert à la manipulation des binaires, c'est-à-dire au décalage d'un mot de données binaire d'un nombre n de positions de binaires vers la droite ou vers la gauche, pouvant être programmé en général par des signaux de commande. C'est ainsi, par exemple, qu'un décaleur a une réserve n E [-7, 7] de valeurs pouvant être programmée, c'est-à-dire que le 20 mot de données (supposé suffisamment grand) à l'entrée du décaleur peut être décalé de jusqu'à sept positions de binaires vers la droite ou vers la gauche. Il y a des formes différentes de réalisation de décaleurs, à savoir ce que l'on appelle les décaleurs Barrel et les décaleurs logarithmiques. Dans 25 une réalisation à un seul étage de l'exemple mentionné ci-dessus avec un décaleur Barrel, qui doit pouvoir traiter M = 15 opérations différentes de décalage (on désigne aussi M comme étant la puissance), cela exige pour chaque binaire de données un multiplexeur de 1 parmi 15, qui doit avoir en conséquence plusieurs entrées de données et de commande. Dans le cas de 30 la réalisation logarithmique à plusieurs étages avec le décaleur logarithmique, on décale dans le premier étage, par exemple, de +4, 0 ou -4 binaires, dans le deuxième étage en aval, par exemple, de + 1, 0 ou -1 binaire, et dans le troisième venant ensuite, par exemple de + 2, 0 ou -2 binaires. Avec trois circuits multiplexeurs de 1 parmi 3 en cascade, ainsi qu'avec au maximum neuf entrées de commande, cela signifie une solution sensiblement meilleure du point de vue du nombre des éléments de circuit dont on a besoin et surtout du coût de câblage et de la surface dont on a besoin. En général, le décaleur Barrel n'est envisagé que pour des valeurs 5 petites de M. Pour de grandes valeurs de M, le décaleur logarithmique est sensiblement plus efficace et plus efficient tant pour ce qui concerne le coût que la durée. On peut trouver des informations de base à ce sujet dans le livre " DIGITAL INTEGRATED CIRCUITS - A Design Perspective ", de Jan M. Rabaey, Prentice Hall (1996), Chapitre 7. Habituellement, les trajets de données de microprocesseurs modernes et de microrégisseurs modernes sont réalisés dans la technique de circuit dénommée " Single-Rail ". Dans ces microprocesseurs, chaque binaire de l'information à traiter est représenté physiquement par exactement un noeud électrique. Un noeud électrique correspond ainsi exactement à la valeur 15 logique d'un binaire d'état. L'inconvénient de cette technologique Single-Rail est le fait qu'il est simple d'espionner la structure du circuit ou les signaux traités dans le circuit. Un des procédés les plus importants d'attaque des circuits et pour juger leur sensibilité dans des applications de sécurité est l'analyse de profil de courant 20 différentielle (Differential Power Analysis, DPA). Cette méthode est utilisée pour des attaques ciblées pour espionner des informations confidentielles, comme par exemple des mots de passe ou des clés de cryptographie. On exploite pour cela des profils de courant mesurés par des méthodes statistiques pour un programme donné ou pour un algorithme 25 donné. On exploite notamment des intégrales de charge calculées sur un cycle ou sur plusieurs cycles d'horloge avec possibilité de tirer des conclusions sur l'information à protéger - pour une pluralité de réalisations de programme - de la corrélation entre une variation systématique de données et l'intégrale de charge respective. Il s'ensuit que les circuits intégrés à protéger, comme par exemple des cartes à puces, doivent être tels qu'ils fournissent le même profil de courant, indépendamment des données à traiter, pour faire en sorte qu'une analyse de profil de courant différentielle tourne à vide. Cela n'est pas le cas pour des trajets de données Single-Rail. L'intégrale de charge associée au déroulement dans le temps des états d'un circuit est une fonction des noeuds ou des capacités électriques qui sont inversées électriquement. Le déroulement dans le temps dépend donc beaucoup des modifications dans le temps des données à traiter. L'inconvénient des décaleurs connus est que ceux-ci sont réalisés suivant la technologie Single-Rail et peuvent donc être espionnés par les données qui s'y passent. La présente invention vise donc un circuit intégré, notamment un 10 décaleur, dans lequel l'espionnage de données est rendu difficile. L'invention vise en outre un procédé pour faire fonctionner ce circuit intégré qui présente une intégrale de charge constante pour qu'une analyse de profil de courant différentielle se déroule en vain. On y parvient par un circuit intégré caractérisé en ce qu'il a les 15 caractéristiques suivantes: - au moins deux multiplexeurs montés en cascade qui ont respectivement une pluralité d'entrées de données, une sortie de données et une entrée de commande, celle des entrées de données qui est reliée à la sortie de données étant fixée par le signal appliqué à l'entrée de commande, 20 - la sortie de données d'un multiplexeur est reliée à l'une des entrées de données du multiplexeur en aval en sorte qu'il est formé un trajet de données passant dans la cascade, - chaque entrée de données et chaque sortie de données ont deux bornes d'application d'un signal Dual-Rail, et - il est prévu au moins une unité de précharge qui peut être commandée par un signal de commande, qui est reliée à la sortie de données ou à l'entrée de données de l'un des multiplexeurs et qui peut mettre les sorties de données et/ou les entrées de données des multiplexeurs dans un état de précharge avant l'exécution d'une opération de calcul. L'idée à la base de l'invention est que des modifications des intégrales de charge peuvent être empêchées par l'utilisation de ce que l'on appelle la technologie Dual-Rail. Contrairement à la technique habituelle SingleRail, dans laquelle chaque binaire à l'intérieur d'un trajet de données ou de signal est représenté physiquement par exactement un noeud k électrique d'un réseau ou d'un circuit, dans la réalisation avec la technologie Dual-Rail chaque binaire est représenté par deux noeuds k et kq, ce binaire ayant une valeur logique valable si k correspond à la valeur b logique vraie de ce binaire et kq a la valeur bn = not (b) complémentaire. L'invariance souhaitée des intégrales de charge est alors obtenue par le fait qu'entre deux états ayant des valeurs (b, bn)= (1,0) ou (0,1) logiques valables, il est inséré ce que l'on appelle un état de précharge (precharge). Dans cet état de précharge, tant les noeuds k que les noeuds kq sont chargés au même potentiel électrique et prennent donc des valeurs (1,1) 10 ou (0,0) qui ne sont pas valables logiquement. Une succession d'états pourrait se présenter de la manière suivante: (1,1), (0,1), (1,1), (1,0), (1,1), (1,0), (1,1), (0,1)... Pour chaque succession d'états de ce genre quelle qu'elle soit, on a pour chaque passage (1,1) vers (b, bn) exactement un noeud qui passe de 1 à 0 et pour tous les états (b, bn) passant vers (1,1) exactement un noeud est inversé de 0 à 1. Cela vaut indépendamment de la valeur b valable logiquement d'un binaire d'état respectif. Bien entendu, cela vaut aussi de la 20 même façon pour des successions d'états ayant l'état (0,0) de précharge. Il s'ensuit que les intégrales de charge correspondant à ces successions d'états sont indépendantes de la suite (b, bn) des valeurs qui valent logiquement. Il faut simplement prendre garde que les noeuds k et kq aient les mêmes capacités électriques. Le profil de courant d'un trajet de 25 données ainsi mis en oeuvre ne dépend donc plus des variations dans le temps des données à traiter. Un circuit constitué en technologie DualRail résiste ainsi à une analyse de profil de courant différentielle. L'idée à la base de l'invention est ainsi d'envoyer, lors du fonctionnement du circuit intégré, aux entrées de données et aux sorties de 30 données dans le trajet de données de la cascade de multiplexeurs avant la mise en oeuvre d'un stade de calcul, notamment d'une opération de décalage, un signal de précharge. Dans un mode de réalisation préféré, I'unité de précharge est branchée entre une borne de potentiel d'alimentation ou une borne de potentiel de référence et le trajet des données du circuit intégré. Qu'une liaison s'effectue avec la borne du potentiel d'alimentation ou avec la borne du potentiel de référence dépend du type des transistors utilisés. C'est ainsi, par exemple, que si l'on utilise des transistors à canal p, l'unité de précharge est reliée à la borne du potentiel d'alimentation. Dans un autre mode de réalisation, I'unité de précharge est reliée à la sortie de données du dernier multiplexeur de la cascade, qui représente la sortie de données du circuit intégré. Dans cette variante, il est possible de précharger les noeuds intérieurs de la cascade de multiplexeurs qui sont 10 formés par la liaison de la sortie de données d'un multiplexeur à l'entrée de données du multiplexeur en aval par la sortie de données des unités de précharge. Cela s'effectue par le fait qu'à l'exception du premier multiplexeur de la cascade tous les autres multiplexeurs reçoivent des signaux de commande de sorte qu'il est ménagé pour ceux-ci une liaison conductrice de 15 I'entrée de données à la sortie de données. De préférence, il est appliqué dans cette variante, à l'entrée de données du premier multiplexeur de la cascade, un signal de précharge par une unité de précharge reliée à ce premier multiplexeur. Dans un autre mode de réalisation préféré, I'unité de précharge est 20 reliée à l'entrée de données du premier multiplexeur de la cascade, qui représente l'entrée de données du circuit intégré. Dans cette variante, il est possible d'appliquer un signal de précharge aux noeuds intérieurs de la cascade de multiplexeurs par l'entrée de données du circuit. Cela s'effectue par le fait qu'à l'exception du dernier multiplexeur de la cascade tous les 25 autres multiplexeurs reçoivent des signaux de commande de sorte qu'il est ménagé pour ceux-ci une liaison conductrice de l'entrée de données à la sortie de données. De préférence, la sortie de données du dernier multiplexeur de la cascade reçoit un signal de précharge d'une unité de précharge reliée à ce dernier multiplexeur. Dans un mode de réalisation, I'unité de précharge est montée entre la sortie de données de l'un des multiplexeurs et l'entrée de données d'un multiplexeur en aval. Cela ne signifie rien d'autre que l'unité de précharge est branchée par un noeud intérieur de la cascade de multiplexeurs. D'une manière analogue à la façon de procéder décrite cidessus, on envoie aussi dans ce cas aux multiplexeurs des signaux de commande, de sorte que le trajet de données de la cascade de multiplexeurs peut recevoir un signal de précharge. On pourrait songer à prévoir à l'entrée de données et à la sortie de données du circuit intégré respectivement une autre unité de précharge qui enverrait le signal de précharge aux noeuds respectifs du trajet de données. Dans un autre mode de réalisation préféré, il est prévu un circuit de maintien couplé au trajet de données et reliant dans le cas d'un signal DualRail appliqué à la sortie de données d'un multiplexeur la valeur de signal respective à la borne du potentiel d'alimentation ou à la borne du potentiel de 10 référence. Le circuit de maintien sert à ce que, dès que l'un des signaux du signal Dual-Rail a été mis à un potentiel bas, le noeud respectivement complémentaire soit maintenu au potentiel haut. Le circuit de maintien est en conséquence à auto-régulation. De préférence, le circuit de maintien est relié à l'unité de précharge. 15 Il est en outre préféré que le circuit de maintien soit placé à la sortie de données du circuit intégré. Il a, dans un mode de réalisation, deux transistors rétrocouplés et est monté entre la sortie de données du circuit et la borne du potentiel d'alimentation ou la borne du potentiel de référence. Dans un autre mode de réalisation, il est prévu un circuit de 20 commande relié aux multiplexeurs et à l'unité de précharge et prenant en charge la synchronisation temporelle des signaux de commande des multiplexeurs et du signal de commande de l'unité de précharge. Le mode de fonctionnement de ces circuits de commande ressort du procédé décrit d'une manière plus précise dans ce qui suit pour faire fonctionner le circuit intégré. 25 Suivant l'idée de l'invention, on envoie aux entrées de données et aux sorties de données dans le trajet de données de la cascade de multiplexeurs un signal de précharge avant d'effectuer un stade de calcul, notamment une opération de décalage. Pour envoyer un signal de précharge, on envoie dans une première 30 phase à tous les multiplexeurs de la cascade des signaux de commande, de manière à ce qu'il ne soit pas constitué de liaison conductrice entre l'entrée de données et la sortie de données d'un multiplexeur respectif et de manière à ce qu'il soit appliqué un signal de commande à l'unité de précharge de sorte que la partie du trajet de données qui lui est reliée soit mise dans un état de précharge. Cette façon de procéder constitue d'abord rien d'autre que l'activation de l'unité de précharge. Dans une deuxième phase, on envoie au moins à certains des multiplexeurs des signaux de commande, de manière à y ménager une liaison 5 conductrice de l'entrée de données et la sortie de données, grâce à quoi d'autres parties du trajet de données sont mises en un état de précharge. Il est en l'occurrence possible d'envoyer à tous les multiplexeurs de la cascade un signal de commande de ce genre de façon que l'entrée de données respective soit reliée à la sortie de données. Mais on pourrait aussi songer à 10 ne commander, au sens décrit ci-dessus, qu'à un certain nombre de multiplexeurs, de préférence voisins. Dans une troisième phase, pour envoyer un signal de précharge, on envoie dans une troisième phase à tous les multiplexeurs de la cascade des signaux de commande, de manière à ce qu'il n'y ait plus liaison 15 conductrice entre l'entrée de données et la sortie de données d'un multiplexeur respectif et de manière à appliquer à l'unité de précharge un signal de commande la rendant inactive. Les états de précharge s'appliquant aux lignes de données respectives ne sont ainsi plus maintenus que capacitivement. Après l'achèvement de la phase de précharge, on envoie pour effectuer le stade de calcul dans la troisième phase au premier multiplexeur de la cascade un signal de commande nécessaire pour l'opération de calcul. Il est en outre prévu pour la mise en oeuvre du stade de calcul, d'envoyer dans une quatrième phase aux autres multiplexeurs de la cascade 25 un signal de commande nécessaire pour l'opération de calcul. Lorsque l'opération de calcul est finie, on envoie à nouveau au trajet de données suivant la façon de procéder décrite ci-dessus un signal de précharge avant d'exécuter l'opération de calcul suivante. Le procédé suivant l'invention pour faire fonctionner le circuit 30 intégré permet ainsi une fonction neutre du point de vue de la charge, ce qui ne rend plus possible un espionnage de données ou d'opérations de calcul au moyen de l'analyse de profil de courant différentielle. Par cette succession de phases, on ménage non seulement une neutralité de charge dans le trajet de données, mais l'intégrale de charge correspondant à la succession de signal de commande est un invariant comme cela sera explicité dans ce qui suit. Pour la commande d'un multiplexeur, il est prévu un faisceau de signaux ayant trois signaux. Suivant celui des signaux d'un faisceau qui est 5 actif, on fixe si une opération de décalage a été effectuée vers la gauche, vers la droite ou de zéro. Par les trois signaux du faisceau, dans le cas du premier multiplexeur de la cascade ayant les entrées de données, exactement un multiplexeur est déchargé du potentiel d'alimentation au potentiel de référence, exactement un multiplexeur est chargé du potentiel de référence au 10 potentiel d'alimentation tandis que, par tous les autres signaux de commande des autres multiplexeurs, au début de la première phase, exactement un seul multiplexeur est déchargé, au début de la deuxième et de la troisième phases, exactement un seul multiplexeur est chargé et redéchargé et, finalement, dans la quatrième phase, exactement un multiplexeur est chargé. Il s'ensuit 15 I'invariance de l'intégrale de charge également des signaux de commande dans la mesure o l'on prend soin que les trois noeuds correspondant aux faisceaux de signaux aient les mêmes capacités électriques. De préférence: - on relie l'unité de précharge à la sortie de données du circuit 20 intégré et, dans la deuxième phase, on envoie des signaux de commande à tous les multiplexeurs de la cascade à l'exception du premier multiplexeur de manière à y ménager une liaison conductrice de l'entrée de données à la sortie de données; - on envoie à l'entrée de données du premier multiplexeur de la 25 cascade dans la deuxième phase un signal de précharge par une unité de précharge qui est reliée à ce multiplexeur; on relie l'unité de précharge à l'entrée de données du circuit intégré et, dans la deuxième phase, on envoie des signaux de commande à tous les multiplexeurs de la cascade à l'exception du dernier multiplexeur de 30 manière à y ménager une liaison conductrice de l'entrée de données à la sortie de données; - on envoie à la sortie de données du dernier multiplexeur de la cascade dans la deuxième phase un signal de précharge par une unité de précharge qui est reliée à ce multiplexeur; - on précharge par des unités de précharge montées à l'entrée de données et à la sortie de données du circuit intégré des noeuds intérieurs de la cascade de multiplexeurs qui sont formés par la liaison de la sortie de données d'un multiplexeur à l'entrée de données du multiplexeur en aval. D'autres caractéristiques, avantages et buts ressortent des figures décrites ci-après. Aux dessins: la Figure 1 est un schéma de principe d'un décaleur logarithmique suivant l'invention ayant une cascade constituée de trois multiplexeurs; la Figure 2 représente la structure en technique de circuit des multiplexeurs représentés à la Figure 1; la Figure 3 illustre le comportement dans le temps de signaux de données et de signaux de commande du circuit de la Figure 1; la Figure 4 représente un exemple d'une réalisation technique 15 de circuit de production des signaux de commande de la cascade de multiplexeur et d'une unité de précharge; la Figure 5 représente le comportement dans le temps de signaux pertinents de la Figure 4; la Figure 6 représente une autre partie du circuit de 20 commande pour la production des signaux de commande du décaleur logarithmique suivant l'invention de la Figure 1; les Figures 7 et 8 illustrent le comportement dans le temps de signaux pertinents du montage de la Figure 6; la Figure 9 représente une réalisation possible en technique de 25 circuit du générateur d'impulsions de la Figure 6; la Figure 10 représente une réalisation possible en technique de circuit du Master-Latch de la Figure 6, et la Figure 11 représente une réalisation possible en technique de circuit du circuit de transformation de la Figure 6. Sauf mention expresse contraire, les mêmes caractéristiques sont munies des mêmes signes de référence dans toutes les figures. L'invention sera décrite dans ce qui suit au moyen d'un décaleur logarithmique ayant une réserve de valeurs en nombres entiers pour le décalage pouvant être programmé de mots de données binaires. On se rapportera en l'occurrence à l'Exemple déjà mentionné plus haut d'une réserve de valeurs pouvant être programmées n E [-7, 7]. Cela signifie que comme mot de données supposé suffisamment grand à l'entrée du décaleur logarithmique, il faut pouvoir décaler jusqu'à sept positions de binaires vers la gauche ou vers la droite. Il est représenté à la Figure 1 une cascade de multiplexeurs à trois étages pour un binaire du trajet de données (désignée aussi par " bitslice "). Chaque multiplexeur a trois entrées de données, une sortie de données et trois entrées de commande. Chaque entrée de données et chaque sortie de 10 données ont deux bornes d'application d'un signal Dual-Rail. Les entrées de données sont désignées en concordant par d'entrées (ar,arq), (aO,aOq) et (al,alq). Les sorties de données sont désignées par (z,zq), tandis que les entrées de commande sont munies des désignations (sr,sO,sl) . Chacune des entrées de données des multiplexeurs Mux4, Muxl, 15 Mux2 peut se voir appliquer un signal (a,aq), (al,alq), (ar,arq) ainsi que (ajr,ajrq), (ajl,ajlq) avec j = 1, 2. Le premier étage de la cascade est formé par le multiplexeur Mux4 dont la sortie (z,zq) de données est reliée à l'entrée (aO,aOq) de données du multiplexeur Muxl en aval. Un multiplexeur Mux2 est monté à nouveau en 20 aval de celui-ci. L'entrée (aO,aOq) de données du multiplexeur Mux2 est de manière correspondante reliée à la sortie (z,zq) de données du multiplexeur Muxl. Les entrées de données du multiplexeur Mux4 forment l'entrée de données du circuit intégré. La sortie (z,zq) de données du multiplexeur Mux2 forme la sortie de données du circuit intégré. À chaque entrée de commande des multiplexeurs Muxl, Mux2, Mux4 peuvent être appliqués trois signaux shj avec j = 1, 2, 4 de commande, par lequel il est fixé l'entrée de données qui est reliée à la sortie de données. L'indice j représente le multiplexeur Muxl, Mux2 ou Mux4 respectifs. S'il est appliqué à l'entrée sr de commande, un signal shj de 30 commande actif, I'entrée (ar,arq) de données est reliée à la sortie (z,zq) de données. De manière correspondante, l'entrée (aO,aOq) ou (al, alq) de données est reliée à la sortie (z,zq) de données s'il est appliqué à l'entrée sO ou sl de commande, un signal shj de commande actif. Dans le premier étage de la cascade, le multiplexeur Mux4, le bit s'appliquant aux entrées de données, est décalé de +4, 0 ou -4 positions, dans le deuxième étage en aval (multiplexeur Muxl), le bit appliqué aux entrées de données est décalé de +1, 0 ou -1 position et dans le troisième 5 étage venant ensuite (multiplexeur Mux2), le bit appliqué aux entrées de données est décalé de +2, 0 ou -2 positions. Le décalage dépend du signal parmi les trois signaux shj , j = 4, 1, 2, de commande qui a été appliqué de manière active. À la sortie de données du circuit intégré de la Figure 1 sont reliés 10 en outre une unité VE de précharge et un circuit HS de maintien. L'unité VE de précharge est constituée de deux transistors à canal p, dont les bornes de commande sont reliées entre elles et auxquelles est appliqué un signal PrShQ. Les bornes principales du transistor Tri sont branchées entre une borne VP de potentiel d'alimentation et la sortie z de 15 données du circuit intégré. Les bornes principales de l'autre transistor Tr2 sont branchées entre une borne VP de potentiel d'alimentation et la sortie zq de données du circuit intégré. Par l'unité VE de précharge, la sortie de données du circuit intégré peut être munie d'un signal (1,1) de précharge. Le circuit HS de maintien, qui a deux transistors Tr3, Tr4 également 20 du type à conductivité p, sert à relier et à maintenir dans le cas d'un signal (0,1) ou (1,0) Dual-Rail valable les sorties (z,zq) respectives de données au potentiel VP correspondant. L'unité VE de précharge et le circuit HS de maintien pourraient aussi être reliés à la borne BP de potentiel de référence si les transistors de 25 I'unité VE de précharge et des circuits HS de maintien étaient formés de transistors à conductivité n. Les modifications de circuit nécessaires en conséquence sont usuelles pour l'homme du métier et ne seront pas décrites avec précision. On mentionnera encore que le décaleur logarithmique représenté à 30 la Figure 1 I'est simplement à titre d'exemple. La cascade pourrait avoir plus ou moins de multiplexeurs. Tout aussi bien, le bit pourrait, dans le premier étage de la cascade, être décalé seulement d'une position, dans le deuxième étage par exemple de deux positions et dans le troisième étage de quatre positions. Tout cela est laissé à la volonté de l'homme du métier. La Figure 2 représente une réalisation possible des multiplexeurs Muxl, Mux2, Mux4. Chaque multiplexeur est formé de six transistors NO, N1, N2, N4, N5, N6. Les sections de charge de ces transistors sont branchées respectivement entre une entrée (ar,arq), (aO,aOq), (al,alq) de données et la 5 sortie (z,zq) de données. Les bornes de commande de respectivement deux transistors reliés aux entrées mentionnées ci-dessus sont reliées à l'entrée (sl,sO,sr) de commande. Le montage représenté est connu aussi sous le nom de technique de circuit passe-transistor. Du montage représenté à la Figure 2, il ressort immédiatement que 10 toujours tout au plus seulement l'une des entrées (sl,sO,sr) de commande peut être active à un instant déterminé, tandis que les deux autres doivent être branchées de manière inactive de sorte que les transistors correspondants qui leur sont associés sont bloqués. Sinon, le fonctionnement correct du circuit serait mis en danger. À la Figure 1, le premier étage, le multiplexeur Mux4, est relié aux entrées (ar,arq), (a,aq) et (al,alq) de données, (a,aq) signifiant le binaire correspondant aux slices déjà considéré dans le trajet de données juste avant le décaleur. De manière analogue, (ar,arq) et (al,alq) signifient les binaires dans le trajet de données juste avant le multiplexeur qui, par rapport aux 20 slices de binaires précisément considérés, est plus haut ou plus bas de quatre positions de binaires. Il s'ensuit: signal de commande s4 = 010: décalage de O position de binaires. (a,aq) est relié de manière conductrice par les transistors N1, N5 (Figure 2) à la sortie (z,zq) de données du multiplexeur Mux4; signal de commande s4 = 001: décalage de -4 positions de binaires. (ar,arq) est relié de manière conductrice par les transistors NO, N4 (Figure 2) à la sortie (z,zq) de données du multiplexeur Mux4; signal de commande s4 = 100: décalage de 4 positions de binaires. (al,alq) est relié de manière conductrice par les transistors N2, N6 30 (Figure 2) à la sortie (z,zq) de données du multiplexeur Mux4. Il en va de même pour les multiplexeurs Muxl et Mux2 en désignant par (ajr,ajrq) et (ajl,ajlq) avec j = 1, 2 les binaires dans le trajet dedonnées juste devant le multiplexeur qui se trouve plus haut ou plus bas de j positions de binaires par rapport aux slices de binaires précisément considérés. Il est indiqué à la Figure 3 la variation en fonction du temps suivant l'invention aux entrées de données des signaux de commande du décaleur 5 logarithmique de la Figure 1. Aux Figures 4 à 11 sont expliqués les principes auxquels doivent satisfaire des circuits de production des signaux shj et PrShQ de commande ayant le comportement nécessaire et avantageux dans le temps. Comme il ressort de la Figure 3, chaque cycle de fonctionnement 10 du décaleur logarithmique est constitué de quatre phases T1, T2, T3 ainsi que T4 successives et est désigné dans la Figure 3 par . Au début de la première phase T1, tous les signaux shj , j = 1, 2, 4, de commande appliqués aux multiplexeurs Muxl, Mux2, Mux4 sont inactifs; cela signifie: shj = 000. Tous les transistors NO...N6 (Figure 2) 15 de chacun des multiplexeurs Muxl, Mux2, Mux4 de la cascade sont ainsi bloqués. Pendant la phase T1, le signal PrShQ de commande de l'unité VE de,précharge à la sortie de données du circuit intégré est en outre actif: PrShQ = 0. La sortie (z,zq) de données du circuit intégré est ainsi préchargée au potentiel VDD de référence; en d'autres termes, il lui est appliqué un 20 signal (1,1) de précharge. Au début de la deuxième phase T2, les signaux de commande des multiplexeurs Muxl, Mux2 sont programmés à shj = 010, j = 1, 2. Le multiplexeur qui est relié aux entrées (ar,arq) (a,aq) et (al,alq) de données et qui forme le premier étage de la cascade reste ainsi bloqué, tandis que tous 25 les autres sont programmés à " décalage de zéro ". Tous les noeuds se trouvant dans la cascade de multiplexeurs (qui sont formés par la liaison de la sortie de données d'un multiplexeur à l'entrée de données du multiplexeur en aval (dans ce cas, ce sont (z4,z4q) et (zl,zl q)) peuvent ainsi être préchargés par la sortie de données du circuit intégré. L'unité VE de précharge à la sortie 30 de la cascade reste active avec PrShQ = 0. Le potentiel atteint est de VDD Vth, Vth étant la tension de coupure des transistors à canal n dans les multiplexeurs Muxl, Mux2. Au début de la troisième phase T3, tous les signaux shj , j = 4, 2, 1, des multiplexeurs Muxl, Mux2, Mux4 deviennent ou restent d'abord inactifs: shj = 000. Tous les transistors N0...N6 de chacun des multiplexeurs Muxl, Mux2, Mux4 sont ainsi bloqués. Pendant T3, le signal PrShQ de commande de l'unité Ve de précharge à la sortie du décaleur logarithmique devient en outre inactif: PrShQ = 1. La sortie (z,zq) de données est ainsi séparée du potentiel VDD de référence. Commence ensuite l'opération proprement dite de décalage. À cet effet, les signaux s4 de commande du multiplexeur Mux4 relié aux entrées (ar,arq), (a,aq) et (al,alq) de données sont mis d'abord à la valeur souhaitée. Par exemple, pour le premier cycle de fonctionnement représenté 10 à la Figure 3, s4 = 010, c'est-à-dire le multiplexeur Mux4 " décale de zéro ", tandis que dans le deuxième cycle de fonctionnement avec s4 = 001, il décale de quatre positions vers la droite et dans le troisième avec s4 = 100, il décale de quatre positions vers la gauche. Au début de la phase T4, tous les autres multiplexeurs Muxl, Mux2 15 de la cascade sont enfin mis aux valeurs souhaitées au moyen de signaux sk , k = 1, 2, de commande appropriés. On obtient ainsi dans le premier cycle de fonctionnement représenté à la Figure 3 un décalage de 0, dans le deuxième cycle de fonctionnement un décalage en tout de sept positions de binaires vers la 20 droite et dans le troisième cycle de fonctionnement de sept positions de binaires vers la gauche. Par cette succession de phases décrites ci-dessus dans , on obtient non seulement alors la neutralité de charge dans le trajet de données Dual-Rail du décaleur logarithmique mais aussi que 25 l'intégrale de charge correspondant à la succession des signaux de charge soit invariante. Car des respectivement deux signaux dans le faisceau shj de signaux, il est déchargé dans le cas du multiplexeur Mux4 relié aux entrées (ar,arq), (a,aq) et (al,alq) de données, précisément l'un du signal de commande s4 du potentiel VDD d'alimentation au potentiel VSS de 30 référence et précisément l'un (le même ou un autre) du potentiel VSS de référence au potentiel VDD d'alimentation. De tous les autres signaux shj avec j = 1, 2 de commande, il est déchargé au début de la phase T1 exactement l'un d'entre eux, à savoir celui qui a été chargé dans le cycle précédent dans la phase T4. Au début de la phase T2 ou T3, shj est toujours chargé et redéchargé et, finalement, dans la phase T4, précisément l'un des signaux de commande est chargé. Il s'ensuit directement l'invariance de l'intégrale de charge des signaux de commande. Il faut toutefois prendre garde que les trois noeuds correspondant aux signaux shj aient les mêmes capacités électriques. Dans l'exemple de réalisation décrit, les transistors NO...N6 du multiplexeur Mux4 formant le premier étage de la cascade sont bloqués pendant la phase T1 jusqu'à l'intérieur de T3, c'est-à-dire que leurs entrées de données sont isolées électriquement du reste du trajet de données. La 10 précharge par un signal de précharge de ces entrées de données peut s'effectuer par des unités de précharge (qui ne sont pas représentées à la Figure 1) à l'extérieur du décaleur logarithmique. Cela s'effectue ainsi indépendamment de précharges de tous les autres noeuds par l'unité VE de précharge représentée à la Figure 1. Ce groupement permet en outre que les 15 entrées de données du multiplexeur Mux4 peuvent accepter déjà un nouveau signal Dual-Rail valable sans entrer en conflit avec l'opération de précharge des autres multiplexeurs Muxl, Mux2 dans la mesure o l'opération de précharge s'est terminée dans le temps avant celle de la sortie de données du circuit intégré (par exemple dans la phase T2). Cela permet une 20 indépendance de la logique de commande du circuit AS de commande qui commande de manière appropriée les éléments du circuit intégré. Par rapport à cette succession possible dans le temps de signaux de commande du décaleur logarithmique, on peut imaginer aussi les autres variantes suivantes: Les entrées de données du premier étage de la cascade de multiplexeurs sont aussi préchargées par une unité de précharge à la sortie de données, c'est-à-dire que les signaux de commande pour le multiplexeur constituant le premier étage ont le même comportement dans le temps que tous les autres. Cela signifie que tous les shj ont le même 30 comportement dans le temps. L'alimentation de l'entrée de données du premier multiplexeur (dans la Figure 1, Mux4) ne devrait être alors enclenchée que lorsque l'opération de précharge du trajet de données est terminée pour empêcher les courants de courts- circuits. Cela vaut aussi dans l'autre variante dans laquelle les noeuds intérieurs de la cascade de multiplexeurs sont préchargés par la sortie de données et par l'entrée de données du circuit intégré. On pourrait aussi songer à précharger les noeuds intérieurs de la 5 cascade ainsi que la sortie de données du circuit intégré par l'entrée de données du circuit intégré. La précharge des noeuds intérieurs et extérieurs de la cascade de multiplexeurs peut être favorisée aussi par une unité de précharge sur au moins l'un des noeuds intérieurs, donc par une unité de précharge interposée 10 entre deux multiplexeurs. Aux Figures 4 à 11 sont indiqués des exemples de circuits et de courbes de signaux pour la production des signaux shj de commande et du signal PrShQ de commande de l'unité VE de précharge. Les Figures 4 et 6 représentent des circuits de mise en forme et de synchronisation du côté de 15 I'entrée de l'information de commande, tandis qu'il est représenté aux Figures 5, 7 et 8 le comportement dans le temps des signaux respectivement pertinents. Les Figures 9 à 11 illustrent enfin des parties des blocs de circuits indiquées à la Figure 6. Dans le tableau suivant, il est défini pour l'exemple considéré ci20 dessus la relation logique entre une information sh_pos , sh_dir de commande du côté de l'entrée et les sh4 , sh2 , sh1 en résultant. sh_pos sh_dir sh2q 0 0 010 1 0 100 0 1 010 1 1 001 q = 2,1,0 Le signal sh_pos donne la valeur absolue codée en binaires pour le nombre des positions de binaires qui doivent être décalées. Le signal shdir donne le sens dans lequel doit s'effectuer le décalage. On obtient par exemple pour sh_pos = 101 et shdir= 1 les combinaisons s4 = 001, s2 = 010, s1 = 001. Cela signifie que l'on a effectué un décalage vers la droite de cinq positions de binaires. Cette relation 5 logique est réalisée par les circuits DS1 (décode-sh4) de décodage encadré et DS2 (décode-sh21). Le comportement particulier dans le temps suivant l'invention des signaux shj de commande est obtenu par: - des signaux de masquage qui sont produits par les bascules RS 10 RSF1 (RS-Sh4EnN), RSF2 (PrSh21Q) et RSF3 (RS-PrShQ), - des rétrocouplages du signal PrShQ sur les bascules RS RSF1 et RSF2, un rétrocouplage du signal s4 sur le circuit de décodage DS2 et un rétrocouplage des signaux sh2 , shl sur la bascule RS RSF3 (ces relations sont représentées à la Figure 5 par les " flèches de causalité ") 15 et - le comportement en fonction du temps indiqué à la Figure 5 des entrées (s irh_dirshdirq), (sh_dirn,sh_dirqn) et (sh pos , sh_pos ) de décodage Dual-Rail, ainsi que du signal ShftEn (Shift Enable), dont le front montant signifie le passage de la phase T2 à la phase 20 T3 puisque la précharge du trajet de données est achevée et ainsi l'opération proprement dite de décalage est déclenchée dans les phases T3 et T4. Tout d'abord, les signaux sh2 et shl sont toutefois interrompus, de sorte qu'il en dérive le front montant du signal PrShQ. La Figure 6 représente, outre la synchronisation de l'information 25 sh_posi et shdiri de commande primaire dans les latches maîtres ML et esclaves FL (Figure 10) également la transformation de signaux SingleRail primaires en signaux Dual-Rail (Figure 11), ainsi que la production du signal ShftEn déjà mentionné. Sa signification et son effet sur le comportement dans le temps des signaux shj de commande ont déjà été indiqués lors de 30 I'explication de la Figure 4. On décrit maintenant dans ce qui suit la production du signal ShftEn au moyen des Figures 6 à 8. ShftEn s'applique à la sortie de données de la bascule RS RSF4 (RS-ShftEn) de la Figure 6 qui est mise à son entrée ShEnSq par le niveau bas (potentiel VSS de référence). ShftEn est alors au potentiel VDD d'alimentation, le front montant de ShftEn est alors déduit du front descendant de ShEnSq. Le retour de ShftEn au niveau bas résulte du niveau bas à l'entrée ShEnRq dans la mesure o ShEnSq est inactif. Cela est toujours 5 assuré comme cela apparaîtra ci-dessous. Avec un niveau bas sur ShftEn, la précharge des entrées (sh_dir,sh_dirq), (shdir qn, sh_dir n) et (sh_pos ,sh_pos ) de décodage Dual-Rail est provoquée, ce qui de son côté a pour conséquence le début de la phase T1: tous les signaux shj , j = 4, 2, 1, de commande du décaleur logarithmique deviennent 10 inactifs: shj = 000. Tous les transistors NO...N6 de la cascade de multiplexeurs sont ainsi bloqués par les multiplexeurs ayant les multiplexeurs Muxl, Mux2, Mux4. Comme cela apparaît dans la Figure 8, ShEnRq est une impulsion de courte durée qui est dérivée par le circuit PlsGen encadré à la Figure 6 du 15 front montant de la cadence clk de système envoyée de l'extérieur. Pour un niveau bas du reset rst du système, ShftEn est amené au niveau bas indépendamment de clk. D'une manière générale, le décaleur logarithmique se trouve, lorsque le reset du système est actif, à l'état de précharge ou est mis dans cet état (voir à cet effet aussi le comportement du reset du système 20 des circuits à la Figure 4). Le front descendant de ShEnSq (et le front montant qui s'ensuit de ShftEn) peut être obtenu de deux façons. D'une part, ShEnSq pourrait être fixé de la même façon que le signal clk d'horloge. Cela signifie que les phases T1 et T2 coïncident en laps 25 de temps tant que le clk est au niveau haut. D'une manière analogue, les phases T3 et T4 coïncident en laps de temps tandis que le signal clk d'horloge est au niveau bas. L'avantage de cette façon de procéder réside dans sa simplicité. L'inconvénient réside dans le fait que pour l'opération proprement dite de décalage, on dispose pendant la phase T4 de moins que le laps de 30 temps TCL et que la durée de la phase T4 dépend de la cadence du système envoyée de l'extérieur et ne peut donc pas être adaptée au mieux aux conditions à l'intérieur du décaleur logarithmique. Mais ce qui vient d'être dit est possible lorsque ShEnSq est dérivé de la condition que la phase de précharge termine le trajet de données. Cela signifie que, dans les phases T1 et T2, tant les entrées (a,aq) de données du décaleur logarithmique que ses sorties (z,zq) de données ont été ou sont préchargées au niveau de potentiel haut. ShEnSq pourrait, par exemple, être formé par une porte NON et triple dont la première entrée indique que 5 I'opération de précharge de l'entrée (a,aq) de données la plus lente dans T1 ou T2 est terminée et dont les autres entrées sont les plus lentes des sorties (z,zq) de données dans le trajet de données. Par une chaîne d'inverseurs montés en série à cela ou par un autre moyen de retard de ShEnSq, on peut en outre assurer que la précharge s'établissant ultérieurement par rapport à 10 (z,zq) des noeuds se trouvant entre les circuits de multiplexeurs de la cascade a été prise en compte d'une manière adaptée. REVENDICATIONS 1. Circuit intégré caractérisé en ce qu'il a les caractéristiques suivantes: - au moins deux multiplexeurs (Muxl, Mux2, Mux4) montés en cascade, qui ont respectivement une pluralité d'entrées (ar,arq aO,aOq; al,alq) de données, une sortie (z,zq) de données et une entrée (sr, sO, sl) de commande, celle des entrées de données qui est reliée à la sortie de données étant fixée par le signal (shj , j = 1, 2, 4) appliqué à l'entrée de commande, - la sortie (z,zq) de données d'un multiplexeur est reliée à l'une des entrées (aO,a0q) de données du multiplexeur en aval en sorte qu'il est formé un trajet de données passant dans la cascade, chaque entrée de données et chaque sortie de données ont deux bornes d'application d'un signal Dual-Rail, et - il est prévu au moins une unité (VE) de précharge, qui peut être commandée par un signal (PrShQ) de commande, qui est reliée à la sortie de données ou à l'entrée de données de l'un des multiplexeurs (Muxl, Mux2, Mux4) et qui peut mettre les sorties (z,zq) de données et/ou les entrées (aO,aOq) de données des multiplexeurs (Muxl, Mux2, Mux4) dans un état de 20 précharge avant l'exécution d'une opération de calcul. 2. Circuit suivant la revendication 1, caractérisé en ce que l'unité de précharge est branchée entre une borne (VP) de potentiel d'alimentation ou une borne (BP) de potentiel de référence et le trajet des données du circuit intégré. 25 3. Circuit suivant la revendication 2, caractérisé en ce que l'unité de précharge est reliée à la sortie de données du dernier multiplexeur (Muxl) de la cascade, qui représente la sortie de données du circuit intégré. 4. Circuit suivant l'une des revendications précédentes, caractérisé en ce que l'unité de précharge est reliée à l'entrée de données du premier multiplexeur (Mux4) de la cascade, qui représente l'entrée de données du circuit intégré. 5. Circuit suivant l'une des revendications précédentes, 15 caractérisé en ce que l'unité de précharge est branchée entre la sortie de données de l'un des multiplexeurs et l'entrée de données d'un multiplexeur en aval. 6. Circuit suivant l'une des revendications précédentes, caractérisé en ce que la sortie (z,zq) de données de chacun des multiplexeurs (Muxl, Mux2, Mux4) peut être chargée d'un signal de précharge par une unité (VE) de précharge reliée à la sortie des données du circuit intégré. 7. Circuit suivant l'une des revendications précédentes, caractérisé en ce que l'entrée (a,aq) de données de chacun des multiplexeurs (Muxl, Mux2, Mux4) peut être chargée d'un signal de précharge par une unité (VE) de précharge reliée à l'entrée de données du circuit intégré. 8. Circuit suivant l'une des revendications précédentes, caractérisé en ce qu'il est prévu un circuit (HS) de maintien, qui est couplé au trajet de données et qui, dans le cas o il y a un signal Dual/Rail appliqué à la sortie de données d'un multiplexeur, relie la valeur respective du signal à la borne (BP, VP) de potentiel d'alimentation ou de potentiel de référence. 9. Circuit suivant la revendication 8, caractérisé en ce que le circuit (HS) de maintien est relié à l'unité (VE) de précharge. 10. Circuit suivant la revendication 8 ou 9, caractérisé en ce que le circuit (HS) de maintien est monté à la sortie de données du circuit intégré. 11. Circuit suivant la revendication 8, 9 ou 10, caractérisé en ce que le circuit (HS) de maintien a deux transistors rétrocouplés et est branché entre la sortie de données du circuit et la bande (VP) de potentiel d'alimentation ou de potentiel de référence. 12. Circuit suivant l'une des revendications précédentes, caractérisé en ce que le circuit intégré est un décaleur logarithmique. 13. Circuit suivant l'une des revendications précédentes, 25 30 caractérisé en ce qu'il est prévu un circuit (AS) de commande relié aux multiplexeurs (Muxl, Mux2, Mux3) et à l'unité (VE) de précharge et prenant en charge la synchronisation temporelle des signaux (shj ) de commande des multiplexeurs (Muxl, Mux2, Mux3) et du signal (PrShQ) de commande de l'unité (VE) de précharge. 14. Procédé pour faire fonctionner un circuit intégré suivant l'une des revendications précédentes, caractérisé en ce que l'on envoie aux entrées (ar,arq; aO,aOq; al,alq) de données et aux sorties (z,zq) de données dans le trajet de données 10 de la cascade de multiplexeurs un signal de précharge avant d'effectuer un stade de calcul, notamment une opération de décalage. 15. Procédé suivant la revendication 14, caractérisé en ce que, pour envoyer un signal de précharge, on envoie dans une première phase (T1) à tous les multiplexeurs de la cascade 15 des signaux (shj , j = 1, 2, 4) de commande, de manière à ce qu'il ne soit pas constitué de liaison conductrice entre l'entrée de données et la sortie de données d'un multiplexeur respectif et de manière à ce qu'il soit appliqué un signal (PrShQ) de commande à l'unité (VE), de précharge de sorte que la partie du trajet de données qui lui est reliée soit mise dans un état de 20 précharge. 16. Procédé suivant la revendication 15, caractérisé en ce que, pour envoyer un signal de précharge, on envoie dans une deuxième phase (T2) à au moins certains des multiplexeurs des signaux de commande, de manière à y ménager une liaison conductrice 25 de l'entrée de données et la sortie de données grâce à quoi d'autres parties du trajet de données sont mises en un état de précharge. 17. Procédé suivant la revendication 16, caractérisé en ce que, pour envoyer un signal de précharge, on envoie dans une troisième phase (T3) à tous les multiplexeurs de la cascade 30 des signaux (shj , j = 1, 2, 4) de commande, de manière à ce qu'il n'y ait plus liaison conductrice entre l'entrée de données et la sortie de données d'un multiplexeur respectif et de manière à appliquer à l'unité (VE) de précharge un signal (PrShQ) de commande la rendant inactive. 18. Procédé suivant la revendication 17, caractérisé en ce que, après l'achèvement de la phase de précharge, on envoie, pour effectuer le stade de calcul dans la troisième phase (T3), au premier multiplexeur (Mux4) de la cascade un signal de commande nécessaire pour l'opération de calcul. 19. Procédé suivant la revendication 18, caractérisé en ce que, pour effectuer le stade de calcul, on envoie dans une quatrième phase (T4) aux autres multiplexeurs (Muxl, Mux2) de la cascade un signal de commande nécessaire pour l'opération de calcul. 20. Procédé suivant l'une des revendications 16 à 19, caractérisé en ce que l'on relie l'unité (VE) de précharge à la sortie de données du circuit intégré et, dans la deuxième phase (T2), on envoie des signaux de commande à tous les multiplexeurs (Muxl, Mux2) de la cascade à l'exception du premier multiplexeur (Mux4) de manière à y ménager une liaison conductrice de l'entrée de données à la sortie de données. 15 21. Procédé suivant la revendication 20, caractérisé en ce que l'on envoie à l'entrée de données du premier multiplexeur (Mux4) de la cascade dans la deuxième phase (T2) un signal de précharge par une unité de précharge qui est reliée à ce multiplexeur. 22. Procédé suivant l'une des revendications 16 à 19, caractérisé en ce que l'on relie l'unité (VE) de précharge à l'entrée de données du circuit intégré et, dans la deuxième phase (T2), on envoie des signaux de commande à tous les multiplexeurs (Muxl, Mux4) de la cascade à l'exception du dernier multiplexeur (Mux2) de manière à y ménager une liaison conductrice de l'entrée de données à la sortie de données. 25 23. Procédé suivant la revendication 22, caractérisé en ce que l'on envoie à la sortie de données du dernier multiplexeur (Mux4) de la cascade dans la deuxième phase (T2) un signal de précharge par une unité de précharge qui est reliée à ce multiplexeur. 24. Procédé suivant l'une des revendications 16 à 19, caractérisé en ce que l'on précharge par des unités de précharge montées à l'entrée de données et à la sortie de données du circuit intégré des noeuds intérieurs de la cascade de multiplexeurs qui sont formés par la liaison de la sortie de données d'un multiplexeur à l'entrée de données du multiplexeur en aval.