FR2868565A1 - Unite de calcul - Google Patents

Unite de calcul Download PDF

Info

Publication number
FR2868565A1
FR2868565A1 FR0502688A FR0502688A FR2868565A1 FR 2868565 A1 FR2868565 A1 FR 2868565A1 FR 0502688 A FR0502688 A FR 0502688A FR 0502688 A FR0502688 A FR 0502688A FR 2868565 A1 FR2868565 A1 FR 2868565A1
Authority
FR
France
Prior art keywords
register
operand
bus
partial
communication bus
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR0502688A
Other languages
English (en)
Other versions
FR2868565B1 (fr
Inventor
Norbert Janssen
Tanja Roemer
Holger Sedlak
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Infineon Technologies AG filed Critical Infineon Technologies AG
Publication of FR2868565A1 publication Critical patent/FR2868565A1/fr
Application granted granted Critical
Publication of FR2868565B1 publication Critical patent/FR2868565B1/fr
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/57Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
    • G06F7/575Basic arithmetic logic units, i.e. devices selectable to perform either addition, subtraction or one of several logical operations, using, at least partially, the same circuitry
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • G06F9/30014Arithmetic instructions with variable precision
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/386Special constructional features
    • G06F2207/3896Bit slicing

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Logic Circuits (AREA)

Abstract

L'unité de calcul de l'invention comprend un nombre de puces partielles qui est inférieur au nombre de positions de l'opérande à traiter. Chaque puce partielle a un élément logique et un bus (10) de communication entre l'élément logique et la pluralité de cellules (12a à 12d) de registre. Les cellules de registre sont montées en parallèle par rapport au bus de communication interne à la puce partielle et sont commandées par un moyen de commande, de sorte qu'une seule cellule de registre de la pluralité de cellules de registre est couplée au bus de communication à la fois. D'une part, cela assure une commande simple et d'autre part, des courants transversaux du circuit sont réduits à un minimum.

Description

Description
Unité de calcul La présente invention concerne des unités de calcul et en particulier, des unités de calcul pour traiter un opérande ayant un certain nombre de positions, l'unité de calcul ayant un nombre de puces partielles égal à une même partie du nombre de positions de l'opérande. En d'autres termes, la présente invention concerne une unité de calcul pour traiter un ou plusieurs opérandes, l'unité de calcul comportant moins de puces partielles qu'il n'existe d'opérande(s).
La figure 4 représente une unité de calcul connue. L'unité de calcul comprend un régisseur 40 d'unité de calcul et une pluralité 41a, 41b, 41c de puces partielles, au total N puces partielles et/ou moyens formant puces partielles étant illustré(e)s sur la figure 4. L'unité de calcul représentée en sections sur la figure 4, comprend en outre, un bus 42 d'unité de calcul externe conçu pour charger des données dans chaque puce partielle. Dans un mode de réalisation, on peut également émettre des données transmises d'une puce partielle à la puce partielle suivante, c'est-à-dire par exemple, des binaires de retenue, d'une puce partielle à la puce partielle supérieure suivante, via des lignes de communications internes aux puces partielles. En variante, néanmoins, on peut également effectuer cela via le bus 42 externe.
La figure 4 ne représente que de façon simplifiée, un opérande 43 qui présente un nombre de m fois N positions, c'est-à-dire dont le nombre de positions est supérieur au nombre N de puces partielles, au début. Dans le cas particulier, illustré sur la figure 4, le facteur m est supérieur ou égal à 2, de sorte que le nombre de positions de l'opérande 43 est égal à deux fois, trois fois, quatre fois, ..., M fois le nombre N de puces partielles de l'unité de calcul représentée sur la figure 4.
La figure 5 présente une illustration plus détaillée de la puce partielle i de la figure 4. Dans le mode de réalisation illustré sur la figure 5, l'unité de calcul est conçue pour traiter un nombre k d'opérandes, la figure 5 ne représentant que la zone 50a de registre pour le premier opérande et la zone 50b de registre pour le deuxième opérande correspondant à la puce partielle i. En outre, d'autres zones de registres correspondant à d'autres opérandes, sont indiquées en 50c.
Une puce partielle comprend en outre, un élément 51 logique, se composant généralement d'un certain nombre de portes logiques pour créer une cellule d'addition destinée à additionner une pluralité d'opérandes, en particulier, dans des unités de calcul de nombres longs. A cet effet, l'élément logique comprend les portes nécessaires pour un additionneur, pour créer un binaire de somme et un binaire de retenue, à partir des deux binaires d'opérande d'entrée et un binaire de retenue provenant de la puce partielle inférieure suivante, c'est-à-dire provenant de la puce partielle ayant pour nombre ordinal i 1. Le document DE 3631992 Cl donne une description plus détaillée de puces partielles et de la manière dont on les empile les unes au-dessus des autres pour obtenir une unité de calcul.
Les éléments 50a, 50b, 50c, 51 d'une puce partielle i, sont reliés les uns aux autres via un bus de communication local pour la puce partielle i, désignée 52 sur la figure 5. Plus précisément, chaque unité de registre comprend une connexion au bus 52 de communication, le bus 52 de communication pouvant s'étendre jusqu'au bus 42 externe ou pouvant être relié au bus 42 externe, via des circuits de marche/arrêt de puce partielle. Sur la figure 5, la puce partielle i est représentée en outre, comme pouvant être commandée, via le moyen 40 de commande, déjà illustré en référence à la figure 4.
Ainsi qu'on l'a expliqué ci-dessus, l'unité de calcul représentée sur la figure 4 sert à traiter un opérande ou plusieurs opérandes. Si un seul opérande est traité, il peut s'agir, par exemple, d'une inversion de l'opérande, etc. En règle générale, néanmoins, deux opérandes ou davantage sont traités les uns avec les autres, notamment deux opérandes, lorsqu'il s'agit simplement d'une addition ou trois opérandes qui sont additionnés pour mettre en oeuvre une exécution efficace de l'élévation modulaire à une puissance, en particulier, dans des applications cryptographiques, telles que le système cryptographique RSA, tel que décrit dans le document DE 3631992 C2. Dans ce cas, l'élément 51 logique de la figure 5 se compose d'un additionneur à trois opérandes au niveau des bits, composé d'un demi-additionneur et d'un additionneur complet aval pour chaque puce partielle.
Si la longueur de l'unité de calcul, c'est-à-dire le nombre N de puces partielles, est supérieure ou égale au nombre de positions de l'opérande, l'opérande est généralement chargé dans les cellules de registre de l'unité de calcul correspondantes, via le bus 42 externe, lors d'un cycle d'introduction. Cela signifie que le binaire de poids faible est introduit dans une cellule de registre de la puce 41a partielle, que le binaire supérieur suivant est introduit dans la puce 41 b partielle, que de nouveau, le binaire supérieur suivant est introduit dans la puce 41 c partielle et que l'ième binaire est introduit dans la puce i partielle.
Si l'opérande n'a plus de positions, c'est-à-dire si le nombre de positions de l'opérande est inférieur ou égal au nombre de puces partielles, une opération peut s'effectuer lors d'un cycle, dans lequel le résultat de l'opération peut être mémorisé dans un registre distinct de résultat d'une puce partielle ou dans le registre dans lequel la valeur d'origine se trouvait, si la valeur d'origine n'est plus utile. Le résultat de l'opération peut être émis ensuite, en sortie vers le bus 42 externe de la figure 4 et peut, par exemple, être mémorisé dans une mémoire externe. En fonction de la requête, néanmoins, le résultat peut être utilisé de nouveau pour être fourni aux éléments logiques de nouveau, lors d'une étape de calcul suivante, via les bus de communication locaux respectifs des puces partielles, afin d'effectuer un nouveau calcul. Cette commande est exécutée par le moyen 40 de commande de l'unité de calcul qui est en liaison opérationnelle avec puce partielle, pour accomplir des fonctionnalités de chargement de registre correspondantes.
Dans les modes de réalisation ci-dessus, on supposait que chaque bloc 50a, 50b, 50c de registres avait exactement une seule cellule de registre. Si par exemple, dans cette unité de calcul où chaque puce partielle a une cellule de registre pour chaque opérande, on effectuait une addition de deux opérandes ayant tous deux plus de positions qu'il n'existe de puces partielles, tout d'abord, un premier sous-groupe de positions de l'opérande serait introduit dans l'additionneur via le bus externe pour calculer les premières positions inférieures du résultat. Celles-ci seraient ensuite émises en sortie, la retenue de la puce partielle la plus élevée étant mémorisée. Puis, la partie suivante de positions serait introduite dans les cellules de registre de puces partielles, via le bus externe pour calculer ensuite, la partie suivante de binaires de somme, au moyen du binaire de retenue venant d'être mémorisé dans la puce partielle la plus basse. Cette procédure peut se répéter, jusqu'à ce que toutes les positions de l'opérande aient été traitées.
Cette procédure est désavantageuse en particulier, dans la mesure où des données doivent être émises via le bus externe, après chaque cycle de l'unité de calcul.
Pour remédier à cet inconvénient, on a fait appel au concept décrit sur la figure 6, selon lequel chaque puce partielle possède une pluralité de cellules de registre, en particulier, m cellules de registre. En particulier, la figure 6 illustre la section de registres d'une puce partielle i de la figure 5, c'est-à-dire une illustration agrandie des blocs 50a, 50b, y compris le moyen 40 de commande et le bus 52 de communication. Dans l'exemple illustré sur la figure 6, le bus 52 de communication comprend un bus 52a de communication de sortie et un bis 52b de communication de retour. Plus précisément, chaque bloc 50a, 50b de registres comprend désormais, une pluralité de M cellules 61a à 61d de registre, montées en série, par rapport au bloc 50a de registres et une pluralité de m cellules 62a, 62b, 62c, 62d de registre, montées en série par rapport au bloc 50b de registres. Les cellules 61 a, 61 b de registre sont donc montées en série, ainsi que l'illustre la figure 6, de sorte que la sortie d'une cellule de registre est reliée à une entrée de la cellule de registre suivante.
Pour mémoriser des données dans les cellules de registre, l'enregistrement de données s'effectue via le bus d'entrée interne à l'unité de calcul, de sorte que tout d'abord, l'ieme binaire d'un certain opérande qui est introduit dans le bloc 50a de registres, est fourni à la cellule 61d de registre. Par la suite, on suppose que l'unité de calcul a N puces partielles. Lors d'une étape suivante, l'opérande N + i est ensuite fourni du bus externe au bus 52b d'entrée. Cet opérande correspondant à la position N + i est à présent, introduit dans la cellule 61d de registre, l'opérande correspondant à la position i, mémorisé jusqu'à présent dans la cellule m de registre, étant néanmoins, transféré vers le haut vers la cellule 3 de registre.
Pour mémoriser le binaire suivant correspondant à la position i + 2N, ce binaire est fourni de nouveau depuis l'extérieur et délivré à la cellule 61d m de registre. Tout d'abord, néanmoins, la valeur actuelle mémorisée dans la cellule m de registre est transmise à la cellule 3 de registre supérieure. Avant cela, toutefois, la valeur de la cellule 3 de registre est décalée vers le haut vers l'enregistrement 2.
Le verrouillage à la position i + 3N de l'opérande s'effectue de la manière suivante. La valeur actuellement mémorisée dans la cellule 61 b de registre est décalée vers le haut vers la cellule 61 a de registre. La valeur actuellement mémorisée dans la cellule 61c de registre est décalée vers le haut vers la cellule 61 b de registre. La valeur actuellement mémorisée dans la cellule 61 d de registre est décalée vers le haut vers la cellule 61c de registre. Enfin, la nouvelle valeur correspondant à la position i + 3N à verrouiller est introduite dans la cellule m de registre.
Une procédure correspondante se déroule, lorsque des valeurs qui ont été calculées, en tant que résultat intermédiaire de la dernière étape, sont fournies en provenance de l'élément i logique, via le bus 52b. Elles sont de nouveau introduites de bas en haut , dans les cellules de registre montées en série. En conséquence, lorsque le contenu d'une cellule de registre doit être acheminé, par exemple, vers l'élément logique ou vers le bus externe, c'est-à-dire vers l'extérieur , via le bus 52a de sortie, cela s'effectue de façon séquentielle.
Cette procédure est particulièrement avantageuse, lorsque le nombre de cellules de registre est relativement grand, c'est-à-dire en particulier, supérieur à 2 ou 3. Cela signifie que l'on peut traiter de très grands nombres, au moyen d'unités de calcul relativement petites. Plus précisément, considérons le cas exemplaire où des opérandes d'une taille de 1 à 1120 binaires doivent être traités et où l'unité de calcul a N = 280 puces partielles. Dans ce cas, chaque bloc de registres de la puce partielle comporte quatre cellules de registre montées en série, l'une après l'autre.
Le chargement doit s'effectuer en série, lors d'un cycle de chargement distinct, tandis que d'autre binaires sont déjà traités dans l'élément logique. Par ailleurs, il est nécessaire, pour réaliser une opération rapide, que de nouveaux binaires soient écrits dans toutes les cellules de registre, sensiblement en même temps. En d'autres termes, cela signifie que toutes les entrées/sorties de toutes les cellules de registre s'ouvrent simultanément, telles quelles, de manière à ce que le décalage du contenu des cellules de registre puisse s'effectuer.
Les binaires de registre sont généralement mis en oeuvre en tant que verrous, dans lesquels, pour chacun des sous-cycles du nombre de m souscycles nécessaires pour traiter une addition, le binaire de registre concerné est mémorisé dans une mémoire tampon et tous les m 1 binaires restants sont transférés successivement à travers les verrous disposés de façon séquentielle, ainsi qu'on l'a expliqué en référence à la figure 6. Du fait que le verrouillage est requis (généralement quelque part sur le trajet du bus 52a de sortie ou sur le trajet du bus 52b d'entrée), cette mise en oeuvre est problématique, en particulier en termes de positionnement temporel. En outre, la commande est complexe, ce qui constitue un problème notamment en ceci que seules des options de commandes câblées peuvent être utilisées, à l'intérieur des puces partielles.
Un autre inconvénient d'importance considérable consiste en ce que des courants transversaux significatifs sont produits lorsque les cellules de registre sont utilisées de la manière séquentielle décrite. En particulier, dans des circuits CMOS qui sont généralement utilisés, aucun ou peu de courant transversal est créé à l'état de maintien, c'est-à-dire lorsqu'il n'existe aucun changement de registre. Toutefois, si un registre change d'état, des courants transversaux remarquables sont créés et doivent être produits par une source de courant interne à la puce. Ainsi qu'on l'a mentionné ci-dessus, dans le cas le plus défavorable, la totalité des m cellules de registre de la topologie de circuit illustrée sur la figure 6, peut changer d'état. Cela signifie qu'une alimentation en courant d'une puce doit produire un courant significatif, égal à la somme de tous les courants transversaux. Dès lors que des alimentations en courant classiques sont mises en oeuvre via une source de tension avec un régulateur de tension correspondant, une régulation de tension extraordinairement forte est requise dans ce cas de courants transversaux élevés. Si elle n'est pas prévue, une chute de tension se produira dans la puce. Toutefois, un régulateur de tension conçu si généreusement, capable de contrecarrer cette chute de tension d'une part, nécessite beaucoup d'aire puce et d'autre part, est de conception plus complexe que les régulateurs de tension plus simples.
En résumé, il résulte donc du concept illustré sur la figure 6 une puce plus coûteuse, dès lors qu'une aire supplémentaire de puce est requise, compte tenu de la commande et de sa complexité et du fait que des régulateurs de tension coûteux sont également requis sur la puce, eu égard aux courants transversaux élevés qui peuvent potentiellement se produire.
En particulier, dans le cas d'applications en série, telles que des puces de cartes à puce, des écarts de prix même minimes peuvent avoir pour conséquence qu'un produit survive, tandis qu'un autre produit ne recueille pas l'acceptation du marché, du fait des grands nombres produits.
La présente invention vise à proposer une unité de calcul plus simple et donc moins onéreuse.
On atteint ce but au moyen d'une unité de calcul pour traiter un opérande ayant un certain nombre de positions, caractérisée en ce qu'elle comprend: un certain nombre de puces (41a, 41b, 41c) partielles, le nombre de puces partielles étant inférieur au nombre de positions de l'opérande, dans laquelle une puce partielle a un élément (51) logique et une pluralité de cellules (12a, 12b, 12c, 12d) de registre, dans laquelle un bus (10) de communication est prévu entre la pluralité de cellules de registre et l'élément (51) logique, dans laquelle chacune des cellules de la pluralité de cellules de registre est couplée au bus (10) de communication, de sorte que la pluralité de cellules de registre est montée en parallèle par rapport au bus de communication; et un moyen (20) de commande destiné à commander la pluralité de cellules de registre, de sorte qu'une seule des cellules de registre est couplée au bus de communication pour émettre une position mémorisée de l'opérande vers l'élément logique via le bus de communication ou pour émettre une position à mémoriser de l'élément logique à la cellule de registre, les autres cellules de registre étant découplées du bus de communication.
La présente invention repose sur le fait que l'on peut traiter le problème d'une commande complexe et en particulier, des courants transversaux intenses, si l'on ne monte plus les m cellules de registre d'une puce partielle en série l'une après l'autre, comme dans la technique antérieure, mais en parallèle. Cela signifie que chaque cellule de registre a un couplage au bus de communication local interne à la puce partielle et qu'elle peut être commandée de façon sélective, de sorte que cette cellule de registre peut être ouverte à des fins de lecture ou d'écriture, tandis que toutes les autres cellules de registre sont fermées. Ainsi, lorsqu'un binaire mémorisé dans la cellule de registre sera acheminé vers une unité logique, il se produira un courant transversal qui correspondra au courant transversal engendré, lorsqu'une cellule de registre unique change de contenu. Cela constitue une amélioration considérable par rapport à la technique antérieure où ce courant transversal pouvait potentiellement être produit m fois.
En outre, la commande est simple, dès lors que seul un codage de 1 à M doit être utilisé pour ouvrir une cellule de registre, c'est-à-dire pour la connecter au bus de communication, tandis que les autres cellules de registre sont maintenues fermées.
Par ailleurs, la présente invention est avantageuse en ce que l'on peut 35 aisément faire appel à une mise en oeuvre à double rail, avec une horloge d'initialisation entre deux horloges utiles, c'est-à-dire avec précharge et/ou pré-décharge. Dans ce cas, le bus de communication a une ligne de bus pour des données et une autre ligne de bus pour des données inversées. Du fait de l'agencement parallèle des cellules de registre pour ce qui concerne les bus de données, on peut aisément mettre en oeuvre cette architecture à double rail concernant les bus, à savoir, simplement au moyen d'un commutateur d'entrée et d'un commutateur de sortie pour une cellule de registre.
Contrairement à l'horloge de données, dans laquelle il existe toujours une cellule de registre connectée au bus de communication, tandis que toutes autres cellules de registre sont fonctionnellement séparées du bus de communication, dans l'horloge d'initialisation, toutes les cellules de registre sont fonctionnellement séparées du bus de communication.
En fonction de la mise en oeuvre, néanmoins, on peut utiliser également des registres à double rail qui peuvent aussi être initialisés pour procurer une sécurité optimale contre des attaques par canaux latéraux.
Dans la mise en oeuvre, on peut aisément utiliser le même bus de données, en tant que bus d'entrée et bus de sortie. Toutefois, si un bus d'entrée séparé ou un bus de sortie séparé est requis, on peut aisément l'obtenir, dès lors que seul un nombre correspondant de commutateurs d'entrée/sortie doit être prévu pour les registres individuels.
Le concept de l'invention repose donc sur le couplage en parallèle des m verrous d'une puce partielle à un bus local de la puce partielle. En fonction de la tâche du registre, un bus suffit à la lecture et à l'écriture ou deux bus peuvent être mis en oeuvre.
II en résulte l'avantage d'une commande aisée, du fait qu'un seul registre doit être ouvert à un moment quelconque. Dès lors qu'il n'est pas nécessaire de transmettre les binaires de registres, seuls de minuscules courants transversaux sont engendrés. Au lieu de la configuration séquentielle décrite au début, l'invention opte pour un montage en parallèle des cellules de registre, compte tenu de l'immunité vis-à-vis des attaques par canaux latéraux.
De préférence: - le nombre de puces partielles de l'unité de calcul est égal à une meme partie des positions de l'opérande, m étant supérieur ou égal à 2.
- le moyen de commande est conçu en outre, pour mémoriser une sortie de l'élément logique dans la même cellule de registre de laquelle une entrée pour calculer la sortie a été émise vers l'élément logique, via le bus de communication.
- une cellule de registre est conçue en tant que verrou, le verrou comprenant une première entrée pour un binaire et une deuxième entrée pour une binaire inversé.
- le bus de communication comprend une première ligne de bus, connectée à la première entrée via un premier commutateur, et une deuxième ligne de bus, connectée à la deuxième entrée via un deuxième commutateur, et le moyen de commande est conçu pour fermer le premier et le deuxième commutateur d'une seule cellule de mémoire à la fois, le premier commutateur et le deuxième commutateur des autres cellules de registre de la puce partielle étant ouverts.
-l'unité de calcul est conçue pour une opération d'initialisation avec précharge ou pré-décharge, caractérisée en ce que le moyen de commande comprend en outre, un moyen d'initialisation destiné à ouvrir tous les premiers et deuxièmes commutateurs des cellules de registre de la puce partielle, dans une horloge d'initialisation et caractérisé en ce que, dans l'horloge d'initialisation, à la fois la première ligne de bus et la deuxième ligne de bus sont mises dans le même état de tension.
- l'unité de calcul est conçue pour traiter une pluralité d'opérandes, une puce partielle comprend un certain nombre de cellules de registre pour chacun des opérandes, et un bus de communication distinct est prévu pour chaque opérande, les cellules de registre d'un opérande étant montées en parallèle par rapport au bus de communication de l'opérande.
L'unité de calcul est caractérisée en ce que l'unité de calcul comporte N puces partielles, et en ce que le moyen de commande est destiné à charger les cellules de registre d'une ième puce partielle, de sorte qu'une ième position de l'opérande est mémorisée dans la première cellule de registre, - une (i+N)ème position de l'opérande est mémorisée dans la deuxième cellule de registre, et que le moyen de commande est conçu traiter tout d'abord, les positions de l'opérande mémorisées dans les premières cellules de registre respectives, dans la totalité des N puces partielles, puis pour traiter les positions de l'opérande mémorisées dans les deuxièmes cellules de registre respectives de la totalité des N puces partielles, afin de traiter l'opérande.
- l'unité de calcul ayant un nombre de puces partielles supérieur ou égal à 140, et est caractérisée en ce que le nombre de positions de l'opérande est supérieur ou égal à 280.
L'unité de calcul est conçue pour traiter une pluralité d'opérandes, et le bus de communication comprend une pluralité de lignes de bus décentralisées, chaque ligne de bus décentralisée étant prévue pour la pluralité de cellules de registre d'un opérande, et le bus de communication comprend une ligne de bus centrale à laquelle chacune des lignes de bus décentralisées est reliée.
- l'unité de calcul est caractérisée en ce que le moyen de commande comprend m lignes de commande pour chaque opérande, chaque ligne de commande étant couplée à une cellule de registre distincte de la pluralité de cellules de registre, et une seule des lignes de commande à la fois présentant un premier état, toutes les autres lignes de commande présentant un deuxième état différent du premier état.
On explique plus en détail dans ce qui suit, des modes de réalisation préférés de la présente invention, en référence aux dessins annexés, dans lesquels: la figure 1 est une illustration simplifiée du bloc de registres d'une puce partielle i, suivant la présente invention; la figure 2 est une illustration détaillée de deux cellules de registre de la figure 1; la figure 3a est une illustration générale du codage de 1 à M pour commander les cellules de registre avec des horloges d'initialisation insérées; la figure 3b représente une cellule de registre selon la technologie du double rail; la figure 4 est un schéma simplifié d'une unité de calcul composée de N puces partielles; la figure 5 est une illustration détaillée d'une puce partielle i de la figure 4; la figure 6 est une mise en oeuvre connue d'une puce partielle i ayant un nombre m de cellules de registre montées en série.
La figure 1 représente une illustration simplifiée de deux blocs de registres d'une unité de calcul de l'invention, pour traiter au moins un et de préférence, 35 plusieurs opérandes, chaque opérande ayant un certain nombre de positions.
L'unité de calcul de l'invention est une unité de calcul du type à architecture à puces partielles, ainsi qu'on l'a illustré en référence à la figure 4. L'unité de calcul de l'invention comprend donc un certain nombre de puces 41a, 41b, 41c partielles (figure 4), le nombre de puces partielles étant inférieur au nombre de positions d'au moins un opérande.
Chaque puce partielle de l'unité de calcul, à son tour, comprend un élément 51 logique (figure 5), comme dans le cas de l'unité de calcul connue, illustrée en référence à la figure 4. La puce partielle i de l'unité de calcul de l'invention, illustrée sur la figure 1, comprend en outre, un bus 10 de communication local de puce partielle et pour chaque bloc de registres, une pluralité 12a, 12b, 12c, 12d de cellules de registre pour le bloc de registres gauches ou 14a, 14b, 14c, 14d pour le bloc de registres droits de la figure 1. Ainsi qu'on peut le voir d'après la figure 1, les cellules 12a, 12b, 12c, 12d de registre sont couplées au bus 10 de communication, de sorte que les cellules de registre sont montées en parallèle, par rapport au bus de communication pour un bloc de registres. En particulier, chaque cellule de la figure 1 a une sortie 13a, 13b, 13c, 13d de binaire, au moyen de laquelle le binaire mémorisé dans la cellule respective peut être émis en sortie vers le bus 10 de communication. De préférence, chaque cellule comprend également une sortie pour le bit 15a, 15b, 15c, 15d inversé respectif.
Suivant l'invention, chaque cellule de registre peut être commandée par ailleurs, via une ligne 17a, 17b, 17c, 17d de commande distincte, dans la mesure où elle est séparée du bus 10 de communication ou dans la mesure où elle est couplée au bus 10 de communication, à des fins de lecture ou d'écriture.
Les lignes 17a à 17d de commande sont commandées via le moyen 20 de commande, disposé quelque part sur la puce, de sorte que c'est toujours la bonne cellule qui est connectée au bus 10. Le moyen 20 de commande est donc prévu pour commander la pluralité de cellules de registre, de manière à ce qu'une seule des cellules de registre soit couplée au bus de communication pour émettre une position mémorisée de l'opérande vers l'élément logique, via le bus de communication ou pour obtenir une position à partir de l'élément logique, dans le but de la mémoriser dans la cellule de registre, les autres cellules de registre restant découplées du bus de communication.
De préférence, le nombre de cellules dans un bloc de registres d'une puce partielle i correspondant à un opérande est égal à m, l'opérande à traiter ayant un nombre de m fois N positions, où N est le nombre de puces partielles de l'unité de calcul. Toutefois, on appréciera aisément que le concept de l'invention fonctionne également lorsque le nombre de positions de l'opérande a = m fois N, du fait qu'en particulier pour des unités decalcul d'addition, il est sans importance qu'un certain nombre de puces partielles qui seraient en réalité prévues pour des binaires supérieurs au binaire de poids fort de l'opérande soit pour ainsi dire libre . En d'autres termes, ces puces partielles peuvent être soit désactivées soit simplement pourvues de zéros pour neutraliser de facto les puces partielles correspondantes.
Dans le mode de réalisation représenté sur la figure 1, chaque cellule de registre comprend deux sorties, à savoir: une sortie pour le binaire 13a, par exemple et une sortie pour le binaire 15a inversé, par exemple. Cette mise en oeuvre est particulièrement favorable pour une application du concept du double rail au bus de communication local interne à la puce partielle. A cet effet, on donne une illustration détaillée des cellules de registre, en référence à la figure 2. Dans un mode de réalisation préféré de la présente invention, une cellule de registre comprend deux inverseurs 22a, 22b et 24a, 24b à contre-réaction, respectivement pour la cellule 1 12a et la cellule 2 12b de la figure 1. La ligne 17a de commande, par exemple, correspondant à la cellule 1, est conçue pour actionner deux commutateurs, un commutateur étant destiné à coupler la cellule à la ligne 13d correspondant à un binaire d'information (commutateur 26a) et l'autre commutateur étant destiné à coupler la cellule de mémoire à la ligne 15d correspondant au binaire inversé (26b). Il existe des commutateurs 28a, 28b correspondants pour la deuxième cellule 12b. Dans le mode réalisation préféré, les commutateurs 26a, 26b, 28a, 28b représentent une connexion conductrice, lorsqu'une impulsion de tension positive est appliquée à la ligne 17a et 17b de commande correspondante, respectivement, tandis que dans le cas où aucune tension ne serait appliquée à la ligne de commande, les commutateurs 26a, 26b, 28a, 28b représentent un circuit ouvert, de sorte que la cellule de registre est découplée du bus 13d et 15d, respectivement.
Ainsi que l'illustre la figure 2, les lignes de 13d, 15d de bus sont couplées en outre, à un moyen 30 d'initialisation, conçu pour exécuter une opération de précharge ou une opération de pré-décharge, lorsqu'une horloge d'initialisation est émise par une ligne 32 de commande. Cela signifie que lors d'une opération de précharge, les deux lignes 13d, 15d sont mises dans un état de haute tension. L'opération de pré-décharge signifie que les deux lignes 13d, 15d sont mises dans un état de basse tension. L'opération de précharge et la pré-décharge, respectivement se produisent toujours entre deux horloges de données, de sorte qu'une horloge de données est suivie d'une horloge d'initialisation. Cela assure qu'indépendamment du fait que des états de données réelles changent ou non, il existe toujours exactement un changement d'une horloge à l'horloge suivante sur les lignes 13d, 15d de bus, de sorte que le même profil de courant est engendré, indépendamment des données émises via le bus 13d, 15d.
Cette opération est illustrée de façon simplifiée dans le tableau représenté sur la figure 3. Un autre élément à voir dans le tableau représenté sur la figure 3 est le codage unitaire qui est utilisé parmi les lignes de commande, lorsqu'il existe une horloge de données. Dans la première horloge, seule la ligne 1 de commande est haute, ce qui signifie que la cellule 1 12a de la figure 1 est connectée au bus pour obtenir des données de la cellule dans l'élément de logique ou pour obtenir des données de l'élément logique dans la cellule. Les lignes 2, 3 et 4, néanmoins, sont pourvues d'un zéro, de sorte que les cellules 12b, 12c, 12d de mémoire correspondantes sont découplées du bus de communications local. Suit une horloge d'initialisation dans laquelle les deux lignes de bus, à savoir: la ligne de bus correspondant au binaire et la ligne de bus correspondant au binaire inversé, sont mises dans le même état par le moyen 30 d'initialisation de la figure 2. Suit ensuite, une horloge de données dans laquelle, désormais, seul le contenu de la deuxième cellule de registre est transmis à l'élément logique et/ou une date fournie par l'élément logique est appliquée à l'entrée de la cellule 2 de registre mais dans aucune autre cellule. Vient ensuite de nouveau, une horloge d'initialisation, etc. Il convient de souligner que dans le mode de réalisation représenté sur la figure 1, une ligne conductrice distincte est mise en oeuvre du moyen 20 de commande à chaque cellule. Toutefois, on pourrait également ne prévoir qu'une ligne unique reliée à chaque cellule. Dans ce cas, le codage devrait avoir lieu à l'intérieur d'une cellule, par exemple sous la forme d'un multiplexeur, pour interpréter le signal sur la ligne de commande et déterminer si une cellule de registre actuellement considérée doit être reliée ou non au bus. Toutefois, du fait de la simplicité de la mise en oeuvre, il est préférable d'avoir une ligne de commande distincte pour chaque cellule de registre.
Bien que sur la figure 1, on représente une mise en oeuvre à double rail, dans laquelle chaque cellule a à la fois une connexion de binaire est une connexion pour le binaire inversé, une mise en oeuvre à rail unique serait également possible. Dans ce cas, il n'existerait pas de connexions 15a, 15b, 15c, 15d ni aucune ligne de bus respective du bus 10. Néanmoins, on peut aisément faire appel à la mise en oeuvre à double rail pour les verrous représentés sur la figure 2, dès lors qu'en raison de leur structure, les verrous fournissent à la fois le binaire d'information et le binaire d'information inversé, sans aucun effort supplémentaire, en termes d'ingénierie des circuits.
Bien que sur les figures 1 et 2, on montre une mise en oeuvre dans laquelle on représente le bus 10 de communication de puce partielle, à la fois pour l'émission de données vers l'élément logique et pour l'émission de données en provenance de l'élément logique, il existe également d'autres mises en oeuvre dans lesquelles on prévoit un bus distinct pour émettre des données vers l'élément logique et l'on prévoit un bus distinct pour émettre des données de l'élément logique vers la cellule de registre. Dans ce cas, chaque cellule de registre aurait une sortie supplémentaire pour le binaire non inversé et une sortie supplémentaire pour le binaire inversé, ces deux sorties supplémentaires étant prévues pour qu'un bus de communication supplémentaire mette en oeuvre la fonctionnalité à deux trajets requise, sur deux bus différents.
Bien que les modes de réalisation ci-dessus aient décrit que dans l'horloge d'initialisation réalisée par le moyen 30 de précharge/prédécharge de la figure 2, toutes les cellules de mémoire sont déconnectées, on peut aisément étendre ce concept de double rail avec initialisation à un concept de double rail à registres. Ainsi qu'on peut le voir d'après la figure 2, il n'est généralement pas possible de mettre la cellule 1 de mémoire, par exemple des deux cotés, à savoir: du côté 15d gauche et du côté 13d droit, dans le même état. Cela tient au fait que les deux inverseurs 22a, 22b sont inversement connectés et n'ont qu'un seul état stable possible, lorsqu'il existe un état différent à gauche et à droite des inverseurs.
Par conséquent, un découplage de toutes les cellules de mémoire s'effectue dans le concept représenté sur la figure 2, dans un fonctionnement à double rail, de sorte que le concept de double rail n'est mis en oeuvre que pour le bus de communication local de puce partielle. Toutefois, pour un fonctionnement toujours sécurisé, on pourrait appliquer le fonctionnement à double rail avec initialisation, à une cellule de registre, même s'il est nécessaire d'écrire dans un registre, c'est-à-dire lorsque des données sont ré-émises de l'élément logique à la cellule de registre. Dans ce cas, la cellule 1 de registre représentée sur la figure 2 serait prolongée par exemple, par une paire supplémentaire d'inverseurs couplés, montés en parallèle.
La figure 3b illustre de façon simplifiée ce registre utilisable dans un fonctionnement à double rail. Il se caractérise en ce qu'il a sensiblement deux paires d'inverseurs à contre- réaction, à savoir: 22a, 22b et 23a, 23b. Les deux inverseurs sont connectés via un moyen de terminaison et/ou un terminateur 27 pouvant être commandé. Le terminateur 27 pouvant être commande est conçu pour séparer sensiblement le côté droit de la paire d'inverseurs 22a, 22b du côté gauche de la paire d'inverseurs 23a, 23b, de sorte qu'une initialisation peut s'effectuer non seulement sur les lignes 15d, 13d de bus, mais aussi dans la cellule de registre elle-même. Dans le circuit représenté sur la figure 3b, il est désormais possible de maintenir les deux commutateurs 26a, 26b ouverts, également dans l'horloge d'initialisation, de manière à ce que le côté gauche de la paire d'inverseurs 22a, 22b, ainsi que le côté droit de la paire d'inverseurs 23a, 23b soient initialisés selon le même état de tension. Cela est utile lorsque des données sont réécrites de l'élément logique dans une cellule de registre. Cela assure qu'indépendamment des données qui sont écrites dans la cellule de registre, c'est-à-dire que l'état de la cellule de registre ait changé ou non, il existe toujours un changement dans la paire d'inverseurs 22a, 22b gauches ou dans la paire d'inverseurs 23a, 23b droits, de sorte que même des attaques directes par canaux latéraux du registre lui-même échoueront. Dans ce cas, le moyen 27 de terminaison est conçu pour obtenir une séparation potentielle entre les deux paires d'inverseurs, cette séparation potentielle n'étant importante que lorsque les paires de registres sont en cours de précharge et/ou de pré-décharge. Si la cellule de registre de la figure 3 est en cours de fonctionnement normal, le moyen de terminaison peut maintenir une connexion potentielle, bien que cela ne pas nécessaire.
Liste des références numériques bus de communication 12a à 12d cellules de registre du premier opérande 13a à 13d 14a à 14d 15a à 15d 17a à 17d 20 22a, 22b 23a, 23b 24a, 24b 26a, 26b 27 28a, 28b 30 32 40 41a à 41c 42 43 50a 50b 50c 51 52 52a 52b 61a à 61d sortie d'une cellule de registre d'un binaire cellules de registre du deuxième opérande sortie d'une cellule de registre d'un binaire inversé ligne de commande respective d'une cellule de registre moyen de commande paire d'inverseurs de la première cellule de registre deuxième paire d'inverseurs de la cellule de registre à double rail paire d'inverseurs de la deuxième cellule de registre commutateur d'entrée/sortie de la première cellule de registre moyen de terminaison pouvant être commandé commutateur d'entrée/sortie de la deuxième cellule de registre moyen d'initialisation commande du moyen d'initialisation commande de l'unité de calcul puces partielles bus externe opérande ayant m fois N positions bloc de registres du premier opérande bloc de registres du deuxième opérande blocs de registres d'autres opérandes élément logique bus de communication local bus de communication de sortie bus de communication d'entrée cellules de registre 1 à m 62a à 62dcellules de registre 1 à m Figure 1 - bus de communication local de puce partielle vers/depuis l'élément logique - cellule 1 - binaire - bloc de registres de la puce partielle i moyen de commande Figure 2 - binaire cellule 1 (12A) CDE 1
CDE
- précharge/pré-décharge Figure 3A - CDE 1 CDE 2 CDE 3 CDE 4
- DONNEES
- INIT
- précharge/pré-décharge Figure 3B - binaire - terminateur Figure 4 Technique antérieure - opérande avec m. N positions - puce partielle 1 puce partielle i puce partielle N - régisseur d'unité de calcul bus Figure 5 Technique antérieure puce partielle i - bus de comm. local pour puce partielle i - registre pour opérande 1 - élément logique moyen de commande Figure 6 - Technique antérieure 1 ef opérande - 2ème opérande - vers l'extérieur - vers l'élément logique - cellule de reg. 1 depuis l'extérieur - depuis l'élément logique - moyen de commande

Claims (11)

Revendications
1. Unité de calcul pour traiter un opérande ayant un certain nombre de positions, caractérisée en ce qu'elle comprend: un certain nombre de puces (41a, 41b, 41c) partielles, le nombre de puces partielles étant inférieur au nombre de positions de l'opérande, dans laquelle une puce partielle a un élément (51) logique et une pluralité de cellules (12a, 12b, 12c, 12d) de registre, dans laquelle un bus (10) de communication est prévu entre la pluralité de cellules de registre et l'élément (51) logique, dans laquelle chacune des cellules de la pluralité de cellules de registre est couplée au bus (10) de communication, de sorte que la pluralité de cellules de registre est montée en parallèle par rapport au bus de communication; et un moyen (20) de commande destiné à commander la pluralité de cellules de registre, de sorte qu'une seule des cellules de registre est couplée au bus de communication pour émettre une position mémorisée de l'opérande vers l'élément logique via le bus de communication ou pour émettre une position à mémoriser de l'élément logique à la cellule de registre, les autres cellules de registre étant découplées du bus de communication.
2. Unité de calcul suivant la revendication 1, caractérisée en ce que le nombre de puces partielles de l'unité de calcul est égal à une mème partie des positions de l'opérande, m étant supérieur ou égal à 2.
3. Unité de calcul suivant la revendication 1 ou 2, caractérisée en ce que le moyen (20) de commande est conçu en outre, pour mémoriser une sortie de l'élément logique dans la même cellule de registre de laquelle une entrée pour calculer la sortie a été émise vers l'élément logique, via le bus (10) de communication.
4. Unité de calcul suivant l'une des revendications 1, 2 ou 3, caractérisée en ce qu'une cellule de registre est conçue en tant que verrou (22a, 22b, 23a, 23b), le verrou comprenant une première entrée pour un binaire et une deuxième entrée pour une binaire inversé.
5. Unité de calcul suivant la revendication 4, caractérisée en ce que le bus de communication comprend une première ligne (13d) de bus, connectée à la première entrée via un premier (26a) commutateur, et une deuxième ligne (15d) de bus, connectée à la deuxième entrée via un deuxième commutateur (26b), et le moyen (40) de commande est conçu pour fermer le premier et le deuxième commutateur d'une seule cellule de mémoire à la fois, le premier commutateur et le deuxième commutateur des autres cellules de registre de la puce partielle étant ouverts.
6. Unité de calcul suivant la revendication 5, conçue pour une opération d'initialisation avec précharge ou pré-décharge, caractérisée en ce que le moyen de commande comprend, en outre, un moyen (30) d'initialisation destiné à ouvrir tous les premiers et deuxièmes commutateurs des cellules de registre de la puce partielle, dans une horloge d'initialisation et caractérisé en ce que, dans l'horloge d'initialisation, à la fois la première ligne (15d) de bus et la deuxième ligne (13d) de bus sont mises dans le même état de tension.
7. Unité de calcul suivant l'une des revendications précédentes, caractérisée en ce que l'unité de calcul est conçue pour traiter une pluralité d'opérandes, une puce partielle comprend un certain nombre de cellules de registre pour chacun des opérandes, et un bus de communication distinct est prévu pour chaque opérande, les 25 cellules de registre d'un opérande étant montées en parallèle par rapport au bus de communication de l'opérande.
8. Unité de calcul suivant l'une des revendications précédentes, caractérisée en ce que l'unité de calcul comporte N puces partielles, et le moyen (20) de commande est destiné à charger les cellules de registre d'une ième puce partielle, de sorte qu'une ième position de l'opérande est mémorisée dans la première cellule de registre, une (i+N)ème position de l'opérande est mémorisée dans la deuxième cellule de registre, et le moyen (20) de commande est conçu traiter tout d'abord, les positions de l'opérande mémorisées dans les premières cellules de registre respectives, dans la totalité des N puces partielles, puis pour traiter les positions de l'opérande mémorisées dans les deuxièmes cellules de registre respectives de la totalité des N puces partielles, afin de traiter l'opérande.
9. Unité de calcul suivant l'une des revendications précédentes, ayant un nombre de puces partielles supérieur ou égal à 140, et caractérisée en ce que le nombre de positions de l'opérande est supérieur ou égal à 280.
10. Unité de calcul suivant l'une des revendications précédentes, conçue pour traiter une pluralité d'opérandes, caractérisée en ce que le bus de communication comprend une pluralité de lignes de bus décentralisées, chaque ligne de bus décentralisée étant prévue 15 pour la pluralité de cellules de registre d'un opérande, et le bus de communication comprend une ligne de bus centrale à laquelle chacune des lignes de bus décentralisées est reliée.
11. Unité de calcul suivant l'une des revendications précédentes, caractérisée en ce que le moyen de commande comprend m lignes de commande pour chaque opérande, chaque ligne de commande étant couplée à une cellule de registre distincte de la pluralité de cellules de registre, et une seule des lignes de commande à la fois présentant un premier état, toutes les autres lignes de commande présentant un deuxième état différent du premier état.
FR0502688A 2004-03-18 2005-03-18 Unite de calcul Expired - Fee Related FR2868565B1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102004013484A DE102004013484B3 (de) 2004-03-18 2004-03-18 Rechenwerk

Publications (2)

Publication Number Publication Date
FR2868565A1 true FR2868565A1 (fr) 2005-10-07
FR2868565B1 FR2868565B1 (fr) 2007-04-20

Family

ID=34745448

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0502688A Expired - Fee Related FR2868565B1 (fr) 2004-03-18 2005-03-18 Unite de calcul

Country Status (4)

Country Link
US (1) US7483936B2 (fr)
KR (1) KR100723084B1 (fr)
DE (1) DE102004013484B3 (fr)
FR (1) FR2868565B1 (fr)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102007007699A1 (de) * 2007-02-09 2008-08-14 IHP GmbH - Innovations for High Performance Microelectronics/Institut für innovative Mikroelektronik Reduktion von Seiten-Kanal-Informationen durch interagierende Krypto-Blocks
US9202041B2 (en) * 2013-02-07 2015-12-01 Fairchild Semiconductor Corporation Permanent lockout attack detection
US9423820B2 (en) 2013-07-31 2016-08-23 Fairchild Semiconductor Corporation Complimentary bit slicing side channel attack defense

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4939575A (en) * 1987-11-13 1990-07-03 Texas Instruments Incorporated Fault-tolerant serial video processor device
US4984204A (en) * 1988-01-28 1991-01-08 Hitachi, Ltd. High speed sensor system using a level shift circuit
US6052705A (en) * 1995-08-30 2000-04-18 Sony Corporation Video signal processor with triple port memory

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4393468A (en) * 1981-03-26 1983-07-12 Advanced Micro Devices, Inc. Bit slice microprogrammable processor for signal processing applications
US4514592A (en) * 1981-07-27 1985-04-30 Nippon Telegraph & Telephone Public Corporation Cryptosystem
DE3631992A1 (de) * 1986-03-05 1987-11-05 Holger Sedlak Kryptographie-verfahren und kryptographie-prozessor zur durchfuehrung des verfahrens
KR930001099B1 (ko) * 1989-12-26 1993-02-15 재단법인 한국전자통신연구소 비트 슬라이스 소자를 이용한 마이크로 컴퓨터 시스템
DE69424626T2 (de) * 1993-11-23 2001-01-25 Hewlett Packard Co Parallele Datenverarbeitung in einem Einzelprozessor
US5784313A (en) * 1995-08-18 1998-07-21 Xilinx, Inc. Programmable logic device including configuration data or user data memory slices
GB9707861D0 (en) * 1997-04-18 1997-06-04 Certicom Corp Arithmetic processor
US6140839A (en) * 1998-05-13 2000-10-31 Kaviani; Alireza S. Computational field programmable architecture
JP2002063025A (ja) * 2000-08-18 2002-02-28 Fujitsu Ltd 可変長データ処理用プロセッサ

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4939575A (en) * 1987-11-13 1990-07-03 Texas Instruments Incorporated Fault-tolerant serial video processor device
US4984204A (en) * 1988-01-28 1991-01-08 Hitachi, Ltd. High speed sensor system using a level shift circuit
US6052705A (en) * 1995-08-30 2000-04-18 Sony Corporation Video signal processor with triple port memory

Also Published As

Publication number Publication date
KR20060043731A (ko) 2006-05-15
KR100723084B1 (ko) 2007-05-29
US7483936B2 (en) 2009-01-27
FR2868565B1 (fr) 2007-04-20
US20050210088A1 (en) 2005-09-22
DE102004013484B3 (de) 2005-08-11

Similar Documents

Publication Publication Date Title
EP0712072B1 (fr) Procédé de mise en oeuvre de réduction modulaire selon la méthode de Montgomery
EP2257904B1 (fr) Procédé de protection de circuit de cryptographie programmable, et circuit protege par un tel procédé
FR2978289A1 (fr) Dispositif ayant un mode de retention de donnees et un mode de traitement de donnees
EP0151653A1 (fr) Dispositif de sérialisation/désérialisation de configuration de bits de longueur variable
WO2017001212A1 (fr) Microprocesseur parallèle stochastique
FR2871310A1 (fr) Circuit logique configurable resistant a une attaque dpa
FR2868565A1 (fr) Unite de calcul
EP0051525B1 (fr) Réseau logique intégré à programmation électrique simplifiée
EP0262032B1 (fr) Additionneur binaire comportant un opérande fixé, et multiplieur binaire parallèle-série comprenant un tel additionneur
FR2866966A1 (fr) Circuit de decryptage et de cryptage
BE898544R (fr) Calculateur associatif permettant une multiplication rapide.
EP0905907B1 (fr) Porte logique OU-exclusif à quatre entrées complémentaires deux à deux et à deux sorties complémentaires, et multiplicateur de fréquence l'incorporant
EP3394799A1 (fr) Circuit electronique, notamment apte a l'implementation de reseaux de neurones a plusieurs niveaux de precision
FR2802733A1 (fr) Bascule de type d maitre-esclave securisee
FR2680262A1 (fr) Circuits integres pour carte a puce et carte a plusieurs puces utilisant ces circuits.
EP0359607B1 (fr) Unité centrale pour système de traitement de l'information
EP1772808B1 (fr) Dispositif et procédé de lecture d'informations dans un ensemble de composants électroniques reliés à un bus de communication, appliqué à la lecture d'une matrice de pixels
EP1012703A1 (fr) Coprocesseur d'arithmetique modulaire comportant un circuit de division entiere
EP2471210B1 (fr) Procédé et dispositif de contre-mesure pour protéger des données circulant dans un composant électronique
FR2885428A1 (fr) Unite de calcul sure et rapide.
FR2986679A1 (fr) Generateur de nombres aleatoires vrais
FR2880217A1 (fr) Montage a mode de securite et a mode d'economie d'energie.
FR2596544A1 (fr) Circuit arithmetique et logique
FR2540261A1 (fr) Multiplieur parallele en circuit integre mos du type pipe-line
FR2925964A1 (fr) Dispositif d'emission

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 12

PLFP Fee payment

Year of fee payment: 13

PLFP Fee payment

Year of fee payment: 14

PLFP Fee payment

Year of fee payment: 16

ST Notification of lapse

Effective date: 20211105