Peter Schlagheck Universit ´e de Li `ege
Ces notes ont pour seule vocation d’ ˆetre utilis ´ees par les ´etudiants dans le cadre de leur cursus au sein de l’Universit ´e de Li `ege. Aucun autre usage ni diffusion n’est autoris ´e, sous peine de constituer une violation de la Loi du 30 juin 1994
relative au droit d’auteur.
2.1 Le syst `eme d ´ecimal et le syst `eme binaire 2.2 La r ´ealisation du bit avec des circuits int ´egr ´es 2.3 L’octet
Dans le syst `eme d ´ecimal habituel, les nombres sont encod ´es avec les chiffres 0, 1, 2, . . . , 9
Exemple:
325 = 3×100 + 2×10 + 5×1
= 3×102+ 2×101+ 5×100
Dans le syst `eme d ´ecimal habituel, les nombres sont encod ´es avec les chiffres 0, 1, 2, . . . , 9
Exemple:
325,172 = 3×102+ 2×101+ 5×100 + 1×10−1+ 7×10−2+ 2×10−3
Dans le syst `eme d ´ecimal habituel, les nombres sont encod ´es avec les chiffres 0, 1, 2, . . . , 9
Exemple:
325,172 = 3×102+ 2×101+ 5×100 + 1×10−1+ 7×10−2+ 2×10−3
Repr ´esentation “scientifique” sur l’ ´ecran d’une calculatrice:
3,25172 02 ≡ 3,25172×102
−→pratique pour des tr `es grands nombres . . . 3,25172 20 = 325172000000000000000
Dans le syst `eme d ´ecimal habituel, les nombres sont encod ´es avec les chiffres 0, 1, 2, . . . , 9
Exemple:
325,172 = 3×102+ 2×101+ 5×100 + 1×10−1+ 7×10−2+ 2×10−3
Repr ´esentation “scientifique” sur l’ ´ecran d’une calculatrice:
3,25172 02 ≡ 3,25172×102
−→pratique pour des tr `es grands nombres . . .
−→ et des tr `es petits nombres:
3,25172 -20 = 0,0000000000000000000325172
L’abaque `a six boules par ligne ?
124 = 1×62+ 2×61+ 4×60= 52
−→encoder des nombres avec les chiffres 0, 1, 2, 3, 4, 5:
0
−→encoder des nombres avec les chiffres 0, 1, 2, 3, 4, 5:
1
−→encoder des nombres avec les chiffres 0, 1, 2, 3, 4, 5:
2
−→encoder des nombres avec les chiffres 0, 1, 2, 3, 4, 5:
3
−→encoder des nombres avec les chiffres 0, 1, 2, 3, 4, 5:
4
−→encoder des nombres avec les chiffres 0, 1, 2, 3, 4, 5:
5
−→encoder des nombres avec les chiffres 0, 1, 2, 3, 4, 5:
10 (6)
−→encoder des nombres avec les chiffres 0, 1, 2, 3, 4, 5:
11 (7)
−→encoder des nombres avec les chiffres 0, 1, 2, 3, 4, 5:
12 (8)
−→encoder des nombres avec les chiffres 0, 1, 2, 3, 4, 5:
13 (9)
−→encoder des nombres avec les chiffres 0, 1, 2, 3, 4, 5:
14 (10)
−→encoder des nombres avec les chiffres 0, 1, 2, 3, 4, 5:
15 (11)
−→encoder des nombres avec les chiffres 0, 1, 2, 3, 4, 5:
20 (12)
−→encoder des nombres avec les chiffres 0, 1, 2, 3, 4, 5:
20 (12)
−→ ca marcherait aussi bien que le syst `eme d ´ecimal
−→encoder des nombres avec les chiffres
0, 1, 2, 3, 4, 5, 6, 7, 8, 9
−→. . . et avec les lettres
A, B, C, D, E, F
(10) (11) (12) (13) (14) (15) Exemples:
42= 4 * 16 + 2 = 66 A3= 10 * 16 + 3 = 163 5B= 5 * 16 + 11 = 91 FF= 15 * 16 + 15 = 255
−→encoder des nombres avec les chiffres 0 et 1
0
−→encoder des nombres avec les chiffres 0 et 1
1 (1)
−→encoder des nombres avec les chiffres 0 et 1
10 (2)
−→encoder des nombres avec les chiffres 0 et 1
11 (3)
−→encoder des nombres avec les chiffres 0 et 1
100 (4)
−→encoder des nombres avec les chiffres 0 et 1
101 (5)
−→encoder des nombres avec les chiffres 0 et 1
110 (6)
−→encoder des nombres avec les chiffres 0 et 1
111 (7)
−→encoder des nombres avec les chiffres 0 et 1
1011010= 26+ 24+ 23+ 21 = 90
Addition
11 01 11 11
+1 0 1 1 0
11
+ 6
17
Addition
11 01 11 11
+1 0 1 1 0 1
11
+ 6
17
Addition
11 01 11 11
+1 0 11 1 0 2 1 0
11
+ 6
17
Addition
11 01 11 11
+1 01 1 1 0 2 0 1 0
11
+ 6
17
Addition
11 01 11 11
+1 0 1 1 0
1 0 0 0 1
11
+ 6
17
Soustraction
11 01 11 11
-1 0 1 1 0 1
Soustraction
11 01 11 11
-1 0 1 1 0 0 1
Soustraction
11 01 11 11
-1 01 1 1 0 1 0 1
Soustraction
11 01 11 11
-1 0 1 1 0 1 0 1
11
- 6
5
Multiplication
1 0 1 11 ×1 0 1 1 0 =1 01 01 01 01 01 01 01
01 01 01 01
Multiplication
1 0 1 11 ×1 0 1 1 0 =1 01 01 01 01 01 01 01
1 0 1 1
1 0 1 1
01 01 01 01
Multiplication
1 0 1 11 ×1 0 1 1 0 =1 01 01 01 01 01 01 01
1 0 1 1
1 0 1 1
01 01 01 01
0
Multiplication
1 0 1 11 ×1 0 1 1 0 =1 01 01 01 01 01 01 01
1 0 1 1
1 0 1 1
01 01 01 01
1 0
Multiplication
1 0 1 11 ×1 0 1 1 0 =1 01 01 01 01 01 01 01
1 0 1 1
1 0 1 1
01 01 01 01
0 1 0
Multiplication
1 0 1 11 ×1 0 1 1 0 =1 01 01 01 01 01 01 01
1 0 1 1
1 0 1 1
01 01 01 01
0 0 1 0
Multiplication
1 0 1 11 ×1 0 1 1 0 =1 01 01 01 01 01 01 01
1 0 1 1
1 0 1 1
01 01 01 01
0 0 0 1 0
Multiplication
1 0 1 11 ×1 0 1 1 0 =1 01 01 01 01 01 01 01
1 0 1 1
1 0 1 1
01 01 01 01
0 0 0 0 1 0
Multiplication
1 0 1 11 ×1 0 1 1 0 =1 01 01 01 01 01 01 01
1 0 1 1
1 0 1 1
01 01 01 01
1 0 0 0 0 1 0
= 66 = 11×6
. . . et non pas un syst `eme ternaire, hexal, d ´ecimal . . . ?
→plus facile `a r ´ealiser
→facile `a encoder d’informations plus g ´en ´erales
→plus robuste que des syst `emes plus compliqu ´es
→longue histoire :
→t ´el ´egraphie (code de Morse), cartes perfor ´es, CDs . . .
UG= 0
→pas de courant : bit 0
UG>0
→courant : bit 1
UG>0
→courant : bit 1
−→comment garder de l’information binaire sur un circuit ?
Rappel: les op ´erations logiques ´el ´ementaires AND :A=B∧C
OR :A=B∨C NOT :A=B NAND :A=B∧C NOR :A=B∨C
XOR :A= (B∧C)∨(C∧B) XNOR :A= (B∧C)∨(B∧C)
−→les circuits bistables (flip-flop)
On utilise deux ´elements NOR
−→les circuits bistables (flip-flop)
On utilise deux ´elements NOR inputS: activation (set)
inputR: d ´eactivation (reset) outputQ: lire le contenu outputQ: le contraire deQ
−→les circuits bistables (flip-flop)
On utilise deux ´elements NOR d ´eactivation avec le contactR
−→les circuits bistables (flip-flop)
On utilise deux ´elements NOR d ´eactivation avec le contactR
→Q“est faux”
→Q“est vrai”
−→les circuits bistables (flip-flop)
On utilise deux ´elements NOR d ´eactivation avec le contactR
→Q“est faux”
→Q“est vrai”
−→c¸a reste comme c¸a
−→m ˆeme siRest d ´ecoup ´e
−→les circuits bistables (flip-flop)
On utilise deux ´elements NOR activation avec le contactS
−→les circuits bistables (flip-flop)
On utilise deux ´elements NOR activation avec le contactS
→Q“est vrai”
→Q“est faux”
−→les circuits bistables (flip-flop)
On utilise deux ´elements NOR activation avec le contactS
→Q“est vrai”
→Q“est faux”
−→c¸a reste comme c¸a
−→m ˆeme siSest d ´ecoup ´e
−→les circuits bistables (flip-flop)
On utilise deux ´elements NOR d ´eactivation avec le contactR
−→les circuits bistables (flip-flop)
On utilise deux ´elements NOR d ´eactivation avec le contactR
→Q“est faux”
→Q“est vrai”
−→les circuits bistables (flip-flop)
On utilise deux ´elements NOR d ´eactivation avec le contactR
→Q“est faux”
→Q“est vrai”
−→les circuits bistables (flip-flop)
On utilise deux ´elements NOR activation avec le contactS
−→les circuits bistables (flip-flop)
On utilise deux ´elements NOR activation avec le contactS
→Q“est vrai”
→Q“est faux”
−→les circuits bistables (flip-flop)
On utilise deux ´elements NOR activation avec le contactS
→Q“est vrai”
→Q“est faux”
−→rapidit ´e et stabilit ´e
−→(tant que le circuit est connect ´e `a la source de tension)
−→six transistors n ´ecessaires pour maintenir un bit
−→SRAM (Static Random Access Memory)
−→les m ´emoires DRAM (Dynamic Random Access Memory) On utilise des capacitances pour sauvegarder des bits
−→les m ´emoires DRAM (Dynamic Random Access Memory) On utilise des capacitances pour sauvegarder des bits
−→les m ´emoires DRAM (Dynamic Random Access Memory) On utilise des capacitances pour sauvegarder des bits
−→les m ´emoires DRAM (Dynamic Random Access Memory) On utilise des capacitances pour sauvegarder des bits
−→les m ´emoires DRAM (Dynamic Random Access Memory) On utilise des capacitances pour sauvegarder des bits
−→les m ´emoires DRAM (Dynamic Random Access Memory) On utilise des capacitances pour sauvegarder des bits
−→les m ´emoires DRAM (Dynamic Random Access Memory) On utilise des capacitances pour sauvegarder des bits
−→deux transistors n ´ecessaires pour maintenir un bit
−→pas de stabilit ´e, `a cause de courants de fuite
−→ →circuits de rafraˆıchissement n ´ecessaires
−→les m ´emoires Flash (Toshiba, 1980)
On utilise des capacitances isol ´ees pour sauvegarder des bits
−→les m ´emoires Flash (Toshiba, 1980)
On utilise des capacitances isol ´ees pour sauvegarder des bits
−→les m ´emoires Flash (Toshiba, 1980)
On utilise des capacitances isol ´ees pour sauvegarder des bits
−→les m ´emoires Flash (Toshiba, 1980)
On utilise des capacitances isol ´ees pour sauvegarder des bits
−→charger et d ´echarger avec des tensionsUGtr `es fortes
−→(effet tunnel quantique)
−→les m ´emoires Flash (Toshiba, 1980)
On utilise des capacitances isol ´ees pour sauvegarder des bits
−→pas de courant au travers du transistor
−→si la capacitance est charg ´ee (effet de screening)
−→les m ´emoires Flash (Toshiba, 1980)
On utilise des capacitances isol ´ees pour sauvegarder des bits
−→les m ´emoires Flash (Toshiba, 1980)
On utilise des capacitances isol ´ees pour sauvegarder des bits
−→tr `es longue dur ´ee de vie de la m ´emoire
−→m ˆeme si le circuit est d ´ecoup ´e de la source de tension
−→utilis ´e dans les GSM, les cl ´es USB, les cam ´eras . . .
=la combinaison de 8 bits
0 1 0 1 1 0 1 1
−→l’unit ´e de base pour des m ´emoires informatiques:
1 ko (kB)=1 kilooctet= 103 octets =1000octets
1 Mo (MB)=1 m ´egaoctet= 106 octets =1 000 000octets 1 Go (GB)=1 gigaoctet= 109 octets =1 000 000 000octets 1 To (TB)=1 t ´eraoctet= 1012octets =1 000 000 000 000octets
=la combinaison de 8 bits
0 0 0 0 0 0 0 0
0
=la combinaison de 8 bits
0 0 0 0 0 0 0 1
1
=la combinaison de 8 bits
0 0 0 0 0 0 1 0
2
=la combinaison de 8 bits
0 0 0 0 0 0 1 1
3
=la combinaison de 8 bits
0 0 0 0 0 1 0 0
4
=la combinaison de 8 bits
0 0 0 0 1 0 0 0
8
=la combinaison de 8 bits
0 0 0 1 0 0 0 0
16
=la combinaison de 8 bits
0 0 1 0 0 0 0 0
32
=la combinaison de 8 bits
0 1 0 0 0 0 0 0
64
=la combinaison de 8 bits
1 0 0 0 0 0 0 0
128
=la combinaison de 8 bits
1 1 1 1 1 1 1 1
−→codage des nombres entiers entre 0 et 28−1 = 255
=la combinaison de 8 bits
0 1 1 1 1 1 1 1
−→codage des nombres entiers entre 0 et 28−1 = 255
−→. . . ou des nombres entiers, positifs et n ´egatifs, entre
−27 =−128 et 27−1 = 127
=la combinaison de 8 bits
1 0 0 0 0 0 0 0
−→codage des nombres entiers entre 0 et 28−1 = 255
−→. . . ou des nombres entiers, positifs et n ´egatifs, entre
−27 =−128 et 27−1 = 127
=la combinaison de 8 bits
1 1 1 1 1 1 1 1
−1
=la combinaison de 8 bits
1 1 1 1 1 1 1 0
−2
=la combinaison de 8 bits
1 1 1 1 1 1 0 1
−3
=la combinaison de 8 bits
1 1 1 1 1 1 0 0
−4
=la combinaison de 8 bits
1 1 1 1 1 0 1 1
−5
=la combinaison de 8 bits
1 1 1 1 1 0 1 0
−6
=la combinaison de 8 bits
1 1 1 1 1 0 0 1
−7
=la combinaison de 8 bits
1 1 1 1 1 0 0 0
−8
=la combinaison de 8 bits
1 1 1 1 0 0 0 0
−16
=la combinaison de 8 bits
1 1 1 0 0 0 0 0
−32
=la combinaison de 8 bits
1 1 0 0 0 0 0 0
−64
=la combinaison de 8 bits
1 0 0 0 0 0 0 0
−128
=la combinaison de 8 bits
1 0 1 1 0 1 0 1
D ´etermination des nombres n ´egatifs:
−→n ´egation de tous les bits
=la combinaison de 8 bits
0 1 0 0 1 0 1 0
D ´etermination des nombres n ´egatifs:
−→n ´egation de tous les bits
−→addition de 1
=la combinaison de 8 bits
0 1 0 0 1 0 1 1
D ´etermination des nombres n ´egatifs:
−→n ´egation de tous les bits
−→addition de 1
75
=la combinaison de 8 bits
1 0 1 1 0 1 0 1
D ´etermination des nombres n ´egatifs:
−→n ´egation de tous les bits
−→addition de 1
−75
0 1 0 1 1 0 1 1 + 1 0 0 1 0 1 1 0 1 1 1 1 0 0 0 1
91 + −106
−15
0 1 0 1 1 0 1 1 + 0 1 0 1 0 1 1 0 1 0 1 1 0 0 0 1
91 + 86
−79 ?!?
. . . c’est exact `a l’exception d’erreurs d’overflow
0 1 0 1 1 0 1 1 + 1 1 0 1 0 1 1 0 0 0 1 1 0 0 0 1
91 + −42
49 o.k.
Impl ´ementation sur un circuit int ´egr ´e:
a8 a7 a6 a5 a4 a3 a2 a1
+ b8 b7 b6 b5 b4 b3 b2 b1 c8 c7 c6 c5 c4 c3 c2 c1
−→op ´eration XOR pour l’addition dea1etb1,a2etb2, . . .
−→op ´eration AND pour ajouter 1 `a la colonne suivante
−→sia1 = 1etb1 = 1(pareil poura2 etb2, . . . )
a8 a7 a6 a5 a4 a3 a2 a1
+ b8 b7 b6 b5 b4 b3 b2 b1 c8 c7 c6 c5 c4 c3 c2 c1
−→circuit similaire `a celui pour les additions . . . ou
−→multiplication du deuxi `eme octet par−1
−→→n ´egation de tous les bits (op ´eration NOT)
−→→addition de1
−→addition ordinaire des deux octets
−→combinaison de plusieurs octets
1 0 0 1 1 0 1 0 0 1 0 0 1 1 1 1
2 octets: repr ´esentation des nombres entre −215 et 215−1 c- `a-d entre −32 768 et 32 767
4 octets: repr ´esentation des nombres entre −231 et 231−1 c- `a-d entre −2 147 483 648 et 2 147 483 647
Repr ´esentation “scientifique” du nombre325dans le syst `eme d ´ecimal :
1 3,25
1
02
Repr ´esentation “scientifique” du nombre325dans le syst `eme binaire :
1 1,01000101
1 mantisse 1
1000
exposant (puissance de 2)
−→nombres “flottants” (floating point numbers)
Repr ´esentation “scientifique” du nombre325dans le syst `eme binaire :
1 1,01000101
1 mantisse 1
1000
exposant (puissance de 2)
−→nombres “flottants” (floating point numbers) Exemple:
3 octets pour la mantisse et 1 octet pour l’exposant (type “float” en C/C++)
−→repr ´esentation des nombres r ´eels entre −→
±1,2×10−38 et ±3,4×1038
−→avec 7 chiffres significatifs
Repr ´esentation “scientifique” du nombre325dans le syst `eme binaire :
1 1,01000101
1 mantisse 1
1000
exposant (puissance de 2)
−→nombres “flottants” (floating point numbers) Exemple:
6,5 octets pour la mantisse et 1,5 octets pour l’exposant (type “double” en C/C++)
−→repr ´esentation des nombres r ´eels entre −→
±2,2×10−308 et ±1,8×10308
−→avec 14 chiffres significatifs
Illustration dans le syst `eme d ´ecimal:
1435,12 + 0,119421 = 1435,239421
Calcul “num ´erique” avec 6 chiffres significatifs:
1,43512×103+ 1,19421×10−1 = 1,43523×103= 1435,23
−→attention: les derniers chiffres sont coup ´es !
−→ erreur num ´erique
−→peut- ˆetre pas si grave ?
Illustration dans le syst `eme d ´ecimal:
1435,12 + 0,119421 = 1435,239421
Calcul “num ´erique” avec 6 chiffres significatifs:
1,43512×103+ 1,19421×10−1 = 1,43523×103= 1435,23
−→attention: les derniers chiffres sont coup ´es !
−→ erreur num ´erique
−→
(1 + 10−3)−1
×103 ⇒ 1
Illustration dans le syst `eme d ´ecimal:
1435,12 + 0,119421 = 1435,239421
Calcul “num ´erique” avec 6 chiffres significatifs:
1,43512×103+ 1,19421×10−1 = 1,43523×103= 1435,23
−→attention: les derniers chiffres sont coup ´es !
−→ erreur num ´erique
−→
(1 + 10−4)−1
×104 ⇒ 1
Illustration dans le syst `eme d ´ecimal:
1435,12 + 0,119421 = 1435,239421
Calcul “num ´erique” avec 6 chiffres significatifs:
1,43512×103+ 1,19421×10−1 = 1,43523×103= 1435,23
−→attention: les derniers chiffres sont coup ´es !
−→ erreur num ´erique
−→
(1 + 10−5)−1
×105 ⇒ 1
Illustration dans le syst `eme d ´ecimal:
1435,12 + 0,119421 = 1435,239421
Calcul “num ´erique” avec 6 chiffres significatifs:
1,43512×103+ 1,19421×10−1 = 1,43523×103= 1435,23
−→attention: les derniers chiffres sont coup ´es !
−→ erreur num ´erique
−→
(1 + 10−6)−1
×106 ⇒ 1
Illustration dans le syst `eme d ´ecimal:
1435,12 + 0,119421 = 1435,239421
Calcul “num ´erique” avec 6 chiffres significatifs:
1,43512×103+ 1,19421×10−1 = 1,43523×103= 1435,23
−→attention: les derniers chiffres sont coup ´es !
−→ erreur num ´erique
−→
(1 + 10−7)−1
×107 ⇒ 0
−→ attention avec des diff ´erences !
(American Standard Code for Information Interchange)
−→repr ´esentation des lettres de l’alphabet et
−→des chiffres 0, 1, . . . 9 avec 7 bits:
bin. d. bin. d. bin. d.
1000001 65 A 1100001 97 a 0110000 48 0 1000010 66 B 1100010 98 b 0110001 49 1 1000011 67 C 1100011 99 c 0110010 50 2 1000100 68 D 1100100 100 d 0110011 51 3
... ... ... ... ... ...
1011010 90 Z 1111010 122 z 0111001 57 9
−→les autres nombres sont r ´eserv ´es pour des
−→caract `eres speciaux: ! “ # % $ & ’ ( )∗+ , -/;< >? . . .