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 = [Link] + [Link]
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 = [Link]
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