Organisation des Ordinateurs Bernard Boigelot E-mail : boigelot@montefiore.ulg.ac.be URL : http://www.montefiore.ulg.ac.be/~boigelot/ http://www.montefiore.ulg.ac.be/~boigelot/cours/org/ 1
Chapitre 1 Les circuits digitaux 2
Les ordinateurs Définition: Un ordinateur est une machine capable de résoudre des problèmes et de traiter des données en effectuant des opérations préétablies. But du cours: Etudier le fonctionnement interne des ordinateurs. 3
L information (I) Question: Quand peut-on dire qu un objet A possède de l information? A B 42??? Réponse: Lorsque A connaît une donnée (p.ex., la valeur d une variable) et cette donnée peut être communiquée à un autre objet B qui ne la connaît pas. 4
L information (II) Remarque: Communiquer une donnée de A à B s effectue via des signaux transmis via un canal de communication. Définition: L information est une donnée pouvant être transmise par un signal (ou par une combinaison de signaux). Exemple: Compact Disc. 5
Les signaux continus Les signaux véhiculant de l information peuvent prendre plusieurs formes. Définition: Un signal continu est un signal qui peut prendre un nombre infini de valeurs dans un intervalle donné. min max Inconvénient: L information n est pas transmise fiablement, car la valeur de chaque signal est entachée d imprécisions. 6
Le bruit L ensemble des imprécisions affectant un signal peut être regroupé en un signal de bruit. Lorsque A transmet un signal à B, on a donc: signal reçu par B = signal émis par A + signal de bruit Remarques: Le bruit ne peut jamais être entièrement éliminé d un signal continu. Le bruit limite la quantité de données pouvant être transmises par un signal 7
Les signaux discrets Définition: Un signal discret est un signal possédant un nombre fini de valeurs nominales. Avantage: La transmission fiable de données est possible malgré la présence de bruit. En effet, si l amplitude du signal de bruit est suffisamment petite, les valeurs transmises peuvent toujours être correctement identifiées à leur réception. Dans les ordinateurs, l information est transmise, traitée et mémorisée au moyen de signaux discrets. 8
Exemple de signaux discrets Tonalités de signalisation d un téléphone à touches: 1209 Hz 1336 Hz 1477 Hz 687 Hz 1 2 3 770 Hz 4 5 6 852 Hz 941 Hz 7 8 9 0 # 9
La quantité d information (I) Question: Comment peut-on quantifier la quantité d information transportée par un signal discret? Desiderata: Plus la probabilité de recevoir une valeur est faible, plus la quantité d information est élevée. inf > inf Lorsque l on combine des signaux indépendants, l information doit s additionner. inf = 3 inf 10
La quantité d information (II) Définition: La quantité d information transmise par une valeur discrète reconnaissable de façon fiable est égale à log 2 1 p, où p dénote la probabilité que cette valeur soit reçue. Cette quantité d information s exprime en bits (binary digits). Par conséquent, la quantité d information contenue dans un signal pouvant prendre N valeurs équiprobables (reconnaissables de façon fiable) vaut log 2 N. Un bit représente donc la quantité d information permettant de distinguer fiablement deux valeurs équiprobables. 11
Exemples On transmet une lettre de l alphabet au moyen d un signal de tension: A = 0 V, B = 0,04 V, C = 0,08 V,..., Y = 0,96 V, Z = 1 V. Situation 1: Les 26 valeurs peuvent être fiablement reconnues. Si les probabilités de recevoir un E et un Z sont (resp.) égales à 0,18 et 0,0007, la quantité d information transmise par les signaux correspondants vaut (resp.) et log 2 1 0,18 log 2 1 0,0007 2,47 bits 10,48 bits. 12
Si les 26 lettres ont la même probabilité d être reçues, la quantité d information contenue dans un signal vaut log 2 26 4,7 bits. Situation 2: On ne peut distinguer que les tensions supérieures ou inférieures à 0,5 V. Si les 2 valeurs sont équiprobables, la quantité d information véhiculée par un signal vaut log 2 2 = 1 bit. 13
L abstraction digitale Dans les circuits d un ordinateur, l information est représentée par une grandeur physique discrète: la tension électrique (le plus souvent), mais parfois aussi le courant, la fréquence, l intensité lumineuse,.... Pour décrire les circuits de l ordinateur, il est plus commode de faire référence aux valeurs représentées par les signaux plutôt qu aux grandeurs physiques utilisées. La correspondance entre un signal discret et la valeur représentée par celui-ci porte le nom d abstraction digitale. L abstraction digitale va nous permettre de décrire des circuits élémentaires et de les combiner de manière à obtenir des circuits complexes, en faisant abstraction des aspects électriques et électroniques du problème. 14
L algèbre booléenne Pour des raisons de simplicité et d immunité maximale au bruit, les signaux discrets utilisés dans les ordinateurs sont binaires. Rappel: La quantité d information contenue dans un signal binaire équiprobable vaut log 2 2 = 1 bit. L algèbre booléenne est la théorie des opérations impliquant des variables binaires. Par convention, les deux valeurs que peut prendre une variable booléenne sont appelées vrai et faux. Ces deux valeurs peuvent aussi être dénotées par des nombres: vrai = 1, faux = 0. 15
Les tables de vérité Définition: Une fonction booléenne d arité n est une fonction de n variables booléennes d entrée vers une variable booléenne de sortie (n 0). Pour définir une fonction booléenne, il suffit de donner sa valeur de sortie pour toutes les combinaisons possibles de valeurs de ses arguments. La table associant ces valeurs de sortie aux combinaisons de valeurs d entrée est appelée table de vérité. La table de vérité d une fonction d arité n possède 2 n lignes. 16
Exemple Table de vérité de la fonction f à trois arguments qui est vraie si et seulement si exactement deux de ses arguments sont vrais: x 1 x 2 x 3 f(x 1, x 2, x 3 ) 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 0 17
Les fonctions booléennes de base Question: Combien y a-t-il de fonctions booléennes distinctes d arité n? Réponse: La table de vérité d une fonction d arité n possède 2 n lignes, et Chaque ligne d une table de vérité peut prendre la valeur 0 ou la valeur 1. Il y a 2 2n tables de vérité distinctes. Il existe donc 2 22 = 16 fonctions booléennes d arité 2. Certaines de ces fonctions présentent un intérêt particulier. 18
La fonction AND Cette fonction possède la table de vérité suivante: x 1 x 2 AND(x 1, x 2 ) 0 0 0 0 1 0 1 0 0 1 1 1 Elle se dénote par l opérateur binaire : AND(x 1, x 2 ) = x 1 x 2 La valeur x 1 x 2 est vraie si et seulement si x 1 et x 2 sont vrais. 19
La fonction OR Cette fonction possède la table de vérité suivante: x 1 x 2 OR(x 1, x 2 ) 0 0 0 0 1 1 1 0 1 1 1 1 Elle se dénote par l opérateur binaire + : OR(x 1, x 2 ) = x 1 + x 2 La valeur x 1 + x 2 est vraie si et seulement si x 1 ou x 2 sont vrais. 20
La fonction XOR Cette fonction (aussi appelée ou exclusif) possède la table de vérité suivante: x 1 x 2 XOR(x 1, x 2 ) 0 0 0 0 1 1 1 0 1 1 1 0 Elle se dénote par l opérateur binaire : XOR(x 1, x 2 ) = x 1 x 2 La valeur x 1 x 2 est vraie si et seulement si x 1 ou bien x 2 est vrai. 21
La fonction NAND Cette fonction possède la table de vérité suivante: x 1 x 2 NAND(x 1, x 2 ) 0 0 1 0 1 1 1 0 1 1 1 0 Remarque: Pour les mêmes valeurs d arguments, cette fonction renvoie toujours une valeur opposée à celle de la fonction AND. On a donc NAND(x 1, x 2 ) = NOT (AND(x 1, x 2 )), où NOT est une fonction unaire renvoyant une valeur différente de celle de son argument. 22
La fonction NOT La table de vérité de cette fonction est par conséquent la suivante: x 1 NOT (x 1 ) 0 1 1 0 Elle se dénote par une barre horizontale au dessus de son argument, ou bien par l opérateur unaire : NOT (x 1 ) = x 1 = x 1. On a donc NAND(x 1, x 2 ) = x 1 x 2. 23
La fonction NOR Cette fonction possède la table de vérité suivante: x 1 x 2 NOR(x 1, x 2 ) 0 0 1 0 1 0 1 0 0 1 1 0 Remarque: Pour les mêmes valeurs d arguments, cette fonction renvoie toujours une valeur opposée à celle de la fonction OR. On a donc NOR(x 1, x 2 ) = x 1 + x 2. 24
Les expressions booléennes Les opérateurs, +, et permettent de construire des expressions. Par convention, l opérateur a une priorité plus élevée que + et : x 1 + x 2 x 3 est équivalent à x 1 + (x 2 x 3 ). De même, x 1 x 2 x 3 est équivalent à x 1 (x 2 x 3 ). Nous allons étudier quelques propriétés des expressions booléennes. 25
La commutativité Les opérateurs, + et sont commutatifs: x 1 x 2 = x 2 x 1, x 1 + x 2 = x 2 + x 1, x 1 x 2 = x 2 x 1. L associativité Les opérateurs, + et sont associatifs: x 1 (x 2 x 3 ) = (x 1 x 2 ) x 3, x 1 + (x 2 + x 3 ) = (x 1 + x 2 ) + x 3, x 1 (x 2 x 3 ) = (x 1 x 2 ) x 3. Remarque: L associativité permet d éliminer les parenthèses des expressions précédentes. 26
La distributivité L opérateur est distributif sur les opérateurs + et : x 1 (x 2 + x 3 ) = (x 1 x 2 ) + (x 1 x 3 ), x 1 (x 2 x 3 ) = (x 1 x 2 ) (x 1 x 3 ). L opérateur + est distributif sur l opérateur : x 1 + (x 2 x 3 ) = (x 1 + x 2 ) (x 1 + x 3 ). Remarque: Cette dernière propriété n est pas valide en arithmétique! 27
Les règles de DeMorgan Ces règles permettent d exprimer chacun des opérateurs + et en fonction de l autre et du complément : x 1 + x 2 + + x n = x 1 x 2 x n, x 1 x 2 x n = x 1 + x 2 + + x n. Il est aussi possible d exprimer l opérateur en fonction des autres opérateurs: x 1 x 2 = x 1 x 2 + x 1 x 2. 28
Les règles d absorption Ces règles permettent de simplifier certaines expressions: x 1 + (x 1 x 2 ) = x 1 x 1 (x 1 + x 2 ) = x 1 x 1 + (x 1 x 2 ) = x 1 + x 2 x 1 (x 1 + x 2 ) = x 1 x 2 x 1 (x 1 x 2 ) = x 1 x 2 x 1 (x 1 x 2 ) = x 1 x 2 Autres règles x 1 + 1 = 1 x 1 0 = 0 x 1 0 = x 1 x 1 + 0 = x 1 x 1 1 = x 1 x 1 1 = x 1 x 1 + x 1 = x 1 x 1 x 1 = x 1 x 1 x 1 = 0 x 1 + x 1 = 1 x 1 x 1 = 0 x 1 x 1 = 1 29
Exercice On souhaite construire une expression booléenne dénotant la fonction possédant la table de vérité x 1 x 2 x 3 f(x 1, x 2, x 3 ) 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 0 Cette fonction n est vraie que pour trois valeurs de ses arguments: (0, 1, 1), (1, 0, 1), (1, 1, 0). 30
Pour chaque valeur des arguments, on peut écrire une expression qui est vraie pour cette valeur, et fausse pour toutes les autres: f (0,1,1) (x 1, x 2, x 3 ) = x 1 x 2 x 3 f (1,0,1) (x 1, x 2, x 3 ) = x 1 x 2 x 3 f (1,1,0) (x 1, x 2, x 3 ) = x 1 x 2 x 3. La fonction f est vraie si au moins une des trois fonctions précédentes est vraie pour les mêmes valeurs des arguments: f(x 1, x 2, x 3 ) = f (0,1,1) (x 1, x 2, x 3 ) + f (1,0,1) (x 1, x 2, x 3 ) + f (1,1,0) (x 1, x 2, x 3 ) = x 1 x 2 x 3 + x 1 x 2 x 3 + x 1 x 2 x 3. En appliquant les règles de l algèbre booléenne: f(x 1, x 2, x 3 ) = (x 1 x 2 + x 1 x 2 ) x 3 + x 1 x 2 x 3 = (x 1 x 2 ) x 3 + x 1 x 2 x 3. 31
Les niveaux de tension Les circuits de l ordinateur manipulent les valeurs booléennes en associant un niveau de tension nominal à chacune d elles. Il est important de pouvoir distinguer fiablement les deux valeurs, même en présence de bruit. On choisit donc deux niveaux de tension les plus éloignés possible l un de l autre: La tension nulle pour la valeur 0; La tension d alimentation pour la valeur 1. Il est cependant impossible de construire des circuits qui produisent exactement ces tensions. On définit donc des intervalles de validité plutôt que des niveaux de tension ponctuels. Les circuits sont construits de façon à ne générer que des signaux valides. 32
Les marges d erreur Bien que les signaux soient valides à la sortie des composants qui les génèrent, ils sont corrompus par une certaine quantité de bruit avant d arriver à l entrée d autres composants. On tient compte de ce bruit en dotant chaque intervalle de validité d une marge d erreur qui lui est adjacente. Les signaux situés dans les marges d erreur peuvent être fiablement décodés en valeurs booléennes. 33
Exemple 5 V Intervalle de validité (valeur 1) Marge d erreur (1) 4 V 3, 5 V Plage interdite Marge d erreur (0) 1, 5 V 1 V Intervalle de validité (valeur 0) 0 V 34
La discipline statique Un circuit ne peut être connecté à d autres circuits que s il satisfait aux règles suivantes: Si on fournit des signaux valides constants aux entrées du circuit, alors ce dernier finira par générer des signaux de sortie valides après un certain délai de propagation. Un signal d entrée est considéré valide si sa tension se situe dans un des deux intervalles de validité ou dans la marge d erreur correspondante (mais pas dans la plage interdite). Un signal de sortie est considéré valide si sa tension appartient à un des deux intervalles de validité (mais pas à une marge d erreur ni à la plage interdite). L ensemble de ces règles constitue une discipline statique. Celle-ci garantit l absence de signaux invalides en dehors des périodes de propagation et de transition des valeurs. 35
Les familles logiques Il existe plusieurs types de circuits capables de traiter des signaux digitaux. Une famille logique est une norme définissant des niveaux de tension (intervalles de validité, marges d erreur); des circuits de base; un ensemble de contraintes à respecter (sur la forme des connexions permises, les temps de propagation,... ); un procédé de fabrication des composants;... Les principales familles actuellement utilisées sont CMOS et TTL. 36
Les portes logiques Les portes logiques sont des circuits digitaux élémentaires réalisant les fonctions booléennes de base. Les symboles conventionnels attribués aux portes sont les suivants: x 1 x 2 x 1 x 2 x 1 x 2 x 1 x 2 x 1 x 1 x 1 x 2 x 1 + x 2 x 1 x 2 x 1 + x 2 x 1 x 2 x 1 x 2 x 1 x 1 Remarques: Ces symboles peuvent aussi décrire des portes possédant plus de deux entrées; Bien sûr, les portes respectent la discipline statique! 37
L interconnexion des portes L interconnexion de plusieurs portes logiques permet de construire des circuits plus complexes. Les règles d interconnexion sont les suivantes: On ne peut pas connecter entre elles les sorties de plusieurs portes, ou différentes entrées d un même circuit; Il est permis de connecter la sortie d une porte aux entrées d autres portes. Exemple: Porte AND à trois entrées construite à partir de deux portes à deux entrées: x 1 x 2 x 3 x 1 x 2 x 3 38
Les circuits combinatoires Un chemin est un parcours d un circuit, à partir d un de ses points, effectué en suivant les connexions et en franchissant les portes d une entrée vers la sortie. Un cycle est un chemin dont le point d origine et le point de destination sont identiques, et qui franchit au moins une porte. Définition: Un circuit combinatoire est un circuit digital dont aucun chemin n est un cycle. Propriété: Les valeurs booléennes générées aux sorties d un circuit combinatoire dépendent uniquement des valeurs fournies aux entrées de celui-ci. En d autres termes, un circuit combinatoire à n entrées et m sorties peut être défini par m fonctions booléennes d arité n. 39
Remarque: Sous l hypothèse où toutes les portes possèdent le même délai de propagation, le délai de propagation maximal d un circuit combinatoire correspond au chemin le plus long d une entrée vers une sortie. 40
Exemple 1 Circuit combinatoire réalisant la fonction d arité 3 vraie si et seulement si deux de ses entrées sont vraies: x 1 x 2 x 3 x 1 x 2 x 3 (x 1 x 2 ) x 3 f x 1 x 2 x 3 x 1 x 2 x 3 Temps de propagation maximal: 3τ, où τ est le temps de propagation maximal d une porte. 41
Exemple 2 Circuit à deux entrées contrôlant un affichage à sept segments. Le chiffre affiché totalise le nombre d entrées vraies. Un segment est allumé lorsque la sortie correspondante est vraie: x 1 x 2 a 1 b a c f g b d e d c e f g Temps de propagation maximal: 2τ. 42
L instabilité Il est facile de construire des circuits qui ne sont pas combinatoires: Ce circuit possède une particularité: Il est impossible d affecter une valeur booléenne fixe à sa seule connexion! Ce circuit est instable. Définition: Un circuit est stable s il est possible d affecter une valeur booléenne persistante à chacune de ses connexions. 43
Les circuits instables sont à proscrire! En pratique, de tels circuits génèrent des signaux invalides, ou des oscillations. 44
Les circuits non combinatoires stables Tous les circuits non combinatoires ne sont pas instables: x 1 x 2 L attribution des valeurs x 1 = 0 et x 2 = 1 est persistante, et donc le circuit est stable. Le choix des valeurs x 1 = 1 et x 2 = 0 est également persistant. Remarque: La stabilité d un circuit ne garantit pas l absence de signaux invalides ou d oscillations dans une réalisation pratique de ce circuit! 45
Les verrous Le circuit précédent possède deux points de stabilité, et peut donc se trouver dans deux états distincts. Il est donc capable de mémoriser un bit d information. Ce circuit ne permet cependant pas de choisir la valeur booléenne mémorisée. Pour pallier cet inconvénient, on lui ajoute des entrées permettant de contrôler la valeur circulant dans le cycle: s q r Le circuit obtenu porte le nom de verrou. 46
Le fonctionnement d un verrou Si s = 0 et r = 0: Le circuit est équivalent à deux inverseurs en boucle, et mémorise donc un bit d information. La valeur mémorisée peut être vue comme celle présente à la sortie q. Si s = 1 et r = 0: La valeur mémorisée devient égale à 1 (set). Si s = 0 et r = 1: La valeur mémorisée devient égale à 0 (reset). Le verrou est donc capable de retenir laquelle des entrées s ou r a été activée en dernier lieu. Si s = 1 et r = 1: La valeur de mémorisée devient égale à 0, mais peut ensuite basculer vers n importe quelle valeur lorsque s et r reprennent la valeur 0. Une telle condition de course est à éviter! 47
Le signal d horloge L utilisation des verrous pose plusieurs problèmes: Le verrou charge une nouvelle valeur dès le moment où une de ses entrées prend la valeur 1. Ce moment peut dépendre des délais de propagation d autres portes. Il faut garantir l absence de conditions de course. On souhaite que les données mémorisées par un circuit ne soient modifiées qu à des instants ponctuels, bien déterminés. La solution consiste à fournir au circuit un signal d horloge. Ce signal est généré par un composant spécial, et est constitué d une alternance périodique de valeurs 0 et 1. φ : 48
Les valeurs mémorisées par ce circuit ne sont alors modifiées qu aux instants où l horloge effectue une transition de la valeur 0 à la valeur 1 (c est-à-dire lors de ses flancs montants). Note: Une autre convention consiste à considérer les transitions de la valeur 1 à la valeur 0 (flancs descendants). 49
Le flip-flop Le composant de mémorisation élémentaire présent dans les circuits basés sur une horloge est le flip-flop. Symbole: d d q q φ Fonctionnement: Un flip-flop est capable de retenir un bit. La valeur retenue est disponible à la sortie q; Lors d un flanc montant de l horloge, le flip-flop charge la valeur présente à l entrée d. (On dit que le flip-flop est déclenché par le flanc.) 50
Les délais d un flip-flop Le fonctionnement d un flip-flop n est pas instantané: La valeur mémorisée n est disponible à la sortie qu un certain temps après avoir été chargée. Ce délai est le délai de propagation τ p du flip-flop; Pour qu une valeur d entrée puisse être chargée, il faut qu elle reste constante un certain laps temps avant le coup d horloge. Ce délai est le délai de stabilisation τ s du flip-flop. Exemple: τ s τ p τ s τ p τ s τ p d q φ 51
Les registres En général, un circuit mémorise plus d un bit d information. Un registre est un composant obtenu en regroupant plusieurs flip-flops partageant la même horloge. Circuit équivalent: Symbole: d 1 d 2 d d q q q 1 q 2 d 1 d 2. d n n d q n q 1 q 2. q n... φ d n d q q n φ 52
Les circuits séquentiels Dans un circuit digital, on peut séparer les composants mémorisant les données de ceux dédiés à leur traitement. Un circuit séquentiel est un circuit possédant la forme générale suivante: Sorties o 1, o 2,... Circuit Entrées i 1, i 2,... combinatoire n n n d q n φ Les valeurs retenues par le registre déterminent l état du circuit. La capacité du registre étant de n bits, le circuit peut potentiellement se trouver dans 2 n états. 53
Fonctionnement d un circuit séquentiel Soient T la période de l horloge; τ c le temps de propagation du circuit combinatoire; τ p le temps de propagation du registre; τ s le temps de stabilisation du registre. Si T > τ c + τ p + τ s, le circuit change d état à chaque coup d horloge. Lors d un changement d état, le nouvel état s t+1 est déterminé par le circuit combinatoire à partir de l état précédent s t, et la valeur i t des entrées du circuit. On a donc s t+1 = f(s t, i t ), où f est une fonction de transition réalisée par le circuit combinatoire. 54
La discipline dynamique Pour que le changement d état s effectue correctement, les entrées du circuit doivent rester stables pendant une durée au moins égale à τ c + τ s avant chaque coup d horloge. Un circuit séquentiel respectant cette condition obéit à la règle de discipline dynamique. Un circuit séquentiel peut également posséder des sorties. Leur valeur o t est déterminée par le circuit combinatoire à partir de l état courant s t, et la valeur i t des entrées du circuit. On a donc o t = f (s t, i t ), où f est une fonction de sortie réalisée par le circuit combinatoire. Remarque: La stabilité des sorties n est garantie que pendant un certain intervalle précédant chaque coup d horloge. 55
Illustration Entrées i Etat s Sorties o Horloge φ 56
Exemple Circuit séquentiel d un compteur pilotant un affichage à sept segments: f e a g d b c 1 a b c d e d 1 q 1 d 2 q 2 f g i φ 57
Fonction de transition: Etat courant Entrée Etat suivant q 1 q 2 i q 1 q 2 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 1 0 1 0 1 1 1 1 1 0 1 1 1 1 1 0 0 Fonction de sortie: Etat Sorties q 1 q 2 a b c d e f g 0 0 0 1 1 0 0 0 0 0 1 1 1 0 1 1 0 1 1 0 1 1 1 1 0 0 1 1 1 0 1 1 0 0 1 1 58
Chapitre 2 La représentation des données 59
La représentation des nombres entiers positifs Problème: On souhaite représenter des nombres naturels à l aide de n bits. Solution: Il suffit d encoder les nombres en base 2: On attribue à chaque bit une position de 0 à n 1. Par convention, on procède de droite à gauche; On affecte au bit de position k le poids 2 k. Le nombre représenté par la suite de bits b n 1 b n 2... b 1 b 0 est donc égal à n 1 i=0 b i 2 i. Ce procédé porte le nom de représentation binaire non signée des nombres. 60
Exemple: la représentation binaire non signée 10110101 dénote le nombre 181: Position : 7 6 5 4 3 2 1 0 Poids : 2 7 2 6 2 5 2 4 2 3 2 2 2 1 2 0 1 0 1 1 0 1 0 1 On a en effet 7 i=0 b i 2 i = 2 7 + 2 5 + 2 4 + 2 2 + 2 0 = 128 + 32 + 16 + 4 + 1 = 181. Note: Les bits situés aux positions 0 et n 1 sont respectivement appelés bit de poids faible et bit de poids fort. 61
Calcul de la représentation d un nombre La représentation d un nombre v peut se calculer grâce aux deux propriétés suivantes: Le bit de poids faible est égal à 0 si v est pair, et à 1 si v est impair; En retirant le bit de poids faible d une représentation de v, on obtient une représentation de v/2. On a donc l algorithme suivant: 1. Si v est pair, écrire 0. Sinon, écrire 1; 2. Remplacer v par v/2 ; 3. Répéter les deux opérations précédentes tant que v 0. 62
Remarques: Cet algorithme génère les bits de la représentation de v en commençant par le bit de poids faible (c est-à-dire de la droite vers la gauche); La suite de bits obtenue constitue la représentation la plus courte du nombre v. Des représentations plus longues s obtiennent en préfixant le résultat d un nombre quelconque de zéros. Exemple: Représentation du nombre 109: v = 109 impair 1 v = 54 pair 0 v = 27 impair 1 v = 13 impair 1 v = 6 pair 0 v = 3 impair 1 v = 1 impair 1 v = 0. La représentation obtenue est donc 1101101. Il est permis d ajouter un nombre arbitraire de zéros en tête de cette représentation. 63
Les valeurs représentables A l aide de n bits, il n est pas possible de représenter plus de 2 n valeurs distinctes. L algorithme de calcul de la représentation d un nombre v s arrête après avoir produit n bits ou moins si et seulement si v < 2 n. Les nombres possédant une représentation binaire non signée sur n bits sont donc les éléments de l intervalle [0,..., 2 n 1]. 64
L arithmétique binaire non signée Les opérations d addition et de multiplication de nombres entiers non signés peuvent s effectuer selon les règles du calcul écrit. Les tables d addition binaire sont les suivantes (les reports sont dénotés par un rectangle): 0 + 0 0 + 1 1 + 0 1 + 1 0 1 1 1 0 1 0 + 0 1 0 + 1 1 1 + 0 1 1 + 1 1 1 0 1 0 1 1 L opération d addition s effectue bit par bit, en commençant par le bit de poids faible. 65
Exemple: Calcul de la somme 123 + 456 = 579: 1 1 1 1 1 1 0 0 0 1 1 1 1 0 1 1 + 0 1 1 1 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 1 66
La multiplication de nombres binaires non signés Le calcul d un produit s effectue selon des règles analogues à celles du calcul décimal: 1. Des produits partiels sont successivement calculés pour chaque bit du multiplicateur, et convenablement alignés; 2. Ces produits partiels sont ensuite additionnés. La table de multiplication binaire est la suivante: 0 0 0 1 1 0 1 1 0 0 0 1 67
Exemple: Calcul du produit 34 12 = 408: 1 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 + 1 0 0 0 1 0 1 1 0 0 1 1 0 0 0 68
La représentation hexadécimale La représentation binaire utilisée par les ordinateurs est mal adaptée aux opérations manuelles. Dans certains cas, il est cependant indispensable de pouvoir raisonner sur la représentation interne des données. On utilise alors la représentation hexadécimale (c est-à-dire en base 16), qui présente deux avantages: Elle est concise; Les conversions de l hexadécimal vers le binaire et vice-versa sont immédiates. Un chiffre hexadécimal peut prendre 16 valeurs: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. Un tel chiffre représente donc exactement 4 bits d information. Pour convertir un nombre hexadécimal en binaire, il suffit de remplacer chaque chiffre par la séquence de 4 bits qui lui correspond. La conversion réciproque est similaire. 69
Table de conversion: Hexadécimal Binaire Hexadécimal Binaire 0 0000 8 1000 1 0001 9 1001 2 0010 A 1010 3 0011 B 1011 4 0100 C 1100 5 0101 D 1101 6 0110 E 1110 7 0111 F 1111 Note: Lorsque le contexte ne permet pas de déterminer la base choisie pour représenter les nombres, on ajoute le suffixe h ou le préfixe 0x aux représentations hexadécimales, et le suffixe b ou le préfixe 0b aux représentations binaires. Exemple: On a 0xCAFE007 = 1100101011111110000000000111b = 212852743. 70
La représentation des nombres entiers signés Il existe plusieurs procédés permettant de représenter des nombres entiers positifs et négatifs: La représentation par valeur signée; La représentation par complément à un; La représentation par complément à deux. Ces trois méthodes possèdent des points communs: Le signe d un nombre est représenté par le bit de poids fort (ici appelé bit de signe). Celui-ci est égal à 0 pour les nombres positifs; 1 pour les nombres négatifs. La représentation d un nombre positif est toujours identique à sa représentation binaire non signée de même taille. 71
La représentation par valeur signée Principe: A la suite du bit de signe, on place la représentation binaire non signée de la valeur absolue du nombre représenté. Exemple: La représentation sur 8 bits du nombre 42 est égale à 10101010. En effet Ce nombre est négatif, donc le bit de signe est égal à 1; La représentation binaire non signée sur 7 bits de 42 = 42 est 0101010. Selon ce procédé, le nombre v représenté par le groupe de bits b n 1 b n 2... b 1 b 0 est égal à v = (1 2b n 1 ) n 2 i=0 b i 2 i. 72
Les valeurs représentables A l aide de n bits, la représentation par valeur signée permet d encoder tous les éléments de l intervalle [0,..., 2 n 1 1] (bit de signe égal à 0), et tous les éléments de l intervalle [ 2 n 1 + 1,..., 0] (bit de signe égal à 1). L ensemble des valeurs représentables est donc l intervalle [ 2 n 1 + 1,..., 2 n 1 1]. Remarques: Le nombre 0 possède deux représentations distinctes; Ce procédé rend difficile le calcul des opérations arithmétiques. 73
La représentation par complément à un Principe: La représentation d un nombre est similaire à sa représentation par valeur signée, mais les bits qui suivent le bit de signe sont complémentés (0 est remplacé par 1, et vice-versa). Exemple: La représentation sur 8 bits du nombre 42 est égale à 11010101. En effet Ce nombre est négatif, donc le bit de signe est égal à 1; La représentation binaire non signée sur 7 bits de 42 = 42 est 0101010, dont le complément est 1010101. L ensemble des nombres représentables à l aide de n bits est identique à celui obtenu pour la représentation par valeur signée, soit l intervalle [ 2 n 1 + 1,..., 2 n 1 1]. 74
Selon ce procédé, le nombre v représenté par le groupe de bits b n 1 b n 2... b 1 b 0 est égal à En effet, (1 2 n 1 )b n 1 + n 2 i=0 b i 2 i. Si v > 0, on a b n 1 = 0 et v = n 2 i=0 b i 2 i ; Si v < 0, on a b n 1 = 1. La suite de bits b n 2 b 1 b 0 forme la représentation binaire non signée du nombre On a donc bien 2 n 1 1 n 2 i=0 v = v = 1 2 n 1 + b i 2 i. n 2 i=0 b i 2 i. 75
L arithmétique des nombres représentés par complément à un Les algorithmes de calcul arithmétique sur les nombres non signés peuvent facilement être adaptés à la représentation par complément à un. L addition de deux nombres signés représentés à l aide de n bits s effectue de la façon suivante: 1. On additionne les deux nombres comme s il s agissait de représentations non signées; 2. Si l opération conduit à un report à la position n, on supprime ce report et on ajoute 1 à la somme calculée. 76
Exemples: Calcul de la somme 12 + ( 34) = 22: 1 1 1 0 0 0 0 1 1 0 0 + 1 1 0 1 1 1 0 1 1 1 1 0 1 0 0 1 Calcul de la somme 12 + ( 34) = 46: 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 + 1 1 0 1 1 1 0 1 1 1 0 1 0 0 0 0 + 1 1 1 0 1 0 0 0 1 77
La représentation par complément à deux Principes: La représentation d un nombre v sur n bits est égale 1. au bit de signe 0 suivi de la représentation entière non signée de v sur n 1 bits si v 0; 2. à la représentation par complément à un de v + 1 sur n bits si v < 0. On dit alors que les n bits ainsi obtenus forment le complément à deux des n bits encodant le nombre positif v. Exemples: La représentation sur 8 bits du nombre 42 est égale à 11010110; La représentation sur n bits du nombre 1 est composée de n bits égaux à 1. 78