Vous êtes sur la page 1sur 47

Cours: Architecture des ordinateurs

Organisation
Cours=24h
TD=24hh
TP=16h (4 Sances de TP)
valuation:
Note crit= (DS1+DS2)/2
Note du module = 80%crit+20%note du TP
Programme:
Chp1 : Numration et codage
Chp2 : Algbre Boolenne
Chp3 : Logique Combinatoire
Chp4 : Logique squentielle
Chp5 : Compteurs et Registres
1

Numration & codage

Ordinateur et arithmtique,
reprsentation des nombres positifs,
reprsentation des nombres signs,
virgule fixe,
virgule flottante,
additionneur, soustracteur
Les codes

25/12/16

Quelques dfinitions

Mot : est une squence de symboles (alphabet) reprsentant une informatio


Exemples : ordinateur, 2005, XXVIII
Mot binaire : un mot constitu avec lalphabet binaire {1, 0}
Exemples : 1100 1111
Quartet (nibble) : un mot binaire de longueur 4
Octet (byte) : un mot binaire de longueur 8

Code : un ensemble de mots auxquels on confre une signification (convent


reprsenter une catgorie de messages ou de concepts.
Exemples : Gray, DCB, Huffmann
3

25/12/16

Nombre en prcision finie


Calculateurs : nombres en prcision finie et fixe

Exemple : ensemble des entiers positifs trois chiffres dcimaux

A = {000,001,002, ..., 999}


Ne peut reprsenter :

25/12/16

> 999
<0
fractionnaires
irrationnels
complexes

Card(A)=1000

Consquences sur ordinateurs


Possibilits de faux rsultats en conditions normales de fct.
(pas de panne)
Dans A :
Il faut
a = 700, b = 400, c = 300
a + (b - c) = (a + b) c
connatre les
commutativit
mthodes de
700 + 100 = 800
Overflow -300 = OverFlowreprsentatio

ns
pour prvoir
distributivit
les
problmes
Overflow - Overflow = OverFlow ventuels

Dans A :
a = 5, b = 210, c = 195
a x (b - c) = a x b - a x c
5 x 15 = 75
5

25/12/16

Reprsentation des nombres


Soit une base b associe b symboles {S0, S1, S2, ..., Sb-1}

Un nombre positif N dans un systme de base b scrit sous la forme polyno


N an 1 b n 1 an 2
bn2
L

1
2
m 1
a1 b1 a0 b 0 a
a m b m
1 b a
2 b L a m1 b

La reprsentation simple de position est la suivante:


an 1an 2 a1a0 , a1a2 a m 1a m

ai

est le chiffre de rang i (ai appartient un ensemble de b symboles)

an 1 est le chiffre le plus significatif


a m est le chiffre le moins significatif

an 1an 2 ...a0 partie entire


a1a2 ...a m partie fractionnaire
6

25/12/16

(<1)

Reprsentation des nombres: Les bases usuelles

Base binaire (b=2)

ai 0,1
an 1 est le MSB (most significant bit)
a m est le LSB (least significant bit)

Base octale (b=8)

ai 0,1, 2,3, 4,5, 6, 7

Base dcimale (b=10)

ai 0,1, 2,3, 4,5, 6, 7,8,9

Systme hexadcimal (b=16)

ai 0,1, 2,3, 4,5, 6, 7,8,9, A, B, C , D, E , F

Exemple:
(1997) = 1x103 + 9X102 + 9x101 + 7x100
10

Poids du chiffre 1 = 1000


Rang du chiffre 1 = 3

7 25/12/16

Conversions entre bases

Base b vers base 10 : il suffit de substituer la valeur b dans lexpression


polynomiale par la valeur de la base.

F1C 16 15 162

1 16
1
12 16
0

De la base dcimale(10) la base b:

Deux techniques:
Soustractions successives
Divisions successives

25/12/16

3868 10

Conversion 10 vers B (1)


Premire mthode : soustraction

(363) 10 en base 2 ?

Recherche de la puissance 2 juste suprieure =


29 = 512
363 - 28 = 107
27 trop grand
107 - 26 = 43 1
43 - 25 = 11
24 trop grand 0
11 - 23 = 3 1
22 trop grand
3 - 21 = 1 1
1
1
9

25/12/16

1
0
1
0
LSB

(363)10 = (101101011)2

MSB

Conversion 10 vers B (2)


Autre exemple : (363)10 en base 16 ?
363 < 163 = 4096
363 = 1.162 + 107
107 = 6.161 + 11
11 = B.160

1
6
B

(363)10 = (16B)16

inconvnient de la 1re mthode : il faut connatre les puissance


10

25/12/16

Conversion 10 vers B (3)


Deuxime mthode : Mthode de la division/multiplication

Principe : En base 10

xyz = xy *10 + z

xyz

10

xy
y

LSD

11

25/12/16

10
x
MSD

Conversion 10 vers B (4)

(363)10 en base 2 ?

(363)10 en base 16 ?

363 2
1

363 16

181 2
1

90
0

11 22
(B)
6

2
45
1

12

25/12/16

2
22
2

16
1

Conversion 10 vers B (5)

Pour la partie fractionnaire : algorithme de multiplicatio


Principe : En base 10

0,xyz *10 = x,yz = x + 0,yz

0,xyz * 10 = x,yz
partie fractionnaire de x,yz
0,yz * 10 = y,z
partie fractionnaire de y,z
0,z * 10 = z

13

25/12/16

x
y
z

Conversion 10 vers B (6)


(0,45)10 en base 2 ?
0,45
0,90
0,8
0,6
0,2
0,4
0,8
0,6

14

25/12/16

*
*
*
*
*
*
*
*

2
2
2
2
2
2
2
2

=
=
=
=
=
=
=
=

0,90
1,8
1,6
1,2
0,4
0,8
1,6
1,2 .. ...

0
1
1
1
0
0
1

(0,45)10 = (0,0111001...)2

Reprsentations binaires
Dfinitions :
format
nb de bit utiliss
convention protocole de codage
dynamique diffrence entre le max et le min
rsolution diffrence entre deux conscutifs
Exemple :

format 8 bits
convention entiers positifs
dynamique 28
rsolution 1 (constante sur la dynamique

(255)10 = (1111 1111)2


15

25/12/16

(7)10 = (0000 0111)2

Nombres signs : signe + module


Sur n bits on garde 1 bit pour indiquer le signe

Convention :
S=0 pour positif
SigneModule (positif)
S=1 pour ngati
1 bit
n-1 bits
Multiplications faciles
N1*N2
Exemple sur 8 bits : -23 = (1
0010111)2,S+M
Abs(N1)*Abs(N2)
S = S1 xor S2
Dynamique : -(2n-1-1) (2n-1-1)
S Msb xxxxxx Lsb

Inconvnient : Deux reprsentations du zro

Sur 4 bits +0 = 0000, -0 = 1000


Additions

25/12/16

moins simples

Nombres signs : complment restreint


(complment B-1, ou complment 1)

Def CR(X) = X

On a X + CR(X) = bn -1

Complment chiffre chiffre


(xyz)b donne (xyz)b
tel que x + x = bn-1
En binaire 00110 donne 11001
et 00110 + 11001 = 11111

Dans le format considr 2n = 0


interprte

Partie

sur 4 bits : 24 = 10000 = 0


do : CR(X) + 1 = -X
17

25/12/16

Complment vrai : complment B, complment


2, 2*
c'est la reprsentation naturel des nombres ngatifs
Dfinition : N* complment vrai de N sur n chiffres en base B
N* = Bn - N = -N

(rappel : Bn = 0 sur n chiffres)

Calcul de loppos (sur n bits) :


N* = (-N) = 2n -N = [2n-1] - N + 1
= [N + CR(N)] - N + 1 = CR(N) +1

N* = CR(N) +1 = CV(N)
18

25/12/16

Complment 2 (2)
Sur 4 bits :
6
...
0

7
0110

0111
-6

-7
1010

0000

-0

0000

1001

Remarques : le bit de poids fort = signe (0:positif, 1:ngatif)


0 na quune reprsentation
1000 jamais rencontr
-(1000) = 0111 + 1 = 1000 (do = 0)
Dynamique sur n bits : -(2n-1-1) (2n-1-1)

Opration de soustraction= 2 oprations daddition


Mmes circuits utiliss pour soustraire et additionner
19

25/12/16

Nombres signs : binaire dcal sur m bits


(ou excdent 2m-1)
On stocke les nombres de m bits comme
Nstock = Nxs = Nm + 2m-1
(translation de la demi-dynamique)

Exemple sur 8 bits : Nxs = N8 + 128


Valeur coder : -128
Valeur stocke :
Avantage :

...

0 ...
128

25/12/16

Opration
255 la restitution
Nlu = Nxs - 128

on garde la relation dordre


on peut effectuer les comparaisons facilement

Remarque : identique au 2* au signe prs


20

127

Nombres signs : comparaison


N10

N2

-NS+M

-N2,CR

-N2*

-N2,XS8

mmes positifs

0
1
2
3
4
5
6
7
8

21

25/12/16

0000
0001
0010
0011
0100
0101
0110
0111
1000

positifs diffrents

1000
1001
1010
1011
1100
1101
1110
1111
....

1111
1110
1101
1100
1011
1010
1001
1000
....

0000 1000
1111 0111
1110 0110
1101 0101
1100 0100
1011 0011
1010 0010
1001 0001
(1000)

Remarque :
relation dordre
signe du zro
symtrie
gestion retenues
0000

2* : proprits
Proprits :

pas de gestion de retenue intermdiare


dtection simple doverflow

sur 4 bits : (-7 +7)


3
0011
+ 6 (9 = 0F) 0110 = 1001
- 5
1011
=4
= 1 0100
hors format

X + (- Y) = N avec
X > N > -Y
4 + 5 = 9 (of) 0100 + 0101 = 1001
-4 - 5 = -9 (of) 1100 + 1011 = 011
Note : modification de signe
Indicateur doverflow :
(dans les microprocesseurs)
Fd = Sa.Sb.Sr + Sa.Sb.Sr

22

25/12/16

Nombres non entiers


Dans un calculateur : nombre sous format dtermin
(entier, virgule fixe, virgule flottante ...)
TOUT EST QUESTION DE CONVENTION
Quoi associer 1101100011100110 ?
Caractre ASCII, pixel dune image, nombre entier 2*
nombre fractionnaire ... ?

Dans lordinateur (le systme numrique) il ny a pas de v

23

25/12/16

Virgule fixe

Par convention on place la virgule quelque part et on inter


2n-1
20 avant de placer la virgule
MSB xxxxxx , xxxx LSB
2n-1-k
20,2-1
2-k avec la virgule au rang k
Dynamique : 2n-1-k
Rsolution : 2-k # 0

24

25/12/16

Virgule fixe : analyse


Bon format pour laddition :
12,32
+ 23,45
= 35,77 La virgule reste fixe
Mauvais format pour la multiplication :
13,4
* 10,1
= 135,34 dpassement gauche (overflow)
dpassement droite (arrondi)
25

25/12/16

Virgule fixe : solution


Problmes rgls si les nombres sont infrieurs 1 :
0,87
* 0,74
= 0,6438

On place la virgule toujours gauche


On utilise un autre groupe de bit pour connatre la pos
de la virgule
Format virgule flottante

26

25/12/16

Format virgule flottante


N = M.bE

M = mantisse en 2* de forme 0,xxx


b = base de lexponentiation (2 ou 16)
E = exposant en binaire dcal

On stocke la chaine de bit

ME

dans le calculateur

Exemple : codage de PI sur 5 chiffres de mantisse


et 2 chiffres dexposant (en dcimal)
0,3141.101 = 0,0003.104 !!! PI*10000=3

On dit quun flottant est normalis quand le premier chiff


significatif est juste derrire la virgule (prcision maximu
27

25/12/16

Virgule flottante : calcul/stockage


MultiplicationM: 1 .b E1 * M 2 .b E2 M1 . M 2 .b ( E1 E2 )

dnormalisation du plus petit nombre (vers la d

Addition :

M1 .b E1 M 2 . b E2 M1 . b ( E1 E2 ) . b E2 M 2 .b E2
( M1 . b ( E1 E2 ) M 2 ). b E2
puis renormalisation

Si E2 > E1

il faut comparer facilement


Exposant cod en binaire dca
SM EXPOSANT MANTISSE

28

25/12/16

Virgule flottante : IEEE 754/854


Norme internationale : IEEE 754 flottant sur 32 bits
b31 ........
...... b 0
signe mantisse, exposant, mantisse
1 bit
8 bit
23 bits

Le bit de signe est 1 pour ngatif et 0 pour positif


La mantisse vaut toujours 1,xxxx et on ne stocke que xx
Lexposant est en excdent 127
La valeur 0 correspond des 0 partout (en fait 1,0.2-127)

exemple : 1 10000011 11000000000000000000000 = -1,75.24 =


0 01111111 00000000000000000000000 = 1,0.20 = 1
29

25/12/16

Virgule flottante : performances


Exemple : (10) Mantisse 3 chiffres 0,999 > |M| > 0,1
Exposant 2 chiffres -99 99
overflow

pas continu

pas continu

-0,1.1099 -0,1.10-99 0,1.10-99

R
overflow

0,999.1099

convention spciale (non normalis)

ON NE MANIPULE JAMAIS LENSEMBLE DES REELS


30

25/12/16

Codes
Codes

31

BCD Binary Coded Decimal

Gray ou binaire rflchi

ASCII American Standard Code for Information Interchange

Unicode

25/12/16

Code BCD
Dcimal Cod Binaire :
Chaque chiffre d'un nombre est cod sur 4 bits
0
0000
1
0001
2
0011

10
0001
0000
11
0001
0001
Ce code simplifie la conversion dcimal binaire
Exemple: (137)10 = (010001001)2 = (001011111)DCB
32

25/12/16

Code BCD (Binary coded decimal)

33

Souvent utilis par les machines calculer.


Combine les avantages du dcimal et du
binaire.
Les chiffres de 0 9 suivent le code
binaire naturel. Par contre, les valeurs de
A F ne sont pas utilises.
Oprations arithmtiques + complexes.

25/12/16

Code binaire de Aiken

Pondr par 2421, cest un code


autocomplmentaire.
(les reprsentations de 2 chiffres dont
la somme est
9 sont complmentaires lune de lautre.
Il peut tre constitu par les rgles
suivantes :
de 0 4 on code en binaire pur ;
de 5 9 on ajoute 6 et on code en binaire
pur. (c..d. 55+6 = 11,66+6 = 12, . . .)

Ce code est utilis dans certains calculateurs pour


effectuer des soustractions par additions de la forme
complmentaire.

Les codes biquinaires


Cest un code compos dun groupe de n bits (en gnral 5)
dont un seul parmi n progresse la fois, et dun groupe
de m bits (1 2) assurant la distinction entre n > 5 et n< 5.
Exemple:

Chaque combinaison a un nombre pair de 1 : scurit de


transmission. Ce code est utilis dans les calculatrices.

Code major de trois (excdant trois)


On prend chaque chiffre dcimal +3, puis on convertit en
binaire. On a parfois recours ce code en raison de la
facilit avec laquelle on peut faire certains calculs
arithmtiques. La valeur dun mot en code major de trois
est en fait gale au code DCB auquel on a ajout 3.

Code Gray ou (Binaire rflchi


Distance de 1 entre deux mots de code conscutif
Ce code vite le changement simultan de 2 bits, et donc les tats transitoires
indsirables.
Utilis dans les tableaux de Karnaugh

Le code prsente 4 symtries miroir.


Il est cyclique : il se referme sur lui-mme.

38

25/12/16

Pour convertir un nombre en code binaire naturel (CBN) vers un nombre


en code binaire rflchi (CBR), il faut ajouter le CBN trouv lui-mme
dcal dun rang vers la gauche, sans tenir compte de lventuelle
retenue et en abandonnant dans le rsultat le bit de poids faible.
Exemple: Soit le nombre dcimal 87 ; sa valeur binaire est 1010111. Donc :

Codes dtecteurs derreurs et autocorrecteurs


Ces codes sont utiliss pour contrler la transmission des
donnes. Souvent, on utilise un nombre de bits suprieur
celui strictement ncessaire pour coder linformation elle-mme.
Les codes p parmi n
Ce sont des codes autovrificateurs (dtecteurs derreurs
mais pas autocorrecteurs). Ces codes possdent n e.b. dont
p sont 1 ; la position des 1 permet de reconnatre un
lment cod.
Le nombre de combinaisons rpondant cette dfinition est :

Exemple: Pour transmettre linformation numrique dans les


centraux tlphoniques, on utilise un code 2 parmi 5
(ou code 74210) pour reprsenter les chiffres dcimaux.
Il existe 10 combinaisons :

Les codes contrle de parit


Dans ces codes, on ajoute un e.b. de sorte que lensemble des bits
transmettre (ou le mot) ait un nombre pair (parit paire) ou impaire
(parit impaire) de 1 .

Ce code dtecte les erreurs simples condition que le.b. de parit ne


soit pas erron.

Le code GRAY prsent l'avantage qu'il n'y a qu'un seul bit qui change
la fois. Il offre ds lors de multiples utilisations.
Les codes Excdent 3 et AIKEN ne sont pratiquement plus utiliss.

Les codes alphanumriques


Un

ordinateur ne serait pas d'une bien grande utilit s'il tait incapable de
traiter l'information non numrique. On veut dire par-l qu'un ordinateur
doit reconnatre des codes qui correspondent des nombres, des lettres,
des signes de ponctuation et des caractres spciaux.
Les

codes de ce genre sont dits alphanumriques.

Code ASCII
(American

Standard Code for International


Interchange).

Norme universelle pour la transmission de


donnes.

45

ASCII normal: 128 caractres sur 7 bits;


ASCII tendu: 256 caractres sur 8 bits.
Norme ISO Latin 1

25/12/16

Code Unicode (ISO 8859-1)

Le code ASCII est limit 256


caractres.
Pour dpasser cette limite, une nouvelle
norme sur 16 bits fut cre.
Donc, plus de 65 000 caractres
disponibles:

47

Japonais, Mandarin, Grec, Russe, Hbreux,


Arabe, Coren, ...

25/12/16