Vous êtes sur la page 1sur 81

Architecture des ordinateurs

© Cours de madame Azabou Maha


Année Universitaire
2020 - 2021
Chapitre 2: Représentation des nombres

2
Introduction(1)
• Information numérique = information binaire
= 1 bit
• Représentée par 2 niveaux de tension

• Codée par « 0 » logique ou « 1 » logique

• Différents codages pour représenter une information


(binaire naturel, complément à 2, BCD, etc…)

3
Introduction(2)
• Pourquoi la représentation binaire?
Simple à manipuler
• Traitement sur le processeur
• Stockage sur la mémoire
• Transfert sur le bus
Facile à représenter à l’aide de systèmes à deux états
Calcul simple en base 2
• Multiplication de deux chiffres binaires se résume à connaître 0x0=0,
0x1=0 et 1x1=1.

4
Calcul binaire et entiers positifs
Bases classiques en informatique
• Base 2
• La première base fondamentale est la base 2, elle permet le calcul
binaire
• Base 8 et 16
• la base 8 (octale): utilise les chiffres de 0 à 7,
• la base 16 (hexadécimale): utilise tous les chiffres décimaux ainsi que les
lettres de a à f (puisqu’il faut des symboles supplémentaires pour les
nombres de 10 à 15).

Par exemple, 21768 = 2 × 83 + 82 + 7 × 8 + 6 = 115010 = 4 × 162 + 7 × 16 +


14 = 47e16
5
Calcul binaire et entiers positifs
Bases classiques en informatique

• Dans le cas général, en base b, on utilise b chiffres


• En décimal b=10,
(X)b=1057

• En binaire b=2,
(X)b=10010 ai ∈ { 1,0 }

• En hexadécimal b=16,
(X)b=10AF7 ai ∈ { 0,1,2,...,9,A,... F }
6
Calcul binaire et entiers positifs
Changement de base

• Le calcul binaire
• Pas pratique (à cause de la taille des écritures),
• Pas intuitive (le cerveau humain ne calcule facilement qu’en base 10).
=>On doit donc souvent effectuer des changements de base entre la base 2 et les
bases 8, 10 ou 16.

7
Calcul binaire et entiers positifs
Changement de base

8
Calcul binaire et entiers positifs
Changement de base
• Correspondance base 2 – base 8 ou 16
Exemple: le nombre binaire 101101000110 en base 8, on exprime chaque groupe de
3 bits (en partant des bits de poids faible) dans son équivalent octal.
On obtient ici successivement de droite à gauche 110 → 6, 000 → 0, 101 → 5, 101 →
5, ce qui donne : 1011010001102 = 55068.
On opère de la même façon pour le passage vers la base 16, en regroupant les bits
quatre à quatre : (1011 0100 0110)2 = b4616

9
Calcul binaire et entiers positifs
Changement de base
• Correspondance base 2 – base 8 ou 16
Si le nombre de bits n’est pas divisible par 3 ou 4, il est alors nécessaire d’ajouter des
bits nuls en tête du nombre.
Par exemple : 11010102 = (001 101 010)2 = 1528 en octal et 11010102 = (0110 1010)2 =
6a16 en hexadécimal.

À l’inverse, pour passer de la base 8 ou 16 à la base 2, on remplace chaque symbole


octal ou hexadécimal par les 3 ou 4 bits équivalents :
par exemple 3278 = 110101112 et 4ce16 = 100110011102

10
Calcul binaire et entiers positifs
Changement de base
• Correspondance base 2 – base 10

• Pour avoir la valeur décimale d’un nombre binaire, il suffit d’additionner les
puissances de 2 correspondant aux bits mis à 1 dans l’écriture binaire :
1011010001102 = 211 + 29 + 28 + 26 + 22 + 21 = 288610.
• Dans l’autre sens, il faut diviser le nombre décimal par 2, garder le reste, qui
donne le bit de poids faible, et recommencer avec le quotient, jusqu’à arriver à
un quotient égal à 1.

11
Calcul binaire et entiers positifs
Changement de base

Exemple :
011010001102 = 211 + 29 + 28 + 26 + 22 + 21 = 288610

12
Calcul binaire et entiers positifs
Aritméthique binaire
• Addition :

Exemple :

On peut vérifier le résultat en décimal : 43 + 110 = 153.


13
Calcul binaire et entiers positifs
Aritméthique binaire
• Soustraction :

• Exemple :

14
Calcul binaire et entiers positifs
Aritméthique binaire
• Multiplication :
• Addition d’une opérande avec lui-même décalé
• Le résultat d’une opération de multiplication d’opérandes sur n bits est codé sur
2n bits.

15
Calcul binaire et entiers positifs
Aritméthique binaire
Exercice

Multiplier (1100011)2 par 2. Que remarque-t-on?


1. En déduire ce qu’il se passera lors d’une multiplication par
4.
2. Comment reconnaît-on un multiple de 8 lorsqu’il est écrit
en base 2?

16
Calcul binaire et entiers positifs
Aritméthique binaire
• Division :

17
Calcul binaire et entiers positifs
Débordement
• Il y a débordement si le résultat de l’opération n’est pas représentable
avec le codage utilisé.
Débordant = retenue sortante égale à 1
Exemple :
Cas de 25 + 22 sur 5 bits => débordement
Cas de 6 + 11 sur 4 bits => débordement
Case de 6+11 sur 5 bits => pas de débordement

18
Calcul binaire et entiers positifs
Débordement
• Exemple: voici un exemple sur 8 bits

• Le résultat de 156 + 168 dépasse 255 et ne peut donc pas s’exprimer sur
8 bits ; cela est matérialisé par la retenue finale.

19
Calcul binaire et entiers positifs
Débordement
• Exemple: voici un exemple sur 8 bits
• De la même façon, une soustraction peut amener à un résultat négatif,
non représentable avec des nombres non signés. Là encore, une retenue
finale indique un débordement.

• Dans les deux cas, le résultat obtenu n’est pas le résultat correct : il y a
débordement. Il faut pouvoir le détecter pour, par exemple, arrêter le
calcul. 20
Calcul des entiers relatifs

• Entiers relatifs : entier positif, négatif ou nul.


• Comment on peut coder le signe ?

• Cas de codage d’entiers positifs ou nuls sur n bits:


 Codage identique à un entier naturel.
Le bit de poids fort (bit de signe) est à 0.
On dispose uniquement de n-1 bits.
Le plus grand nombre représentable est 2n-1-1

21
Calcul des entiers relatifs
• Cas de codage d’entiers négatifs sur n bits :
 Signe et valeur absolue : le bit de poids fort sert à représenter le signe.
• (-3) = (1 0 1 1 )2
• Nombre entre -(2n-1-1) et (2n-1-1)
• La valeur 0 possède deux représentations: +0, c’est-à-dire 00…0, et –0 qui
s’écrit 10…0.

 Complément à un : pour un nombre négatif, on complémente à 1 tous les bits.


• (-4) = ( 1 0 1 1)2
 Complément à deux : pour un nombre négatif, on complémente à un puis on
ajoute 1.
• (-2) = ( 1 1 1 0)2

22
Calcul des entiers relatifs
• Complément à deux :

Exemple

Soit à coder la valeur −2 sur 8 bits.


1. On exprime la valeur absolue de −2, à savoir 2, en binaire sur 8 bits, soit
00000010.
2. On complémente la séquence 00000010, on obtient donc 11111101.
3. On ajoute 1 (addition binaire) et on obtient comme résultat : 11111110.

23
Calcul des entiers relatifs
• Complément à deux : Astuce

Pour transformer de tête un nombre binaire en son complément à deux, on parcourt le


nombre de droite à gauche en laissant inchangés les bits jusqu'au premier 1 (compris),
puis on inverse tous les bits suivants.
Prenons comme exemple le nombre 20 : 00010100.
1. On garde la partie à droite telle quelle : 00010100
2. On inverse la partie de gauche après le premier un : 11101100
3. Et voici -20 : 11101100

24
Calcul des entiers relatifs

25
Calcul des entiers relatifs
• Cas de codage d’entiers négatifs sur n bits :

 Le bit de poids fort d’un nombre négatif est toujours à 1.


 Sur n bits, le plus grand entier positif est 2n-1-1= 011… 1.

 Sur n bits, le plus petit entier négatif est -2n-1

26
Calcul des entiers relatifs

• Donner sur 8 bits les représentations "signe et valeur absolue" et


complément à 2 des nombres décimaux 45, 127, -127, -99.
• Combien d’entiers positifs peut-on coder en binaire sur un octet?

27
Calcul des entiers relatifs
• Combien d’entiers positifs peut-on coder en binaire sur un octet ?
Correction : Un octet contient 8 bits, on peut donc coder 2 8 = 256 entiers.

28
Calcul des entiers relatifs
Arithmétique en signe et valeur
absolue
• Les règles classiques de manipulation (addition multiplication, ….) de
bits ne sont pas applicables.
Exemple : 5+(-4)
• Avant d’additionner deux nombres, il faut regarder s’ils sont de signes
opposés et, dans ce cas, procéder à une soustraction des valeurs absolues
puis retrouver le signe du résultat en fonction de la taille respective des
opérandes.

=> Ces contraintes ralentissent les opérations arithmétiques et, pour cette
raison, cette représentation n’est plus utilisée
29
Calcul des entiers relatifs
Arithmétique (Addition/Soustraction en
complément à 2)
Réaliser des opérations d'addition et de soustraction en binaire demande d'appliquer deux
méthodes différentes. Pour unifier ces méthodes, nous préférerons utiliser le codage des
nombres négatif en complément à deux.
Au lieu de réaliser une soustraction, nous additionnerons un nombre négatif :
x-y=x+(-y)
Il faut d’abord choisir le nombre de bits à utiliser pour représenter les deux nombres, en
faisant l’extension du singe correctement.
Les règles à appliquer pour interpréter les résultats d'addition en complément à deux sont
les suivantes :
1. Toujours ignorer les retenues générées
2. Si les opérandes sont de signes différents alors le résultat sera toujours juste
3. Si les opérandes sont de même signe, alors le résultat sera juste s’il est également du
même signe
30
Calcul des entiers relatifs
Arithmétique (Addition/Soustraction en
complément à 2)

31
• Arithmétique binaire naturel (Addition / Soustraction en complément à deux)

32
Calcul des entiers relatifs
Complément à deux
• Multiplication: Multiplication de deux nombres en Cà2:
 Multiplication des valeurs absolues des deux nombres.
Complémenter à 2 si les deux nombres sont de signes contraires.

33
Calcul des entiers relatifs
Complément à deux
• Division: Division de deux nombres en Cà2:
• Division des valeurs absolues des deux nombres.
• Complémenter à 2 le quotient et la retenue si nécessaire.

Exemple : -7/-3 : quotient = 10, reste =1111.

34
Représentation des nombres réels à virgule
fixe

Les bits à gauche de la virgule correspondent alors aux puissances de 2 positives et


les bits à droite de la virgule correspondent aux puissances de 2 négatives.

35
Représentation des nombres réels à virgule
fixe

128,7510 = 1 x 102 + 2 x 101 + 8 x 100 + 7 x 10-1 + 5 x 10-2

101,012 = 1 x 22 + 1 x 20 + 1 x 2-2 = 1 x 4 + 1 + 0,25 = 5,25

AE,1F16 = 10 x 161 + 14 x 160+1 x 16-1+15 x 16-2 = 160 + 14 + 0,0625 + 0,05859375 =


174,1210938

36
Représentation des nombres réels

Chaque nombre s’écrit sous la forme :

37
Représentation des nombres réels à virgule
fixe
Exemple : 28,862510 en binaire

• Conversion de 28 : 111002
• Conversion de 0,8625 :
 0,8625 x 2 = 1,725 = 1 + 0,725
 0,725 x 2 = 1,45= 1 + 0,45
 0,45 x 2 = 0,9 = 0 + 0,9
 0,9 x 2 =1,8 = 1 + 0,8
 0,8 x 2 = 1,6 = 1 + 0,6 …
• 28,862510= (11100,11011...)2 38
Représentation des nombres réels à virgule
fixe
Exemple : 3,1415910 en hexadécimal

• Conversion de 3: 316
• Conversion de 0,14159:
 0,14159 x16 = 2,26544 = 2 + 0,26544
 0,26544 x 16 = 4,24704 = 4 + 0,24704
 0,24704 x 16 = 3,95264 = 3 + 0,95264…
• 3,1415910 = (3,243…)16

39
Représentation des nombres réels à virgule
fixe

Le problème évident est que la plage des nombres représentables est assez limitée. On
est entre 2–p et 2n – p – 2–p , avec peu de précision après la virgule. Pour y remédier, on a
développé une autre représentation, appelée
« représentation en virgule flottante ».

40
Représentation des nombres réels virgule
flottante IEEE 754
Inspiré de l’écriture scientifique
• Exemple:
173,95 = + 1,7395 × 102
• Généralisation: soit x un réel
x= signe mantisse x 10n
• Avantage: permet de représenter des nombres très grands et très petits sans
s’encombrer de zéros

41
Représentation des nombres réels virgule
flottante IEEE 754
L’écriture devient alors:
signe mantisse x 2 n
Avec la mantisse et l’exposant en binaire
Le signe + est représenté par 0 et le signe − par 1
• La mantisse appartient à l’intervalle [1; 2[
• L’exposant est un entier relatif et il est établi de manière à ce que la mantisse soit de la
forme « 1,… »

42
Représentation des nombres à virgule flottante
• Représentation IEEE
IEEE 754
• Codage sur 32 bits sous la forme :
m … m e … e s

Fraction sur 23 bits Exposant sur 8 bits Bit de signe

• Le signe s = le bit de poids fort


(+) => 0
(-) => 1
• L’exposant est codé sur 8 bits : exposant ∈]−127 ,127]
e =exposant +127 >0

43
Représentation des nombres réels virgule
flottante IEEE 754
les caractéristiques
• Exposant (n): de – 126 à 127
• On effectue la somme n + 127 afin de coder l’exposant en binaire
• Mantisse: de 1 à 2-2-23
• Plus petit nombre normalisé: 2-126
• Plus grand nombre normalisé: presque 2128

44
Représentation des nombres réels virgule
flottante IEEE 754
Exemple: Codons le nombre −6, 625
• 6, 62510 = 110, 10102
• 110, 1010 = 1, 101010 × 22
• 10101000000000000000000
• 127 + 2 = 12910 = 100000012
• 1 10000001 10101000000000000000000
• En hexadécimal : C0 D4 00 00

45
Représentation des nombres réels virgule
flottante IEEE 754
Quelle est la valeur décimale des représentations internes suivantes?
1 1 0 0 0 0 0 1 0 11110110000000000000000

46
Représentation des nombres réels virgule
flottante IEEE 754

47
Représentation des nombres réels virgule
flottante IEEE 754

48
Représentation des nombres à virgule flottante
IEEE 754
Opérations
Addition de deux nombres différents : arithmétiques
L’addition de deux nombres flottants ne peut se faire que si les exposants sont égaux.
L’algorithme est le suivant :
1. Décaler la mantisse d’un des nombres pour aligner les exposants.
2. Additionner les mantisses (attention au signe).
3. Si nécessaire, renormaliser la mantisse sous la forme 1,M et décaler l’exposant.
4. Arrondir la mantisse (modifier la mantisse vers la plus proche valeur représentable)

49
Représentation des nombres à virgule flottante
IEEE 754
Opérations arithmétiques

50
Représentation des nombres à virgule flottante
IEEE 754
Opérations arithmétiques

51
Représentation des nombres à virgule flottante
IEEE 754
Opérations arithmétiques
Soustraction en virgule flottante:
• Même principe que pour l’addition A+B = A+(-B)
• via le complément à deux

52
Représentation des nombres à virgule flottante
IEEE 754
Multiplication de Opérations arithmétiques
deux nombres flottants:
1. Multiplier les mantisses
2. Additionner les exposants en soustrayant une fois la valeur 127 pour
retomber sur exposant normalisé.
3. Si nécessaire, renormaliser la mantisse sous la forme 1,M et décaler
l’exposant.
4. Ajuster le signe du résultat en fonction des signes des nombres à
53
multiplier.
Représentation des nombres à virgule flottante
IEEE 754
La multiplicationOpérations
de 1,75 par 2,5 arithmétiques
1,75=1,75x20 => 0 01111111 1100000..0
2,5= 1,25x21 => 0 10000000 0100000…0
La multiplication des mantisses donne (10,0011)2
L’addition des exposants aboutit à un exposant de 128.
Renormaliser le nombre : 1,00011 x22
1,75x2,5= 0 10000001 0001100..0 54
Représentation des nombres à virgule flottante
IEEE 754
Opérations
Exercice : Effectuer la multiplicationarithmétiques
de A et B en simple précision : A = 1
10000010 000000000….
B = 0 10000011 000000000…

55
Représentation des nombres à virgule flottante
IEEE 754
Opérations arithmétiques

56
Représentation des caractères
Table de correspondance entre caractère et code binaire : code ASCII American
Standard Code for Information Interchange.
Codage sur 7 bits.
Caractère de base pour la langue anglaise.
Code ASCII étendu : Codage sur 8 bits.
Pas de caractères chinois ni arabes.
Unicode : Codage sur16 bits.

57
Représentation des caractères
Représentation des caractères
Codage de l’information

Codage d’une image


Image matricielle = matrice de points élémentaires
= PIcture ELement = pixel

• Chaque pixel est codé en binaire sur un certains nombre de


bits

60
Codage de l’information

• Image noir et blanc :


• Chaque pixel est codé sur 1 bit : 0 = blanc
1 = noir

0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 1 1 1 1 0
1 1 1 1 1 1
303 pixels
0 1 0 0 1 0

36 bits

303 pixels
303 x 303 x 1 bit = 91809 bits
61
Codage de l’information

• Image Niveaux de gris


• Chaque pixel est codé sur plusieurs bits
• Si on code sur 8 bits = 1 pixel = 1 octet

303 pixels
303 x 303 x 1 octet = 91809 octets
= 734 472 bits

303 pixels

62
Codage de l’information

• Image couleur 24 bits


• Code RVB = Rouge, Vert, Bleu
• Chaque couleur est codée sur 8 bits
• La couleur du pixel est l’association des 3 couleurs
• Chaque pixel est codé sur 24 bits (true color)

303 x 303 x 3 octets = 275 424 octets


= 2 203 392 bits
303 pixels

303 pixels 63
Les fonctions et portes logiques
Les fonctions logiques de base :

64
Les fonctions et portes logiques
Les combinaisons des fonctions logiques de base :

Elle correspond à une fonction ET suivie d’un NON.


Elle prend donc la valeur 1 lorsqu’au moins une de
ses deux entrées est à 0.

Elle correspond à une fonction OU suivie d’un


NON. Elle prend donc la valeur 1 uniquement
quand ses deux entrées sont à 0

Cette fonction de deux variables prend la valeur 1 si


l’une ou l’autre de ses entrées est à 1, mais pas les deux.
Elle vaut 0 si les deux entrées sont égales (à 0 ou à 1).

65
Les circuits logiques (Additionneur)

Un ordinateur fait des calculs et utilise pour cela des circuits logiques. La plus simple est
l’addition qui nécessite deux types de circuits.
1. Le demi additionneur
→ Addition de 2 bits = circuit à 2 entrées

Le demi-additionneur effectue la somme de deux bits. S est la somme et R le report.


(carry) Ce schéma ne convient cependant que pour additionner 2 nombres de 1 bit.

66
Les circuits logiques (Additionneur)

2. Le plein additionneur

Pour additionner de deux nombres de plusieurs bits il faut mettre en cascade des
additionneurs qui additionnent les bits correspondant des deux nombres plus les reports
Ri-1 issus des additions des bits précédents.
Exemple : Calculons 1 + 3 En binaire cela donne : 0001 + 0011 →

L’addition des bits de droite est une addition de deux bits, elle peut être réalisée avec le
demi additionneur
Il faut tenir compte d’un éventuel report pour les bits suivants. Ainsi dès le deuxième bit
de notre exemple (en comptant les bits de droite à gauche) il a fallu faire 2 additions ( 1 +
0 + 1 = 10 ⇒ on pose 0 et on reporte 1)

67
Les circuits logiques (Additionneur)

2. Le plein additionneur
Table de vérité du circuit plein additionneur
Cette table de vérité comporte 3 entrées : Rn-1 (le report de l’addition précédente), A et B
Il lui faut deux sorties :
• S = la somme de 3 bits (A + B + Rn-1)
• R = le nouveau report

Le plein additionneur est un circuit à 3 entrées. Il se compose de 2 demi additionneurs et d’une


porte OU qui génère le report quand la somme vaut 2 ou 3 68
Les circuits logiques (Additionneur)
3. L’additionneur à 4 bits
Pour finir, donnons un exemple de circuit plus complexe, un additionneur 4 bits, qui fait la somme
de deux nombres binaires a3a2a1a0 et b3b2b1b0. Le construire directement à partir de la table de
vérité est impossible : il y a huit entrées, soit deux cent cinquante-six combinaisons possibles,
donnant chacune quatre sorties et une retenue finale. Il faut simplement le construire en posant
l’addition binaire et en effectuant la somme bit à bit. On retrouve alors les deux circuits que l’on
vient de construire, le demi-additionneur pour le bit de poids faible et l’additionneur complet pour
les autres. Il faut juste reporter la retenue d’un étage à l’autre

Ce circuit a le mérite de la simplicité mais pas de la rapidité. À cause de la propagation de la


retenue d’un étage à l’autre, la retenue finale n’est pas immédiatement disponible.
Tous les circuits arithmétiques présents au sein d’un processeur sont développés de la même
manière, soit directement à partir de la table de vérité, soit par regroupement de fonctions
69
plus
simples
Les circuits logiques (Soustracteur)

Il n’y a pas de circuit soustracteur sur l’ordinateur Il suffit


d’additionner l’inverse (Cà2) du nombre

70
Les circuits logiques (Multiplicateur)

principe
– génération de produits partiels
– addition des produits partiels

l’amélioration d’un multiplieur passe par


– la réduction du nombre de produits partiels
– l’accélération de l’addition des produits partiels
Les circuits logiques (Multiplicateur)

Multiplication séquentielle

– A×B sur n bits non signée


– un registre A contient A = an−1...a1a0
– un registre B contient B = bn−1...b1b0
– un registre P contient les produits partiels

Le résultat
– P contiendra les bits de poids fort
– A contiendra les bits de poids faibles
Les circuits logiques (Multiplicateur)

Multiplication séquentielle: Réalisation


Les circuits logiques (Multiplicateur)

Multiplication séquentielle: Algorithme


Multiplication séquentielle: A =3; B=9

R P A B Itération
0 0000 0011 1001 initialisation

0 1001 0011 1001 addition (1)

0 0100 1001 1001 Décalage (1)

0 1101 1001 1001 Addition (2)

0 0110 1100 1001 Décalage (2)

0 0011 0110 1001 Décalage (3)

0 0001 1011 1001 Décalage (4)

         

75
Les circuits logiques (diviseur)

Division:
A/B sur n bits non signée
– un registre A contenant le dividende
– un registre B contenant le diviseur
– un registre intermédiaire P

le résultat
– le registre A contient le quotient
– le registre P contient le reste
Les circuits logiques (diviseur)

Division : Réalisation
Les circuits logiques (diviseur)

Division avec restauration


Les circuits logiques (diviseur)

Division avec restauration


Les circuits logiques (diviseur)

Division sans restauration


Les circuits logiques (diviseur)

Division sans restauration

Vous aimerez peut-être aussi