Electronique numerique
ES102/CM1 1
ES102
ELECTRONIQUE NUMERIQUE
De la matière à l’intelligence …
INTRODUCTION
ES102/CM1 2
MOTIVATIONS
• Derrière l’informatique, l’électronique numérique intégrée
• Des concepts à découvrir :
– Parallélisme versus séquentialité
– Structure versus comportement
– Complexité, système, architecture
• Une réalité de + en + omniprésente
– Intelligence ambiante, mécatronique, informatique embarquée
– Bientôt la moitié du coût d’une voiture
swap(int v[],int k)
{ int temp;
temp=v[k];
v[k]=v[k+1];
v[k+1]=temp;
}
CK
d
q+
q y
x
ES102/CM1 3
SYSTEME NUMERIQUE
• Système sans mémoire (passé indifférent) :
– réalisation d’une fonction
!Logique combinatoire
• Système avec mémoire (dépendant des entrées antérieures) :
– avec discrétisation du temps (présence d’une horloge)
– réalisation d’un comportement
!Logique séquentielle synchrone, puis logique programmée
Entrées Système Sorties
ES102/CM1 4
TRAVAIL DE L’ARCHITECTE NUMERICIEN
Implantation
Structure concrète
Fonction ou comportement
souhaité (spécification)
Technologie disponible
transistor, portes, circuits
sur étagère, etc.
Contraintes système
coût, encombrement, vitesse,
énergie, temps de dév., etc.
ES102/CM1 5
PLANNING DU COURS ES102
• 1 : représentation numérique de l’information
• 2-5 : logique combinatoire
– fonctions boolénnes
– implantation microélectronique CMOS
– arithmétique des ordinateurs
• 6-10 : logique séquentielle et programmée
– automates
– architecture des microprocesseurs
– langage de description de systèmes numériques
• CM \ PC ! " - PC \ CM ! "
ES102/CM1 6
ORGANISATION
• Cours Magistraux (CM) : 1h00 à 1h15
• Petites Classes (PC) : 1h45 à 2h00
– filières équidistribuées
• Contrôle(s) de Connaissances (CC) : 1 voire 2
• Documents
– photocopie des transparents
support à la prise de notes
– énoncé de PC
– corrigé détaillé de PC
– poly
• Evaluation : importante, donc en temps utile
ES102, pas ES101 ! - nom MdC
distribués
en amphi
ES102/CM1 7
REPRESENTATION DES DONNEES
ES102 / CM1
ES102/CM1 8
SYSTEME DE NUMERATION POSITIONNEL
• Base 10 : 19,05 = 1#101+ 9#100+ 0#10-1+ 5#10-2
• Poids codé par la position
! nécessité du 0
$ compacité, unicité
peu de symboles
• Base 2 :
bn-1 ··· b1b0.b-1b-2 ··· b-m représente
avec %i, bi & { 0 , 1 }
– bi appelé bit pour Binary digIT – chaîne de bits = mot
– bn-1 : bit de poids fort (MSB : Most Significant Bit)
– b-m : bit de poids faible (LSB : Least Significant Bit)
chiffre poids
nombres hiéroglyphes :
système de numération
non positionnel
densité de
l’Uranium
" bi·2i
i=-m
n-1
ES102/CM1 9
POURQUOI LA BASE 2 ?
• Coût minimal (cf. PC1)
• Utilisation de la physique en tout ou rien :
CD Surface brute Cuvette
Disque dur B non retourné B retourné
Fibre optique Pas de lumière Lumière
Transistor p Non passant Passant vers alim.
PROM Fusible grillé Fusible intact
DRAM Capacité déchargée Capacité chargée
Transistor n Passant vers masse Non passant
TECHNOLOGIE Etat 0 Etat 1
ES102/CM1 10
1 0
0 1 2
1 2 2
1 5 2
1 11 2
1 23 2
47 2
BASE 2 EN PRATIQUE
• Conversion décimal/binaire
par divisions successives :
fournie par les restes, jusqu’à quotient nul
(47)10 = (101111)2
* procédé différent pour les puissances négatives
de 2 et la représentation des réels (cf. PC1/Exo2)
• Base 2 fastidieuse à la main d'où usage des bases
8 (système octal) et 16 (système hexadécimal)
(47)10 = (10 1111)2 = (2F)16 = 0x2F
• Codage de nombres, mais aussi de symboles …
MSB
LSB
F 15
E 14
D 13
C 12
B 11
A 10
notation
du langage C
ES102/CM1 11
American Standard Code for Information
Interchange : Code ASCII
BS = Back Space
LF = Line Feed
FF = Form Feed
CR = Carriage Return
ESC = Escape
DEL = Delete
b6b5b4
b3b2b1b0
1111 SI US / ? O _ o DEL
1110 SO RS . > N ^ n ~
1101 CR GS - = M ] m }
1100 FF FS , < L \ l |
1011 VT ESC + ; K [ k {
1010 LF SUB * : J Z j z
1001 HT EM ) 9 I Y i y
1000 BS CAN ( 8 H X h x
0111 BEL ETB ' 7 G W g w
0110 ACK SYN & 6 F V f v
0101 ENQ NAK % 5 E U e u
0100 EOT DC4 $ 4 D T d t
0011 ETX DC3 # 3 C S c s
0010 STX DC2 " 2 B R b r
0001 SOH DC1 ! 1 A Q a q
0000 NUL DLE SP 0 @ P ` p
000 001 010 011 100 101 110 111
ES102/CM1 12
CODAGE : COMBIEN DE BITS ?
Pour coder p situations distinctes,
le nombre minimal de bits nécessaires
est n, tel que :
2n-1 < p # 2n
' n=(log2(p))
simple mais utilise la partie entière supérieure ! "
' 2n-1 # p-1 < 2n
' n=*log2(p-1)+ +1
+ compliqué mais utilise seulement la partie entière # $
log2(x)=log(x)/log(2)
log2(2)=1
log2(3)=1,585
log2(4)=2
…
ES102/CM1 13
FONCTIONS BOOLEENNES
Premier Contact
• 2n entrées possibles $ 22n fonctions possibles
• n=1 : 4 opérateurs booléens unaires
• n=2 : 16 opérateurs booléens binaires
• n > 2 : trop …
1 ? ?
0 ? ?
0 1
x
y
• B = { 0 , 1 } ex. : n=2
• Fonction booléenne à n variables
f : Bn ! B
• Définition par table de vérité
ES102/CM1 14
4 OPERATEURS BOOLEENS UNAIRES
• Autre notation pour le complément de x : x («$x barre$»)
• Sur les symboles de portes, le rond représente la complémentation
Symboles
Power
Vdd
Alim.
1
1
1
1
En anglais
En français
Notations logiques
Valeurs prises
En langage C
0 x x’
Masse TAMPON NON
BUFFER NOT
Ground
Gnd Vss
1 0 1 0
0 0 0 1
x 0 x ~x
Inverseur
Même structure sur
Complément transparent suivant
ES102/CM1 15
16 OPERATEURS BOOLEENS BINAIRES
x·y x,y x+y (x+y)’ (x,y)’ (x·y)’
NON
ET
NON
OU EX.
NON
OU
OU
OU
EX.
ET - Portes !
AND - Gates ! XOR OR NOR XNOR NAND
0 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
1 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
x y 0 x&y x^y x|y ~(x|y) ~(x^y) ~(x&y) 1
16 (=222) opérateurs, dont 8 symétriques : 0, 1 et les 6 portes ci-dessous
"=2 "=1 ">0 "=0 "!1 "<2
Langage
- C !
ES102/CM1 16
ADDITION EN BASE 10
· s1 s0
· b1 b0
· a1 a0
c2 c1
6 3 4
3 8 9
2 4 5
1 1
reste
(1+4+8)%10
modulo
quotient
(1+4+8)/10
10#c2 + s1 = a1 + b1 + c1
(c2 s1)10 = a1 + b1 + c1
retenues
(carry)
base
ES102/CM1 17
ADDITION EN BASE 2
• S=A+B où A et B deux nombres exprimés sur n bits :
• équation fondamentale comme en base 10 :
(ci+1 si)2 = 2#ci+1 + si =$ ai + bi + ci
• ci+1 = ai· bi + ai· ci + bi· ci
= Maj(ai, bi, ci) fonction majorité
• si = ai , bi , ci fonction parité % PC1
• règles valides pour i=0 en prenant c0=0
= S sn sn-1 sn-2 ··· si+1 si ··· s1 s0
+B bn-1 bn-2 ··· bi+1 bi ··· b1 b0
A an-1 an-2 ··· ai+1 ai ··· a1 a0
cn cn-1 cn-2 ··· ci+1 ci ··· c1 c0 + reports
full adder
(FA)
ci+1 FA ci
ai bi
si
additionneur
binaire complet
=0
OU logique addition
carry
ES102/CM1 18
ADDITION : IMPLANTATION
ci
ci+1
ai bi
si
ci
ci+1
ai bi
si
ci+1 FA ci
ai bi
si
avec des portes
à 2 entrées
ai bi
si
ai+1 bi+1
si+1
ci+1
FA FA
… …
…
ci
FA
… …
…
FA
ci+2
Additionneur numérique
ES102/CM1 19
SOUSTRACTION EN BASE 2
• D=A-B où A et B deux nombres (A>B) exprimés sur n bits :
di ( ai , bi , ci ) ?
di =$ ai - bi - ci$ + 2#ci+1
di - 2#ci+1 =$ ai - bi - ci
·
·
-1
1
1
0
0
d0
b0
a0
c0
A an-1 an-2 ··· ai ai-1 ··· a1
cn-1 cn-2 ··· ci ci-1 ··· c1 - retenues
= D dn-1 dn-2 ··· di di-1 ··· d1
-B bn-1 bn-2 ··· bi bi-1 ··· b1
ES102/CM1 20
SOUSTRACTION EN BASE 2 (suite)
di - 2#ci+1 =$ ai - bi - ci
changements de variables : (ci) ! (c'i) et (bi) ! (b'i)
' di- 2#(1-c'i+1) =$ ai- (1-b'i) - (1-c'i)
' di + 2#c'i+1 =$ ai + b'i + c'i
Retrancher B à A
'
Ajouter B' à A
avec report entrant à 1
(c0=0 $ c’0=1) 0001
- 0010
0011
'
0001
+ 1101
0011
1 1
3-2 . 3+13+1[16]
Exemple
addition
avec B’ = b’n-1 ··· b’1b’0
ES102/CM1 21
REPRESENTER LES ENTIERS NEGATIFS
• Très différent du système décimal «$signe + amplitude$»
• -A = 0 - A (noté an-1 ··· a1 a0 ci-dessous)
a0
a'0
0
1
= -A an-1 ··· a1
+A' a'n-1 ··· a'1
0 0 ··· 0
+ reports ··· ··· c1 c0
$ -A = A'+1
appelé complément à 2
(en fait, à 2n /)
Par opposition, A' appelé «$complément à 1$»
ES102/CM1 22
ENTIERS SIGNÉS (1)
000
111
110
101
100
011
010
001
0
1
2
-3
-2
-1
3 = 2n-1-1
A !A'+1 -4 = -2n-1
Les entiers sur n=3 bits,
c-à-d modulo 2n=8
+
–
• MSB = Signe (/)
• LSB = Parité
• n=8 ! [-128,+127]
• n=32 ! [ -2.147.483.648 , +2.147.483.647 ]
ES102/CM1 23
ENTIERS SIGNÉS (2)
poids du MSB = -2n-1 complément à 2
- " bi·2i = - " 2i + " (1-bi)·2i
i=0
n-2
i=0
n-2
i=0
n-2
= - (2n-1-1) + " b’i·2i
i=0
n-2
= - 2n-1 + " b’i·2i +1
i=0
n-2
ES102/CM1 24
NOMBRES FLOTTANTS (1)
• Version binaire de la notation scientifique décimale
mais avec un 0 avant la virgule et un 1 derrière
• Principe de la notation : ± mantisse # 2exposant
• Exemple : 2,5 = 1·21+0·20+1·2-1 = (10,1)2 = (0,101)2·22
= (0,101)2·2(10)2 = (0,1010—)2·2(—010)2
• Intérêt : représentation des grandeurs physiques
– entiers inadaptés en terme de :
• dynamique : 232%4·109 264%2·1019
• précision : l’entier 1 est une représentation imprécise (±50%) du réel 1 !
mantisse fractionnaire
normalisée (0,5# · <1)
représentation
de l’exposant
représentation de la mantisse fractionnaire
normalisée (sans le 1 derrière la virgule)
! cf. transparent suivant
exposant
ES102/CM1 25
NOMBRES FLOTTANTS (2)
• Position flottante de la virgule, définie par l’exposant
(floating point numbers)
• Représentation en machine :
(exposant : entier signé)
• Représentation fractionnaire normalisée de la mantisse :
exposant ajusté tel que 0.5 # |mantisse| < 1 ! = 0.1b-2b-3b-4…
• Format 64 bits :
• Compromis précision/dynamique
Dynamique : 2±1024 % 10±100 - Précision relative : 2-53 % 10-15
• Calculs spécifiques $ unités spécialisées, dites flottantes
signe exposant mantisse
± e10e9 ····· e1e0 b-2b-3b-4 ·········· b-52b-53
1 11 52
! représentation de 2,5 : 0 0—0000010 010000000000000—0
ES102/CM1 26
IMPORTANCE DES TECHNIQUES DE
REPRESENTATION/CODAGE
• pour mieux rendre la nature des données
! nombres flottants
• pour simplifier les calculs
– Arithmétique des ordinateurs
! nombres négatifs
! échapper à la propagation des retenues % suite ES102
• pour faire des économies d’énergie % PC1
• pour résister à l’apparition occasionnelle d’erreurs :
particules sur RAM, poussière sur CD, perturbation sur ligne de transmission, etc.
– Codage de canal
• pour minimiser les volumes de données :
– Codage de source
% ES204 «!Information et codage!» en 2ème année