Sie sind auf Seite 1von 65

II.

Pr requis
1.
2.
3.
4.
5.
6.

Systmes de numration
Codage de linformation
Algbre de Boole
Logique combinatoire
Logique squentielle
Les instructions : le langage de
lordinateur

1. Systmes de numration
A.
B.
C.
D.
E.

Bases de numration
Rgles de conversion
Nombres entiers signs
Nombres rels
Addition

Bourguiba Riad - ENIT 2006 - Microprocesseurs

A. Bases de numration
i.
ii.
iii.
iv.

Systme
Systme
Systme
Systme

dcimal (base 10)


binaire (base 2)
hexadcimal (base 16)
octal (base 8)

Bourguiba Riad - ENIT 2006 - Microprocesseurs

i. Systme dcimal (base 10)

10 symboles : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
Poids positionnels : la valeur du nombre dpend de la
position des chiffres
N chiffres codent 10N nombres.
Symbole,
Chiffre,
Digit

103

102

101

100

Poids fort

10-1

10-2

10-3

Origine des poids

Nombre dcimal
Bourguiba Riad - ENIT 2006 - Microprocesseurs

Poids faible

A. Bases de numration
i.
ii.
iii.
iv.

Systme
Systme
Systme
Systme

dcimal (base 10)


binaire (base 2)
hexadcimal (base 16)
octal (base 8)

Bourguiba Riad - ENIT 2006 - Microprocesseurs

ii. Systme binaire (base 2)


2 symboles : 0 et 1
Algbre boolenne dj tablie
Peut facilement tre ralis en lectronique:

Courant nul ou passant (interrupteur, transistor)


Tension nulle ou un potentiel fixe (interrupteur, transistor)

Souvent les bits sont groups par 8 (octet, byte)


N chiffres codent 2N nombres
Symbole,
Chiffre,
binary digit
ou
bit

23

22

21

20

Bit de poids fort


MSB (Most Significant Bit)

2-1

2-2

2-3

Origine des poids

Bit de poids faible

LSB (Least Significant Bit)

Nombre binaire
Bourguiba Riad - ENIT 2006 - Microprocesseurs

A. Bases de numration
i.
ii.
iii.
iv.

Systme
Systme
Systme
Systme

dcimal (base 10)


binaire (base 2)
hexadcimal (base 16)
octal (base 8)

Bourguiba Riad - ENIT 2006 - Microprocesseurs

iii. Systme hexadcimal (base 16)

16 symboles : 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
Utilis par les ingnieurs pour manipuler plus facilement
de longues suites binaires
N chiffres codent 16N nombres
23

22

21

20

9
160

2-1

2-2

2-3

6
16-1

Bourguiba Riad - ENIT 2006 - Microprocesseurs

A. Bases de numration
i.
ii.
iii.
iv.

Systme
Systme
Systme
Systme

dcimal (base 10)


binaire (base 2)
hexadcimal (base 16)
octal (base 8)

Bourguiba Riad - ENIT 2006 - Microprocesseurs

10

iv. Systme octal (base 8)

8 symboles : 0,1,2,3,4,5,6,7
Utilis lorsque la nature du problme se prte mieux un
regroupement par trois bits
N chiffres codent 8N nombres

23

22

21

20

81

80

2-1

2-2

2-3

3
8-1

Bourguiba Riad - ENIT 2006 - Microprocesseurs

11

1. Systmes de numration
A.
B.
C.
D.
E.

Bases de numration
Rgles de conversion
Nombres entiers signs
Nombres rels
Addition

Bourguiba Riad - ENIT 2006 - Microprocesseurs

12

B. Rgles de conversion
i.
ii.
iii.
iv.
v.

Plusieurs chemins possibles


Dcimal -> binaire
Binaire -> dcimal
Binaire <=> hexadcimal
Binaire <=> octal

Bourguiba Riad - ENIT 2006 - Microprocesseurs

13

i. Plusieurs chemins possibles

Binaire
(Base 2)

s
tile
inu

inu
t ile
s

Dcimal
(Base 10)

Hexadcimal
(Base 16)

Octal
(Base 8)

Bourguiba Riad - ENIT 2006 - Microprocesseurs

14

B. Rgles de conversion
i.
ii.
iii.
iv.
v.

Plusieurs chemins possibles


Dcimal -> binaire
Binaire -> dcimal
Binaire <=> hexadcimal
Binaire <=> octal

Bourguiba Riad - ENIT 2006 - Microprocesseurs

15

ii. Dcimal -> binaire

Dans le cas gnral, on a une partie entire et une


partie dcimale.

Exemple :
(96,775)10 = (1100000, 1100011...)2

Partie entire

Partie dcimale

Bourguiba Riad - ENIT 2006 - Microprocesseurs

16

ii. Dcimal -> binaire


(partie entire)

Division rpte par 2


Reste
96 /2 = 48

48 /2 = 24

24 /2 = 12

12 /2 = 6

6 /2 = 3

3 /2 = 1

1 /2 = 0

Condition
darrt

(96)10 = (1100000)2

MSB

Bourguiba Riad - ENIT 2006 - Microprocesseurs

0
LSB

17

ii. Dcimal -> binaire


(partie dcimale)

Multiplication rpte par 2

(0,775)10 = (0,1100011...)2

MSB

0,

LSB

0,775 2 = 1 ,55
0,55 2 = 1 ,1
0,1

2 = 0 ,2

0,2

2 = 0 ,4

0,4

2 = 0 ,8

0,8

2 = 1 ,6

0,6
2 = 1 ,2
Arrt lorsquon atteint zro
ou quon a assez de chiffres aprs la virgule
Bourguiba Riad - ENIT 2006 - Microprocesseurs

18

B. Rgles de conversion
i.
ii.
iii.
iv.
v.

Plusieurs chemins possibles


Dcimal -> binaire
Binaire -> dcimal
Binaire <=> hexadcimal
Binaire <=> octal

Bourguiba Riad - ENIT 2006 - Microprocesseurs

19

iii. Binaire -> dcimal

On calcule la somme pondre des puissances de 2.

Exemple :
(10111,01011)2 =

124 +023 +122 +121 +120


+ 02-1+12-2+02-3+12-4+12-5
= (23,34375)10

Bourguiba Riad - ENIT 2006 - Microprocesseurs

20

B. Rgles de conversion
i.
ii.
iii.
iv.
v.

Plusieurs chemins possibles


Dcimal -> binaire
Binaire -> dcimal
Binaire <=> hexadcimal
Binaire <=> octal

Bourguiba Riad - ENIT 2006 - Microprocesseurs

21

iv. Binaire <=> hexadcimal

Table de correspondance

Dcimal Binaire Hexadcimal


0
1
2
3
4
5
6
7

0000
0001
0010
0011
0100
0101
0110
0111

Dcimal Binaire Hexadcimal


8
9
10
11
12
13
14
15

0
1
2
3
4
5
6
7

1000
1001
1010
1011
1100
1101
1110
1111

8
9
A
B
C
D
E
F

Bourguiba Riad - ENIT 2006 - Microprocesseurs

22

iv. Binaire <=> hexadcimal

Exemple :
(1101110)2 =>

0110 1110
6

=> (6E)16

Bourguiba Riad - ENIT 2006 - Microprocesseurs

23

B. Rgles de conversion
i.
ii.
iii.
iv.
v.

Plusieurs chemins possibles


Dcimal -> binaire
Binaire -> dcimal
Binaire <=> hexadcimal
Binaire <=> octal

Bourguiba Riad - ENIT 2006 - Microprocesseurs

24

v. Binaire <=> octal

Table de correspondance
Dcimal Binaire
0
1
2
3
4
5
6
7

000
001
010
011
100
101
110
111

Octal
0
1
2
3
4
5
6
7

Bourguiba Riad - ENIT 2006 - Microprocesseurs

25

v. Binaire <=> octal

Exemple :
(1101110)2 =>

001 101 110


1

=> (156)8

Bourguiba Riad - ENIT 2006 - Microprocesseurs

26

1. Systmes de numration
A.
B.
C.
D.
E.

Bases de numration
Rgles de conversion
Nombres entiers signs
Nombres rels
Addition

Bourguiba Riad - ENIT 2006 - Microprocesseurs

27

C. Nombres entiers signs


i.
ii.
iii.

Notation signe-grandeur
Notation en complment 1
Notation en complment 2

Bourguiba Riad - ENIT 2006 - Microprocesseurs

28

i. Notation signe-grandeur

Le nombre est cod en 2 parties :

m
N bits

s : bit de signe (0 si positif, 1 si ngatif)

m : un nombre variable de bits pour coder la grandeur

Reprsente les nombres appartenant [-(2N-1-1); 2N-1-1]

Exemple : Si N=8, alors [-127;+127]


Bourguiba Riad - ENIT 2006 - Microprocesseurs

29

i. Notation signe-grandeur

Avantages :

Le signe est visible.

La valeur est simple lire.

Inconvnients :

Deux reprsentations de zro :

Zro positif : 0 000 0000 (8 bits)


Zro ngatif : 1 000 0000 (8 bits)

Ncessite un traitement lectronique particulier

des deux zros,


du bit de signe.
Bourguiba Riad - ENIT 2006 - Microprocesseurs

30

C. Nombres entiers signs


i.
ii.
iii.

Notation signe-grandeur
Notation en complment 1
Notation en complment 2

Bourguiba Riad - ENIT 2006 - Microprocesseurs

31

ii. Notation en complment 1

Le complment 1 est une notation parfois utilise pour le


codage des nombres entiers signs.

m
N bits

s : bit de signe, comptabilis dans la valeur du nombre sous


la forme dune puissance de 2 ngative

m : un nombre variable de bits pour coder la grandeur


Bourguiba Riad - ENIT 2006 - Microprocesseurs

32

ii. Notation en complment 1

Exemple 1 : Nombre positif, N=8 bits


nombre
positif

001 0111

0.(-27) +0.26+0.25+1.24+0.23+1.22+1.21+1.20 = 23

La valeur dcimale dun nombre positif est obtenue


par conversion classique binaire => dcimal

Bourguiba Riad - ENIT 2006 - Microprocesseurs

33

ii. Notation en complment 1

Exemple 2 : Nombre ngatif, N=8


nombre
ngatif

110 1000

1.(-27) +1.26+1.25+0.24+1.23+0.22+0.21+0.20 +1 = -23

La valeur dcimale dun nombre ngatif est obtenue par


1.
2.
3.

affectation dun signe ngatif au poids du bits de signe,


conversion classique binaire => dcimal pour tous les bits sauf le
bit de signe,
ajout de 1.

Bourguiba Riad - ENIT 2006 - Microprocesseurs

34

ii. Notation en complment 1

Plus petit nombre reprsentable sur 8 bits :

000 0000

= -127

Plus grand nombre reprsentable sur 8 bits :

111 1111

= +127

Pour calculer lopposer dun nombre, on inverse tous les bits.

Reprsente les nombres appartenant [-2N-1-1; 2N-1-1]


Bourguiba Riad - ENIT 2006 - Microprocesseurs

35

ii. Notation en complment 1

Avantages :

Le signe est visible.

Correspondance simple entre un nombre binaire et son oppos.

Inconvnients :

Deux reprsentations de zro :

Zro positif : 0 000 0000 (8 bits)


Zro ngatif : 1 111 1111 (8 bits)

Conversion binaire => dcimal dlicate.

Ncessite un traitement lectronique particulier

des deux zros,


du signe.

Bourguiba Riad - ENIT 2006 - Microprocesseurs

36

C. Nombres entiers signs


i.
ii.
iii.

Notation signe-grandeur
Notation en complment 1
Notation en complment 2

Bourguiba Riad - ENIT 2006 - Microprocesseurs

37

iii. Notation en complment 2

La notation en complment 2 est la plus


employe pour reprsenter les nombres ngatifs
dans les systmes numriques et les
microprocesseurs.

Cette notation efface les inconvnients des deux


reprsentations prcdentes :

Une seule reprsentation du zro.


Un mme traitement pour les nombres positifs et
ngatifs.
Bourguiba Riad - ENIT 2006 - Microprocesseurs

38

iii. Notation en complment 2

Algorithme 1 :
Pour calculer loppos dun nombre, on inverse tous les bits,
puis on ajoute 1.

Exemple :
(82)10 = (0101 0010)2 =>

1010 1101
+
1
(1010 1110)2 = (-82)10

Indique le signe
(0 : positif, 1 : ngatif)
Bourguiba Riad - ENIT 2006 - Microprocesseurs

39

iii. Notation en complment 2

Algorithme 2 :
Pour calculer loppos dun nombre, on parcoure le
nombre binaire de la droite vers la gauche. On
recopie tous les bits jusquau premier 1 inclus, puis
on inverse les bits suivants.

Exemple :
(58)10 = (0011 1010)2 => (1100 0110)2 = (-58)10
Bourguiba Riad - ENIT 2006 - Microprocesseurs

40

iii. Notation en complment 2

Plus petit nombre reprsentable sur 8 bits :


-27=-128

Plus grand nombre reprsentable sur 8 bits :


27-1=127
0

...

127

...

127

128

...

-128 ...

255
-1

Reprsente les nombres appartenant [-2N-1; 2N-1-1] (intervalle


non symtrique)
Bourguiba Riad - ENIT 2006 - Microprocesseurs

41

1. Systmes de numration
A.
B.
C.
D.
E.

Bases de numration
Rgles de conversion
Nombres entiers signs
Nombres rels
Addition

Bourguiba Riad - ENIT 2006 - Microprocesseurs

42

D. Nombres rels

La reprsentation binaire des nombres nest pas


suffisante.

Limitation n1 :

La notation binaire nest pas condense.


Les grands nombres ncessitent beaucoup trop de bits.

Exemple :

32 bits

[0; 4 294 967 295]

[-65536;65535]

Bourguiba Riad - ENIT 2006 - Microprocesseurs

43

D. Nombres rels

Limitation n2 :

Tous les nombres rationnels ne se dcomposent pas selon un


nombre raisonnable de puissances de 2 ngatives.

Il existe des nombres rels binaires irrationnels.

Tous ces nombres ncessitent trop de chiffres aprs la virgule.

Exemples :
OK

(0,5)10

=> (0,1)2

(0,625)10 => (0,101)2

!!!

(0,3)10

=> (0,01001...)2

(0,13)10 => (0,01...)2

Bourguiba Riad - ENIT 2006 - Microprocesseurs

44

D. Nombres rels

La ncessit dune autre reprsentation a conduit


la notation des nombres rels en virgule flottante.

Il est bas sur une notation scientifique qui permet


de reprsenter :

des nombres trs grands ou trs petits,


avec une partie entire et une partie fractionnaire.

Bourguiba Riad - ENIT 2006 - Microprocesseurs

45

D. Nombres rels

Elle dfinit

une mantisse pour coder la valeur normalise


et un exposant pour coder la position de la virgule.

Exemple : 241 506 800

Notation scientifique
Mantisse
Exposant

: 2.415068 108
: 2.415 068
:8

Bourguiba Riad - ENIT 2006 - Microprocesseurs

46

D. Nombres rels

La norme ANSI/IEEE 754-1985 dfinit trois notations aux


formats identiques, mais qui diffrent par leur nombre de
bits :
Prcision simple
: 32 bits
Prcision double
: 64 bits
Prcision tendue : 80 bits

Nous nous limiterons la prcision simple.


1 bit

8 bits

23 bits

S Exposant (E) Mantisse ou Fraction(F)


32 bits
Bourguiba Riad - ENIT 2006 - Microprocesseurs

47

D. Nombres rels
S Exposant (E) Mantisse ou Fraction(F)

S : 0 si positif, 1 si ngatif

E : exposant polaris = exposant + 127

Pas de bit de signe spar pour lexposant


Intervalle de lexposant : [-126;+128]
0 ...

127

128 ...

255

code utilis

-126 ...

1 ...

128

valeur de lexposant

M : mantisse, sans le premier chiffre de poids fort, qui est toujours 1


pour un nombre binaire.

conomie de 1 bit

Bourguiba Riad - ENIT 2006 - Microprocesseurs

48

D. Nombres rels

Exemple 1 : binaire => flottant


crire en notation flottante le nombre binaire positif 1011010010001.

Signe
Il est zro puisque le nombre est considr positif.
Normalisation
1011010010001 = 1,011010010001 212
Exposant
E=12+127=139 => 10001011

Mantisse
M= 1,011010010001 => 1,011010010001

Rsultat

1000 1011

0110 1001 0001 0000 0000 000

Bourguiba Riad - ENIT 2006 - Microprocesseurs

49

D. Nombres rels

Exemple 2 : flottant => binaire


Formule gnrale
Nombre = (-1)S.(1+F).(2E-127)
crire en notation binaire et dcimale le nombre flottant suivant :

10010001
Nombre =
=
=
=

1000 1110 0010 0000 0000 000


(-1)1.(1, 10001110001).(2145-127)
(-1).(1, 10001110001).(218)
- 110001110001
- (407 688)10

Bourguiba Riad - ENIT 2006 - Microprocesseurs

50

D. Nombres rels

Notation de zro :
X

0000 0000 0000 0000 0000 000

Notation de + linfini
0

00000000

11111111

0000 0000 0000 0000 0000 000

Notation de linfini
1

11111111

0000 0000 0000 0000 0000 000

Bourguiba Riad - ENIT 2006 - Microprocesseurs

51

D. Nombres rels

Avantages :

Lexposant varie de -126 +128 on peut donc


reprsenter
de

trs grands nombres


de trs petits nombres

Les nombres contiennent


une

partie entire
une partie dcimale

Inconvnients :

Traitement lectronique compliqu (coprocesseur ou


unit de calcul en nombres flottants)
Bourguiba Riad - ENIT 2006 - Microprocesseurs

52

1. Systmes de numration
A.
B.
C.
D.
E.

Bases de numration
Rgles de conversion
Nombres entiers signs
Nombres rels
Addition

Bourguiba Riad - ENIT 2006 - Microprocesseurs

53

E. Addition

Notation complment 2

4 cas possibles :

Deux nombres positifs


Un nombre positif plus grand quun nombre ngatif
Un nombre ngatif plus grand quun nombre positif
Deux nombres ngatifs

Les nombres sadditionnent 2 la fois.

Condition de dpassement
Bourguiba Riad - ENIT 2006 - Microprocesseurs

54

E. Addition

Deux nombres positifs


0000 0111
+ 0000 0100

7
+ 4

0000 1011

11

Le rsultat est positif et correct.

Bourguiba Riad - ENIT 2006 - Microprocesseurs

55

E. Addition

Un nombre positif plus grand quun nombre ngatif


0000 1111
+ 1111 1010
Retenue
rejeter

15
+ -6

1 0000 1001

Bourguiba Riad - ENIT 2006 - Microprocesseurs

56

E. Addition

Un nombre ngatif plus grand quun nombre positif


0001 0000
+ 1110 1000

16
+ - 24

1111 1000

-8

Le rsultat est ngatif et correct.

Bourguiba Riad - ENIT 2006 - Microprocesseurs

57

E. Addition

Deux nombres ngatifs

Retenue
rejeter

1111 1011
+ 1110 0111

-5
+ -9

1 1111 0010

- 14

Bourguiba Riad - ENIT 2006 - Microprocesseurs

58

E. Addition

Condition de dpassement
Si lon additionne deux nombres binaires de mme signe,
leur somme peut dpasser le nombre de bits ncessaires
pour coder le rsultat.

Dans ce cas, on a un rsultat erron.

Ce cas de figure se distingue par un bit de signe erron.

Les microprocesseurs surveillent toujours le rsultats


dune addition et signalent par un flag si la condition
de dpassement est vraie.
Bourguiba Riad - ENIT 2006 - Microprocesseurs

59

E. Addition

Exemple : 8 bits

Signe
erron

0111 1101
+ 0011 1010

125
+ 58

1011 0111

183

Grandeur
inexacte

Ce nombre dpasse
lintervalle des nombres
que lon peut coder
en complment 2
sur 8 bits

Bourguiba Riad - ENIT 2006 - Microprocesseurs

II. Pr requis
1.
2.
3.
4.
5.
6.

Systmes de numration
Codage de linformation
Algbre de Boole
Logique combinatoire
Logique squentielle
Les instructions : le langage de
lordinateur

61

2. Codage de linformation
A.
B.
C.

Codes numriques
Codes alphanumriques
Dtection des erreurs par parit

Bourguiba Riad - ENIT 2006 - Microprocesseurs

62

A. Codes numriques

A lorigine, les microprocesseurs tait destins


effectuer des calculs numriques.
Les premires donnes codes taient des
nombres :

Binaires simples
Signe-grandeur
Complment 1
Complment 2
Flottants

Bourguiba Riad - ENIT 2006 - Microprocesseurs

63

A. Codes numriques

Il existe dautres codes numriques,

moins commodes pour le calcul arithmtique,


mais plus faciles manipuler.

Code DCB (Dcimal Cod Binaire)


Utilis dans les interfaces entre le monde dcimal (homme) et le
monde binaire (ordinateur).
Exemple: les claviers numriques et les afficheurs digitaux.

Code Gray
Code conservatif, qui nadmet quun seul changement de bit
chaque transition. Il est trs utile lorsque lon doit compter sans
erreur.
Bourguiba Riad - ENIT 2006 - Microprocesseurs

64

A. Codes numriques

Code DCB (Dcimal Cod Binaire)

galement appel code BCD (Binary Coded Decimal)

Ce code fait correspondre un groupe de 4 bits chaque chiffre


dcimal.
Dcimal

DCB

0
1
2
3
4
5
6
7
8
9

0000
0001
0010
0011
0100
0101
0110
0111
1000
1001

Bourguiba Riad - ENIT 2006 - Microprocesseurs

65

A. Codes numriques

Seules les 10 premires combinaisons binaires son utilise sur les 16


possibles. Les autres sont interdites.

Il permet deffectuer rapidement des conversions entre base 10 et base


2.

Exemple 1
Donnez la reprsentation DCB des nombres dcimaux suivants.
35

98

170

2469

Exemple 2
Donnez la reprsentation dcimale des nombres nots en DCB suivants.
(1000 0110)DCB

(0011 0101 0001)

DCB

(1001 0100 0111 0000)

DCB

Bourguiba Riad - ENIT 2006 - Microprocesseurs

66

A. Codes numriques

Code Gray

Cest un code non pondr, qui ne convient pas aux calculs.


Un seul bit change dun code au suivant.
Utilis par exemple dans les capteurs de position roue rotative.
Dcimal

Binaire

Gray

Dcimal

Binaire

Gray

0
1
2
3
4
5
6
7

0000
0001
0010
0011
0100
0101
0110
0111

0000
0001
0011
0010
0110
0111
0101
0100

8
9
10
11
12
13
14
15

1000
1001
1010
1011
1100
1101
1110
1111

1100
1101
1111
1110
1010
1011
1001
1000

Bourguiba Riad - ENIT 2006 - Microprocesseurs

67

A. Codes numriques

Binaire => Gray


1.
2.

Copier le bit de poids fort.


Parcourir les autre bits de gauche droite, en additionnant
chaque paire de bit adjacente du code binaire, pour obtenir le
bit du code Gray. Rejetez les retenues.
Exemple
(10110)2
1+0+1+1+0

Code binaire

Code Gray

Bourguiba Riad - ENIT 2006 - Microprocesseurs

68

A. Codes numriques

Gray => Binaire


1.
2.

Copier le bit de poids fort.


En parcourant de gauche droite, additionnez chaque
nouveau bit de code binaire cr au bit de code Gray suivant.
Rejetez les retenues.
Exemple
(11011)Gray
1

Code Gray

Code Binaire

Bourguiba Riad - ENIT 2006 - Microprocesseurs

69

2. Codage de linformation
A.
B.
C.

Codes numriques
Codes alphanumriques
Dtection des erreurs par parit

Bourguiba Riad - ENIT 2006 - Microprocesseurs

70

B. Codes alphanumriques

Une suite de n bits peut prendre 2n valeurs


diffrentes

Pourquoi ne pas faire correspondre une information


chaque groupe de n bits?

Une table de codage servira faire la traduction


dans les deux sens.

Bourguiba Riad - ENIT 2006 - Microprocesseurs

71

B. Codes alphanumriques

Code Baudot :
Utilis pour le tlgraphe (Telex)
Codage des caractres sur 5 bits
2x26 caractres + 6 caractres de contrle

Bourguiba Riad - ENIT 2006 - Microprocesseurs

72

B. Codes alphanumriques
Lettres

Chiffres

Code

Lettres

Chiffres

Code

11000

11101

10011

01010

01110

10100

Qui est l?

10010

00001

10000

11100

optionnel

10110

01111

optionnel

01011

11001

optionnel

00101

10111

01100

10101

Sonnerie

11010

10001

11110

Retour chariot

00010

01001

Chgt. de ligne

01000

00111

Mode lettres

11111

00110

Mode chiffres

11011

00011

Espace

00100

01101

Non utilis

00000

Bourguiba Riad - ENIT 2006 - Microprocesseurs

73

B. Codes alphanumriques

Code ASCII (American Standard Code for


Information Interchange) :

Trs largement rpandu dans le monde informatique


Codage des caractres sur 7 bits (128 car.), tendu 8
bits (256 car.)

Bourguiba Riad - ENIT 2006 - Microprocesseurs

74

B. Codes alphanumriques
Poids
forts

Poids
faibles

NUL

DLE

SP

SOH

DC1

STX

DC2

"

ETX

DC3

3SYN

EOT

DC4

ENQ

NAK

ACK

SYN

&

BEL

ETB

7EOT

BS

CAN

HT

EM

LF

SUB

VT

ESC

FF

FS

<

CR

GS

SO

RS

>

SI

US

DEL

Bourguiba Riad - ENIT 2006 - Microprocesseurs

7
p

75

2. Codage de linformation
A.
B.
C.

Codes numriques
Codes alphanumriques
Dtection des erreurs par parit

Bourguiba Riad - ENIT 2006 - Microprocesseurs

76

C. Dtection des erreurs par parit


i.
ii.
iii.

Erreurs de transmission
Parit (LRC)
Parit croise (LRC/VRC)

Bourguiba Riad - ENIT 2006 - Microprocesseurs

77

i. Erreurs de transmission

Entre un metteur et un rcepteur, il nexiste pas de liaison


fiable 100%.

Les sources derreur sont multiples:

Induction entre lignes physiques trop proches,


Perturbations lectromagntiques naturelles (espace) ou provoques
par la proximit de machines, moteurs, transformateurs,
Signal trop faible, etc.

Ncessit de se prmunir contre ses phnomnes


indsirables:

Dtecter les erreurs,


les corriger si possible,
demander une retransmission sinon.
Bourguiba Riad - ENIT 2006 - Microprocesseurs

78

C. Dtection des erreurs par parit


i.
ii.
iii.

Erreurs de transmission
Parit (LRC)
Parit croise (LRC/VRC)

Bourguiba Riad - ENIT 2006 - Microprocesseurs

79

ii. Parit (LRC)

LRC (Longitudinal Redundancy Check)


A chaque unit dinformation transmise est ajout un bit de
parit

Parit paire : la somme des bits de donne doit tre complte de


faon tre paire
1

Parit impaire : la somme des bits de donne doit tre complte de


faon tre impaire
1

Bourguiba Riad - ENIT 2006 - Microprocesseurs

80

ii. Parit (LRC)

Dtection des erreurs simples


Donne reue

Donne mise
1

Mauvaise dtection des erreurs multiples

Si un nombre pair de bits est modifi


Donne reue

Donne mise
1

Possibilit derreur sur le bit de parit


Donne reue

Donne mise
1

Bourguiba Riad - ENIT 2006 - Microprocesseurs

81

C. Dtection des erreurs par parit


i.
ii.
iii.

Erreurs de transmission
Parit (LRC)
Parit croise (LRC/VRC)

Bourguiba Riad - ENIT 2006 - Microprocesseurs

82

iii. Parit croise (LRC/VRC)


VRC (Vertical Redundancy Check)
A chaque bloc dinformation transmise est ajout un
mot de parit (paire ou impaire)

Parit horizontale
(paire)
Octet 1

Octet 2

Octet 3

Octet 4
Parit verticale
(paire)

0
Parit croise

Bourguiba Riad - ENIT 2006 - Microprocesseurs

83

iii. Parit croise (LRC/VRC)

Bourguiba Riad - ENIT 2006 - Microprocesseurs

84

iii. Parit croise (LRC/VRC)

Avantages

Dtection derreurs multiples si sur une mme ligne, et


des colonnes diffrentes, avec possibilit de correction.

Dtection derreurs multiples si sur une mme colonne et


des lignes diffrentes, avec possibilit de correction.

Inconvnients

Ne dtecte pas toutes les erreurs possibles

Possibilit derreur sur les bits de parit non ngligeable


Bourguiba Riad - ENIT 2006 - Microprocesseurs

II. Pr requis
1.
2.
3.
4.
5.
6.

Systmes de numration
Codage de linformation
Algbre de Boole
Logique combinatoire
Logique squentielle
Les instructions : le langage de
lordinateur

86

3. Algbre de Boole

Quatre oprations essentielles


NON (NOT)

ET (AND)

non

OU (OR)

et

OU exclusif (XOR)
ou

Ou
ex

Bourguiba Riad - ENIT 2006 - Microprocesseurs

iii. Algbre de Boole

Distributivit
a(b+c)=a.b+a.c

Thorme de Morgan
a.b = a+b

a+b.c=(a+b).(a+c)
a+b = a.b

Thormes dabsorption
a+a.b=a
a+a.b=a+b

a.(a+b)=a
a+a.b=a+b

Bourguiba Riad - ENIT 2006 - Microprocesseurs

II. Pr requis
1.
2.
3.
4.
5.
6.

Systmes de numration
Codage de linformation
Algbre de Boole
Logique combinatoire
Logique squentielle
Les instructions : le langage de
lordinateur

87

89

4. Logique combinatoire

Circuit logique combinatoire


Cest un circuit lectronique qui ralise une fonction
boolenne dont les sorties ne dpendent que des
entres.

Exemples

Multiplexeur (N vers 1)
Dmultiplexeur (1 vers N)
Oprateurs arithmtiques simples (additionneur,
soustracteur)
...

Bourguiba Riad - ENIT 2006 - Microprocesseurs

90

4. Logique combinatoire

Additionneur 1 bit
cin
0
0
0
0
1
1
1
1

b
0
0
1
1
0
0
1
1

a
0
1
0
1
0
1
0
1

cout
0
0
0
1
0
1
1
1

s
0
1
1
0
1
0
0
1

=a

cin + a . b . cin

cout = a . b + a . cin + b . cin


a b cin

Bourguiba Riad - ENIT 2006 - Microprocesseurs

cout

91

4. Logique combinatoire

Additionneur 4 bits
a3
b3
a2
b2
a1
b1
a0
b0

carry
+

s3

s2

s1

s0

0
Bourguiba Riad - ENIT 2006 - Microprocesseurs

92

4. Logique combinatoire

Soustracteur

Recherche de loppos dune oprande, puis addition


Complexit matrielle comparable un additionneur

Calcul de loppos
Commande

Commande
Sortie

Sortie

Commande

Sortie

Commande

Sortie

not (x)

Bourguiba Riad - ENIT 2006 - Microprocesseurs

93

4. Logique combinatoire
A(3)
I(3)

A(2)
I(2)

A(1)
I(1)

A(0)

C3(3)

C3(2)

C3(1)

C3(0)

Circuit de calcul de loppos

Bourguiba Riad - ENIT 2006 - Microprocesseurs

II. Pr requis
1.
2.
3.
4.
5.
6.

Systmes de numration
Codage de linformation
Algbre de Boole
Logique combinatoire
Logique squentielle
Les instructions : le langage de
lordinateur

95

5. Logique squentielle

Circuit logique squentiel


Cest un circuit lectronique qui ralise une fonction
boolenne dont les sorties dpendent des entres et de
ltat antrieur.

Exemples

Bascule
Registre
Automate
Mmoire
Oprateurs de calcul complexes (multiplication, division)
...
Bourguiba Riad - ENIT 2006 - Microprocesseurs

96

5. Logique squentielle

Multiplication
a3a2a1a0
b3b2b1b0

Moins frquente que laddition ou la soustraction


Peu tre remplace par un simple dcalage si puissance de 2
Infinit darchitectures

(a3a2a1a0).b0
(a3a2a1a0 ).b1
(a3a2a1a0
).b2
(a3a2a1a0
).b3

Version rapide :
cascade dadditionneurs
occupe beaucoup de surface
Version conomique :
accumulateurs avec automate de contrle
rduit la surface mais ncessite plusieurs cycles

p7p6p5p4p3p2p1p0

Bourguiba Riad - ENIT 2006 - Microprocesseurs

97

5. Logique squentielle

Division

Opration encore plus complexe


Plus rare que la multiplication
Risque de division par zro

Bourguiba Riad - ENIT 2006 - Microprocesseurs

II. Pr requis
1.
2.
3.
4.
5.
6.

Systmes de numration
Codage de linformation
Algbre de Boole
Logique combinatoire
Logique squentielle
Les instructions : le langage de
lordinateur

6. Les instructions :
le langage de lordinateur
A.
B.
C.
D.
E.
F.

99

Introduction
Les oprations matrielles
Les oprandes matrielles
La reprsentation des instructions
Les types dinstructions
Conclusion

Bourguiba Riad - ENIT 2006 - Microprocesseurs

100

A. Introduction

Pour commander un ordinateur, il faut lui parler avec son


langage.

Les mots de ce langage sont les instructions.

Son vocabulaire est le jeu dinstructions.

Description dun jeu dinstruction (MIPS)

sous la forme manipule par ltre humain

sous la forme dcode par lordinateur

Dmarche hirarchique descendante (top-down)


Bourguiba Riad - ENIT 2006 - Microprocesseurs

101

A. Introduction

Malgr leur diversit apparente, les ordinateurs parlent tous la mme


langue, mais avec des dialectes diffrents.

Ils sont conus partir de la mme technologie.

Ils ont de nombreuses instructions en commun.

Ncessit de connatre cette technologie.

En connatre un permet de se dbrouiller avec tous les autres.

Analogie avec la langue arabe :

La langue arabe est la mme, de lIraq la Mauritanie,

mais chaque pays parle sont propre dialecte.


Bourguiba Riad - ENIT 2006 - Microprocesseurs

102

A. Introduction

Prsentation du MIPS

Jeu dinstruction reprsentatif des processeurs conus partir


des annes 80.

Existe en version 32 et 64 bits

Architecture 32 bits

simple et efficace,

facile prendre en main

adapte une prsentation pdagogique

100 millions vendus depuis 2002

(ATI Technologies, Broadcom, Cisco, NEC, Nintendo, Silicon Graphics,


Sony, Texas Instruments, Toshiba, )

Bourguiba Riad - ENIT 2006 - Microprocesseurs

6. Les instructions :
le langage de lordinateur
A.
B.
C.
D.
E.
F.

103

Introduction
Les oprations matrielles
Les oprandes matrielles
La reprsentation des instructions
Les types dinstructions
Conclusion

Bourguiba Riad - ENIT 2006 - Microprocesseurs

104

B. Les oprations matrielles

Chaque ordinateur doit tre capable deffectuer des oprations


arithmtiques.

Exemple 1 :
code C
a=b+c

Instruction MIPS
add a, b, c

Le format est rigide pour simplifier la ralisation matrielle :


1 opration, 3 variables, ni plus, ni moins

Principe n1
La simplicit favorise la rgularit.

Bourguiba Riad - ENIT 2006 - Microprocesseurs

105

B. Les oprations matrielles

Exemple 2 :
code C
a=b+c+d+e;

Exemple 3 :
code C
a=b+c;
d=a-e;

instructions MIPS
add a, b, c
add a, a, d
add a, a, e
instructions MIPS
add a, b, c
sub d, a, e

Bourguiba Riad - ENIT 2006 - Microprocesseurs

6. Les instructions :
le langage de lordinateur
A.
B.
C.
D.
E.
F.

Introduction
Les oprations matrielles
Les oprandes matrielles
La reprsentation des instructions
Les types dinstructions
Conclusion

Bourguiba Riad - ENIT 2006 - Microprocesseurs

106

107

C. Les oprandes matrielles


i.
ii.

Les registres
La mmoire

Bourguiba Riad - ENIT 2006 - Microprocesseurs

108

i. Les registres

En assembleur les oprandes des instructions arithmtiques sont


strictement limites.

Dans le MIPS, elles ne peuvent provenir que des registres du


processeur.

Les registres sont des emplacements de stockage, internes aux


processeurs.

Dans le MIPS, les registres font 32 bits de large.

La largeur de 32 bits est si frquente quon a appelle une donne de


32 bits un mot (word).

Le nombre de registres est limit 32 pour des raisons de


performance.
Bourguiba Riad - ENIT 2006 - Microprocesseurs

109

i. Les registres

Le nombre de registres est limit 32 pour des raisons de


performance :

Principe n2
Convention :

Plus il y a de registres, plus il faut de surface.


Plus les signaux doivent aller loin, plus les dlais sont lents.

$s0, $s1,
$t0, $t1,

Exemple 4 :

Plus petit, donc plus rapide


: registres stockant des variables C
: registres stockant des variables temporaires

expression en C instructions MIPS


f=(g+h)-(i+j) add $t0, $s1, $s2
add $t1, $s3, $s4
sub $s0, $t0, $t1
Bourguiba Riad - ENIT 2006 - Microprocesseurs

110

3. Les oprandes matrielles


i.
ii.

Les registres
La mmoire

Bourguiba Riad - ENIT 2006 - Microprocesseurs

111

ii. La mmoire

Les langages de programmation ne manipulent pas que


des donnes simples.

Ils manipulent galement des tableaux, des structures de


donnes,

Ces donnes complexes et volumineuses sont stockes


dans la mmoire de lordinateur.

Le processeur y accde grce des instructions de


transfert de donnes.

Load
Store

: processeur
: processeur

mmoire
mmoire

Bourguiba Riad - ENIT 2006 - Microprocesseurs

112

ii. La mmoire

MIPS

lw : load word
sw : store word
230 mots adressables (4Go)

Exemple 5 :
code C
g=h+A[8];

instructions MIPS
lw
$t0, 8($s3)
add
$s1, $s2, $t0
offset

registre de base

Simplification : on na pas tenu compte de la largeur


des donnes pour calculer loffset
Bourguiba Riad - ENIT 2006 - Microprocesseurs

113

ii. La mmoire

Toutes les architectures permettent gnralement de


manipuler

un octet

un demi-mot

un mot
Octet :
4 possibilits

Demi-mot :
2 possibilits

Mot
1 seule possibilit

2
3

Bourguiba Riad - ENIT 2006 - Microprocesseurs

114

ii. La mmoire

Restrictions dalignement des donnes


Les octets sont
nimporte quelle
adresse

Les demi-mots sont


des adresses
paires

Les mots sont des


adresses multiples
de 4

(Principe de simplicit)
Bourguiba Riad - ENIT 2006 - Microprocesseurs

115

ii. La mmoire

Exemple 6 :
code C
instructions MIPS
A[12]=h+A[8]; lw
$t0, 32($s3)
add
$t0, $s2, $t0
sw
$t0, 48($s3)

(loffset tient compte de la largeur des donnes)


Bourguiba Riad - ENIT 2006 - Microprocesseurs

116

ii. La mmoire

Ordre des octets dans un mot (endianess)

Litle endian (Intel)


3

Big endian (Motorola)


0

Bourguiba Riad - ENIT 2006 - Microprocesseurs

117

ii. La mmoire

Les registres sont contenus dans le microprocesseur.

Ils sont plus rapidement accessibles que la mmoire.

Le compilateur

attribue un espace mmoire chaque variable

copie les variables utilises un instant t dans des registres

essaie de maintenir dans ces registres celles qui sont souvent


utilises

recopie les autres en mmoire


Bourguiba Riad - ENIT 2006 - Microprocesseurs

118

ii. La mmoire

Oprandes immdiates

Parfois on souhaite effectuer un opration avec une constante.

Avec linstruction add :


lw
$t0, AddrConstant4($s1)
add
$s3, $s3, $t0

Avec linstruction addi (add immediate) :


addi
$s3, $s3, 4

Principe n3
Rendre le cas gnral rapide
Bourguiba Riad - ENIT 2006 - Microprocesseurs

119

6. Les instructions :
le langage de lordinateur
A.
B.
C.
D.
E.
F.

Introduction
Les oprations matrielles
Les oprandes matrielles
La reprsentation des instructions
Les types dinstructions
Conclusion

Bourguiba Riad - ENIT 2006 - Microprocesseurs

D. La reprsentation des
instructions dans lordinateur

120

Dans le langage assembleur MIPS :


Nom du registre

N du registre

$s0 $s7

16 23

$t0 $t7

8 15

Exemple 7: add $t0, $s1, $s2 se code en machine par :


opration

17

18

$s1

$s2

$t0

inutilis

000000

10001

10010

01000

00000

100000

6 bits

5 bits

5 bits

5 bits

5 bits

6 bits

Bourguiba Riad - ENIT 2006 - Microprocesseurs

32

D. La reprsentation des
instructions dans lordinateur

121

Format des instructions MIPS

deux formats cohabitent

R-format : instructions bases sur des registres

I-format : instructions bases sur des donnes ou des adresses


immdiates

Bourguiba Riad - ENIT 2006 - Microprocesseurs

D. La reprsentation des
instructions dans lordinateur

R-format
op

rs

rt

rd

shamt

funct

6 bits

5 bits

5 bits

5 bits

5 bits

6 bits

(64 op) (32 reg) (32 reg) (32 reg) (32 val) (64 ver)

op

: opration de base (opcode)

rs

: premier registre source

rt

: deuxime registre source

rd

: registre de destination (rsultat)

shamt : nombre de dcalages (shift amount)

funct : variante de lopration de base (op)


Bourguiba Riad - ENIT 2006 - Microprocesseurs

122

123

D. La reprsentation des
instructions dans lordinateur

I-format
op

rs

rt

constante ou adresse

6 bits

5 bits

5 bits

16 bits

(64 op) (32 reg) (32 reg)

(65536 valeurs)

op

: opration de base (opcode)

rs

: premier registre source

rt

: deuxime registre source

constante immdiate
adresse immdiate

: valeur comprise dans [-32768;32757]


: adresse comprise dans [-32768;32757],
autour de ladresse comprise dans le
registre de base rs

Bourguiba Riad - ENIT 2006 - Microprocesseurs

124

D. La reprsentation des
instructions dans lordinateur

Principe n4
Une bonne conception suppose de bons compromis

Instructions dj vues :
Instruction

Format

op

rs

rt

rd

shamt

funct

add

reg

reg

reg

32

sub

reg

reg

reg

34

addi

reg

reg

const

lw

35

reg

reg

adr

sw

43

reg

reg

adr

Bourguiba Riad - ENIT 2006 - Microprocesseurs

constante
adresse

125

D. La reprsentation des
instructions dans lordinateur

Exemple 8 :
code C
langage assembleur
A[300]=h+A[300]; lw
$t0, 1200($t1)
add $t0, $s2, $t0
sw
$t0, 1200($t1)
langage machine
op

rs

rt

35

18

43

rd

shamt

funct

1200
8

32

1200

Bourguiba Riad - ENIT 2006 - Microprocesseurs

6. Les instructions :
le langage de lordinateur
A.
B.
C.
D.
E.
F.

Introduction
Les oprations matrielles
Les oprandes matrielles
La reprsentation des instructions
Les types dinstructions
Conclusion

Bourguiba Riad - ENIT 2006 - Microprocesseurs

126

127

E. Les types dinstructions

Le jeu dinstruction dun processeur supporte plusieurs types


doprations :

arithmtiques

accs mmoire

dcalages, et, ou not, manipulations de bit,

contrle de squence

Lecture, criture,

logiques

Additions, soustractions, multiplications, divisions,

test, saut conditionnel, saut,

gestion de la pile

sauvegarde/restauration du contexte

Bourguiba Riad - ENIT 2006 - Microprocesseurs

6. Les instructions :
le langage de lordinateur
A.
B.
C.
D.
E.
F.

Introduction
Les oprations matrielles
Les oprandes matrielles
La reprsentation des instructions
Les types dinstructions
Conclusion

Bourguiba Riad - ENIT 2006 - Microprocesseurs

128

129

F. Conclusion

Lordinateur a son propre langage, le langage machine.

Un programme doit tre traduit en langage machine pour pouvoir tre


excut.

Le langage assembleur est une reprsentation humaine du langage machine.

Le jeu dinstruction dun processeur est un savant quilibre entre :

nombre dinstructions
nombre de cycles dhorloge pour excuter une instruction
vitesse de lhorloge

Nous avons vu 4 principes fondamentaux pour guider le concepteur hardware:


1.
2.
3.
4.

La simplicit favorise la rgularit.


Plus petit, donc plus rapide.
Rendre le cas gnral rapide.
Une bonne conception suppose de bons compromis.
Bourguiba Riad - ENIT 2006 - Microprocesseurs