FR2596543A1 - Unite arithmetique et logique - Google Patents
Unite arithmetique et logique Download PDFInfo
- Publication number
- FR2596543A1 FR2596543A1 FR8604507A FR8604507A FR2596543A1 FR 2596543 A1 FR2596543 A1 FR 2596543A1 FR 8604507 A FR8604507 A FR 8604507A FR 8604507 A FR8604507 A FR 8604507A FR 2596543 A1 FR2596543 A1 FR 2596543A1
- Authority
- FR
- France
- Prior art keywords
- block
- sub
- retaining
- whose
- transistor
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/50—Adding; Subtracting
- G06F7/505—Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
- G06F7/506—Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination with simultaneous carry generation for, or propagation over, two or more stages
- G06F7/507—Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination with simultaneous carry generation for, or propagation over, two or more stages using selection between two conditionally calculated carry or sum values
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/50—Adding; Subtracting
- G06F7/505—Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
- G06F7/506—Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination with simultaneous carry generation for, or propagation over, two or more stages
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/3804—Details
- G06F2207/386—Special constructional features
- G06F2207/3872—Precharge of output to prevent leakage
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Mathematical Optimization (AREA)
- General Engineering & Computer Science (AREA)
- Logic Circuits (AREA)
Abstract
UNE UNITE ARITHMETIQUE ET LOGIQUE ("ALU") DE MICROPROCESSEUR EST SUBDIVISEE EN DEUX BLOCS CORRESPONDANT AUX BITS RESPECTIVEMENT 0-15 ET 16-31, LE PREMIER BLOC ETANT DU TYPE A SIMPLE PROPAGATION DE RETENUE ("MANCHESTER CARRY RIPPLE") ET LE DEUXIEME ETANT DU TYPE A SELECTION DE RETENUE ("CARRY SELECT"), CHACUN DES BLOCS ETANT LUI-MEME SUBDIVISE EN SOUS-BLOCS DE QUATRE BITS CHACUN, SOUS-BLOCS MUNIS CHACUN D'UN DISPOSITIF DE SAUT DE RETENUE ("CARRY SKIP") PORTANT SUR LE SOUS-BLOC. A CHAQUE SOUS-BLOC DE QUATRE BITS EST ASSOCIE UN CIRCUIT (LOOBIT, LOOBIS) POUR REALISER LE SAUT DE RETENUE ET REGENERER LES NIVEAUX.
Description
ALUNITE ARITHMETIQUE ET LOGIQUES
La présente invention concerne une unité pour réaliser une opération arithmétique et/ou logique sur deux mots binaires, dite généralement ALU (pour "arithmetic and logic unité en langue anglaise), les mots binaires ayant plus de seize bits chacun, constituée d'une pluralité d'étages en cascade munis chacun de deux entrées, l'une pour un bit du premier mot et l'autre pour le bit correspondant du deuxième mot, le poids de ces bits croissant avec le rang de l'étage considéré, chaque étage étant constitué d'un dispositif programmable de prétraitement qui fournit une combinaison logique à partir des deux bits d'entrée de l'étage, d'au moins undispo- sitif de propagation de la retenue d'un étage au suivant, d'un dispositif de génération de retenue et d'un dispositif pour engendrer le bit résultat de l'étage à partir de la combinaison logique et de la retenue entrante, et l'ensemble des étages étant divisé en au moins deux blocs dont l'un correspond aux poids les plus faibles et l'autre correspond aux poids les plus forts et dont le premier est constitué d'étages à simple propagation de retenue alors que le dernier est constitué d'étages à sélection de retenue.
La présente invention concerne une unité pour réaliser une opération arithmétique et/ou logique sur deux mots binaires, dite généralement ALU (pour "arithmetic and logic unité en langue anglaise), les mots binaires ayant plus de seize bits chacun, constituée d'une pluralité d'étages en cascade munis chacun de deux entrées, l'une pour un bit du premier mot et l'autre pour le bit correspondant du deuxième mot, le poids de ces bits croissant avec le rang de l'étage considéré, chaque étage étant constitué d'un dispositif programmable de prétraitement qui fournit une combinaison logique à partir des deux bits d'entrée de l'étage, d'au moins undispo- sitif de propagation de la retenue d'un étage au suivant, d'un dispositif de génération de retenue et d'un dispositif pour engendrer le bit résultat de l'étage à partir de la combinaison logique et de la retenue entrante, et l'ensemble des étages étant divisé en au moins deux blocs dont l'un correspond aux poids les plus faibles et l'autre correspond aux poids les plus forts et dont le premier est constitué d'étages à simple propagation de retenue alors que le dernier est constitué d'étages à sélection de retenue.
Une telle unité est utilisée dans les calculateurs, et en particulier dans les microprocesseurs.
Une telle unité est décrite dans EP-A- O 164 450. Ce document décrit une unité correspondant à la description cidessus. Elle comporte selon les exemples, 4, 8 ou 9 blocs répartis en deux types dont un s occupe des poids les plus faibles et est à simple propagation de retenue, alors que ceux de l'autre type sont à sélection de retenue et s'occupent des poids les plus forts. En outre chaque étage d'un bloc est constitué d'un dispositif proagrammable de prétraitement logique, d'au moins une chaîne de propagation de retenue, d'un dispositif de génération de retenue et d'un circuit de calcul du résultat.
On distingue habituellement trois types d'organisation dans de telles unités
- Un type à simple propagation de retenue, appelé en langue anglaise manchester carry ripple chain". Ce type est le plus simple et le plus économique en surface de circuit intégré, mais il est lent car chaque étage doit attendre le résultat (retenue) du précédent avant de pouvoir transmettre le sien au suivant.
- Un type à simple propagation de retenue, appelé en langue anglaise manchester carry ripple chain". Ce type est le plus simple et le plus économique en surface de circuit intégré, mais il est lent car chaque étage doit attendre le résultat (retenue) du précédent avant de pouvoir transmettre le sien au suivant.
- Un type dit à anticipation de retenue ou, en langue anglaise "carry look-ahead". Dans ce cas, un circuit logique calcule toutes les retenues à partir de tous les bits d'un mot d'entrée. Il est clair que la dimension de ce circuit croît très vite avec la longueur des mots à traiter, et devient rapidement rédhibitoire. On connaît aussi un système qui ne calcule la retenue que pour les cas où celle-ci mettrait le plus de temps à se propager avec une simple propagation. Ce système permet de faire "sauter" la retenue à travers un bloc de plusieurs étages, d'où son nom anglais "carry-skip". Toutefois il n'agit que dans un cas particulier, et les caractéristiques d'une telle unité restent proches de celles à simple propagation.
- Un type dit à sélection de retenue ou, en langue anglaise "carry select". Dans ce cas, on divise l'unité en au moins deux blocs, et le deuxième, correspondant aux poids les plus forts, est dédoublé : une partie travaille comme si" la retenue issue du bloc correspondant aux poids faibles était "1", et l'autre "comme si" elle était zéro. Lorsque le vrai résultat du bloc correspondant aux poids faibles apparait, il n'y a plus qu'à choisir ("select") entre deux résultats qui sont disponibles puisque le deuxième bloc a travaillé en même temps que le premier. Ce type occupe plus de surface que le premier et moins que le second ; inversement il est plus lent que le second.
L'invention se propose de fournir une unité qui est plus performante que celles des types connus, c'est-à-dire que le rapport de la surface de semiconducteur utilisée à la vitesse de calcul est plus faible.
A cet effet, l'unité selon l'invention, qui est globalement du type à sélection de retenue et comporte dans chacun de ses blocs un système à propagation, est remarquable en ce que chaque bloc est subdivisé en sous-blocs de quelques étages auquel est appliqué un système d'anticipation de retenue sur l'ensemble desdits étages, chacun des sous-blocs étant muni d'un dispositif partiel de calcul de retenue, prenant en compte le cas où les dispositifs de prétraitement des étages d'un même sous-bloc fournissent tous une combinaison logique correspondant à une propagation de retenue ET où une retenue est présente à l'entrée du sous-bloc.
En outre, chaque sous-bloc comporte avantageusement quatre étages.
Le dispositif de calcul partiel de retenue tire parti d'un ensemble de caractéristiques de l'unité. qui font que ledit dispositif est très peu coûteux en surface de semiconducteur, puisqu'il n'utilise qu'un seul transistor par étage, et trois par sous-bloc en plus.
Pour le cas du bloc correspondant aux poids faibles, chaque sous-bloc comporte un dispositif de propagation de la retenue constitué d'une ligne entre une entrée et une sortie de propagation de retenue, ligne interrompue à chaque étage par un transistor, et qui, le niveau bas indiquant la présence d'une retenue, est préchargée au début de chaque opération au travers de transistors MOS d'une première polarité reliés au niveau logique haut et dont les grilles sont toutes reliées à une barre de commande de précharge, et chaque sousbloc est remarquable en ce que le dispositif de calcul partiel de retenue est constitué de deux transistors MOS de la première polarité en série entre la sortie de propagation de retenue du sous-bloc et un point au niveau logique bas, dont la grille de l'un est reliée, via un inverseur, à l'entrée de propagation de retenue du sous-bloc, et dont la grille de l'autre est connectée à une ligne dite d'anticipation qui est reliée à un point au niveau logique haut par un~ transistor MOS d'une deuxième polarité opposée à la première, transistor dont la grille est reliée à la barre de commande de précharge, ladite ligne d'anticipation étant reliée, à chaque étage, à un point au niveau logique bas par un transistor MOS de la première po- larité dont la grille est connectée à la sortie du dispositif de prétraitement de l'étage.
Pour le cas du bloc correspondant aux poids forts, les sous-blocs comportent deux lignes, chacune entre une entrée et une sortie de propagation de retenue, lignes qui sont réunies, à l'entrée du bloc, l'une à un niveau logique haut, et l'autre à un niveau logique bas, chacune d'elle étant interrompue à chaque étage par un transistor et, le niveau bas indiquant la présence d'une retenue, chacune d'elles étant préchargée au début de chaque opération au travers de transistors MOS d'une première polarité reliés au niveau logique haut et dont les grilles sont toutes reliées à une barre de commande de précharge, et chaque sous-bloc est remarquable en ce que le dispositif de calcul partiel de retenue est constitué, d'une part, de deux transistors MOS de la première polarité en série entre une première des sorties de propagation de retenue du sous-bloc et un point au niveau logique bas, dont la grille de l'un est reliée, via un inverseur, à l'entrée de propagation de retenue du sous-bloc correspondant à ladite première sortie, et dont la grille de l'autre est connectée à une ligne dite d'anticipation qui est reliée à un point au niveau logique haut par un transistor d'une deuxième polarité opposée à la première, transistor dont la grille est reliée à la barre de commande de précharge, ladite ligne d'anticipation étant reliée, à chaque étage, à un point au niveau logique bas par un transistor MOS de la première polarité dont la grille est connectée à la sortie du dispositif de prétraitement de l'étage, et, d'autre part, de deux autres transistors de la première polarité en série entre l'autre sortie de propagation de retenue du sous-bloc et un point au niveau logique bas, dont la grille de l'un est reliée, via un inverseur, à l'entrée de propagation de retenue du sous-bloc correspondant à ladite autre sortie, et dont la grille de l'autre est connectée à ladite ligne d'anticipation.
La description qui va suivre, en regard des dessins annexés décrivant des exemples non limitatifs fera bien comprendre comment l'invention peut être réalisée.
La figure 1 représente un bloc diagramme très schématique d'un étage d'une unité.
La figure 2 est un diagramme synoptique de l'ensemble de l'unité.
La figure 3 est un bloc diagramme d'un sous-bloc de quatre étages.
La figure 4 est un schéma électrique d'un étage à simple propagation de retenue.
La figure 5 est un schéma électrique d'un étage prévu pour une sélection de retenue.
La figure 6 est un schéma électrique d'un circuit d'interface entre sous-blocs et de calcul partiel de retenue, adapté aux circuits de la figure 4.
La figure 7 est un schéma électrique d'un circuit analogue à celui de la figure 6, mais prévu pour le cas d'une sélection de retenue, et adapté deux circuits de la figure 5.
La figure 8 illustre un diagramme des temps de l'unité.
La figure 9 représente en détail un élément du diagramme de la figure 2.
Dans l'unité "ALU" décrite ici, qui traite deux mots de 32 bits, un mot de 32 bits est divisé en deux mots de 16 bits et un premier bloc de 16 étages en cascade traite les mots les moins signiticatifs (bits O à 15) et un deuxième bloc de 16 étages en cascade à sélection de retenue traite le mot le plus signifgicatif (bits 16 à 31). Pour obtenir une optimisation de sa topologie, quatre types de cellule de base sont utilisés - "ALUBIT" est un étage de base du premier bloc - "LOOBIT", associée à un sous-bloc de quatre étages ALUBIT dans le premier bloc. Cette cellule est chargée de l'anticipation de retenue et de la regénération des retenues.
-'ALUBIS* et SLOOBISM réalisent les fonctions correspondantes, respectivement, pour le deuxième bloc, donc comportent en plus un dispositif de sélection de retenue.
Chaque bloc de 16 bits est lui-même subdivisé en quatre sous-blocs de 4 bits. Chaque sous-bloc utilise un système de propagation de retenue dit manchester carry ripple", et en plus un système d'anticipation de retenue simplifié dit "carry-skip", portant sur les 4 bits du sous-bloc. En outre le bloc traitant les bits de poids fort utilise une sélection de retenue dont les deux chaînes de propagation sont propagées d'un sous-bloc au suivant, alors que dans l'art antérieur, les deux chaînes de retenue ont respectivement un "1" et un "0" à l'entrée de chaque sous-bloc
L'étage représenté figure 1, qui correspond à un bit, est muni de deux entrées A et B, l'une pour un bit du premier mot et l'autre pour le bit correspondant du deuxième mot, le poids de ces bits croissant avec le rang de l'étage considéré.
L'étage représenté figure 1, qui correspond à un bit, est muni de deux entrées A et B, l'une pour un bit du premier mot et l'autre pour le bit correspondant du deuxième mot, le poids de ces bits croissant avec le rang de l'étage considéré.
Les entrées A et B combinées dans un réseau logique (contenu dans un dispositif programmable de prétraitement PT) avec des lignes de programmation "Prog" engendrent les signaux fournis par le dispositif PT - P est la "condition de propagation" : une retenue est propagée de l'étage précédent vers le suivant.
- G est la "condition de génération" : la retenue en sortie de l'étage considérée COUT est engendrée, quelle que soit la retenue à l'entrée CIN (la retenue est active quand CIN (ou
COUT) est au niveau bas).
COUT) est au niveau bas).
On prévoit aussi parfois un signal K entraînant
l'absence d'une retenue, quelle que soit la retenue CIN. Tou
tefois ce signal est redondant, car on peut admettre que si P et G sont tous deux inactifs, c'est qu'il ne doit pas y avoir de retenue. Le rectangle CH représente le dispositif de propagation de la retenue d'un étage au suivant :on utilise ici le procédé pour gérer la propagation de la retenue, connu sous le nom anglais Zmanchester carry ripplew : le signal P est utilisé pour propager CIN vers COUT , le signal G est utilisé pour amener à zéro la sortie COUT. Si P et K sont tous deux à zéro, la sortie COUT est au niveau haut. Le dispositif CH comporte en outre un transistor en série entre CIN et COUT pour commander la propagation.Enfin le dispositif R fournit le résultat, c'est-à-dire le bit résultant, de rang correspondant à l'étage, à partir du signal P et de la retenue entrante
C.
l'absence d'une retenue, quelle que soit la retenue CIN. Tou
tefois ce signal est redondant, car on peut admettre que si P et G sont tous deux inactifs, c'est qu'il ne doit pas y avoir de retenue. Le rectangle CH représente le dispositif de propagation de la retenue d'un étage au suivant :on utilise ici le procédé pour gérer la propagation de la retenue, connu sous le nom anglais Zmanchester carry ripplew : le signal P est utilisé pour propager CIN vers COUT , le signal G est utilisé pour amener à zéro la sortie COUT. Si P et K sont tous deux à zéro, la sortie COUT est au niveau haut. Le dispositif CH comporte en outre un transistor en série entre CIN et COUT pour commander la propagation.Enfin le dispositif R fournit le résultat, c'est-à-dire le bit résultant, de rang correspondant à l'étage, à partir du signal P et de la retenue entrante
C.
La figure 2 montre les 32 étages de l'ALU, numérotés de O à 31. (Ces numéros indiquant le rang de chaque étage n'ont bien entendu rien à voir avec les références, de même valeur numérique, désignant les éléments sur les autres figures).
L'ensemble de l'ALU est divisé en deux blocs dont l'un comprend les étages de O à 15, c'est-à-dire les poids les plus faibles, et l'autre comprend les étages 16 à 31, c'est-àdire les poids les plus forts. Les étages O à 15 sont d'un type à simple propagation de retenue, et les étages 16 à 31 sont d'un type prévu pour une sélection de retenue.
Chacun des blocs est lui-même subdivisé en sous -blocs de quelques étages, ici de quatre étages. Ces sous-blocs pourraient comprendre un nombre d'étages différent, mais il a été trouvé que le nombre quatre permet d'obtenir les meilleures performances.
Chacun des sous-blocs est muni d'un dispositif de calcul partiel de la retenue sortante du sous-bloc, prenant en compte le cas où les dispositifs de prétraitement des étages d'un meme sous-bloc fournissent tous une combinaison logique correspondant à une propagation de retenue ET où une retenue est présente à l'entrée du sous-bloc.
Ce dispositif est représenté avec la référence
LOOBIT, pour le premier bloc, et avec la référence LOOBIS pour le deuxième bloc. La retenue appelée C15 issue du premier bloc
COUT (15) est appliquée à l'entrée de retenue CIN du deuxième bloc (donc COUT (15) = CIN (16). En outre sa valeur inverse
C15 BIS est également fournie au deuxième bloc, au moyen d'un inverseur. Cet inverseur d'un type particulier, représenté dans un rectangle en pointillés, sera décrit plus loin (Fig.9).
LOOBIT, pour le premier bloc, et avec la référence LOOBIS pour le deuxième bloc. La retenue appelée C15 issue du premier bloc
COUT (15) est appliquée à l'entrée de retenue CIN du deuxième bloc (donc COUT (15) = CIN (16). En outre sa valeur inverse
C15 BIS est également fournie au deuxième bloc, au moyen d'un inverseur. Cet inverseur d'un type particulier, représenté dans un rectangle en pointillés, sera décrit plus loin (Fig.9).
La figure 3 représente plus en détail un sous-bloc comportant quatre étages ALUBIT identiques et un circuit
LOOBIT. Le schéma électrique d'un étage ALUBIT est représenté par la figure 4
Les lignes de programmation a, B, r, 5 attaquent un réseau de portes logiques constituées chacune par un transistor N-MOS : la ligne a est reliée à la source du transistor 6, la ligne ss à celle du transistor 7, la ligne z à celle du transistor 11, et la ligne 6 à celle du transistor 10. Le drain du transistor 6 est réuni à celui du transistor 7 et à la source du transistor 8 dont le drain est réuni à une connexion logique portant le signal P. De même le drain du transistor il est réuni à celui du transistor 10 et à la source du transistor 9 dont le drain est réuni à la connexion logique P. Les grilles des transistors 6 et 11 sont réunies à l'entrée binaire B via un inverseur 13, celles des transistors 7 et 10 sont connectées à l'entrée B, celle du transistor 9 est connectée à l'entrée binaire A et celle du transistor 8 est reliée, via un inverseur 12, à l'entrée A.
LOOBIT. Le schéma électrique d'un étage ALUBIT est représenté par la figure 4
Les lignes de programmation a, B, r, 5 attaquent un réseau de portes logiques constituées chacune par un transistor N-MOS : la ligne a est reliée à la source du transistor 6, la ligne ss à celle du transistor 7, la ligne z à celle du transistor 11, et la ligne 6 à celle du transistor 10. Le drain du transistor 6 est réuni à celui du transistor 7 et à la source du transistor 8 dont le drain est réuni à une connexion logique portant le signal P. De même le drain du transistor il est réuni à celui du transistor 10 et à la source du transistor 9 dont le drain est réuni à la connexion logique P. Les grilles des transistors 6 et 11 sont réunies à l'entrée binaire B via un inverseur 13, celles des transistors 7 et 10 sont connectées à l'entrée B, celle du transistor 9 est connectée à l'entrée binaire A et celle du transistor 8 est reliée, via un inverseur 12, à l'entrée A.
Avec seulement les six transistors 6 à 11, et les deux inverseurs 12, 13, l'application linéaire complète
P P = a A.B + ss A.B + #.A.B.+ 5.A.B peut être réalisée.
P P = a A.B + ss A.B + #.A.B.+ 5.A.B peut être réalisée.
Un inverseur supplémentaire 4 donne le signal P.
Cet inverseur est rebouclé par un transistor p-mos 5 pour améliorer le niveau haut du signal. Le transistor P-MOS 5 est juste assez actif pour procurer un bon signal haut après le réseau N-mos; il est utilisé à la place d'une charge statique ou reliée à une horloge.
L'inverseur 4 relie la ligne logique P à la grille d'un transistor N-MOS 15, inséré entre l'entrée de retenue CN et la sortie de retenue COUT et qui constitue un élément d'une chaine de propagation de retenue d'un étage à l'autre.
Le circuit est relié à une horloge (non représentée) par une ligne "Prech". Lors d'un premier temps cette ligne est au niveau logique haut et le transistor NMOS 16 est passant, (sa grille est reliée à la ligne "Prech") et relie donc un point au niveau haut (l'alimentation VDD), connecté à son drain, à la sortie COUT, reliée à sa source. Au cours d'un deuxième temps la ligne "Prech" est à zéro et la sortie
COUT est isolée de VDD.
COUT est isolée de VDD.
C'est à ce moment que les opération logiques du circuit sont réalisées. Le diagramme des temps sera expliqué plus en détail ultérieurement. On se rend facilement compte que si un niveau haut est souhaité pour COUT, il suffit de ne pas décharger la ligne COUT, en d'autres termes il suffit de ne rien faire. C'est pourquoi le signal K de la figure 1 n'est pas utile ici. Rappelons que CIN et COUT sont au niveau bas lorsqu'une retenue est présente.
La sortie COUT peut être déchargée par différents moyens : soit P = O et un zéro sur CIN peut être propagé, soit
P = 1 (P = O) et un circuit spécifique appelé "générateur de retenue engendre une retenue COUT en déchargeant la ligne
COUT.
P = 1 (P = O) et un circuit spécifique appelé "générateur de retenue engendre une retenue COUT en déchargeant la ligne
COUT.
Ce générateur de retenue est constitué par les trois transistors NMOS 1, 2, 3 en série entre la sortie COUT de retenue et un point de potentiel correspondant au niveau logique bas ("masse") dont les grilles sont reliées respecti vement à l'une des entrées de données (A), à la connexion portant ladite combinaison logique (P), et à la ligne d'inhibition KILL. Cette ligne a pour but d'inhiber toute production de retenue, quelle que soit la combinaison logique P, par exemple dans le cas d'opérations logiques et non pas arithmétiques. Si la ligne KILL est à la masse, le transistor 3 est bloqué et l'ensemble des transistor 1,2, 3 ne peut jamais décharger la ligne COUT.
La dernière partie du circuit est un montage OU exclusif entre CIN et P. Le signal CIN est obtenu à la sortie de l'inverseur 17 à partir de CIN. Le signal CIN est appliqué à la grille du transistor NMOS 19 et à la source du transistor
NMOS 18. Le signal P est appliqué à la grille du transistor 18 et à la source du transistor 19. Les drains des deux transistors sont réunis ensemble, et à la sortie de résultat S(i), via un inverseur 20. Deux transistors P-MOS 21, 22 en série à partir de VDD sont reliés au point commun des drains des transistors 18, 19, et leurs grilles sont reliées respectivement au signal P et au signal CIN. Si les deux signaux CIN et
P sont à zéro, les transistors 18, 19 sont bloqués et leur drain est "tiré" vers VDD par les transistors 21, 22 qui eux, étant de polarité opposée à celle des transistors 18, 19, sont passants.Si CIN et P sont hauts, les transistors 18, 19 sont passants et transmettent tous deux le niveau haut. Si CIN est haut et P bas, le transistor 19 transmet le zéro de P, et si P est haut et CIN est bas, le transistor 18 transmet le zéro de CIN. La sortie de l'inverseur 20 est donc haute si le couple CIN-P a des valeurs 0-1 ou t-O, et basse pour 0-0 et 1-1.
NMOS 18. Le signal P est appliqué à la grille du transistor 18 et à la source du transistor 19. Les drains des deux transistors sont réunis ensemble, et à la sortie de résultat S(i), via un inverseur 20. Deux transistors P-MOS 21, 22 en série à partir de VDD sont reliés au point commun des drains des transistors 18, 19, et leurs grilles sont reliées respectivement au signal P et au signal CIN. Si les deux signaux CIN et
P sont à zéro, les transistors 18, 19 sont bloqués et leur drain est "tiré" vers VDD par les transistors 21, 22 qui eux, étant de polarité opposée à celle des transistors 18, 19, sont passants.Si CIN et P sont hauts, les transistors 18, 19 sont passants et transmettent tous deux le niveau haut. Si CIN est haut et P bas, le transistor 19 transmet le zéro de P, et si P est haut et CIN est bas, le transistor 18 transmet le zéro de CIN. La sortie de l'inverseur 20 est donc haute si le couple CIN-P a des valeurs 0-1 ou t-O, et basse pour 0-0 et 1-1.
Il est facile de vérifier que les trois parties cidessus remplissent les fonctions suivantes
P = a.A.B. + S.A.B. + #.A.B. + 5.A.B.
P = a.A.B. + S.A.B. + #.A.B. + 5.A.B.
COUT = (A.P.K.).(P+CIN) ou bien COUT = A.K.P. + P.CIN ou K = KILL
S = CIN e p
Il faut remarquer que l'équation linéaire P(a, ss, rr 6) permet seize combinaisons : seulement huit sont réellement utilisées ici, mais on pourrait imaginer une ALU plus universelle. Si l'on désire analyser plus en détail les combinaisons utiles, il est aisé de vérifier que l'on obtient les résultats d'opération suivants
S = CIN e p
Il faut remarquer que l'équation linéaire P(a, ss, rr 6) permet seize combinaisons : seulement huit sont réellement utilisées ici, mais on pourrait imaginer une ALU plus universelle. Si l'on désire analyser plus en détail les combinaisons utiles, il est aisé de vérifier que l'on obtient les résultats d'opération suivants
<tb> <SEP> 33
<tb> <SEP> a > r.
<tb>
<tb> <SEP> a > r.
<tb>
Lig#es <SEP> de
<tb> Ligrles <SEP> de <SEP> a <SEP> as
<tb> programnation <SEP> =i
<tb> a <SEP> 8 <SEP> y <SEP> # <SEP> H, <SEP> S(i) <SEP> COUT <SEP> I~Qi <SEP> #I
<tb> <SEP> Signal <SEP> logique <SEP> P
<tb> 1 <SEP> O <SEP> O <SEP> 1 <SEP> 1 <SEP> addition <SEP> A.B.cIN+A.B <SEP> A.B <SEP> A.B+A.B= <SEP> A <SEP> ou <SEP> B
<tb> <SEP> excl
<tb> O <SEP> 1 <SEP> 1 <SEP> O <SEP> 1 <SEP> soustract. <SEP> A.B.CIN+A.B <SEP> A.<SEP> a <SEP> A3y+B.A
<tb> O <SEP> 1 <SEP> O <SEP> 1 <SEP> 1 <SEP> A <SEP> décalé <SEP> A <SEP> A <SEP> 1 <SEP> Si <SEP> B=O
<tb> 11000 <SEP> A <SEP> 1 <SEP> O <SEP> A
<tb> 0 <SEP> O <SEP> O <SEP> 1 <SEP> O <SEP> A <SEP> ou <SEP> B <SEP> 1 <SEP> | <SEP> O <SEP> A.B
<tb> 1 <SEP> O <SEP> O <SEP> 1 <SEP> O <SEP> A <SEP> ou <SEP> B <SEP> 1 <SEP> | <SEP> O <SEP> A.B+A.B
<tb> <SEP> - <SEP> excl
<tb> O <SEP> 1 <SEP> 1 <SEP> 1 <SEP> O <SEP> A <SEP> et <SEP> B <SEP> 1 <SEP> O <SEP> A.B
<tb> 1 <SEP> 1 <SEP> O <SEP> 1 <SEP> O <SEP> A <SEP> et <SEP> B <SEP> 1 <SEP> O <SEP> oA.B
<tb>
La figure 5 représente un circuit du même genre, nommé ALUBIS, et prévu pour mettre -en oeuvre un dispositif de sélection de retenue.On entend par là qu'au lieu de prévoir une chaîne propageant la retenue d'un étage au suivant et d'un bloc au suivant, et avec laquelle chaque bloc doit attendre le résultat du bloc précédent, on prévoit dans le deuxième bloc deux chaînes dont l'une introduit une retenue et l'autre une "non-retenue". (Ces deux entrées sont indiquées respectivement par O et 1 à l'entrée du premier circuit LOOBIS de la figure 2). Les calculs sont faits dans le 2e bloc en même temps que dans le bloc précédent, après quoi, le résultat (retenue) du premier bloc étant disponible, on n'a plus qu'à choisir entre les deux chaînes dans le 2e bloc. Le circuit de la figure 5 comporte donc deux chaînes de propagation reliant deux entrées de retenue CIN, CINBIS à deux sorties de retenue COUT,
COUTBIS.
<tb> Ligrles <SEP> de <SEP> a <SEP> as
<tb> programnation <SEP> =i
<tb> a <SEP> 8 <SEP> y <SEP> # <SEP> H, <SEP> S(i) <SEP> COUT <SEP> I~Qi <SEP> #I
<tb> <SEP> Signal <SEP> logique <SEP> P
<tb> 1 <SEP> O <SEP> O <SEP> 1 <SEP> 1 <SEP> addition <SEP> A.B.cIN+A.B <SEP> A.B <SEP> A.B+A.B= <SEP> A <SEP> ou <SEP> B
<tb> <SEP> excl
<tb> O <SEP> 1 <SEP> 1 <SEP> O <SEP> 1 <SEP> soustract. <SEP> A.B.CIN+A.B <SEP> A.<SEP> a <SEP> A3y+B.A
<tb> O <SEP> 1 <SEP> O <SEP> 1 <SEP> 1 <SEP> A <SEP> décalé <SEP> A <SEP> A <SEP> 1 <SEP> Si <SEP> B=O
<tb> 11000 <SEP> A <SEP> 1 <SEP> O <SEP> A
<tb> 0 <SEP> O <SEP> O <SEP> 1 <SEP> O <SEP> A <SEP> ou <SEP> B <SEP> 1 <SEP> | <SEP> O <SEP> A.B
<tb> 1 <SEP> O <SEP> O <SEP> 1 <SEP> O <SEP> A <SEP> ou <SEP> B <SEP> 1 <SEP> | <SEP> O <SEP> A.B+A.B
<tb> <SEP> - <SEP> excl
<tb> O <SEP> 1 <SEP> 1 <SEP> 1 <SEP> O <SEP> A <SEP> et <SEP> B <SEP> 1 <SEP> O <SEP> A.B
<tb> 1 <SEP> 1 <SEP> O <SEP> 1 <SEP> O <SEP> A <SEP> et <SEP> B <SEP> 1 <SEP> O <SEP> oA.B
<tb>
La figure 5 représente un circuit du même genre, nommé ALUBIS, et prévu pour mettre -en oeuvre un dispositif de sélection de retenue.On entend par là qu'au lieu de prévoir une chaîne propageant la retenue d'un étage au suivant et d'un bloc au suivant, et avec laquelle chaque bloc doit attendre le résultat du bloc précédent, on prévoit dans le deuxième bloc deux chaînes dont l'une introduit une retenue et l'autre une "non-retenue". (Ces deux entrées sont indiquées respectivement par O et 1 à l'entrée du premier circuit LOOBIS de la figure 2). Les calculs sont faits dans le 2e bloc en même temps que dans le bloc précédent, après quoi, le résultat (retenue) du premier bloc étant disponible, on n'a plus qu'à choisir entre les deux chaînes dans le 2e bloc. Le circuit de la figure 5 comporte donc deux chaînes de propagation reliant deux entrées de retenue CIN, CINBIS à deux sorties de retenue COUT,
COUTBIS.
Pour la retenue dans le deuxième bloc, la sélection nécessite un peu de matériel supplémentaire. Cependant deux blocs complètement différents ne sont pas nécessaires. La différence principale entre ALUBIT et ALUBIS d'une part, et entre
LOOBIT et LOOBIS d'autre part, est seulement que la chaîne de propagation est en double.
LOOBIT et LOOBIS d'autre part, est seulement que la chaîne de propagation est en double.
Les éléments de la figure 5 qui ne diffèrent pas de ceux de la figure 4 portent les mêmes références et ne seront pas décrits à nouveau. Les éléments qui, bien que nouveaux par rapport à ceux de la figure 4, ont une fonction semblable, portent la même référence à laquelle est ajoutée la lettre B.
Le générateur du signal P est exactement le même que pour ALUBIT, ce qui est intéressant pour la topographie du circuit, et seulement un transistor de mise à la masse pour la génération de retenue est en double. C'est ainsi que le dispositif de génération de retenue sur la ligne CIN, COUT est constitué des trois transistors N-MOS 1, 2, 3, en série entre la ligne COUT et la masse. Il est toutefois nécessaire, comme c'est le cas ici, que le transistor placé du côté de la ligne COUT soit celui dont la grille est reliée à la connexion logique P, alors que dans le schéma de la figure 4 l'ordre de mise en série des trois transistors était indifférent.Alors le dispositif de génération de retenue pour la ligne
COUTBIS(i) peut n'être constitué que d'un seul transistor
N-MOS 1B dont la grille est reliée à la connexion logique P, et qui est branché avec son drain relié à la ligne de propagation COUTBIS(i) et sa source reliée à celle du transistor 1 dont le drain est relié à la ligne de propagation de retenue COUT(i). Bien entendu il faut néanmoins un autre transistor supplémentaire 16B pour réaliser la précharge de la ligne COUTBIS à partir de la ligne "Prech". Les lignes C15 et
C15BIS et les transistors 26, 26B servent à réaliser le choix entre les informations portées par les lignes CIN, CINBIS pour le calcul du résultat S(i) de l'étage, choix qui a été expliqué plus haut.Les lignes C15 et C15bis apportent donc à tous les étages du deuxième bloc la retenue du bloc précédent, et l'inverse de cette retenue, respectivement, lorsque le bloc précédent a terminé ses calculs. Les transistors 26 et 26B dont les grilles sont respectivement reliées à la ligne C15 et à la ligne C15BIS, sont insérés entre la sortie des inverseurs, respectivement 17 et 17B, et la source du transistor 18. Selon la retenue C15/C15BlS du bloc précédent, c'est donc l'un ou l'autre des transistors 26, 26B qui est passant et ceci a pour effet de sélectionner CIN(i) ou CINBIS(i), respectivement, dans chacun des 16 étages du 2e bloc.
COUTBIS(i) peut n'être constitué que d'un seul transistor
N-MOS 1B dont la grille est reliée à la connexion logique P, et qui est branché avec son drain relié à la ligne de propagation COUTBIS(i) et sa source reliée à celle du transistor 1 dont le drain est relié à la ligne de propagation de retenue COUT(i). Bien entendu il faut néanmoins un autre transistor supplémentaire 16B pour réaliser la précharge de la ligne COUTBIS à partir de la ligne "Prech". Les lignes C15 et
C15BIS et les transistors 26, 26B servent à réaliser le choix entre les informations portées par les lignes CIN, CINBIS pour le calcul du résultat S(i) de l'étage, choix qui a été expliqué plus haut.Les lignes C15 et C15bis apportent donc à tous les étages du deuxième bloc la retenue du bloc précédent, et l'inverse de cette retenue, respectivement, lorsque le bloc précédent a terminé ses calculs. Les transistors 26 et 26B dont les grilles sont respectivement reliées à la ligne C15 et à la ligne C15BIS, sont insérés entre la sortie des inverseurs, respectivement 17 et 17B, et la source du transistor 18. Selon la retenue C15/C15BlS du bloc précédent, c'est donc l'un ou l'autre des transistors 26, 26B qui est passant et ceci a pour effet de sélectionner CIN(i) ou CINBIS(i), respectivement, dans chacun des 16 étages du 2e bloc.
Les différents inverseurs mentionnés ne sont pas représentés en détail, leur réalisation étant parfaitement connue, par exemple dans la technologie dite C-MOS (un N-MOS et un P-MOS).
Il est clair que les termes "haut" et "bas" signifient respectivement "à l'alimentation et ià la massez et que si on employait des transistors de polarités respectivement inverses, le niveau 'haut" serait seulement haut en valeur absolue.
La figure 3 explique l'anticipation partielle de retenue d'un sous-bloc de 4 bits. Le circuit est essentiellement un circuit à anticipation de retenue, pour lequel l'ensemble logique de calcul de retenue qui "consomme" beaucoup de surface de semiconducteur a été presque entièrement éliminé.
Un circuit simple est présent pour détecter quand une retenue entrant dans le groupe de 4 étages va "sauter" ce groupe.
Le sous-bloc de la figure 3 contient quatre circuits ALUBIT identiques dont l'un est désigné par un rectangle en pointillés avec la référence ALUBIT", et un circuit
LOOBIT. Chaque rectangle i-1, i-2, i-3, i-4 symbolise un dispositif programmable de prétraitement (réseau à six transistors N-MOS) et pour simplifier, la génération de retenue par A, P, KILL n'est pas représentée, non plus que les circuits OU exclusifs de sortie. Le dispositif de calcul partiel de retenue est constitué de deux transistors N-MOS 36, 37 en série entre la sortie CINSi) de propagation de retenue et un point au niveau logique bas, c'est-à-dire à la masse. La grille de l'un (37) est reliée, via un inverseur 32, à l'entrée CIN(i-4) de propagation de retenue du sous-bloc.La grille de l'autre (36) est connectée à la ligne d'anticipation
LOOKA. Cette ligne est reliée à un point au niveau logique haut VDD (alimentation) par un transistor P-MOS 39, dont la grille est connectée à la ligne (ou barre) de commande de précharge Prech". La ligne d'anticipation LOOKA est en outre reliée, à chaque étage, à un point au niveau logique bas (masse) par un transistor N-MOS dont la grille est connectée à la connexion logique P du réseau de prétraitement de chaque étage. Ce transistor est figuré, pour simplifier la figure, par un symbole connu qui est un cercle dans lequel se croisent la ligne LOOKA et une ligne P, un tiret tangent au cercle indiquant quelle est la ligne reliée à la grille du transistor.
LOOBIT. Chaque rectangle i-1, i-2, i-3, i-4 symbolise un dispositif programmable de prétraitement (réseau à six transistors N-MOS) et pour simplifier, la génération de retenue par A, P, KILL n'est pas représentée, non plus que les circuits OU exclusifs de sortie. Le dispositif de calcul partiel de retenue est constitué de deux transistors N-MOS 36, 37 en série entre la sortie CINSi) de propagation de retenue et un point au niveau logique bas, c'est-à-dire à la masse. La grille de l'un (37) est reliée, via un inverseur 32, à l'entrée CIN(i-4) de propagation de retenue du sous-bloc.La grille de l'autre (36) est connectée à la ligne d'anticipation
LOOKA. Cette ligne est reliée à un point au niveau logique haut VDD (alimentation) par un transistor P-MOS 39, dont la grille est connectée à la ligne (ou barre) de commande de précharge Prech". La ligne d'anticipation LOOKA est en outre reliée, à chaque étage, à un point au niveau logique bas (masse) par un transistor N-MOS dont la grille est connectée à la connexion logique P du réseau de prétraitement de chaque étage. Ce transistor est figuré, pour simplifier la figure, par un symbole connu qui est un cercle dans lequel se croisent la ligne LOOKA et une ligne P, un tiret tangent au cercle indiquant quelle est la ligne reliée à la grille du transistor.
Le transistor P-MOS 39 est passant quand "Prech est au niveau bas, c'est-à-dire pendant la phase de calcul. il tire donc la ligne LOOKA vers VDD en conflit avec les autres éléments 14 des quatre étages. Mais comme ce transistor P-MOS est équivalent à une résistance de valeur ohmique beaucoup plus forte que celle des transistors N-MOS 14, ceux-ci peuvent imposer un niveau bas.
La retenue propagée à partir de l'entrée CIN(i-4) au travers de quatre transistors en série dont, pour simplifier, un seul est désigné par la référence 15 (comme dans la figure 4), est regénérée avant d'être transmise au sous-bloc suivant par un circuit constitué d'un inverseur 33 dont la sortie attaque la grille d'un transistor 35 branché entre la masse et la ligne de sortie CIN(i), ligne qui est préchargée par un transistor 34 de la manière expliquée plus haut à propos de la figure 4. (Sur la figure, toutes les connexions se terminant par un "petit rond" sans autre indication sont reliées à VDD).A titre d'exemple on peut mentionner la correspondance entre les rangs d'étages mentionnés sur La figure 2 et ceux de la figure 3, où CIN(i) correspond par exemple à CIN(8) de la figure 2,CIN(i-4) correspond à CIN(4), COUT(i-1) à l'entrée de l'inverseur 33 de LOOBIT correspond à
COUT(7). On trouverait une correspondance semblable avec les autres sous-blocs de la figure 2 dont les entrées sorties ne portent pas de référence.
COUT(7). On trouverait une correspondance semblable avec les autres sous-blocs de la figure 2 dont les entrées sorties ne portent pas de référence.
La figure 6 représente à nouveau le module LOOBIT dont tous les éléments ont été décrits avec la figure 3. En bas et à droite de la figure 6 est représenté le rectangle symbolique utilisé pour représenter LOOBIT dans la figure 2, avec ses entrées/sorties placées aux mêmes endroits et munies de références. Ceci permet de comprendre comment le circuit de la figure 6 est utilisé dans la figure 2.
La figure 7 représente le schéma électrique d'un module LOOBIS tel que ceux associés aux sous-blocs du deuxième bloc (bits 16 à 31) de la figure 2. Comme pour la figure 6, un rectangle symbolique en bas à droite permet de relier la figure 7 à la figure 2. Le circuit de la figure 7 comporte une quantité d'éléments identiques à ceux de la figure 6, dont les références sont les mêmes, et des éléments supplémentaires ayant une fonction identique, qui sont alors référencés par le même numéro, suivi d'un B.
Le circuit LOOBIS est associé à quatre circuits
ALUBIS (fig. 5) et comporte donc des éléments permettant de traiter les données supplémentaires présentes dans ALUBIS, c'est-à-dire notamment CINBIS, COUTBIS. Par rapport au circuit
LOOBIT de la figure 6, le circuit LOOBIS comporte une deuxième entrée de retenue CINBISti-4), une deuxième entrée
COUTBIS(i-1), une deuxième sortie CINBIS(i) et une deuxième sortie CINBIS(i). Pour ces éléments, la description fournie à propos du module LOOBIS (figure 3) se lit de la même façon en ajoutant BIS ou B aux références. La ligne LOOKA par contre reste unique, et est reliée aux grilles des deux transistors 36 et 36B.
ALUBIS (fig. 5) et comporte donc des éléments permettant de traiter les données supplémentaires présentes dans ALUBIS, c'est-à-dire notamment CINBIS, COUTBIS. Par rapport au circuit
LOOBIT de la figure 6, le circuit LOOBIS comporte une deuxième entrée de retenue CINBISti-4), une deuxième entrée
COUTBIS(i-1), une deuxième sortie CINBIS(i) et une deuxième sortie CINBIS(i). Pour ces éléments, la description fournie à propos du module LOOBIS (figure 3) se lit de la même façon en ajoutant BIS ou B aux références. La ligne LOOKA par contre reste unique, et est reliée aux grilles des deux transistors 36 et 36B.
Lorsqu'on considère l'ensemble de quatre circuits
ALUBIS et d'un circuit LOOBIS, constituant un desdits sousblocs, ces derniers comportent donc deux lignes, chacune entre une entrée CIN, CINBIS et une sortie COUT, COUTBIS de propagation de retenue, lignes qui sont réunies, à l'entrée du bloc, l'une à un point au niveau logique haut, et l'autre à un point au niveau logique bas, chacune d'elle étant interrompue à chaque étage par un transistor 15, 15B et, le niveau bas indiquant la présence d'une retenue, chaque ligne étant préchargée au début de chaque opération au travers de transistors MOS 16, 16B d'une première polarité reliés au niveau logique haut et dont les grilles sont toutes reliées à une barre "Prech" de commande de précharge, et le dispositif de calcul partiel de retenue d'un tel sous-bloc est constitué, d'une part, de deux transistors MOS 36, 37 de la première polarité en série entre une première des sorties de propagation de retenue du sous-bloc qui est aussi l'entrée CIN(i) du sousbloc suivant, et un point au niveau logique bas, dont la grille de l'un (37) est reliée, via un inverseur 32 à l'entrée de propagation de retenue CIN(i-4) du sous-bloc correspondant à ladite première sortie, et dont la grille de l'autre (36) est connectée à une ligne dite d'anticipation LOOKA qui est reliée à un point au niveau logique haut par un transistor 39 d'une deuxième polarité opposée à la première, transistor dont la grille est reliée à la barre "Prech" de commande de précharge, ladite ligne d'anticipation LOOKA étant reliée, à chaque étage, à un point au niveau logique bas par un transistor MOS 14 de la première polarité dont la grille est connectée à la sortie (P) du dispositif de prétraitement de l'étage, et, d'autre part, de deux autres transistors 36B, 37B de la première polarité en série entre l'autre sortie de propagation de retenue du sous-bloc qui est aussi l'entrée CINBIS(i) du sous-bloc suivant et un point au niveau logique bas, dont la grille de l'un 37B est reliée, via un inverseur 32B, à l'entrée de propagation de retenue du sous-bloc correspondant à ladite autre sortie, et dont la grille de l'autre 36B est connectée à ladite ligne d'anticipation LOOKA.
ALUBIS et d'un circuit LOOBIS, constituant un desdits sousblocs, ces derniers comportent donc deux lignes, chacune entre une entrée CIN, CINBIS et une sortie COUT, COUTBIS de propagation de retenue, lignes qui sont réunies, à l'entrée du bloc, l'une à un point au niveau logique haut, et l'autre à un point au niveau logique bas, chacune d'elle étant interrompue à chaque étage par un transistor 15, 15B et, le niveau bas indiquant la présence d'une retenue, chaque ligne étant préchargée au début de chaque opération au travers de transistors MOS 16, 16B d'une première polarité reliés au niveau logique haut et dont les grilles sont toutes reliées à une barre "Prech" de commande de précharge, et le dispositif de calcul partiel de retenue d'un tel sous-bloc est constitué, d'une part, de deux transistors MOS 36, 37 de la première polarité en série entre une première des sorties de propagation de retenue du sous-bloc qui est aussi l'entrée CIN(i) du sousbloc suivant, et un point au niveau logique bas, dont la grille de l'un (37) est reliée, via un inverseur 32 à l'entrée de propagation de retenue CIN(i-4) du sous-bloc correspondant à ladite première sortie, et dont la grille de l'autre (36) est connectée à une ligne dite d'anticipation LOOKA qui est reliée à un point au niveau logique haut par un transistor 39 d'une deuxième polarité opposée à la première, transistor dont la grille est reliée à la barre "Prech" de commande de précharge, ladite ligne d'anticipation LOOKA étant reliée, à chaque étage, à un point au niveau logique bas par un transistor MOS 14 de la première polarité dont la grille est connectée à la sortie (P) du dispositif de prétraitement de l'étage, et, d'autre part, de deux autres transistors 36B, 37B de la première polarité en série entre l'autre sortie de propagation de retenue du sous-bloc qui est aussi l'entrée CINBIS(i) du sous-bloc suivant et un point au niveau logique bas, dont la grille de l'un 37B est reliée, via un inverseur 32B, à l'entrée de propagation de retenue du sous-bloc correspondant à ladite autre sortie, et dont la grille de l'autre 36B est connectée à ladite ligne d'anticipation LOOKA.
La figure 8 montre un diagramme des temps qui aidera à mieux comprendre le fonctionnement de l'unité. Il peut y avoir par exemple dans les unités du genre décrit ici
- un temps T1 pour lire les données d'entrée, engendrer les signaux P, G (éventuellement K) et réaliser les précharges.
- un temps T1 pour lire les données d'entrée, engendrer les signaux P, G (éventuellement K) et réaliser les précharges.
- un temps T2 pour réaliser des calculs dans l'ALU et verrouiller les sorties.
- un temps T3 pour écrire les résultats de l'ALU en mémoire.
L'unité centrale d'un microprocesseur travaille avec deux phases d'horloge #1 et #2 non chevauchantes, et les trois temps T1, T2, T3. Les entrées de l'ALU et les lignes de programmation doivent être prêtes pendant T1. La phase #2 ainsi que les signaux P et KILL doivent être valides avant la fin de T1. L'ALU est préchargé du début de T3 à la fin de T1. Dans le pire cas, la quinzième retenue C15 est prête avant la fin de T2.~1, de telle façon qu'il en soit de même des commandes de sélection de retenue CSC.Ainsi l'étage de sortie du second bloc peut être préchargé jusqu'à T2.~1, la sélection de rete nue est réalisée et le résultat du mot le plus significatif est donné au début de T2.#2. Les entrées A et B sont préchargées durant T3, de même que les signaux a, , r, 6.
Ainsi durant cette fenêtre de temps P est haut, et P est bas.
Pendant T1, a, ss, y, 5, A, B prennent leur valeur signifiante si bien que, juste avant la fin de T1 les signaux P et P sont stables. La ligne d'anticipation de retenue LOOKA fonctionne de la manière suivante : puisque la charge est un transistor
P-mos, et que les signaux a, fi r, 5 sont préétablis au niveau haut durant la précharge, les signaux Pi-1, Pi-2, Pi-3, Pi-4 sont tous à 1 durant la précharge. Ainsi les transistors de mise à la masse sont passants et la ligne LOOKA est au niveau bas. En même temps, puisque CIN(i) est préchargé, sa valeur inversée est basse. A la fin de T1, les signaux P(i) ont éventuellement changé d'état.La condition d'anticipation est les quatre transistors de transmission de retenue sont passants et la retenue à l'entrée des quatre étages est active (CIN =0).
P-mos, et que les signaux a, fi r, 5 sont préétablis au niveau haut durant la précharge, les signaux Pi-1, Pi-2, Pi-3, Pi-4 sont tous à 1 durant la précharge. Ainsi les transistors de mise à la masse sont passants et la ligne LOOKA est au niveau bas. En même temps, puisque CIN(i) est préchargé, sa valeur inversée est basse. A la fin de T1, les signaux P(i) ont éventuellement changé d'état.La condition d'anticipation est les quatre transistors de transmission de retenue sont passants et la retenue à l'entrée des quatre étages est active (CIN =0).
La sortie de l'étage ALUBIS (figure 5) est validée par un signal d'horloge PREXOR équivalent à T2.~2, relié aux grilles de deux transistors 24, 23 en série entre VDD et la sortie des transistor 18, 19. Le transistor 24 est un P-MOS et le transistor 23 un N-MOS.
Les temps d'horloge T1, T2, T3 sont par exemple déterminés au moyen d'un registre à décalage rebouclé (non représenté, et qui ne fait pas partie de l'invention !) à trois positions, ou le décalage est commandé par un front d'horloge #I.
La figure 9 enfin, montre une disposition particulière de circuit entre la sortie de retenue du premier bloc et l'entrée du deuxième bloc à sélection de retenue, dans lequel les sorties C15, CISBIS du premier bloc sont amenées à la fois à tous les étages.
Cette disposition a pour but de ne pas ajouter à la sortie de retenue du 1er bloc une capacité importante constituée par la ligne C15. Le montage est constitué d'un premier transistor MOS 30 dont la source est reliée à un point au niveau logique bas, dont la grille est reliée à la sortie de retenue COUT (15), et dont le drain est relié à l'entrée de retenue C15 dudit bloc suivant et aussi à la source d'un deuxième transistor 31 en série avec le premier et de polarité opposée et dont le drain est réuni à un point au niveau logique haut VDD et la grille à une phase d'horloge T2.
En ce qui concerne C15BIS, ce signal est engendré par un montage qui correspond à l'inverseur symbolique mentionné plus haut à propos de la figure 2, montage fait d'un premier transistor 28 dont la source est reliée à un point au niveau logique bas, dont la grille est reliée à ladite phase d'horloge T2 et dont le drain est relié à l'entrée de retenue inverse C15BIS du 2e bloc, à sélection de retenue, et aussi à la source d'un deuxième transistor 29 en série avec le premier et de polarité opposée et dont le drain est réuni à un point au niveau logique haut VDD et la grille est reliée via un inverseur 27 à la sortie de retenue du bloc précédent COUT( 15).
En pratique, les transistors 30 et 31 sont avantageusement connectés, dans la topologie réelle, l'un (30) en un point de la ligne C15 situé près de la sortie COUT(15) et l'autre, en général vers l'autre extrémité de la ligne C15, près du générateur d'horloge T2. Il en est de même pour les transistors 28, 29 et la ligne C1SBIS.
Le bilan général de surface de l'ALU complète est le suivant : la cellule LOOBIT comporte 9 transistors, et un étage ALUBIT en comporte 27. Un bit du premier bloc nécessite donc 27 + 9/4 = 29,25 transistors. La cellule LOOBIS contient 17 transistors, et un étage ALUBIS en contient 36. Un bit du deuxième bloc nécessite donc 36 + 17/4 = 40,25 transistors. La différence entre le deuxième bloc et le premier est donc d'environ + 38% seulement, en nombre de transistors. En outre une organisation topologique autorisée par les schémas selon l'invention permet de limiter cette différence à 27% en surface de semiconducteur.
Claims (6)
1. Unité pour réaliser une opération arithmétique et/ou logique sur deux mots binaires de plus de seize bits chacun, constituée d'une pluralité d'étages en cascade, munis chacun de deux entrées, l'une pour un bit du premier mot et l'autre, pour le bit correspondant du deuxième mot, le poids de ces bits croissant avec le rang de l'étage considéré, chaque étage étant constitué d'un dispositif programmable de prétraitement qui fournit une combinaison logique à partir des deux bits d'entrée de l'étage, d'au moins un dispositif de propagation de la retenue d'un étage au suivant, d'un dispositif de génération de retenue et d'un dispositif pour engendrer le bit résultat de l'étage à partir de la combinaison logique et de la retenue entrante, et l'ensemble des étages étant divisé en au moins deux blocs dont l'un correspond aux poids les plus faibles et l'autre correspond aux poids les plus forts et dont le premier est constitué d'étages à simple propagation de retenue alors que le dernier est constitué d'étages à sélection de retenue, caractérisé en ce que chacun de ces blocs est lui-même subdivisé en sous-blocs de quelques étages munis chacun d'un dispositif partiel de calcul de retenue, prenant en compte le cas où les dispositifs de prétraitement des étages d'un même sous-bloc fournissent tous une combinaison logique correspondant à une propagation de retenue ET ou une retenue est présente à l'entrée du sous-bloc.
2. Unité selon la revendication 1, caractérisée en ce que chaque sous-bloc comporte quatre étages.
3. Unité selon l'une des revendications 1 ou 2, dont les sous-blocs correspondant aux poids les plus faibles comportent un dispositif de propagation de la retenue constitué d'une ligne entre une entrée et une sortie de propagation de retenue, ligne interrompue à chaque étage par un transistor et qui, le niveau bas indiquant la présence d'une retenue, est préchargée au début de chaque opération au travers de transistors MOS d'une première polarité reliés au niveau logique haut et dont les grilles sont toutes reliées à une barre de commande de précharge, caractérisée en ce que le dispositif de calcul partiel de retenue d'un tel sous bloc est constitué de deux transistors MOS de la première polarité en série entre la sortie de propagation de retenue du sous-bloc et un point au niveau logique bas, dont la grille de llun est reliée, via un inverseur, à l'entrée de propagation de retenue du sous-bloc, et dont la grille de l'autre est connectée à une ligne dite d'anticipation qui est reliée à un point au niveau logique haut par un transistor MOS d'une deuxième polarité opposée à la première, transistor dont la grille est reliée à la barre de commande de précharge, ladite ligne d'anticipation étant reliée, à chaque étage, à un point au niveau logique bas par un transistor MOS de la première polarité, dont la grille est connectée à la sortie (#P) du dispositif de prétraitement de l'étage.
4. Unité selon l'une des revendications 1 ou 2, dont les sous-blocs correspondant aux poids forts comportent deux lignes, chacune entre une entrée et une sortie de propagation de retenue, lignes qui sont réunies, à l'entrée du bloc, l'une à un point au niveau logique haut, et l'autre à un point au niveau logique bas, chacune d'elle étant interrompue à chaque étage par un transistor, et le niveau bas indiquant la présence d'une retenue, chaque ligne étant préchargée au début de chaque opération au travers de transistors MOS d'une première polarité reliés au niveau logique haut et dont les grilles sont toutes reliées à une barre de commande de précharge, caractérisé en ce que le dispositif de calcul partiel de retenue d'un tel sous-bloc est constitué, d'une part, de deux transistors MOS de la première polarité en série entre une première des sorties de propagation de retenue du sous-bloc et un point au niveau logique bas, dont la grille de l'un est reliée, via un inverseur, à l'entrée de propagation de retenue du sousbloc, correspondant à ladite première sortie, et dont la gril le de l'autre est connectée à une ligne dite d'anticipation qui est reliée à un point au niveau logique haut par un transistor d'une deuxième polarité opposée à la première, transistor dont la grille est reliée à la barre de commande de précharge, ladite ligne d'anticipation étant reliée, à chaque étage, à un point au niveau logique bas par un transistor MOS de la première polarité dont la grille est connectée à la sortie (P) du dispositif de prétraitement de l'étage, et, d'autre part, de deux autres transistors de la première polarité en série entre l'autre sortie de propagation de retenue du sous-bloc et un point au niveau logique bas, dont la grille de l'un est reliée, via un inverseur, à l'entrée de propagation de retenue du sous-bloc correspondant à ladite autre sortie, et dont la grille de l'autre est connectée à ladite ligne d'anticipation.
5. Unité selon l'une quelconque des revendications 1 à 4, caractérisée en ce qu'entre la sortie de retenue d'un bloc à simple propagation et l'entrée d'un bloc suivant à sélection de retenue, dans lequel la sortie de retenue, du bloc précédent est amenée à la fois à tous les étages, est inséré un montage fait d'un premier transistor MOS dont la source est reliée à un point au niveau logique bas, dont la grille est reliée à ladite sortie de retenue, et dont le drain est relié à l'entrée de retenue dudit bloc suivant et aussi à la source d'un deuxième transistor en série avec le premier et de polarité opposée et dont le drain est réuni à un point au niveau logique haut et la grille à une phase d'horloge.
6. Unité selon la revendication 5, dans laquelle une sortie de retenue inversée est également amenée à tous les étages du bloc à sélection de retenue, caractérisée en ce qu'elle comporte un montage fait d'un premier transistor dont la source est reliée à un point au niveau logique bas, dont la grille est reliée à l'inverse de ladite phase d'horloge, et dont le drain est relié à l'entrée de retenue inversée dudit bloc à sélection de retenue et aussi à la source d'un deuxième transistor en série avec le premier et de polarité opposée et dont le drain est réuni à un point au niveau logique haut et la grille est reliée via un inverseur à la sortie de retenue du bloc précédent.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR8604507A FR2596543B1 (fr) | 1986-03-28 | 1986-03-28 | Unite arithmetique et logique |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR8604507A FR2596543B1 (fr) | 1986-03-28 | 1986-03-28 | Unite arithmetique et logique |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| FR2596543A1 true FR2596543A1 (fr) | 1987-10-02 |
| FR2596543B1 FR2596543B1 (fr) | 1989-10-27 |
Family
ID=9333666
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| FR8604507A Expired FR2596543B1 (fr) | 1986-03-28 | 1986-03-28 | Unite arithmetique et logique |
Country Status (1)
| Country | Link |
|---|---|
| FR (1) | FR2596543B1 (fr) |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3100835A (en) * | 1960-01-06 | 1963-08-13 | Ibm | Selecting adder |
| EP0164450A2 (fr) * | 1983-12-27 | 1985-12-18 | Nec Corporation | Circuit de retenue apte à une opération arithmétique rapide |
-
1986
- 1986-03-28 FR FR8604507A patent/FR2596543B1/fr not_active Expired
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3100835A (en) * | 1960-01-06 | 1963-08-13 | Ibm | Selecting adder |
| EP0164450A2 (fr) * | 1983-12-27 | 1985-12-18 | Nec Corporation | Circuit de retenue apte à une opération arithmétique rapide |
Non-Patent Citations (2)
| Title |
|---|
| NACHRICHTENTECHNIK ELEKTRONIK, vol. 25, no. 6, juin 1975, pages 232-236, Berlin, DE; B.AHNER et al.: "Entwurf und Realisierungsvorschlag f}r einen schnellen bin{ren Paralleladdierer" * |
| THE RADIO AND ELECTRONIC ENGINEER, vol. 46, no. 7, juillet 1976, pages 337-341, Londres, GB; T.LAMDAN et al.: "A circuit for high-speed carry propagation in l.s.i.-f.e.t. technology" * |
Also Published As
| Publication number | Publication date |
|---|---|
| FR2596543B1 (fr) | 1989-10-27 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| FR2667706A1 (fr) | Antememoire hierarchique a circuits integres. | |
| FR2472784A1 (fr) | Matrice de traitement de donnees en parallele, notamment pour l'analyse d'images prises par un satellite | |
| EP0626760B1 (fr) | Système électronique organisé en réseau matriciel de cellules | |
| EP0020202A1 (fr) | Système multiprocesseur de traitement de signal | |
| EP0319421B1 (fr) | Comparateur binaire et opérateur de tri de nombres binaires | |
| FR3075444A1 (fr) | Systeme comportant une memoire adaptee a mettre en oeuvre des operations de calcul | |
| EP0262032A1 (fr) | Additionneur binaire comportant un opérande fixé, et multiplieur binaire parallèle-série comprenant un tel additionneur | |
| FR2536879A1 (fr) | Multiplieur binaire rapide | |
| BE898544R (fr) | Calculateur associatif permettant une multiplication rapide. | |
| EP0476592A2 (fr) | Générateur d'adresses pour la mémoire de données d'un processeur | |
| FR2596543A1 (fr) | Unite arithmetique et logique | |
| EP0183610A1 (fr) | Mémoire vive et circuit d'interpolation linéaire en comportant application | |
| EP0065460B1 (fr) | Compteur parallèle en circuit intégré MOS et application à la réalisation d'un additionneur binaire | |
| FR2718867A1 (fr) | Procédé d'effacement d'une mémoire et circuits de mise en Óoeuvre. | |
| FR2596544A1 (fr) | Circuit arithmetique et logique | |
| EP0282370B1 (fr) | Réseau logique dynamique | |
| EP1642388A1 (fr) | Dispositif de comparaison de deux mots de n bits chacun | |
| EP0341097A1 (fr) | Additionneur de type récursif pour calculer la somme de deux opérandes | |
| FR2656964A1 (fr) | Doubleur/diviseur d'un flux de bits serie. | |
| EP0329545B1 (fr) | Dispositif pour le calcul des bits de parité d'une somme de deux nombres | |
| FR2540261A1 (fr) | Multiplieur parallele en circuit integre mos du type pipe-line | |
| EP1012847B1 (fr) | Procede d'enregistrement d'un mot binaire au moyen de cellules memoire du type programmable et effa able electriquement | |
| EP1772808A1 (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 | |
| FR2516675A1 (fr) | Cellule d'addition binaire a trois entrees a propagation rapide de la retenue | |
| EP0059125B1 (fr) | Mémoire morte à adressage modifié |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| CD | Change of name or company name | ||
| CD | Change of name or company name | ||
| ST | Notification of lapse |
