You are on page 1of 32

Architecture des Ordinateurs

1re partie Olivier Temam

Table des Matires


1 REPRESENTATION DES NOMBRES .................................................................................................... 3 1.1 1.2 2 2.1 2.2 3 3.1 3.2 4 4.1 4.2 5 5.1 5.2 5.3 6 REPRESENTATION DES NOMBRES ENTIERS ............................................................................................ 3 REPRESENTATION DES NOMBRES REELS ................................................................................................ 5 TRANSFORMER UNE EXPRESSION LOGIQUE EN CIRCUIT ......................................................................... 7 SIMPLIFICATION DES EXPRESSIONS LOGIQUES .................................................................................... 10 ADDITIONNEUR................................................................................................................................... 13 UNITE ARITHMETIQUE ET LOGIQUE .................................................................................................... 15 NOTIONS DE TEMPS ET DE MEMORISATION .......................................................................................... 17 LATCHS ET FLIP-FLOPS (BASCULES)................................................................................................... 20 LE MULTIPLIEUR SEQUENTIEL ............................................................................................................. 24 CONVERSION D'UN ORGANIGRAMME EN CIRCUIT DE CONTROLE ......................................................... 25 METHODE SYSTEMATIQUE DE CONCEPTION D'UN CIRCUIT SEQUENTIEL .............................................. 27

CIRCUITS LOGIQUES ............................................................................................................................. 7

UNITE ARITHMETIQUE ET LOGIQUE (UAL)................................................................................. 13

CIRCUITS SEQUENTIELS .................................................................................................................... 17

CONTROLE .............................................................................................................................................. 23

LES CHEMINS DE DONNEES............................................................................................................... 30

BIBLIOGRAPHIE.............................................................................................................................................. 31

1 Reprsentation des Nombres


Dans un circuit, on dispose de deux niveaux de voltage (parfois nots VSS et VDD) pour reprsenter toute information, quelle soit de nature logique ou numrique. On reprsente donc les nombres en base 2 en associant par exemple la valeur binaire 0 au voltage VSS, et la valeur binaire 1 au voltage VDD. En informatique, un chiffre binaire est appel un bit (binary digit) ; le bit le plus gauche d'un nombre binaire est appel bit de poids fort, et le bit le plus droite est appel bit de poids faible.

Les circuits arithmtiques oprent sur des nombres binaires, et la taille des circuits est gnralement corrle la taille des nombres. La taille des circuits tant borne par des contraintes matrielles, il est galement ncessaire de restreindre la taille des nombres qui peuvent tre traits par un oprateur arithmtique. Lorsqu'un processeur comporte des oprateurs qui ne peuvent effectuer des calculs que sur des nombres d'au plus N bits, on dit que le processeur a un mot de taille N ou qu'il s'agit d'un processeur N-bits . Le premier microprocesseur (Intel 4004 [1]) tait un processeur 4-bits, le Pentium 4 [2] est un processeur 32-bits, et l'Itanium [3] (dernier processeur d'Intel destin au calcul haute-performance) est un processeur 64-bits.

1.1 Reprsentation des nombres entiers


La reprsentation binaire des entiers naturels ne pose pas de difficult, en revanche, celle des entiers relatifs est plus dlicate puisquil faut pouvoir reprsenter et manipuler le signe. La difficult est de trouver une reprsentation transparente , particulirement pour lopration la plus frquente, l'addition. Pour l'addition, par exemple, une reprsentation est transparente si une opration peut tre conduite de la mme faon quel que soit le signe des oprandes. Si la reprsentation n'est pas transparente, il sera ncessaire de dtecter le signe des oprandes, puis d'utiliser une addition si les signes sont identiques, ou une soustraction s'ils sont diffrents. De telles manipulations peuvent avoir un impact significatif sur les performances. Complment 2. Le codage utilis dans la quasi-totalit des processeurs est la reprsentation en complment 2. Ce codage dfinit une convention pour la reprsentation d'un nombre fini d'entiers relatifs l'aide d'entiers naturels. Dans un processeur fonctionnant avec des mots de n bits, on va pouvoir reprsenter l'intervalle de valeurs [-2n-1 ;2n-1-1] en utilisant l'intervalle [0 ;2n-1]. Les valeurs 0 2n-1-1 sont reprsentes directement par les entiers 0 2n-1-1, tandis que les valeurs -2n-1 -1 sont reprsentes par les entiers 2n-1 2n-1. Avec ce codage, on peut remarquer que X, -2n-1 X -1 est cod par 2n+X.

Exemple : n=4 bits.

Le principe de la reprsentation en complment 2 est de rendre ce codage transparent pour les oprations d'addition en le rptant sur l'intervalle [2n ;2n+1-1] et en effectuant tous les calculs modulo 2n. Appliquer modulo 2n au rsultat est une opration transparente en reprsentation binaire, car elle consiste simplement conserver les n bits de poids faible. Plusieurs cas peuvent alors se produire lors d'une addition x + y, o x et y sont cods en complment 2 par X et Y : x 0, y 0 et x + y < 2n-1. Il n'y a pas de dpassement de capacit, c'est--dire que le rsultat peut tre cod sur n bits en complment 2. Le rsultat est directement donn par x + y. x 0, y 0 et x + y 2n-1. Il y a dpassement de capacit. On peut remarquer que dans ce cas 2n-1 X + Y 2n-1, et donc que le rsultat correspond au codage d'un nombre ngatif. x 0, y 0 et x + y 0. Dans ce cas, l'opration effectue aprs codage en complment 2 est X + Y = x + 2n + y, et le rsultat est suprieur 2n. En appliquant ensuite le modulo 2n, on obtient x + y. Il ne peut y avoir de dpassement de capacit. x 0, y 0 et x + y < 0. On effectue la mme opration, mais le rsultat reste infrieur 2n. Le rsultat 2n + y + x correspond alors au codage du nombre ngatif x + y. Il ne peut y avoir de dpassement de capacit. x < 0, y < 0 et x + y -2n-1. Il n'y a pas de dpassement de capacit. Le rsultat de l'opration en complment 2 est 2n + x + 2n + y. Comme 0 > x + y -2n-1, 2n > 2n + x + y 2n-1, et aprs application du modulo 2n, le rsultat est 2n + x + y. x < 0, y < 0 et x + y < -2n-1. Il y a dpassement de capacit. Comme 2n + x 2n-1 et 2n + y 2n-1 (codage d'un nombre ngatif), on peut remarquer que 2n + 2n-1 > 2n + x + 2n + y 2n, ce qui correspond au codage d'un nombre positif.

Exemple : n=4 bits. 3 + 2 (5) 5 0 0 1 1 0 0 1 0 0 1 0 1 0 0 1 1 3 1 1 1 0 + -2 (5) 5 1 0 0 0 1 1 1 0 1 -3 1 0 1 0 + -6 (7) -9 1 0 1 1 1 Dpassement de capacit

On peut enfin remarquer que le codage des entiers relatifs en complment 2 est tel que, pour les nombres positifs le bit de poids fort est toujours 0 (car x < 2n-1), et pour les nombres ngatifs le bit de poids fort est toujours 1 (car x 2n-1). On peut donc rapidement dterminer le signe d'un nombre partir de son bit de poids fort. Enfin, en reprsentation en complment 2, l'oppos d'un nombre, -x, peut tre rapidement calcul avec l'expression X + 1 modulo 2n, o X est le complment logique de X.

1.2 Reprsentation des nombres rels


Le codage en complment deux sur n bits ne permet de reprsenter qu'un intervalle de 2n valeurs. Pour un grand nombre d'applications, cet intervalle de valeurs est trop restreint. La reprsentation virgule flottante (floating-point) a t introduite pour rpondre ce besoin. Pour des mots de 32 bits, la reprsentation en complment deux permet de coder un intervalle de 232 valeurs tandis que la reprsentation virgule flottante permet de coder un intervalle d'environ 2255 valeurs. La reprsentation en virgule flottante a t normalise (norme IEEE 754 [7]) afin que les programmes aient un comportement identique d'une machine l'autre. Plus prcisment, les buts de cette norme sont : de dfinir la reprsentation des nombres, de dfinir le comportement en cas de dpassement de capacit (exceptions), de garantir un arrondi exact pour les oprations lmentaires (+,-,*,/,). Reprsentation des nombres. La reprsentation des nombres en 32 et 64 bits (taille des mots dans les processeurs actuels) est indique dans la figure et la table ci-dessous.

Figure 1. Reprsentation des nombres virgule flottante dans la norme IEEE 754 Nombre de bits 32 (simple prcision) 64 (double prcision) Taille de s 1 1 Taille de f 23 52 Taille de e 8 11 Emin -126 -1022 Emax +127 +1023

Dans cette reprsentation, la valeur d'un nombre sur 32 bits est donne par l'expression 23 (1) s 1 + f i 2 i 2 e Emax o fi correspond au ime bit de la fraction f. i =1

Exemple : n=32 bits.

Contrairement la reprsentation en complment 2, il n'est pas possible d'effectuer des oprations d'addition (ni dautres oprations) de faon transparente. En effet, pour effectuer une addition il faut interprter le signe, aligner les exposants, appliquer l'arrondi choisi puis normaliser le rsultat (voir plus loin). En revanche, cette reprsentation facilite les comparaisons, les champs tant placs dans l'ordre lexicographique (signe, puis exposant, puis fraction/mantisse). C'est d'ailleurs pour cette raison que l'exposant n'est pas sign, la valeur relle de l'exposant tant obtenue aprs soustraction de Emin. 5

Exceptions. Afin d'identifier des valeurs extrmes (valeurs proches de 0, ou ) ainsi que des 0 expressions indcidables ( 1, , ), la norme introduit des conventions particulires : 0
e- Emax Emin-1 Emin-1 Emin Emax Emax+1 Emax+1 0 0 f 0 0 Nombre reprsent 0 Cas Zro Nombres dnormaliss (petites valeurs) Nombres normaliss Infini Expressions indcidables

(1) s 0. f 2 E min (1) s 1. f 2 e E max


NaN

L'introduction de ces valeurs dans la norme permet de dfinir une arithmtique tendue : 1 = + 0+ 1 = 0 (+) + (+) = + + () = + = NaN 0 = NaN 0 0 = NaN F (..., NaN ,...) = NaN Dpassement de capacit NaN Ces valeurs sont en gnral associes des exceptions : underflow (0, xmin normalis, nombres dnormaliss), overflow (,xmax), division par 0 (), rsultat NaN avec des oprandes NaN, et rsultat inexact en cas d'application d'arrondi (la plupart des calculs). La norme permet de choisir entre plusieurs comportements en cas d'exception : (1) interrompre le programme, (2) gestion de l'erreur dans le programme, (3) continuer le calcul.
Arrondi. La norme propose quatre types d'arrondi : vers 0, vers +, vers -, au plus prs. En thorie, l'utilisateur a la possibilit de slectionner le mode d'arrondi, mais en pratique ce choix est souvent impos dans le langage de programmation.

Exemple : Addition avec arrondi au plus prs. On veut additionner les deux nombres suivants (norme IEEE 754): R1 = 0 00000010 001010 R2 = 0 00000010 101000 On effectue dabord l'addition des deux mantisses normalises 1,001001 avec 1,101000 et le rsultat est : 10,110001. Comme la partie entire contient 2 bits (10,), il faut normaliser en dcalant droite d'un bit (1,0110001). Le 23me bit de la mantisse correspond donc au dernier 0 (1,0110001). Comme le prconise la norme IEEE 754, on a effectu le calcul sur plus de 23 bits, et pour ramener la mantisse 23 bits, on doit appliquer la politique d'arrondi. On suppose quelon utilise ici l'arrondi par excs, et donc la prsence d'un 1 dans le 24e bit implique que le 23e bit doit devenir un 1. Le rsultat final est : 0 00000010 0110001. en raison de l'arrondi, il y a eu une perte de prcision.

La norme garantit un arrondi exact sur les oprations lmentaires (+,-,,/,). Cela signifie que le rsultat fourni est le mme que si l'opration avait t effectue avec une prcision infinie. Pour ce faire, les circuits compatibles avec la norme IEEE 754 effectuent des calculs en prcision tendue, ce degr de prcision n'tant ni visible ni accessible l'utilisateur. Ainsi, en 32 bits, les oprations doivent tre effectues avec e11, f32 (soit sur au moins 6 octets), et en 64 bits avec e64, f15 (soit sur au moins 10 octets). Pour le moment, l'arrondi exact n'est pas encore garanti pour les autres fonctions lmentaires (sin, cos,) ce qui peut engendrer des diffrences importantes de comportement d'une machine l'autre. En outre, bien que l'arrondi soit exact, une mauvaise utilisation des calculs en virgule flottante peut engendrer des erreurs numriques trs importantes qui peuvent avoir un impact significatif sur les rsultats.
Exemple : Laddition nest pas associative ; e3 bits, f4 bits.
(1,0111 2 4 + 1,0111 2 4 ) + 1,1000 2 3 = 1,1000 2 3 1,0111 2 4 + (1,0111 2 4 + 1,1000 2 3 ) = 1,0111 2 4 + 1,0111 2 4 = 0

2 Circuits logiques
2.1 Transformer une expression logique en circuit
La reprsentation de l'information logique dans un ordinateur repose sur l'Algbre de Boole. Il existe une relation directe entre les expressions logiques utilisant l'algbre de Boole et les circuits lectroniques. Notamment, la complexit d'une expression logique est corrle la complexit et donc la taille du circuit correspondant. Aussi, simplifier les expressions logiques dcrivant la tche implmenter permet de rduire le cot du circuit associ. Bien que le propos du cours ne soit pas d'tudier de faon thorique l'Algbre de Boole, nous en rappelons ici les axiomes et les principaux thormes qui sont utiliss comme des rgles de manipulation et de simplification des expressions logiques.

Outre l'Algbre de Boole, les rsultats de Shannon [4] ont permis de passer d'une reprsentation thorique de l'information logique son implmentation sous forme de circuits lectroniques. Shannon a notamment montr que toute fonction logique peut tre exprime l'aide des seuls oprateurs ET et NON, ce qui signifie qu'il suffit de disposer de trs peu de circuits logiques lmentaires diffrents pour implmenter toute fonction logique. Dans ce cours, nous allons utiliser les oprateurs lmentaires ET, OU et NON pour des questions de lisibilit des expressions logiques ; en pratique, on utilise surtout les oprateurs NON-ET et NON-OU, dans les circuits.
Notations. De mme que l'information numrique n'est reprsente qu'avec les deux valeurs binaires 0 et 1 correspondant aux deux niveaux de voltage utiliss dans les transistors, l'information logique est galement code avec ces deux valeurs 0 et 1. 1 est associ VRAI, et 0 est associ FAUX. L'oprateur ET est gnralement reprsent par x ou par . ; l'oprateur OU est reprsent par + ; l'oprateur NON est reprsent par ' (X' pour NON(X)) ou par ( X ). Les schmas associs aux principales portes logiques sont reprsents ci-dessous. Un rond plac avant une entre ou une sortie correspond une ngation logique (NON) sur l'entre ou la sortie.

Exemple. Utilisation de l'algbre de Boole pour raliser un circuit combinatoire.

On dispose de trois lampes, et on veut raliser un circuit qui envoie un signal si au moins deux des lampes sont allumes. On appelle A, B, C les trois lampes avec la convention 0=allume, 1=teinte, et Z la sortie du circuit avec la convention 0=pas de signal, 1=signal activ. Le signal doit tre activ dans plusieurs cas : si deux des lampes sont allumes (n'importe quelle combinaison de deux lampes), ou si les trois lampes sont allumes. On en dduit que Z=1 si ((A ET B sont allumes) OU (A ET C sont allumes) OU (B ET C sont allumes) OU (A ET B ET C sont allumes)) et Z=0 sinon. On peut traduire cette proposition en l'expression logique suivante: Z = A.B + A.C + B.C + A.B.C. Le circuit correspondant est reprsent ci-dessous.

Tables de vrit. Un circuit est une fonction logique des variables d'entre. Comme chaque variable ne peut prendre que deux valeurs, le nombre de valeurs de la fonction est fini, et on peut donc caractriser une fonction par l'ensemble de ses valeurs. Aussi, lorsque l'on veut raliser un circuit logique, on commence par dterminer sa table de vrit. Cette table indique, pour chaque combinaison des valeurs d'entre, la valeur de sortie. Par convention, la premire ligne correspond au cas o toutes les variables d'entre ont la valeur 0, et les lignes suivantes sont obtenues en ajoutant 1. Gnralement, on caractrise une fonction logique par les cas o elle vaut 1. chaque ligne de la table de vrit correspond une expression logique, et l'expression logique de la sortie est simplement le OU des cas (des lignes) o la sortie vaut 1. Exemple. La table de vrit de l'exemple ci-dessus est la suivante :

A 0 0 0 0 1 1 1 1

B 0 0 1 1 0 0 1 1

C 0 1 0 1 0 1 0 1

Z 0 0 0 1 0 1 1 1

Par exemple, la quatrime ligne de la table de vrit peut tre lue ainsi : Z vaut 1 si A=0 ET B=1 ET C=1. L'expression logique associe A=0 est A', et l'expression logique associe B=1 est B. On en dduit que l'expression logique associe cette ligne est A'.B.C. En

l'expression de Z est : Z = A'.B.C + A.B'.C + A.B.C' + A.B.C.

2.2 Simplification des expressions logiques


On peut remarquer que l'expression obtenue dans l'exemple ci-dessus est plus complexe que celle obtenue dans le premier exemple, bien que la fonction ralise soit exactement la mme. Le circuit correspondant la deuxime expression sera plus coteux que celui correspondant la premire expression. Pour minimiser le cot d'un circuit, il faut donc simplifier autant que possible l'expression logique associe. Pour ce faire, on peut utiliser les axiomes et thormes de l'Algbre de Boole.
Exemple.
Z = A'.B.C + A.B'.C + A.B.C '+ A.B.C = A'.B.C + A.B '.C + A.B.C '+ A.B.C + A.B.C + A.B.C = ( A'.B.C + A.B.C ) + ( A.B '.C + A.B.C ) + ( A.B.C '+ A.B.C ) = B.C + A.C + A.B

Pour ces simplifications, on a utilis les proprits X = X + X et X.Y + X.Y = X. On remarque que si lon ajoute quatre termes A.B.C au lieu de trois, on retrouve la premire expression : Z = B.C + A.C + A.B + A.B.C

Lorsque l'on utilise directement les axiomes et thormes de l'Algbre de Boole pour simplifier une expression logique, il peut tre difficile de savoir si l'on a obtenu une expression minimale. Il existe des mthodes plus systmatiques pour minimiser les expressions logiques. Pour les fonctions de peu de variables, une mthode la fois efficace et intuitive est celle des tableaux de Karnaugh. Le principe des tableaux de Karnaugh est de disposer de manire diffrente les termes de la table de vrit. Cette nouvelle disposition va permettre de raliser aisment des simplifications. Considrons la table de vrit ci-dessous d'une fonction de deux variables A et B. A 0 0 1 1 B 0 1 0 1 Z 1 1 1 0

En lisant la table de vrit, on obtient Z = A'.B' + A'.B + A.B'. On remarque que l'on peut utiliser deux fois le terme A'.B' pour raliser des simplifications du type X.Y + X.Y' = X, et on obtient donc Z = A' + B'. Considrons maintenant le tableau de Karnaugh des deux variables A et B.

10

On remarque que chacune des cases du tableau correspond une ligne de la table de vrit. De plus, on peut observer que des cases adjacentes correspondent toujours des expressions du type X.Y et X.Y'. C'est--dire que les expressions de deux cases adjacentes ne diffrent que d'une variable. Or, si une case contient un 1, la sous-expression correspondante se retrouvera dans l'expression de la fonction de sortie (Z). Par consquent, si deux cases adjacentes contiennent des 1, les deux sous-expressions correspondantes seront combines en utilisant la rgle X.Y + X.Y' = X, c'est--dire en liminant la seule variable qui les distingue. Le principe du tableau de Karnaugh est d'exprimer intuitivement cette simplification en runissant les deux cases 1 dans un paquet . On peut remarquer que cette rgle d'adjacence reste vraie pour les paquets : les sous-expression associes deux paquets adjacents ne diffrent que d'une variable, et peuvent tre galement combines en utilisant la rgle X.Y + X.Y' = X.
Exemple.

Dans le tableau de Karnaugh ci-dessus, on peut constituer deux paquets de deux termes, dont les expressions sont respectivement B et B. Ces deux paquets tant adjacents, on peut nouveau les combiner en un paquet de quatre termes dont l'expression est 1.

La taille des paquets varie donc de 1 2n, o n est le nombre de variables. Dans une table de vrit, l'expression finale est obtenue par le OU des diffrentes cases 1, tandis que dans un tableau de Karnaugh, l'expression finale est obtenue par le OU des diffrents paquets, l'ensemble des paquets devant recouvrir tous les termes 1 du tableau. Dans le tableau ci-dessus, on peut former deux paquets dont les expressions sont A et B. Comme ces deux paquets ne sont pas adjacents, on ne peut les combiner nouveau entre eux. L'expression finale est Z= A' + B'. Implicitement, le tableau de Karnaugh repose sur deux rgles : le ddoublement des expressions logiques (X = X + X), et la rgle X.Y + X.Y' = X. On peut galement utiliser des tableaux de 3, 4 (et plus) variables. Le principe est identique, il faut seulement s'assurer que la rgle d'adjacence des cases du tableau est respecte. Pour ce faire, il est ncessaire d'inverser deux lignes dans le tableau de 3 variables, et deux lignes et deux colonnes dans le tableau de 4 variables (voir ci-dessous) afin que les expressions logiques associes n'importe quelle paire de cases adjacentes ne diffrent que d'une variable.
Exemple. Le tableau de Karnaugh correspondant l'exemple des trois lampes est le suivant :

11

Les lignes 10 et 11 ont t inverses pour respecter la rgle d'adjacence. Le recouvrement des termes 1 est indiqu ci-dessus, et l'expression correspondante est la suivante : Z = A.B + A.C + B.C

Un recouvrement engendre une expression logique minimale si le nombre de paquets et la taille des paquets sont les plus faibles possibles. Bien qu'il existe des mthodes systmatiques de recouvrement, on se contentera ici d'utiliser l'heuristique simple suivante : Choisir un terme 1 et le recouvrir par le plus grand paquet possible. Choisir un terme 1 non encore recouvert, et le recouvrir par le paquet qui le contienne ainsi que le maximum de termes 1 non encore recouverts. Itrer partir de l'tape 2 jusqu' recouvrement de tous les termes 1.
Valeurs non assignes. Il arrive parfois que la valeur de sortie de la fonction, pour certaines combinaisons des valeurs d'entre, ne soit pas spcifie dans la description du circuit. Plutt que de placer un 1 ou un 0 dans la table de vrit, on utilise un terme appel don't care, et not d ou X, qui peut tre remplac indiffremment par un 1 ou un 0. Par exemple, dans la mthode du tableau de Karnaugh, si le fait de considrer ce terme comme un 1 permet de crer des paquets plus grands, et donc des expressions logiques plus simples, on le remplace par un 1, et si ce terme n'appartient aucun paquet aprs recouvrement, on le remplace par un 0. Exemple. On reprend l'exemple prcdent en supposant que la lampe A ne peut jamais tre allume seule ; dans la ligne A=1, B=0, C=0 de la table de vrit, Z vaut alors d.

A 0 0 0 0 1 1 1 1

B 0 0 1 1 0 0 1 1

C 0 1 0 1 0 1 0 1

Z 0 0 0 1 d 1 1 1

Le tableau de Karnaugh correspondant est le suivant. On voit que lon peut crer un paquet quatre lments en utilisant le terme dont care.

12

On en dduit que lexpression de Z devient : Z = A + B.C

3 Unit Arithmtique et Logique (UAL)


L'unit de calcul d'un processeur est appele Unit Arithmtique et Logique (UAL). Elle effectue toutes les oprations lmentaires sur les entiers. Dans les premires machines, elle constituait la partie la plus importante du processeur ; aujourd'hui, un processeur contient souvent plusieurs units arithmtiques et logiques, et bien que leur rle reste trs important, elles ne reprsentent plus qu'une petite fraction de la surface totale du processeur. Dans cette section, nous allons construire une unit arithmtique et logique simple, en commenant par l'additionneur qui en est l'lment essentiel.

3.1 Additionneur
Comme on l'a vu prcdemment, un processeur travaille sur un nombre fini de bits appels un mot. Un processeur n-bits va donc contenir un additionneur n-bits. Cet additionneur est luimme conu partir de n additionneurs 1-bit : tout comme dans une addition effectue la main, on additionne les chiffres deux deux en passant la retenue au couple de chiffres suivant. On va donc commencer par concevoir un additionneur 1-bit, et on en dduira l'additionneur n-bits.
Additionneur 1-bit. Lorsque l'on additionne deux bits x et y, le rsultat est la somme S des chiffres, et la retenue R. La table de vrit est la suivante :

On en dduit que S = x'.y + x.y' = x y, et que R = x.y. Comme ce circuit ne prend pas en compte la retenue d'entre correspondant au chiffre prcdent, on appelle ce circuit un demi-additionneur. L'additionneur 1-bit complet prend donc en compte la retenue d'entre r ; la table de vrit et le schma du circuit sont indiqus ci-dessous.

13

S = r'.(x'.y + x.y') + r.(x.y + x'.y') = r x y et R = r.x.y + r.x.y + r.x.y + r.x.y = x.y + r.(x + y).

Additionneur n-bits. Pour effectuer l'addition de deux nombres de n bits, il suffit de chaner entre eux n additionneurs 1-bit complets. La retenue est ainsi propage d'un additionneur l'autre. Un tel additionneur est appel un additionneur srie. Bien que tous les chiffres des deux nombres de n-bits X et Y soient disponibles simultanment au dbut du calcul, t=0, le temps de calcul est dtermin par la propagation de la retenue travers les n additionneurs 1bit. Exemple : Additionneur 4-bits.

14

Soustracteur n-bits. Il n'y a pas de circuit soustracteur dans un processeur parce que l'on peut implmenter la soustraction l'aide de l'additionneur avec des modifications mineures. Pour ce faire, on exploite les proprits du complment 2 et le fait que le bit de poids faible de l'additionneur n'a pas de retenue d'entre. En effet, effectuer X - Y en complment 2, est quivalent X + Y' + 1. Pour effectuer la deuxime addition (+1), il suffit d'injecter un 1 en guise de retenue dans l'additionneur de poids faible. On peut donc supposer que l'on dispose d'un signal de contrle c qui vaut 0 lorsque l'on veut faire une addition, et 1 lorsque l'on veut faire une soustraction. On utilise ce signal c comme retenue du bit de poids faible de l'additionneur. Enfin, pour obtenir Y', il suffit de rajouter un inverseur (une porte XOR) en entre de chacun des additionneurs 1-bit : yi c ; lorsque c vaut 0, la valeur d'entre de l'additionneur i est yi, et lorsque c vaut 1, la valeur d'entre est yi'. Donc, lorsque c vaut 0, l'opration effectue par le circuit est X + Y, et lorsque c vaut 1, l'opration effectue est X + Y' + 1. Exemple : Soustracteur 4-bits.

3.2 Unit Arithmtique et Logique


Le nombre d'oprations lmentaires arithmtiques et logiques implmentes dans l'UAL d'un processeur et la faon dont elles y sont implmentes varient considrablement d'un processeur l'autre. Ici, nous nous contenterons d'implmenter les trois oprations essentielles : l'addition, le ET logique, le NON logique. Le ET et le NON permettent de crer n'importe quelle fonction logique, ainsi que de calculer l'oppos d'un nombre au sens du complment 2 et donc d'effectuer des soustractions. Tout comme l'additionneur, on commence par concevoir une UAL 1-bit, et on en dduit une UAL n-bits.
UAL 1-bit. Le circuit de la figure ci-dessous comporte deux sorties ZADD, ZAND qui correspondent deux des trois oprations que l'on dsire implmenter dans l'UAL.

15

Cependant, une UAL 1-bit ne doit comporter qu'une seule sortie correspondant l'opration choisie. Il faut donc ajouter un circuit qui permette d'effectuer un choix entre ces deux sorties. Un tel circuit est appel un multiplexeur 2x1. Ce circuit doit disposer d'un signal de commande c qui permet de spcifier quelle sortie choisir (par exemple, c=0, Z= ZAND, et c=1, Z= ZADD). La table de vrit et le circuit correspondant sont indiqus ci-dessous.
c ZAND ZADD 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 Z 0 0 1 1 0 1 0 1

On en dduit que Z = c.Z ADD + c'.Z AND , et le circuit correspondant est indiqu ci-dessous.

L'UAL que l'on dsire implmenter comporte trois sorties ZADD, ZAND et ZNOT. Il faudra donc utiliser un multiplexeur 3x1. Le raisonnement est identique, mais il faudra utiliser deux signaux de commande c0 et c1 (par exemple, c0=0, c1=0 pour ZAND, c0=1, c1=0 pour ZADD, c0=0, c1=1 pour ZNOT).
UAL n-bits. Tout comme l'additionneur n-bits, l'UAL n-bits est obtenu en chanant n UAL 1bits. Exemple : UAL 4-bits.

16

4 Circuits Squentiels
Les circuits logiques combinatoires permettent d'implmenter n'importe quelle fonction, mais ils n'intgrent ni la notion de temps ni la notion de mmorisation. Ces deux proprits sont ncessaires au fonctionnement de plusieurs composants du processeur.

4.1 Notions de temps et de mmorisation


Notion de temps : l'horloge. L'excution d'une instruction l'intrieur d'un processeur constitue un enchanement d'tapes : chaque composant produit un rsultat qui est utilis par le composant suivant. Il est donc ncessaire de synchroniser ces diffrentes tapes : si un composant C2 utilise le signal de sortie produit par le composant C1 d'une tape prcdente, avant que le composant C1 n'ait termin son excution, la valeur de ce signal risque d'tre incorrecte et la valeur du signal de sortie de C2 le sera galement. Exemple. Considrons par exemple un additionneur 4-bits ci-dessous. On suppose que le temps de passage travers une porte logique lmentaire (ET, OU) requiert une unit de temps, et on ngligera le temps de passage travers une porte NON. D'aprs la structure de l'additionneur 1-bit vu au chapitre prcdent, il faut deux units de temps pour faire passer la retenue d'un additionneur l'autre. En consquence, si une addition commence t=0, le dernier additionneur dispose de toutes ses oprandes (x3, y3, r2) t=6, et la dernire sortie S3 devient donc valide (correspond au rsultat final) t=8. Si un autre composant du processeur exploite la sortie S = S3 S2 S1 S0 avant t=8, le rsultat qu'il produira risque d'tre incorrect.

17

Pour pouvoir chaner entre eux plusieurs composants, il est donc ncessaire d'estimer le temps de passage travers chaque composant, et de bloquer la propagation du rsultat vers les composants suivants tant que le calcul n'est pas termin. Pour cela, on utilise des barrires , des composants tampons placs en entre et en sortie des composants de calcul, destines contrler la propagation des rsultats d'un composant l'autre. Afin de simplifier la commande de ces barrires, dans la plupart des processeurs, elles s'ouvrent et se ferment intervalle fixe. Elles sont donc commandes par un signal priodique comportant une phase haute (ouverture) et une phase basse (fermeture), appel une horloge, voir ci-dessous.

Afin de simplifier la synchronisation des diffrents composants d'un processeur, il n'existe en gnral qu'une seule horloge l'intrieur d'un processeur. La dure de la priode, galement appele un cycle, doit tre gale au plus long temps de calcul du plus lent des composants du processeur ; ce composant est en gnral appel le facteur limitatif puisqu'il dtermine la cadence d'excution du processeur. Dans un Pentium 4 de frquence 2 GHz, le temps de cycle est donc de 0.5 nanosecondes. Bien que les temps de cycle soient trs bas, le mcanisme de synchronisation par horloge n'est pas toujours efficace puisque le temps de cycle est dtermin par le composant le plus lent ; il existe des travaux de recherche sur des processeurs asynchrones, donc dpourvus de commande par horloge, voir [5].
Additionneur 4-bits avec barrires en sortie.

18

Notion de mmorisation. Une fois qu'une barrire a t ouverte puis referme, les valeurs de sortie produites par le composant prcdent sont utilises comme valeurs d'entre du composant suivant. Comme la tche effectue par un composant peut durer jusqu' un cycle, il faut pouvoir maintenir les valeurs en entre du composant aprs la fermeture des barrires. Il est donc ncessaire de mmoriser l'information dans ces barrires pour la restituer aprs fermeture. La proprit de mmorisation d'une information peut tre caractrise de la faon suivante : un circuit a mmoris une information si la valeur de sa sortie Z l'instant t est gale la valeur de Z l'instant t+t. On dispose maintenant des informations ncessaires pour dterminer la structure d'une barrire ; elle doit avoir les proprits suivantes : lorsque le signal de l'horloge C=1, la barrire doit tre ouverte, c'est--dire qu'elle laisse passer en sortie (Z) l'information prsente en entre (X), lorsque le signal de l'horloge C=0, la barrire doit tre ferme, c'est--dire qu'elle ne laisse pas passer en sortie l'information prsente en entre, et qu'elle fournit en sortie la valeur mmorise. partir de cette caractrisation du fonctionnement de la barrire, on peut dterminer sa table de vrit : C(t) X(t) Z(t) Z(t+t) 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 0 1 1 0 1 1 1 1 1

{ {

C=0, la barrire est ferme, et la valeur en sortie est la valeur mmorise, c'est--dire la valeur en sortie linstant prcdent, Z(t+t)= Z(t) C=1, la barrire est ouverte et la valeur en sortie est celle prsente en entre.

Et on en dduit l'expression de Z (t + t ) = C ' (t ).Z (t ) + X (t ).Z (t ) + C (t ). X (t ) . Le circuit correspondant est indiqu ci-dessous. On voit donc que l'on peut implmenter un circuit de mmorisation en utilisant les mmes portes que pour les circuits combinatoires. La mmorisation est obtenue en renvoyant en entre le signal de sortie ; cette rtroaction est indique en gras dans le schma ci-dessous.

19

Les circuits combinatoires intgrant une notion de temps grce l'horloge sont appels circuits squentiels.

4.2 Latchs et Flip-Flops (Bascules)


Latch SR. En pratique, les circuits squentiels sont souvent conus partir de quelques circuits lmentaires, tout comme pour les circuits combinatoires. Ces circuits lmentaires ont des proprits similaires au circuit de la section prcdente (notions de temps et de mmorisation). Un des principaux circuits lmentaires est le latch SR : il dispose de deux signaux de commande S (Set) et R (Reset), et d'une boucle de rtroaction permettant d'assurer la mmorisation. Le rle des signaux de commande est dcrit ci-dessous, ainsi que la table de vrit de ce latch. S 0 0 1 1 R Comportement du latch 0 Sortie inchange (mmorisation) 1 Sortie = 0 0 Sortie = 1 1 Commande inutilise S 0 0 0 0 1 1 1 1 R Z(t) Z(t+t) 0 0 0 0 1 1 1 0 0 1 1 0 0 0 1 0 1 1 1 0 d 1 1 d

On en dduit que Z (t + t ) = S+ R' Z (t ) ; en pratique, on implmente ce latch l'aide de deux portes NON-OU aprs avoir remarqu que Z (t + t ) = S + R' Z (t ) = ( R + ( S + Z (t ))' )' si on ignore les termes d de la table de vrit, voir figure ci-dessous.

20

Latch D. Les circuits destins la mmorisation sont souvent conus partir de latchs D, eux-mmes conus partir de latchs SR. Ces latchs ne disposent que d'un seul signal de commande, D (Delay), qui est en fait une entre, et le rle de ces latchs consiste simplement mmoriser l'information fournie en entre. Leur table de commande est indique ci-dessous :

D Comportement du latch 0 Sortie = D = 0 1 Sortie = D = 1 On peut modifier un latch SR pour qu'il se comporte comme un latch D, comme indiqu dans la table ci-dessous. D S R Comportement du latch 0 0 1 Sortie = D = 0 1 1 0 Sortie = D = 1 En gnral, un latch D comporte galement un signal d'horloge C destin inhiber la modification de la sortie, voir ci-dessous. C D S R Comportement du latch 0 0 0 0 Sortie inchange (mmorisation) 0 1 0 0 Sortie inchange (mmorisation) 1 0 0 1 Sortie = 0 1 1 1 0 Sortie = 1 On n'en dduit que S=C.D et R=C.D. Le circuit correspondant est le suivant :

Bascules. Le latch D dcrit ci-dessus peut tre utilis pour sparer deux composants, en jouant le rle des barrires mentionnes la Section 4.1. Cependant, ce latch ne conviendra pas pour une squence comportant plus de deux composants. Considrons trois composants C1, C2, C3 correspondant trois tapes successives de l'excution d'une instruction dans le

21

processeur ; la dure de chaque tape est d'un cycle, et la sortie du composant Ci est utilise comme entre du composant Ci+1. Ces trois composants sont spars par deux barrires B1, B2, comme indiqu ci-dessous. Toutes les barrires sont cadences par le mme signal d'horloge C ; elles vont donc toutes s'ouvrir et se fermer en mme temps. Si l'on suppose que le calcul commence t=0 cycle dans le composant C1, la sortie du composant C1 est prte t=1 cycle, celle du composant C2 t=2 cycles, et celle du composant C3 t=3 cycles.

Cependant, avec un latch D nous n'obtiendrons pas le comportement dsir. Si le temps de propagation du signal travers le circuit combinatoire C2 est infrieur cycle, lorsque les barrires s'ouvrent, la sortie de C1 va traverser C2, modifier sa sortie, et donc affecter l'entre de C3 en cycle, avant que les barrires ne se referment. Le signal peut se propager en un cycle travers plusieurs composants parce que toutes les barrires s'ouvrent en mme temps. Pour viter ce phnomne, les barrires doivent tre constitues non pas d'un latch, mais de deux latchs commands par des signaux d'horloge en opposition de phase. Ainsi, lorsqu'un latch est ouvert, le second est ferm et vite la propagation du signal aux composants suivants. Le circuit correspondant est indiqu ci-dessous.

En raison du comportement altern des latchs, ce circuit est appel Flip-Flop D ou Bascule D. Selon les cas, les composants d'un processeur sont spars par des latchs ou par des bascules. Par la suite, sauf indication contraire, nous supposerons que nous utilisons toujours des bascules.
Registres. Dans un processeur, lorsque l'on veut mmoriser un mot de n-bits, on utilise en gnral un registre. Un registre 1-bit est presque quivalent une bascule avec un signal supplmentaire W qui permet au processeur de contrler l'criture dans ce registre. En l'absence de ce signal, une nouvelle donne serait crite dans le registre chaque cycle, tout comme pour les bascules. Un registre n-bits est simplement n registres 1-bit contrls par le mme signal d'criture, comme indiqu dans la figure ci-dessous.

22

En gnral, un processeur comporte plusieurs registres regroups dans un banc de registres ; ces registres sont numrots, et le processeur spcifie quel registre il veut lire ou crire en indiquant le numro du registre correspondant.

Le numro de registre peut tre considr comme une adresse, et le banc de registres comme une petite mmoire.

5 Contrle
En gnral, un circuit qui ncessite plusieurs cycles pour raliser une tche comporte souvent deux parties : une partie traitement et une partie contrle . Le rle de la partie traitement est de raliser la tche proprement dite, par exemple un calcul ; cette partie comporte souvent des circuits combinatoires ou de mmorisation comme ceux vus dans les sections prcdentes. Le rle de la partie contrle est d'organiser l'enchanement de toutes les tapes intermdiaires de la tche effectuer, ainsi que le transfert des donnes entre les diffrentes tapes. Dans cette section, nous allons voir comment raliser la partie contrle d'un circuit complexe. Dans un premier temps, nous allons tudier une mthode intuitive de conception d'un circuit de contrle, puis une mthode systmatique de conception d'un circuit squentiel que nous appliquerons ensuite la conception de circuits de contrle. chaque fois, on utilisera le circuit du multiplieur squentiel pour illustrer ces diffrentes mthodes. 23

5.1 Le multiplieur squentiel


Les premiers multiplieurs taient squentiels, c'est--dire que la multiplication tait ralise par une succession d'additions, comme pour une opration effectue la main, voir figure cidessous. La seule diffrence entre le circuit de multiplication et l'opration effectue la main est le calcul de rsultats intermdiaires. Cela permet de remplacer l'addition de n termes par n additions successives de deux termes, et donc d'avoir un circuit qui ne comporte qu'un seul additionneur, voir figure ci-dessous.

On peut alors raliser le circuit de multiplication de la faon suivante :

L'additionneur est le circuit combinatoire vu dans les sections prcdentes, et Oprande1, Oprande2, Rsultat sont des registres ; on suppose que les oprandes comportent n bits. L'opration de multiplication va se drouler de la faon suivante : 1. Il y a n itrations. 2. A chaque itration, on doit dcaler la premire oprande (dans Oprande1) vers la gauche, puis la multiplier par un chiffre de la deuxime oprande (dans Oprande2). 3. On doit ensuite ajouter ce nombre au rsultat intermdiaire ; comme il s'agit de chiffres binaires, on peut remarquer que le nombre ajouter est soit la premire oprande dcale, soit 0. On peut donc formuler diffremment l'opration effectuer : 24

soit le bit courant de la deuxime oprande vaut 0 et il est inutile de modifier le rsultat intermdiaire, soit ce bit vaut 1 et il faut ajouter la premire oprande dcale au rsultat intermdiaire. 4. On considre le bit suivant de la deuxime oprande et on itre l'tape 2. On doit ajouter aux schmas ci-dessus le circuit Compteur dont le but est de compter les itrations, et de signaler la fin de l'opration de multiplication. Le rsultat de la multiplication de deux nombres de n bits peut comporter jusqu' 2n bits, le registre Rsultat doit donc comporter 2n bits. De mme, comme on va dcaler la premire oprande n fois vers la gauche, Oprande1 doit tre un registre de 2n bits. Contrairement au registre Rsultat, ce registre doit tre dcalage ; bien que ces registres n'aient pas t vus en cours, ils sont abords en TD, et leur structure est trs proche de celle des registres classiques. Enfin, une faon simple d'accder au bit courant de la deuxime oprande est de dcaler le registre correspondant vers la droite chaque itration ; ainsi, le bit courant correspond toujours au bit de poids faible du registre. Pour commander l'excution de la multiplication squentielle, on doit donc disposer des signaux de contrle suivants : un signal Dcalage pour commander le dcalage gauche du registre Oprande1 et le dcalage droite du registre Oprande2, un signal Wrsultat pour commander l'criture dans le registre Rsultat, deux signaux utiliss pour initialiser le circuit : RAZ pour remettre zro le registre Rsultat, et Woprande pour crire les deux oprandes dans les registres Oprande1 et Oprande2, un signal Incrmenter pour modifier le compteur d'itrations. Ces signaux de contrle sont des commandes, ils vont donc constituer les sorties d'un circuit de contrle. Il y a deux autres signaux de contrle qui dterminent le comportement du circuit de contrle et constituent donc des entres du circuit de contrle : le signal Oprande0 qui correspond au bit de poids faible du registre Oprande2, le signal Compteur=n-1? qui indique la fin de l'opration de multiplication.

5.2 Conversion d'un organigramme en circuit de contrle

25

Cette premire mthode consiste traduire directement l'organigramme du circuit de contrle en composants combinatoires et squentiels. L'organigramme correspondant au multiplieur squentiel est le suivant :

On peut remarquer que chaque lment d'un organigramme peut tre traduit en un circuit combinatoire ou squentiel. Etape. Considrons d'abord une tape simple de l'organigramme d'un circuit de contrle. Le rle d'une telle tape est d'activer un ou plusieurs signaux de contrle. En termes de circuit, cela peut se traduire simplement par une connexion vers le signal activer, voir figure cidessous, droite. Le droulement de l'organigramme d'un circuit de contrle peut tre matrialis comme le passage d'un jeton travers les diffrentes tapes de l'organigramme ; de mme, l'excution du circuit de contrle lui-mme peut tre matrialis par le passage d'un signal 1 (le jeton) travers les diffrentes parties du circuit ; au passage de ce signal, les signaux de contrle correspondants sont activs.

tapes successives. Considrons maintenant deux tapes successives d'un organigramme : si elles ne sont pas runies au sein de la mme tape, c'est parce qu'elles ne doivent pas tre effectues en mme temps. Au niveau du circuit, on matrialise cette proprit en sparant l'activation des signaux de contrle de chaque tape par une bascule. De cette faon, les signaux de chaque tape seront activs des cycles diffrents, voir figure ci-dessus. Choix. Dans un organigramme, une tape de choix permet d'orienter le jeton vers deux tapes diffrentes selon la valeur d'une condition. De mme, dans un circuit de contrle, on peut utiliser des portes ET pour faire passer le signal 1 dans deux chemins diffrents, voir figure ci-dessous o x dsigne le signal de condition.

26

Jonction. Inversement, dans un organigramme plusieurs chemins peuvent aboutir la mme tape. De mme, dans un circuit de contrle, on peut utiliser une porte OU pour faire passer le signal 1, pouvant provenir de plusieurs chemins diffrents, vers un seul chemin, voir figure ci-dessous.

En utilisant ces rgles de conversion d'un organigramme en circuit, le circuit de contrle du multiplieur squentiel est le suivant :

5.3 Mthode systmatique de conception d'un circuit squentiel


Il existe des mthodes systmatiques de conception des circuits squentiels l'aide de bascules et de composants combinatoires. Un circuit de contrle est simplement un type particulier de circuit squentiel. Les tapes de conception d'un circuit squentiel sont les suivantes : 1. Dfinir l'automate du circuit. 27

2. partir du nombre d'tats de l'automate, dterminer le nombre de bascules ncessaires ; une bascule 1-bit ayant deux tats possibles (0 et 1), n bascules peuvent reprsenter et stocker 2n tats. On assigne ensuite les tats aux valeurs des bascules. 3. partir de l'automate du circuit, dterminer toutes les transitions possibles. En dduire toutes les transitions possibles des variables de contrle des bascules (D pour des bascules D), et les valeurs des sorties partir de la valeur de l'tat courant et des valeurs des entres. 4. En dduire l'expression combinatoire des variables de contrle des bascules et des sorties. 5. Raliser un circuit comportant n bascules et les circuits combinatoires ci-dessus. On va appliquer cette mthode de conception au multiplieur squentiel. partir de l'organigramme du multiplieur, on peut identifier quatre tats diffrents : tat initial, addition de la premire oprande au rsultat intermdiaire, itration (dcalage des oprandes, incrmentation du compteur), fin de la multiplication. L'automate correspondant est le suivant :

Comme l'automate comporte quatre tats, il faudra utiliser deux bascules. On peut utiliser des bascules de n'importe quel type, dans notre cas nous choisirons des bascules D. On peut associer arbitrairement les tats aux valeurs des bascules, voir un exemple ci-dessous (Qi dnote la sortie de la bascule i).

28

A partir de l'automate, on peut dterminer toutes les transitions que doivent effectuer les bascules, et en dduire comment les commander. Plus prcisment, cela signifie dterminer quel circuit placer en entre des variables de contrle de ces bascules ; par exemple, pour des bascules D, cela signifie dterminer l'expression de D en fonction des variables d'entre et de l'tat courant des bascules. La table ci-dessous rcapitule l'ensemble des transitions possibles pour les variables des bascules; notez que si l'tat courant d'une bascule est Q, son tat suivant est indiqu par Q+. On indique galement sur cette table la valeur des sorties correspondant l'tat courant. Par exemple, on peut lire de la faon suivante la deuxime ligne de la table : lorsque l'tat est addition (Q1 Q0=01) et que les entres sont O0=0 et C=0, l'automate indique que l'on passe dans l'tat itration (Q1 Q0=10), et que les valeurs des sorties pour l'tat addition sont toutes gales 0, sauf Wrsultat.

On peut remarquer que cette table constitue une table de vrit pour les sorties et pour les variables Q+ en fonction des entres O0, C, Q0 et Q1. Comme D= Q+ pour les bascules D, elle constitue galement une table de vrit pour les variables de contrle des bascules D1, D0. On peut donc en dduire l'expression des fonctions combinatoires associes aux sorties et aux variables de contrle des bascules :

29

D1 = O0 + Q0 + C.Q1 D0 = O0 .Q0 + Q1.Q0 + C.Q1 Woprande = RAZ = Q1.Q0 Wrs = Q1.Q0 Dcalage = Incrmenter = Q1.Q0

Le circuit correspondant est le suivant :

6 Les chemins de donnes


A l'intrieur d'un processeur, les connexions entre composants peuvent tre complexes. Par exemple des donnes provenant de l'UAL et la mmoire peuvent tre stockes dans un registre, et ces deux composants doivent donc tre relis au banc de registres. Une premire solution consiste utiliser de grands multiplexeurs en entre des units partages. La communication est alors rapide, bien que le temps de traverse d'un multiplexeur augmente avec sa taille. En revanche, le cot d'un tel multiplexeur peut tre important. Une solution moins coteuse, mais ventuellement moins rapide, est d'utiliser un bus.

Un bus capable de transfrer un mot de n bits d'une source un rcepteur est essentiellement un ensemble de n lignes. Les n bits de sortie de la source sont mis en contact avec le bus dont les n lignes portent alors la valeur fournie par la source. Le rcepteur est galement connect au bus et ses n lignes d'entre portent alors la valeur des lignes du bus, il y a eu transmission de l'information. Le principal problme est de pouvoir connecter et dconnecter les sources et les rcepteurs du bus. Pour ce faire on utilise un composant spcial, un tristate. Il s'agit d'un circuit comportant une entre X, une sortie Z, et un signal de contrle C. Le schma du circuit et la table de vrit sont indiqus ci-dessous.

30

X 0 0 1 1

C Z 0 1 0 0 1 1

Lorsque le signal de contrle C vaut 0, le circuit se comporte comme un interrupteur ouvert. Lorsque C vaut 1, le circuit se comporte comme une simple ligne. Ce circuit permet donc d'assurer la connexion et la dconnexion entre deux composants. Il arrive souvent qu'un bus permette d'envoyer des donnes une source et de recevoir des donnes depuis cette source. Dans ce cas, on place une drivation en amont du tristate qui alimente le bus, la liaison d'entre pouvant ventuellement contenir un latch, voir figure ci-dessous.

Charger les lignes du bus avec un signal lectrique n'est pas instantan. Ce temps augmente avec la taille du bus, i.e., si un bus est long il faut allouer plus de temps la propagation du signal d'une unit l'autre. C'est la premire limitation des bus. La deuxime limitation des bus est qu'une seule donne peut transiter la fois (les bus les plus rcents permettent de s'affranchir partiellement de cette contrainte). Dans le cas o deux units distinctes dsirent utiliser le bus pour communiquer, elles doivent saisir le bus tour de rle, en gnral des cycles d'horloge distincts. Pour arbitrer ce type de conflits, un bus comporte gnralement un contrleur (un circuit de contrle) ; ce contrleur sert implmenter un protocole de communication qui rglemente les changes entre units connectes au bus. Outre les lignes servant la transmission des donnes, les bus comportent souvent des lignes d'adresses permettant d'indiquer o la donne doit tre envoye ou stocke, et des lignes de commande permettant de spcifier la nature de l'opration (lecture, criture,...).

Bibliographie
[1] Intel 4004, http://www.intel.com/intel/intelis/museum/exhibit/hist_micro/hof/hof_main.htm. [2] Intel Pentium 4, http://www.intel.com/home/desktop/pentium4. [3] Intel Itanium, http://www.intel.com/itanium.

31

[4] C.E. Shannon, The synthesis of two-terminal switching circuits, Transactions of the American Institute of Electrical Engineers, 28, 1, 59-98, 1949. [5] S. B. Furber, D. A. Edwards and J. D. Garside, AMULET3: a 100 MIPS Asynchronous Embedded Processor, Proceedings of ICCD'00, Austin, Texas. [6] Yale N. Patt, Sanjay J. Patel, Introduction to Computing Systems, from bits and gates to C and beyond, McGraw Hill International Editions, 2001. [7] Jean-Michel Muller, Arithmtique des ordinateurs. Oprateurs et fonctions lmentaires, Masson, 1989. [8] David A. Patterson et John L. Hennessy, Organisation et Conception des Ordinateurs: L'interface Materiel/Logiciel, chez Dunod. [9] John L. Hennessy et David A. Patterson, Architecture des Ordinateurs, une Approche Quantitative, 2me dition, chez Morgan Kaufmann.

32

You might also like