Vous êtes sur la page 1sur 73

Architecture des Ordinateurs

Pascal FOUGERAY
Toutes les données, images, valeurs, phrases de ce document ne sont pas ma propriété dite “intellec-
tuelle”. Si vous voulez récupérer ce document et le façonner à votre goût, cela ne me dérange nullement. Je
n’ai presque rien inventé hormis certains exemples de travaux pratiques, j’ai beaucoup “pioché” et “trié”
dans différentes littératures les informations s’y trouvant.

Bonne lecture. . .

1
Table des matières

I Le Matériel ou Hardware 5
1 Historique 6
1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2 Définition du terme informatique (Hachette) . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3 L’historique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.4 John VON NEUMANN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.5 La machine multicouche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.6 Les premiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.6.1 Le premier microprocesseur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.7 L’évolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2 Représentation de l’information 18
2.1 Les systèmes de numération . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.1.1 Le système décimal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.1.2 Le système binaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.1.3 Le système octal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.1.4 Le système hexadécimal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2 La conversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2.1 Base 10⇔Base 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2.2 Base 16⇔Base 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2.2.1 La table de conversion . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.3 Les nombres négatifs (signés) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.3.1 Le complément à 1 (restreint) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.3.2 Le complément à 2 (vrai) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.4 Les opérations arithmétiques en système binaire . . . . . . . . . . . . . . . . . . . . . . . 20
2.4.1 L’addition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.4.2 La soustraction en complément à 2 . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.4.3 La multiplication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.4.4 La division . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.4.5 Les nouveaux multiples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

3 Le Codage 22
3.1 Définitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.2 La représentation des nombres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.2.1 Le code Gray ou code binaire réfléchi . . . . . . . . . . . . . . . . . . . . . . . . 22
3.2.2 Le code BCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.3 La représentation des caractères . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.3.1 Le code EBCDIC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.3.2 Le code ANSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.3.3 Les nouveaux codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.4 Les codes détecteurs d’erreurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.4.1 Le contrôle de la parité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

2
3.4.2 Les codes autovérificateurs ou autocorrecteurs . . . . . . . . . . . . . . . . . . . 25
3.4.2.1 Les codes de blocs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.4.2.2 Les codes cycliques . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

4 Le codage des nombres flottants 27


4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.1.1 Rappel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.2 Conversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.3 Normalisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.4 Virgule flottante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.4.1 La réalité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.4.1.1 Norme IBM sur 32 bits . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.4.1.2 Norme IEEE sur 32 et 80 bits . . . . . . . . . . . . . . . . . . . . . . . 28

5 Algèbre de BOOLE 29
5.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
5.2 Portes logiques de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
5.2.1 Opération suiveuse : OUI (YES) . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
5.2.2 Opération inversion : NON (NOT) . . . . . . . . . . . . . . . . . . . . . . . . . . 30
5.2.3 Opération ET (AND) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
5.2.4 Opération somme : OU (OR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
5.2.5 Opération NON ET (NAND) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
5.2.6 Opération NON OU (NOR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
5.2.7 Opération OU EXCLUSIF (XOR) . . . . . . . . . . . . . . . . . . . . . . . . . . 31
5.2.8 Opération NON OU EXCLUSIF (NEXOR) . . . . . . . . . . . . . . . . . . . . . 32
5.3 Quelques propriétés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
5.4 Fonction logique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
5.5 Tableau de KARNAUGH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
5.5.1 Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
5.6 Equivalence entre circuits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

6 Technologie des circuits intégrés 35


6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
6.2 Historique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
6.3 Conception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
6.4 Familles des circuits intégrés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
6.4.1 Présentation des Circuits Intégrés . . . . . . . . . . . . . . . . . . . . . . . . . . 37
6.4.2 Différentes familles de circuits intégrés . . . . . . . . . . . . . . . . . . . . . . . 37
6.5 Technologies et structures des circuits intégrés logiques . . . . . . . . . . . . . . . . . . . 38
6.6 Terminologie des Circuits Intégrés Logiques . . . . . . . . . . . . . . . . . . . . . . . . . 38
6.6.1 PRIX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
6.6.2 IMMUNITE AUX BRUITS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
6.6.3 CONSOMMATION ELECTRIQUE . . . . . . . . . . . . . . . . . . . . . . . . . 39
6.6.4 TEMPS DE REPONSE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
6.6.5 FACTEUR DE MERITE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

7 La logique programmée 40
7.1 Comparaison des logiques câblée et programmée . . . . . . . . . . . . . . . . . . . . . . 40
7.1.1 La logique câblée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
7.1.2 La logique programmée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
7.2 Programmation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

3
8 Le microprocesseur 45
8.1 La composition Interne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
8.2 Le jeu d’instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
8.3 Les registres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
8.4 Le Langage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
8.5 Fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
8.6 La composition Externe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
8.7 Fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

9 Les Mémoires 50
9.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
9.2 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
9.3 Les Mémoires à Lecture seule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
9.4 Les mémoires à lecture-Ecriture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
9.4.1 Les types de mémoires DRAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
9.5 Caractéristiques principales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
9.6 Le décodage d’adresses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

10 La mémoire cache 54
10.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
10.2 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
10.3 La hiérarchie mémoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
10.3.1 Première question . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
10.3.2 Deuxième question . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
10.3.3 Troisième question . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
10.3.4 Quatrième question . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
10.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
10.5 Post Scriptum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

11 La gestion des entrées sorties 59


11.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
11.2 Organisation générale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
11.3 Les périphériques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
11.4 Les catégories de périphériques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
11.5 Le coupleur ou contrôleur de périphérique . . . . . . . . . . . . . . . . . . . . . . . . . . 61
11.6 L’espace mémoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
11.7 La synchronisation microprocesseur ⇔ E/S . . . . . . . . . . . . . . . . . . . . . . . . . 61
11.8 Les canaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
11.9 L’accès directe à la mémoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
11.10Le pilote de périphériques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
11.11Les tampons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

12 Les puces RISC 65


12.1 Objectif de la technologie RISC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
12.2 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
12.3 Le PIPELINE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
12.4 Architecture supersacalaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
12.5 Architecture superpipeline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
12.6 Comparaison des 2 architectures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
12.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

4
Table des figures

1.1 Blaise PASCAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7


1.2 La machine à calculer de Blaise PASCAL . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3 LEIBNIZ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.4 Joseph Marie JACQUARD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.5 Charles BABBAGE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.6 Le schéma de la machine de Charles BABBAGE . . . . . . . . . . . . . . . . . . . . . . 9
1.7 Machine à calculer de Charles BABBAGE . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.8 HOLLERITH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.9 Le système d’Hollerith . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.10 La perforeuse d’Hollerith . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.11 La carte perforée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.12 Alan TURING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.13 L’Enigma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.14 John VON NEUMANN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.15 La machine de John VON NEUMANN . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.16 Grafcet de la machine de John VON NEUMANN . . . . . . . . . . . . . . . . . . . . . . 13
1.17 L’ENIAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.18 L’UNIVAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.19 Le i4004, le premier µP de chez Intel R . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.20 Le premier micro-ordinateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.21 Le premier PC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.22 Les racines de l’ordinateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

5.1 George BOOLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29


5.2 Porte OUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
5.3 Porte NON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
5.4 Porte ET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
5.5 Porte OU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
5.6 Porte NON ET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
5.7 Porte NON OU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
5.8 Porte OU Exclusif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
5.9 Porte NON OU Exclusif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
5.10 Equivalence NAND, NOR, INVERSEUR . . . . . . . . . . . . . . . . . . . . . . . . . . 34
5.11 Porte OU Exclusif avec des NAND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
5.12 Porte OU Exclusif avec des NOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

6.1 Le 1er Circuit Intégré . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36


6.2 Des Wafers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
6.3 Le 1er microprocesseur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
6.4 Des microprocesseurs plus recents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

7.1 Principe d’un système automatique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41


7.2 Principe d’un système à microprocesseur . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

5
7.3 Le système minimum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
7.4 Le système minimum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
7.5 Le système minimum développé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
7.6 Organigramme de programme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

8.1 La composition logique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

9.1 Les différentes mémoires au silicium . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50


9.2 Les différentes modèles de mémoires au silicium . . . . . . . . . . . . . . . . . . . . . . 52
9.3 Le décodage d’adresses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

10.1 Le décodage d’adresses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55


10.2 L’organigramme de la recherche d’une donnée en mémoire . . . . . . . . . . . . . . . . . 56

11.1 Organisation E/S 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59


11.2 Organisation E/S 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
11.3 Organisation E/S 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
11.4 Coupleur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
11.5 DMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
11.6 Le buffering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
11.7 Le double buffering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
11.8 Le spooling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

6
B O njour, Ce cours a été écrit dans le but d’enseigner une matière qui évolue très vite même trop, mais
est fort nécessaire à la compréhension du fonctionnement de l’ordinateur. Il est évident que l’on ne
peut prétendre savoir programmer une machine ou demander à une machine d’exécuter une fonction, si on
ne sait pas ce dont elle est constituée et comment elle fonctionne.
Il est vrai que le contenu de ce cours est vaste, néanmoins il ne présente pas de difficultés majeures. La
plupart des mécanismes à comprendre sont simples et seront vu lors de travaux pratiques en salle machines.
Il existe de nombreux ouvrages sur l’architecture des ordinateurs, dont certains sont de vrais “presse
papier”1 . Pour ma part je vous conseille : Architecture et technologie des ordinateurs (3éme édition) de
Paolo Zanella et Yves Ligier aux éditions DUNOD (500 pages) que vous pouvez trouvé aux bibliothèques
du Campus 3 et de science de l’université se trouvant sur le Campus 2.
Mais bien sur, cela n’est que mon avis.

1 Ce cours si vous l’imprimé peut lui aussi servir de “presse papier”.

7
Première partie

Le Matériel ou Hardware

8
Chapitre 1

Historique

1.1 Introduction

L ’ INFORMATIQUE couvre aujourd’hui à peu près toutes les branches de l’activité humaine. Elle a pour
objet le traitement d’informations, codées dans les ordinateurs sous une forme binaire à l’aide de
bits (0 ou 1). L’ensemble des organes physiques qui servent à ce traitement est appelé matériel (en an-
glais hardware), par opposition au logiciel, ensemble des programmes, des langages et des systèmes d’ex-
ploitation (en anglais software). Un ordinateur communique avec l’extérieur par l’intermédiaire d’organes
d’entrée-sortie (lecteur de cartes, dérouleur de bandes, lecteur optique, clavier, écran, imprimante, mo-
dem, etc. . . ). Les résultats intermédiaires sont stockés dans des mémoires auxiliaires (bandes magnétiques,
disques magnétiques, disques optiques, disques). L’organe principal d’un ordinateur est l’unité centrale,
dans laquelle sont exécutées les instructions des programmes et s’effectuent les calculs, par opposition
aux périphériques (organes d’entrée-sortie). Les ordinateurs ont des utilisations très variées (traitement de
texte, gestion, calcul scientifique, commande d’installations en temps réel) qui nécessitent d’utiliser des
langages de programmation adaptés à l’application envisagée. Le principal avantage de l’ordinateur est
sa rapidité de calcul et d’accès aux informations. L’apparition des circuits intégrés à large échelle et des
mémoires à semi-conducteurs a permis la miniaturisation des ordinateurs, l’accroissement de leur capacité
de traitement et le développement de l’ordinateur individuel.

1.2 Définition du terme informatique (Hachette)

T ECHNIQUE du traitement automatique de l’information au moyen des calculateurs et des ordinateurs.

1.3 L’historique

L ’ IDÉE de faire exécuter des calculs par une machine date du XVII e siècle. En 1623, SCHICKARD
invente une machine à calculer capable d’effectuer des additions et des soustractions. Quelques années
plus tard Blaise PASCAL invente une machine quasiment similaire mais un peu plus perfectionnée. Elle
permettait d’additionner et même soustraire des nombres de 6 chiffres. Il en a conçu en tout plus de 5à
modèles dont les plus perfectionnées calculaient sur 8 chiffres. Pascal à réalisé sa première machine, la
Pascaline, alors qu’il n’avait que 19 ans.

9
F IG . 1.1 – Blaise PASCAL

F IG . 1.2 – La machine à calculer de Blaise PASCAL

De 1650 à 1670 LEIBNIZ conçut et construisit une machine capable d’effectuer les quatre opérations
de base. Il utilisa pour cela des principes mécaniques qui furent conservés jusqu’au XXème siècle.

10
F IG . 1.3 – LEIBNIZ

Joseph-Marie JACQUARD (1752-1834) Inventeur français

F IG . 1.4 – Joseph Marie JACQUARD

Il élabore en 1805 la machine qui porte son nom. C’était un métier à tisser qui produisait des tissus
suivant différentes techniques et avec des motifs variés. Jacquard créa les premières cartes perforées pour
utiliser plus facilement cette machine complexe. Les “cartes Jacquard” étaient accompagnées d’un appa-
reil à clavier qui permettait de changer les motifs.
Charles BABBAGE (1792-1871) Mathématicien et inventeur anglais.

F IG . 1.5 – Charles BABBAGE

En 1820, il conçoit une machine à calculer universelle programmable et programmée par un pro-

11
gramme, mécanique et numérique. Malheureusement, les principes mécaniques qu’elle nécessite se ré-
vèlent extrêmement difficile pour l’époque et la réalisation de cette machine ne peut aboutir. Il reprenait
ainsi l’idée que Joseph-Marie Jacquard avait utilisée pour son métier à tisser.

F IG . 1.6 – Le schéma de la machine de Charles BABBAGE

F IG . 1.7 – Machine à calculer de Charles BABBAGE

En 1890, lors du recensement de la population aux Etats-Unis d’Amérique, Hermann HOLLERITH

F IG . 1.8 – HOLLERITH

utilise les ressources de l’électricité dans une machine utilisant les principes de la mécanographie,
destinés aux traitements statistiques des résultats. Son invention a permis de réaliser le premier recensement
de la population aux états-Unis, sa carte perforée comprenait 12 rangées de 20 positions à perforer dans
lesquelles figuraient des données tels les nom et prénoms,l’age, la profession, la situation de famille, etc. . .

12
F IG . 1.9 – Le système d’Hollerith

F IG . 1.10 – La perforeuse d’Hollerith

F IG . 1.11 – La carte perforée

Hermann HOLLERITH est aussi le créateur de la société TBM (Tabulating Machines Company) qui
devint la société IBM (International Business Machines Corporation) conceptrice du PC (Personnal Com-
puter).
Alan Mathieson TURING (juin 1912-juin 1954 ) mathématicien anglais, maître-assistant à Cambridge
dès 23 ans.

13
F IG . 1.12 – Alan TURING

Il a conçu en 1936 une machine logique capable de résoudre tous les problèmes que l’on peut formuler
en termes d’algorithmes. Pendant la guerre, il participe à la réalisation de la Bombe, ainsi qu’à la première
machine électromécanique de décryptage des messages codés avec l’Enigma Allemande.

F IG . 1.13 – L’Enigma

Dans les années qui suivent la guerre, VON NEUMANN fait la synthèse des idées de ses prédécesseurs
et reprenant la structure de la machine de BABBAGE.

1.4 John VON NEUMANN

M ATHÉMATICIEN américain d’origine allemande (1903-1957). Dans le cadre du projet Manhattan, puis
de la bombe H, il commence, en 1944, la construction de la machine à calculer automatique EDVAC
(Electronic Discrete Variable Automatic Computer) et ne la termine qu’en 1952.

14
F IG . 1.14 – John VON NEUMANN

Il désirait créer une méthode souple pour programmer la mémoire, de façon à ce que la machine puisse
prendre seule des décisions logiques (principe d’autonomie). Les concepts de mémoire tampon, vive et
morte ont été définis par lui (voir mémoire morte, mémoire tampon et mémoire vive).
Les règles de base qu’il a proposées pour l’architecture d’un ordinateur restent encore valables pour la
grande majorité de nos machines modernes :
1. Les ordinateurs sont structurés en unités séparées, fonctionnellement différentes : l’unité de com-
mande, l’unité de calcul, la mémoire interne et les unités périphériques.
2. La mémoire interne est divisée en cellules auxquelles on peut attribuer des adresses (la suite des
nombres naturels).
3. Chaque cellule contient une unité d’information et une seule.
4. Le système binaire est utilisé pour représenter les commandes et les données.
5. Les commandes et les données sont stockées dans la même mémoire interne.
6. Les cellules dans lesquelles sont stockées les commandes successives ont des adresses qui se suivent.
7. Les commandes sont exécutées en séquence.
8. La séquence de traitement peut présenter des interruptions conditionnelles ou inconditionnelles.
La machine de VON NEUMANN : Elle est constituée de deux ensembles.

– L’unité de traitement de processus.


– L’unité de stockage ou mémoire.

F IG . 1.15 – La machine de John VON NEUMANN

Les principes de fonctionnement sont au nombre de quatre.


1. Le processeur est capable d’effectuer un certain nombre d’opérations prédéfinis lors de la conception
du processeur. Chaque opération s’appelle une instruction ; l’ensemble des opérations s’appelle le
/jeu d’instructions.
2. Un travail complexe est décomposé en instructions qui seront exécutés de façon séquentielle (les
unes après les autres). La suite d’instructions réalisant le travail est appelée un programme.

15
3. La mémoire du système peut contenir les données mais aussi le programme. C’est une machine à
programme enregistré.
4. La séquence d’un programme peut être interrompue afin d’exécuter une autre séquence. En fonction
d’un test sur le résultat d’une opération, il est donc possible de quitter une séquence d’instructions
pour en exécuter une autre (rupture de séquence). Cette condition est nécessaire, si l’on veut réaliser
automatiquement un algorithme.
L’exécution d’un programme est définie par deux cycles (ou phases) principaux.
– Le cycle de recherche d’une instruction
– Le cycle d’exécution.

F IG . 1.16 – Grafcet de la machine de John VON NEUMANN

John VON NEUMANN travailla également sur le développement d’une machine appelée ENIAC :
(Maintenant l’ordinateur tient dans la poche, à l’époque c’était l’homme qui était transportable dans
l’ordinateur).

F IG . 1.17 – L’ENIAC

16
F IG . 1.18 – L’UNIVAC

1.5 La machine multicouche

L ’ ARCHITECTURE d’un ordinateur peut être expliquée par un modèle en couches. Plus la couche est
“basse” plus elle est proche de l’électronique et biensûr, plus elle est haute, plus elle se raproche du
langage humain et de sa façon de penser donc “compréhensible” par l’homme.
1. Niveau 0 : couche physique. C’est la couche étudiée dans ce cours. Ici, les circuits électroniques
exécutent les programmes en langage machine du niveau 1.
2. Niveau 1 : Couche microprogrammée. Elle interprète en instructions directement exécutables des
instructions plus complexes du niveau 2.
3. Niveau 2 : Couche machine traditionnelle. Programme en langage machine, assez hermétique pour
l’homme, puisqu’il n’est composé que d’une suite de 0 et de 1.
4. Niveau 3 : Couche système d’exploitation. Elle simplifie par des petits programmes déjà écrits, la
gestion, entre autres, des entrées sorties. Elle est très utile aux programmeurs "systèmes".
5. Niveau 4 : Couche langage d’assemblage. Ce langage est traduit (assemblé) en langage machine. Il
est propre au microprocesseur. Nous étudierons ce langage aux second et troisième trimestre, dans
le but de découvrir un peu plus en profondeur le fonctionnement interne du microprocesseur et de
l’ordinateur en général.
6. Niveau 5 : Couche langage d’application. Ce langage (C, Pascal, COBOL...) est traduit (compilé)
en langages assemblage puis machine. Nous verrons aux second et troisième trimestre que le langage
C est proche du langage d’assemblage et est trés utilisé dans les systèmes d’exploitation.

1.6 Les premiers


1.6.1 Le premier microprocesseur

C ’ EST un circuit intégré à une puce, qui dispose des fonctions d’un processeur complet. C’est la société
R au XXe et plus précisément le 15 novembre 1971, lança le premier microprocesseur. Ted Hoff,
Intel
le créateur, avait réussi à intégrer le principe du calculateur. La puce de Hoff était en quelque sorte un
“processeur universel”. Le premier microprocesseur, le 4004, contenait 2 300 transistors il étaait cadencé
à 740 kHz, il fallait 8 cycles d’horloge pour exécuter une instructions soit 10,8 ms. Il existe actuellement
une très grande “variété” de microprocesseurs. Leurs caractéristiques sont nombreuses, mais la principale
est la puissance de calculs.1
1 Nous verrons au chapitre sur le microprocesseur, la définition de cette “bète” plus en détails.

17
F IG . 1.19 – Le i4004, le premier µP de chez Intel
R

L’article qui suit est l’annonce de ce premier microprocesseur dans une revue spécilaisée de l’époque.

Appearing in IEEE Computer 1972:

NEW PRODUCT

FEATURE PRODUCT

COMPUTER ON A CHIP

Intel has introduced an integrated CPU complete with


a 4-bit parallel adder, sixteen 4-bit registers, an accumula-
tor and a push-down stack on one chip. It’s one of a
family of four new ICs which comprise the MCS-4 micro
computer system--the first system to bring the power and
flexibility of a dedicated general-purpose computer at low
cost in as few as two dual in-line packages.
MSC-4 systems provide complete computing and con-
trol functions for test systems, data terminals, billing
machines, measuring systems, numeric control systems
and process control systems.
The heart of any MSC-4 system is a Type 4004 CPU,
which includes a set of 45 instructions. Adding one or
more Type 4001 ROMs for program storage and data
tables gives a fully functioning micro-programmed com-
puter. Add Type 4002 RAMs for read-write memory and
Type 4003 registers to expand the output ports.
Using no circuitry other than ICs from this family of
four, a system with 4096 8-bit bytes of ROM storage and
5120 bits of RAM storage can be created. For rapid
turn-around or only a few systems, Intel’s erasable and
re-programmable ROM, Type 1701, may be substituted
for the Type 4001 mask-programmed ROM.
MCS-4 systems interface easily with switches, key-
boards, displays, teletypewriters, printers, readers, A-D
converters and other popular peripherals. For further
information, circle the reader service card 87 or call Intel
at (408) 246-7501.
Circle 87 on Reader Service Card

COMPUTER/JANUARY/FEBRUARY 1972/71

Le but de ce cours est de décrire le fonctionnement des microprocesseurs du niveau 0 au niveau 4. Les

18
opérations rudimentaires telles que l’addition, le comptage, la mise en mémoire sont réalisées à l’aide de
circuits élémentaires. Le comportement de ces derniers est décrit à l’aide de l’algèbre binaire.
On peut chanter le cri du coq, car c’est bien un français qui à inventé le premier micro-ordinateur
En mai 1973 : Le premier micro-ordinateur vendu tout assemblé. Il s’agit du Micral conçu par François
Gernelle de la société R2E. Ce micro était basé sur le microprocesseur Intel 8008.

F IG . 1.20 – Le premier micro-ordinateur

En juin 1973 : Le mot microcomputer (micro-ordinateur) apparait pour la première fois dans la presse
Américaine dans un article au sujet du Micral.
et bien plus tard, le premier PC, en aout 1981 : IBM lance son 5150 Personal Computer équipé de :
Un microprocesseur Intel 8088 à 4.77 MHz,
– 64 Ko de Ram,
– de 40 Ko de Rom,
– d’un lecteur de disquettes 5"25,
– du système d’exploitation PC-DOS 1.0 pour 3000 $.
Une version haut de gamme avec carte graphique couleur CGA (640x200 en 16 couleurs) coutait 6000 $.

F IG . 1.21 – Le premier PC

1.7 L’évolution

L ’ IMAGE L’image ci-dessous montre un peu l’évolution de “l’ordinateur”.

19
F IG . 1.22 – Les racines de l’ordinateur

20
Chapitre 2

Représentation de l’information

2.1 Les systèmes de numération

L A numération est la façon d’énoncer ou d’écrire des nombres, o n peut citer les numérations
– arabe : 0, 1, 2, 3, 4, 5, 6, 7, 8 et 9.
– romaine : I, II, III, IV, V, VI, VII, VIII, IX, L, C, M.
C’est aussi un système qui organise la suite des nombres en séries hiérarchisées. Il existe une multitude
de systèmes de numération (appelé aussi bases), en fait, autant qu’il y a de nombres. Nous allons nous
intéresser à quatre d’entre eux, ceux utilisés par les ordinateurs. 1

2.1.1 Le système décimal


C’est le système le plus utilisé et j’espère qu’il n’a plus de secrets pour vous. . .
Il va nous servir d’exemple pour expliquer les 3 autres. Il est basé sur le nombre 10. 10 étant la base du
système décimal. Les chiffres 0, 1, . . . ,8, 9, soit 10 caractères au total sont utilisés pour la représentation
des nombres. Un nombre est subdivisé en puissances de 10, que l’on énonce en allant de la plus élevée à la
plus faible.

Exemple : 199510 = 1 ∗ 103 + 9 ∗ 102 + 9 ∗ 101 + 5 ∗ 100

On note en indice la base du système de numération dans lequel le nombre est représenté. Pour le
nombre décimal 1995, chaque chiffre à ce qu’on appel un rang.
Le chiffre 1 a le rang des milliers, on dit que son "poids " est de mille. Pour le nombre 1995, le chiffre
1 est appelé le chiffre de poids fort, et le 5 le chiffre de poids faible.

2.1.2 Le système binaire


C’est le système que l’on devrait tout le temps utilisé, mais il est peu pratique dans la vie courante. Par
contre en informatique il est le plus utilisé. En effet un ordinateur n’a que 2 possibilités OUI ou NON que
l’on peut faire correspondre en logique positive à VRAI ou FAUX (l’homme ayant la 3ème possibilité "je
ne sais pas").
Ces 2 possibilités sont représentées par les chiffres 0 et 1, soit 2 caractères au total, utilisés pour la re-
présentation des nombres. Le système binaire est donc basé sur le chiffre 2. Comme en décimal, un nombre
est subdivisé en puissances de 2, que l’on énonce en allant de la plus élevée à la plus faible.

Exemple : 1011(2) = 1 ∗ 23 + 0 ∗ 22 + 1 ∗ 21 + 1 ∗ 20

1 Certaines bases vous sont déjà familières, telles la base dix et la base douze pour les œufs à la ferme. Il existe aussi la base 7 pour

les jours et les notes sur une partition de musique, la base 20 pour le comptage sur les doigts des mains et des pieds des Mayas, la
base 24 pour les heures, la base 60 pour les degrés, minutes et secondes venant des savants de Babylone. . .

21
En base 2, on ne parle plus de chiffres mais de bits (en anglais Binary Digit), et on dit bit de poids le
plus fort (MSB Most Significant Bit) et bit de poids le plus faible (LSB Less Significant Bit) Le comptage
en binaire ne diffère pas, sur le principe, du comptage en décimal. Lorsque la capacité numérique d’une
position est dépassée, on obtient une retenue se reportant sur la position suivante ; ceci arrive lorsque l’on
dépasse le chiffre 1 dans une position du système binaire et le chiffre 9 dans une position du système
décimal.

2.1.3 Le système octal


C’est un système qui découle du système binaire. Il est constitué de 8 caractères, 0, 1,. . . ,7. Il est surtout
utilisé dans les systèmes d’exploitations tels que Unix pour les droits sur les fichers, répertoires etc... (voir
le cours sur les systèmes d’exploitations).

2.1.4 Le système hexadécimal


On a vu lors de l’étude du système binaire que les nombres devenaient vite très longs. Ce système bi-
naire est surtout utilisé en électronique, en automatique et en mécanique. Les informaticiens utilisent plus
facilement le système hexadécimal. Les chiffres 0, 1,. . . ,8, 9, A, B, C, D, E et F soit 16 caractères au total
sont utilisés pour la représentation des nombres. A ⇐⇒ 10, B ⇐⇒ 11, C ⇐⇒ 12, D ⇐⇒ 13, E ⇐⇒ 14
et F ⇐⇒ 15. Un nombre est subdivisé en puissances de 16, que l’on énonce en allant de la plus élevée à la
plus faible.

Exemple : ABCD(h) = A ∗ 163 + B ∗ 162 + C ∗ 161 + D ∗ 160

La base 16 est surtout utilisée dans les plans mémoire.

2.2 La conversion

C E laconsiste à passer d’une base à une autre. C’est ce que font le compilateur et l’interpréteur de pro-
grammes lorsqu’ils traduisent un programme source en programme exécutable. Nous allons voir dans
cette partie comment on procède pour passer d’une base à une autre, donc faire une conversion. Les mé-
thodes utilisées fonctionnent pour toutes les bases, nous ne vyaons que les bases utilisées en informatique.

2.2.1 Base 10⇔Base 2


Il est intéressant de savoir passer d’une base 2 à une base 10 et vice versa. Il existe différentes méthodes,
la plus simple est d’utiliser tout bêtement votre chère calculatrice.

2.2.2 Base 16⇔Base 2


Pour ce qui est de la conversion de base 2 en base 16 et vice versa, il suffit :
– De 2 vers 16, de regrouper les bits 4 par 4 (en commençant par les LSB !) et de convertir.

Exemple : 01 1100 1001 0011(2) ⇐⇒ 1 C 9 3(h)

– de 16 vers 2, d’éclater les chiffres et de former des paquets de 4 bits et de convertir.

Exemple : 1 B 3 4 D 1(h) ⇐⇒ 0001 1011 0011 0100 1101(2)


Voilà l’avantage de la base 16 sur la base 10 en informatique. La conversion est nettement plus simple.

22
2.2.2.1 La table de conversion
Base 10 Base 2 Base 8 Base 16 Base 10 Base 2 Base 8 Base 16
0 0 0 0 8 1000 10 8
1 1 1 1 9 1001 11 9
2 10 2 2 10 1010 12 A
3 11 3 3 11 1011 13 B
4 100 4 4 12 1100 14 C
5 101 5 5 13 1101 15 D
6 110 6 6 14 1110 16 E
7 111 7 7 15 1111 17 F

2.3 Les nombres négatifs (signés)

D A nsune case mémoire, on ne peut entrer que 1 ou 0, c’est la seule chose que comprend un ordinateur.
Pour représenter les nombres négatifs, il a fallu trouver une solution. La solution la plus immédiate
consiste à réserver un digit binaire (bit) pour le signe, les autres bits représentant la valeur absolue du
nombre. La convention qui prévaut consiste à mettre le MSB à 0 pour représenter un nombre positif et à 1
pour un nombre négatif. On parle de données ou nombres signés quand on utilise cette convention.

Exemple : sur 8 bits en nombres non signés on va de 0 à 255(10) alors qu’en nombres signés on va de
– -128 ⇐⇒ 1000 000 à
– +127 ⇐⇒ 1111 1111.
Nous allons voir comment obtenir ces conversions et leurs explications.

2.3.1 Le complément à 1 (restreint)


Le complément restreint d’un nombre binaire s’obtient par simple complétion des valeurs des bits
constituant ce nombre. Ainsi en considérant le nombre signé 10010 représentant le nombre −2 (10) il aura
pour complément restreint 01101 soit 13(10) ce qui ne représente pas grand chose.

2.3.2 Le complément à 2 (vrai)


Le complément vrai d’un nombre binaire s’obtient, en inversant les valeurs des bits formant le nombre
et en rajoutant 1.

exemple : 0110 devient 1010 et 0000 devient bien 0000 (essayez).

Admettons que nous ayons des nombres sur 4 bits.


– 0100 représente soit 4 , et son complément à 2.
– 1100 représente soit -4.
Le codage sur 8 bits ne permet plus d’obtenir des nombres compris entre 0 et 255 mais entre -128 et +127.

2.4 Les opérations arithmétiques en système binaire

C O mme on le fait depuis notre plus jeune age en base 10, il est possible de réaliser des opérations arith-
métique en utilisant le système binaire. A l’intérieur de l’ordinateur, le microprocesseur ne procède
pas autrement car vue sa constitution, il ne peut “comprendre” que les informations binaires.

2.4.1 L’addition
Il suffit de savoir additionner et de se rappeler que 1+1, ne fait pas 2 mais 10 (2) !

23
2.4.2 La soustraction en complément à 2
Pour faire des soustractions en binaire, il faut convertir le nombre à soustraire en complément à 2 et
faire une addition.

Exemple sur 8 bits


– 21 - 63 = -42
– 63 ⇐⇒ 00111111 donc
– -63 ⇐⇒ 11000000+1=11000001 donc
– 21 - 63 ⇐⇒ 0001 0101 + 1100 0001 = 1101 0110 ⇐⇒ (-128+64+16+4+2)
– = -42 CQFD.

2.4.3 La multiplication
Aucune difficulté, ce ne sont que des additions. Nous étudierons cela en TD.

2.4.4 La division
Comme pour la multiplication, il n’y a aucune difficulté, ce ne sont que des soustractions. Nous étudie-
rons aussi cela en TD.

2.4.5 Les nouveaux multiples


Dans le système décimal, on parle de kilo, méga, giga. . .
Ces multiples existent aussi en bases 2 et 16 mais non pas les mêmes valeurs.
– 1 kilo ⇐⇒ 210 = 1 024 unités
– 1 méga ⇐⇒ 220 = 1024 * 1024 = 1 048 576 unités
– 1 giga ⇐⇒ 230 = 1024 * 1024 * 1024 = 1 073 741 824 unités
– 1 tera ⇐⇒ 240 = 1024 * 1024 * 1024 * 1024 = 1 099 511 627 776 unités
– 1 peta⇐⇒ 250 = 1024 * 1024 * 1024 * 1024 * 1024 =1 125 899 906 842 624 unités
– 1 exa ⇐⇒ 260 = 1024* etc. . . = 1 152 921 504 606 846 976 unités
– 1 zetta ⇐⇒ 270 = 1024* etc. . . = 1 180 591 620 717 411 303 424 unités
– 1 yotta⇐⇒ 280 = 1024* etc. . . = 1 208 925 819 614 629 174 706 176 unités 2

2 Je pense que j’ai un peu exagéré , non ?

24
Chapitre 3

Le Codage

3.1 Définitions
La définition du dictionnaire donne pour les mots
– code : Système de conventionnel de signes ou signaux, de règles et de lois, permettant la transfor-
mation d’un message en vue d’une utilisation particulière.
Exemples : Code de la route, Code génétique, Code postal, Code secret. . .
– codage : C’est le fait de coder.
– coder : C’est transcrire à l’aide d’un code.
En informatique on utilise une multitude de codes qui permettent, comme le donne la définition du diction-
naire, de transformer différentes représentations de l’information.
Que veulent dire les 3 lignes suivantes ?1
υ$πξι νςτ µθζετ υπλη
ειπτ ςιρφυεϑνξτ τ ς
κ$ειξπυψψψ

3.2 La représentation des nombres


3.2.1 Le code Gray ou code binaire réfléchi
Pour l’instant on a vu le code binaire naturel. Le code gray est surtout utilisé pour la visualisation
d’informations, ou pour la conversion de grandeurs analogiques (par exemple la position angulaire d’un
arbre en rotation).
Exemple : on veut repérer la position d’une pièce mobile en utilisant des capteurs de réflexion. Il y a
un risque d’erreur dans le code binaire naturel. les marques sombres correspondent à une faible lumière
réfléchie ou à un 1 logique. Lors des transissions 1 à 2,3 à 4,4 à 5....il y a un risque de voir apparaître à la
sortie du dispositif, des combinaisons fausses. Par exemple, pour passer de la position 1 à la position 2, on
peut obtenir les combinaisons parasites 0 ou 3.

0 1 2 3 4 5 6 7 8 9 A B C D E F
2 0
X X X X X X X X
21 X X X X X X X X
22 X X X X X X X X
23 X X X X X X X X
On est donc conduit à utiliser un code différent où seul un bit change quand on passe d’une position à
une autre, c’est le code Gray ou code binaire réfléchi. Ce code à la particularité de n’avoir qu’un bit qui
1 S’il y a un grec parmi vous, je lui souhaite une bonne traduction, car ce texte je l’ai tapé au hazard. Je ne tiens pas à perdre mon

latin. . .

25
change à la fois. Il est utilisé dans les roues codeuses.

0 1 2 3 4 5 6 7 8 9 A B C D E F
20 X X X X X X X X
21 X X X X X X X X
22 X X X X X X X X
23 X X X X X X X X

3.2.2 Le code BCD


Abréviation de Binary Coded Decimal en anglais et DCB Décimal Codé Binaire. Ce code cherche à
concilier les avantages du système décimal et du code binaire. Il est surtout utilisé pour l’affichage de don-
nées décimales (calculatrices). A chaque chiffre du système décimal, on fait correspondre un mot binaire
de quatre bits. Pour coder un nombre décimal en BCD, on va coder séparément chaque chiffre du nombre
de base dix en Binaire.
Exemple : 1 9 8 5(10) ⇐⇒ 0001 1001 1000 0101(2)
Attention : Le nombre codé en BCD ne correspond pas au nombre décimal converti en binaire naturel.
Le codage décimal BCD est simple, mais il impossible de faire des opérations mathématiques avec !

3.3 La représentation des caractères


3.3.1 Le code EBCDIC
Extended Binary Coded Decimal InterChange, ce code est utilisé principalement par IBM. Il peut être
parfois assimilé à un code 9 bits quand il est fait usage d’une clé d’imparité, (bit supplémentaire destiné à
contrôler la validité de l’octet associé).

3.3.2 Le code ANSI


Certains logiciels utilisent la norme ANSI (American National Standard Institute) qui reprend en
grande partie le code ASCII. Ce code propose des extensions différentes selon le " code de page ". Le
code de page 850 est un jeu de caractères “multilingue” alors que le code de page 864 définit le jeu de
caractères arabes, le code de page 437 définit le jeu de caractères français. . .
La table des codes ASCII

Table ASCII
Le jeu de caracteres ASCII en octal, decimal, et hexadecimal.

La table suivante contient les 128 caracteres ASCII.

Oct Dec Hex Car Oct Dec Hex Car


------------------------------------------------------------
000 0 00 NUL ’\0’ 100 64 40 @
001 1 01 SOH 101 65 41 A
002 2 02 STX 102 66 42 B
003 3 03 ETX 103 67 43 C
004 4 04 EOT 104 68 44 D
005 5 05 ENQ 105 69 45 E
006 6 06 ACK 106 70 46 F
007 7 07 BEL ’\a’ 107 71 47 G
010 8 08 BS ’\b’ 110 72 48 H
011 9 09 HT ’\t’ 111 73 49 I
012 10 0A LF ’\n’ 112 74 4A J

26
013 11 0B VT ’\v’ 113 75 4B K
014 12 0C FF ’\f’ 114 76 4C L
015 13 0D CR ’\r’ 115 77 4D M
016 14 0E SO 116 78 4E N
017 15 0F SI 117 79 4F O
020 16 10 DLE 120 80 50 P
021 17 11 DC1 121 81 51 Q
022 18 12 DC2 122 82 52 R
023 19 13 DC3 123 83 53 S
024 20 14 DC4 124 84 54 T
025 21 15 NAK 125 85 55 U
026 22 16 SYN 126 86 56 V
027 23 17 ETB 127 87 57 W
030 24 18 CAN 130 88 58 X
031 25 19 EM 131 89 59 Y
032 26 1A SUB 132 90 5A Z
033 27 1B ESC 133 91 5B [
034 28 1C FS 134 92 5C \ ’\\’
035 29 1D GS 135 93 5D ]
036 30 1E RS 136 94 5E ^
037 31 1F US 137 95 5F _
040 32 20 SPACE 140 96 60 ’
041 33 21 ! 141 97 61 a
042 34 22 " 142 98 62 b
043 35 23 # 143 99 63 c
044 36 24 $ 144 100 64 d
045 37 25 % 145 101 65 e
046 38 26 & 146 102 66 f
047 39 27 ’ 147 103 67 g
050 40 28 ( 150 104 68 h
051 41 29 ) 151 105 69 i
052 42 2A * 152 106 6A j
053 43 2B + 153 107 6B k
054 44 2C , 154 108 6C l
055 45 2D - 155 109 6D m
056 46 2E . 156 110 6E n
057 47 2F / 157 111 6F o
060 48 30 0 160 112 70 p
061 49 31 1 161 113 71 q
062 50 32 2 162 114 72 r
063 51 33 3 163 115 73 s
064 52 34 4 164 116 74 t
065 53 35 5 165 117 75 u
066 54 36 6 166 118 76 v
067 55 37 7 167 119 77 w
070 56 38 8 170 120 78 x
071 57 39 9 171 121 79 y
072 58 3A : 172 122 7A z
073 59 3B ; 173 123 7B {
074 60 3C < 174 124 7C |
075 61 3D = 175 125 7D }
076 62 3E > 176 126 7E ~
077 63 3F ? 177 127 7F DEL

27
Le standard ASCII a été publié par l’USASI (United States of America Standards Institute) en 1968.
ASCII est l’acronyme de American Standard Code for Information Interchange.
Il s’agit d’un code sur 7 bits. De nombreux codes sur 8 bits (tels que l’ISO 8859-1n le jeu de caractères
par défaut de Linux) contiennent l’ASCII dans leur première moitié.
L’équivalent international de l’ASCII est connu sous le nom de ISO 646.
Remarque : La table des codes ASCII ci-dessus, affiche les caractères imprimables et non les codes de
contrôle. En effet les caractères dont les codes sont 10, 13 et 27 en décimal, représentent respectivement
Line Feed (Aller à la ligne), Carriage Return (Retour Chariot) et Scape (Escape), le tableau ci-dessous en
donne quelques exemples.

Code 00 01 02 03 04 05 06 07 08 09
Caractère NULL SOH STX ETX EOT ENQ ACK BELL BS HT
Code 10 11 12 13 14 15 16 17 18 19
Caractère LF VT NP CR SO SI DLE DC1 DC2 DC3
Code 20 21 22 23 24 25 26 27 28 29
Caractère DC4 NAK SYN ETB CAN EM SUB ESC FS GS

3.3.3 Les nouveaux codes


Avec l’augmentation croissante du nombre d’utilisateurs de l’informatique et surtout la quantité de ca-
ractères différents se trouvant dans les différentes langues, les organismes de normalisation ISO travaillent
depuis le début des années 90, à la création d’un code universel , l’»UNIversal CODE» UNICODE.
Dans ces nouvelles tables de code, on y trouve les caractères latin (les nôtres), Tamoul (Inde), Cyrillique
(Grèce et Russie’) ou les idéogrammes Japonais et Chinois.
Ils existe donc deux nouveaux codes :
– ISO/IEC 10646 : sur 32 bits donc 4 294 967 296 caractères différents possibles.
– UNICODE 1.1 : sur 16 bits et contenant 65 536 caractères différents possibles.
C’est ce dernier qui est actuellement utilisé dans les différents Systèmes d’exploitations.

3.4 Les codes détecteurs d’erreurs

A l’intérieur de l’ordinateur les informations sont constamment “véhiculées”. Il est donc nécessaire de
s’assurer de la transmission convenable de ces informations. Pour cela on utilise divers moyens allant
du simple contrôle de parité jusqu’à l’élaboration de codes sophistiqués.

3.4.1 Le contrôle de la parité


Aux n bits que comporte le code à l’origine, on ajoute 1 bit supplémentaire. Ce bit est positionné de
telle sorte que le nombre total de bits à 1 soit :
– pair, code dit à parité pair.
– impair, code dit à parité impair.
Cette méthode n’est efficace que si l’erreur est sur un nombre impair de bits.

3.4.2 Les codes autovérificateurs ou autocorrecteurs


La méthode précédente étant limitée, on a été amené à concevoir des codes vérifiant et corrigeant des
erreurs supérieures au simple bit. Ces techniques ont été développé par l’américain R W HAMMING et
l’on parle souvent de code de Hamming.
Il existe en fait 2 techniques d’élaboration de ces codes.

P A G LRC
VRC 0 0 0 0 Parité croisée

28
1 1 1 1
0 0 0 0
1 0 0 1
0 0 0 0
0 0 1 1
0 0 1 1
0 1 1 0

3.4.2.1 Les codes de blocs


Le principe consiste à construire une information en sectionnant l’information utile en blocs de lon-
gueur fixe et en y ajoutant un certain nombre de bits de contrôle (bits de redondance). Le mot de n bits
reçu est un mot de code et le bloc de départ peut être reconstitué Le mot de n bits reçu n’est pas un mot de
code et le récepteur peut alors :
– Retrouver le bloc original (cas des codes autocorrecteurs) ;
ou
– Redemander le bloc original (cas des codes vérificateurs).
L’efficacité d’un tel code sera d’autant meilleur que les mots qui le constituent seront distincts les uns des
autres. On définit ainsi la distance de Hamming, correspondant au nombre de bits qui varient entre deux
mots successifs de code. Plus elle est grande et plus le code est efficace (pour le code Gray la distance est
de 1). Parmi ces codes on trouve :
– Le contrôle de parité verticale : VRC (Vertical Redundancy Checking).
– Le contrôle de parité horizontale : LRC (Longitudinal Redundancy Checking)
En utilisant ces codes de blocs et le contrôle de parité, il est possible d’assurer
– Une vérification dite par parités croisées ou LRC/VRC qui, en augmentant la distance de hamming,
assure une meilleure détection et correction des erreurs.
Exemple : On souhaite transmettre les caractères PAG en code ASCII. les valeurs hexadécimales des
caractères transmis seraient donc dans cet exemple 50 41 47 56 et non pas simplement 50 41 47 comme
le code ASCII le donnerait. La valeur 56(h) correspond à la la valeur trouvée dans le tableau ci-dessus :
0101 0110(2) →

3.4.2.2 Les codes cycliques


Appelés CRC (Cyclic Redundancy Codes) ou codes polynomiaux, sont très utilisés car très facile à
mettre en œuvre. Le principe consiste à considérer que toute information de n bits peut être transcrite sous
une forme polynomiale : 10111 correspond à :1 ∗ X 4 + 0 ∗ X 3 + 1 ∗ X 2 + 1 ∗ X 1 + 1 ∗ X 0
A partir d’une information de départ I(x) de i bits on va construire une information redondante R(x)
de r bits et l’émettre à la suite de I(x), de telle sorte que le polynôme résultant N(x) soit divisible par le
polynôme générateur G(x). A la réception on divise le polynôme N(x) reçu par le même polynôme G(x) et
le reste de cette division doit être nul si la transmission est correcte. Le choix d’un bon polynôme générateur
est important si l’on veut détecter un maximum d’erreurs. Un des polynômes les plus utilisés, normalisé
par le CCITT est : X 16 + X 12 + X 5 + 1
et permet de détecter
– 100% des erreurs simples et doubles.
– 100% des erreurs sur un nombre impair de bits.
– 100% des paquets d’erreurs d’une longueur <= 16 bits.
– 99,99% des paquets d’erreurs d’une longueur 18 bits.

29
Chapitre 4

Le codage des nombres flottants

4.1 Introduction

L E but de ce cours est de vous montrer le codage, au sein de l’ordinateur, de n’importe quel nombre,
entier ou non et signé : 3,144592 2,718 -1E218 etc.. Comme vous l’avez déjà vu, un microprocesseur
n’est pas conçu pour travailler en base 10 mais en base 2.1

4.1.1 Rappel
Pour passer d’un nombre entier de base 10 en base 2, il suffit de faire des divisions successives par 2
jusqu’à obtenir un reste égal à 1 ou 0.

4.2 Conversion

P Par analogie, on en déduit que pour convertir une fraction décimale en base 2, il suffit de réaliser des
multiplications successives par 2, jusqu’à obtenir une partie fractionnaire nulle.

Exemple : soit à convertir 32,125 en base 2 : on sait que 32 est équivalent à 100000 et
– 0,125 * 2 = 0,25 partie entière = 0 et partie fractionnaire = 0,25
– 0,25 * 2 = 0,5 partie entière = 0 et partie fractionnaire = 0,5
– 0,5 * 2 = 1 partie entière = 1 et partie fractionnaire = 0
Ce qui donne :
32,125 = 32 + 0,125 100000 + 0, 001 = 100000,001 en base 2

4.3 Normalisation

L Eproblème qui se pose maintenant est le stockage en mémoire ou dans un registre d’une quantité écrite
en base 2. Dans un premier temps, tout nombre sera traduit sous forme d’un produit entre une fraction
(une fraction est un nombre avec une partie entière nulle, c’est à dire inférieur à 1 en valeur absolue ou
encore commençant par un point décimal) et une puissance de 2.

Exemple : 32,125 s’écrit aussi 100000,001 ou encore 0,100000001*2 6

1 L’apparition de composants permettant les calculs en nombre flottants a permis d’accroître énormément la puissance de cal-
culs de ces derniers. Pour anecdote, en 1990 quand on achetait un micro-ordinateur de type PC, il fallait rajouter le co-processeur
mathématique qui à lui seul coutaît aussi cher que l’unité centrale.

30
Pour mémoriser un nombre, il suffit donc de coder sa puissance de 2 et sa fraction. L’intérêt de cette
méthode est que l’on sait toujours ou se trouve le point décimal et qu’il n’y a plus de partie entière, on
obtient donc un mode de représentation figé.
Il est clair qu’il faut aussi un bit pour mémoriser le signe (0 = + et 1 = - ), un bit pour chaque chiffre
de la fraction en base 2 et quelques chiffres pour représenter la puissance (positive ou négative) traduite en
base 2.
Remarque : si la fraction est trop grande, il n’est pas question de prendre en compte tous les chiffres.

4.4 Virgule flottante

E N En clair, tout nombre sera désormais écrit sous la forme d’un produit entre une puissance de 2 et une
fraction dont les chiffres sont les chiffres significatifs du nombre. La seule exception étant le 0 qui n’a
pas vraiment de chiffres significatifs.
Tout nombre non nul peut être mis sous ce format, appelé *virgule flottante normalisée*. Nous le
représenterons par SM 2e où
– S est le signe
– M la mantisse
– e l’exposant.

4.4.1 La réalité
Pour stocker un nombre décimal dans une mémoire binaire, il suffit de le convertir en binaire, puis de
mettre le résultat au format virgule flottante normalisée : SM ∗ 22 avec 0, 12 6 |M | < 12 ⇔ 0, 510 6
|M | < 110 .
Remarque : (0, 510 6 |M | ; M permet d’éliminer les 0 à droite de la virgule de façon à obtenir plus de
chiffres significatifs donc une meilleure précision).
Un nombre p de bits sera utilisé pour la fraction m. Le premier bit de celle-ci étant nécessairement 1.
Un nombre p’ de bits sera utilisé pour l’exposant e. Pour coder les exposants négatifs, il a fallu imposer
un codage (autre que le complément à 2). Une constante, k, est ajoutée à l’exposant de telle manière que
l’ensemble devienne positif. K+e s’appelle la caractéristique du nombre.
Nous allons voir les deux formats les plus utilisés dans un micro-ordinateur. Tous les deux comptent 32
bits avec p = 23 et p’ = 8

4.4.1.1 Norme IBM sur 32 bits


31 à 24 23 22 à 0
Exposant : e+128 Signe 23 chiffres de la Mantisse

4.4.1.2 Norme IEEE sur 32 et 80 bits


31 30 à 23 22 à 0
Signe Exposant : e +126 23 chiffres de la Mantisse
79 78 à 64 63 à 0
Signe Exposant : e+16383 Mantisse
Pour le 80387, cela permet d’obtenir des nombres allant de 3,4*10e-4932 à 1,2*10e+4932 (ce qui est
supérieur au nombre d’atomes composants la terre !)

31
Chapitre 5

Algèbre de BOOLE

5.1 Définition

C ’est une algèbre binaire mise en œuvre par le mathématicien George BOOLE (1815-1864) pour étu-
dier la logique.

F IG . 5.1 – George BOOLE

Les variables, dites booléennes, ne peuvent prendre que deux valeurs : VRAI ou FAUX ou bien encore
1 ou 0. On peut alors définir des opérateurs sur ces variables et consigner le résultat dans une Table de
Vérité. Ces opérateurs peuvent être réalisés par des circuits électroniques : ils sont alors appelés Portes
Logiques.

5.2 Portes logiques de base

E Lles sont au nombre de 6. Elles permettent de réaliser toutes les fonctions logiques qui sont cablées à
l’intérieur d’un microprocesseur (Voir le chapitre intitulé : Le microprocesseur).

5.2.1 Opération suiveuse : OUI (YES)


Soit x une variable booléenne, on note X l’opération OUI.

Table de Vérité L’équation de cette table de vérité est

A S S=X
0 1
1 0

32
F IG . 5.2 – Porte OUI

5.2.2 Opération inversion : NON (NOT)


Soit x une variable booléenne, on note X l’opération NON.

Table de Vérité L’équation de cette table de vérité est

A S S = X = ¬X
0 1
1 0

F IG . 5.3 – Porte NON

Remarque : Le petit trait est utilisé dans tous les schémas pour représenter la fonction négation : NON.

5.2.3 Opération ET (AND)


Table de Vérité L’équation de cette table de vérité est

A B S S = A.B = A ∩ B = A ∧ B
0 0 0
0 1 0
1 0 0
1 1 1

F IG . 5.4 – Porte ET

5.2.4 Opération somme : OU (OR)


Table de Vérité L’équation de cette table de vérité est

A B S S =A+B =A∪B =A∨B


0 0 0
0 1 1
1 0 1
1 1 1

33
F IG . 5.5 – Porte OU

5.2.5 Opération NON ET (NAND)


Table de Vérité L’équation de cette table de vérité est

A B S S = A.B = A ∩ B = A ∧ B
0 0 0
0 1 1
1 0 1
1 1 1

F IG . 5.6 – Porte NON ET

5.2.6 Opération NON OU (NOR)


Table de Vérité L’équation de cette table de vérité est

A B S S =A+B =A∪B =A∨B


0 0 1
0 1 0
1 0 0
1 1 0

F IG . 5.7 – Porte NON OU

porte_non_ou.eps

5.2.7 Opération OU EXCLUSIF (XOR)


Table de Vérité L’équation de cette table de vérité est
L
A B S S=A B
0 0 0
0 1 1
1 0 1
1 1 0

34
F IG . 5.8 – Porte OU Exclusif

5.2.8 Opération NON OU EXCLUSIF (NEXOR)


Table de Vérité L’équation de cette table de vérité est
L
A B S S=A B
0 0 1
0 1 0
1 0 0
1 1 1

F IG . 5.9 – Porte NON OU Exclusif

5.3 Quelques propriétés

O On remarquera que la plupart des règles de l’algèbre classique s’appliquent ou que d’autres se com-
prennent d’une façon assez intuitive. Voici les principales lois de l’algèbre de BOOLE sur les opéra-
teurs ET et OU.

Lois Opérateur ET Opérateur OU


Identité 1.A=A 0+A=A
Nullité 0.A=0 1+A=1
Associativité (A.B).C=A.(B.C) (A+B)+C=A+(B+C)
Commutativité A.B=B.A A+B=B+A
Distributivité A.(B+C)=A.B+A.C
Idempotence A.A=A A+A=A
Inversion A./A=0 A+/A=1
Absorption(1) A.(A+B)=A A+A.B=A
Absorption(2) A + AB = A + B
Loi de De Morgan A.B = A + B A + B = A.B
La loi la plus utilisée est sans doute celle de l’absorption. Il suffit de la traduire dans notre langage et
cela devient :
– Pour faire quelquechose il faut faire cela ou ne pas faire cela et faire ceci. Ce qui revient à faire cela
ou ceci. . .

5.4 Fonction logique

P O urrésoudre des problèmes de logique, on aura souvent besoin de plusieurs variables et on notera le
résultat : f(A,B,C...) exemple : fonction majorité où f(A,B,C)=1 si on a une majorité de 1, 0 sinon. On

35
peut alors décrire la fonction à l’aide des opérateurs de base.

Table de Vérité C’est à dire, S=1 si


– A=0 ET B=1 ET C=1 OU
A B C S – A=1 ET B=0 ET C=1 OU
0 0 0 0 – A=1 ET B=1 ET C=0 OU
0 0 1 0 – A=1 ET B=1 ET C=1
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 1
Remarques :
– Cette façon d’écrire f(A,B,C) n’est pas unique.
– On peut remarquer aussi que f(A,B,C) = A.B+A.C+B.C
Cette expression est plus simple et donc préférable lors de la réalisation des circuits électronique, car plus
économique puisqu’elle utilise moins de portes logiques. Il existe des méthodes comme les tableaux de
KARNAUGH pour simplifier les expressions des équations logiques.

5.5 Tableau de KARNAUGH

S I une table de vérité contient trop de lignes, il est possible d’utiliser une autre représentation et la trans-
former en un tableau. On parle de tableau de Karnaugh, mais on devrait plutôt dire une boule de
Karnaugh. En effet, comme on peut déplacer les lignes et colonnes extérieures d’un côté vers l’autre, il est
facile d’imaginer que cela devient une boule.

5.5.1 Présentation
Considérons une fonction f de n variables. La table de vérité de f possède alors 2 n cases (soit 2n com-
binaisons). Les valeurs que peut prendre f sont regroupées en un tableau de 2 n cases en utilisant, pour le
codage du tableau, le code GRAY (voir le chapitre intitulé : Le Codage). Ce codage du tableau permet de
dégager certaines propriétés d’adjacences. Lorsque deux cases sont côte à côte, une seule variable change
de valeur, les autres sont invariantes. On peut trouver aussi des groupements plus importants possédants
de moins en moins de variables invariantes (cf. TD). Ces regroupements conduisent à une réduction de la
table, donc à une simplification de l’expression de f.
En regroupant par 2, 4 ou 8... cases, on élimine 1, 2 ou 3... variables.

BC \ A 00 01 11 10
0 f (A, B, C) f (A, B, C) f (A, B, C) f (A, B, C)
1 f (A, B, C) f (A, B, C) f (A, B, C) f (A, B, C)
Exemple : pour la fonction majoritaire que nous avons vu précédement.
Il est posible de faire 3 regroupements :
BC \ A 00 01 11 10
– 1 : C est variant. 0 0 0 1 0
– 2 : A est variant. 1 0 1 1 1
– 3 : B est variant.

5.6 Equivalence entre circuits

E N remarquant que X.X = X et que X + X = X , alors les deux opérateurs NAND et NOR peuvent
servir d’inverseur.

36
F IG . 5.10 – Equivalence NAND, NOR, INVERSEUR

On obtient des résultats similaires en utilisant des opérateurs Non OU (cf. TD). On dit que les opérateurs
Non ET et Non OU sont "complets" puisqu’on peut avec un seul de ces opérateurs, utilisé autant de fois
que nécessaire, réaliser n’importe quelle fonction booléenne. Ces deux portes étant faciles à fabriquer, elles
sont à la base des circuits électroniques programmables tels les PALs (Pragrammable Logic Array) et les
GALs que nous ne verrons pas dans ce cours. Mais que vous arborderez surement plus tard dans un cours
intitulé Le langage VHDL.
Les deux figures ci-dessous montrent la réalisation des portes OU Exclusif et NON OU Exclusif à l’aide
de portes NON OU et NON ET.

F IG . 5.11 – Porte OU Exclusif avec des NAND

F IG . 5.12 – Porte OU Exclusif avec des NOR

37
Chapitre 6

Technologie des circuits intégrés

6.1 Introduction

L A technologie des circuits intégrés evolue à une telle rapidité, que le temps d’écrire ces lignes, mon
document est déjà obsolète. . . L’intérêt de ce chapitre est de vous décrire la fabrication des circuits
intégrés et voir leur évolution depuis 1960.

6.2 Historique

L E transistor est un composant électronique dont le principe à été découvert en 1947, qui remplaçait
avantageusement les lampes (tubes à vides), encombrantes et peu fiables, que l’on utilisait jusqu’alors.
Les premiers transistors formaient des composants séparés. Les années 1960 voient l’apparition des circuits
intégrés. Le circuit intégré (CI) est un circuit électronique complet, concentré sur une pastille de matériau
semi-conducteur, généralement du silicium ou de l’arséniure de gallium, et parfois appelé "puce" ou “chip”
e anglais, soit du fait de sa taille (quelques millimètres carrés), soit du fait de sa couleur.
Le nombre de composants placés sur une puce n’a cessé de croître depuis l’apparition des premiers
circuits intégrés. En 1965, on pouvait “loger” environ trente composants sur une puce de 3 millimètres
carrés ; quinze ans plus tard, on en décompte plus de 100 000, actuellement plus de 30 000 000. L’échelle
d’intégration, c’est à dire la largeur des pistes de silicium que l’on est capable de réaliser, est actuellement
de l’ordre de 0,02 micron. A titre de comparaison, le diamètre d’un cheveu est d’environ 30 micron.

6.3 Conception

P OUR réaliser un circuit intégré, le circuit électronique doit d’abord être conçu au moyen d’ordinateurs
spécialisés dans la Conception Assistée par Ordinateur (CAO) et dans le Dessin Assisté par Ordi-
nateur ; puis dessiné environ 500 fois plus gros qu’il ne sera réellement. Ce schéma, appelé masque, est
ensuite utilisé pour guider, toujours par ordinateur, un faisceau lumineux qui impressionne une plaque pho-
tographique appelée réticule, qui reproduit à environ 20 fois, le schéma du circuit. Le réticule est à nouveau
contrôlé et corrigé avant d’être recopié, en le réduisant à la taille définitive du circuit par un procédé pho-
tographique (procédé dit par photogravure), sur une fine tranche découpée dans un barreau de silicium très
pur d’environ 50 cm de long pour un diamètre de 7,5 cm. Cette tranche de 0,1 mm d’épaisseur environ
porte le nom de wafer (littéralement “gaufrette”) et peut contenir jusqu’à 500 circuits de 5 mm de coté
environ.
Il existe également une technique, dite lithographie par faisceaux d’électrons, qui permet d’améliorer
la résolution en “attaquant” directement le wafer grâce à un faisceau d’électrons, ce qui permet d’obtenir
une résolution environ 20 fois supérieure à celle obtenue par la photogravure. Le wafer est ensuite porté à
une température d’environ 1 000 degrés Celsius dans un four à diffusion, puis exposé à des éléments chi-
miques (bore, phosphore...), appelés dopants, qui modifient les propriétés de semi-conducteur du silicium.

38
Ces dopants pénétrant le silicium à des endroits précis définis par le procédé photographique précédent,
déterminent ainsi transistors, diodes, bascules, etc. Il existe également une autre technique de dopage des
circuits qui est l’implantation ionique où l’introduction des impuretés se fait à température ambiante, les
atomes dopants étant ionisés et implantés aux endroits voulus grâce à un bombardement d’ions. Tous les
circuits ainsi conçus sont testés avant que les wafers ne soient découpés en puces individuelles. Chaque
puce est alors sertie dans un boîtier en plastique et reliée à des broches de connexion par de minuscules fils
d’or. Cette technique en voie de régression est remplacée par celle du film, permettant un gain de temps de
l’ordre de 10. Dans la connexion par film, la puce (ou Chip) est automatiquement connectée en une seule
fois aux pattes intérieures d’une structure, dite araignée, portée par un film. Le composant est alors recou-
vert d’une couche de plastique noir (opération dite d’empaquetage ou packaging). Ce boîtier est destiné à
éviter que le circuit intégré ne soit soumis aux agressions de l’environnement, mais aussi à l’évacuation de
la chaleur dissipée par le composant lors de son fonctionnement ainsi qu’à une meilleure manipulation.

F IG . 6.1 – Le 1er Circuit Intégré

F IG . 6.2 – Des Wafers

6.4 Familles des circuits intégrés

L E circuit intégré est un composant électronique qui réunit sous un même boîtier tous les composants
d’un même circuit électronique connectés entre eux. Par opposition : Composants discrets (Transis-
tors ; diodes ; résistances etc).
Les circuits intégrés sont classés en catégories suivantes :
– SSI : Small Scale Intégration ayant moins de 12 portes élémentaires
– MSI : Medium Scale Intégration ayant de 12 à 100 portes élémentaires
– LSI : Large Scale Intégration ayant de 100 à 1000 portes élémentaires

39
– VLSI : Very Large Scale Intégration ayant plus de 1000 portes élémentaires.
A titre d’information, le microprocesseur remplaçant du Pentium 4 devrait comporter plus de 50 millions
de transistors, soit plus de 2 000 000 portes élémentaires.

6.4.1 Présentation des Circuits Intégrés


Il existe différentes formes de boîtiers :
– DIP ou DIL : Dual In Line Package : 8 ; 14 ; 16 ; 20 ; 24 ; 28 ; 40 ou 64 broches.
– Flat Package 14 broches : matériel miniaturisé militaire : pratiquement plus utilisée.
– Boîtier cylindrique 8 ; 10 ou 12 broches : rares.
– SMD ou CMS Surface Mounted Device ou Composant monté en surface, beaucoup plus récents et
de plus en plus utilisés, il n’est plus nécessaire de percer le circuit imprimé.
Voici le premier microprocesseur que l’on a déjà eu l’occasion de voir dans le chapitre Historique et un
microprocesseur plus récent.

F IG . 6.3 – Le 1er microprocesseur

F IG . 6.4 – Des microprocesseurs plus recents

Remarque : le nombre de broches a sensiblement augmenté.

6.4.2 Différentes familles de circuits intégrés


– Circuits Logiques : Opérateurs Logiques, Bascules et Compteurs, Multiplexeurs et Demultiplexeurs,
circuits Arithmétiques, Mémoires, Registres, Microprocesseur etc...
– Circuits Analogiques ou Linéaires : Amplificateurs Opérationnels, Régulateurs De Tension, Com-
parateurs etc...
– Circuits hybrides : Convertisseurs Numérique Analogique et Analogique Numérique, DSP (Digital
Signal Processing : Processeur Numérique de Signal), micro contrôleurs (certains possèdent des E/S
analogiques).

40
6.5 Technologies et structures des circuits intégrés logiques

O N appelle famille logique, une catégorie de circuits logiques fabriqués au moyen de la même technique
de construction. Il existe deux grandes familles logiques :
BIPOLAIRES, qui utilisent les transistors bipolaires NPN et PNP et partagée en quatre sous familles
– TTL : Transistor Transistor Logic Les transistors travaillent en bloqués saturés.
– ECL : Emitter Coupled Logic
– MECL Multi-Emitter Coupled Logic
– CML : Current Mode Logic dans ces trois sous familles les transistors travaillent en bloqués non
saturés.
UNIPOLAIRES, qui utilisent les transistors unipolaires : TEC ; MOS ( PMOS ; NMOS ; VMOS ) MOS :
Metal oxyde Semi-conductor ( grille isolée par un oxyde métallique ).
Si toutes ces technologies cohabitent, c’est que la technologie idéale n’existe pas et que chacune d’elles
a ses raisons d’exister. Le choix d’une technologie se fera en général à partir des critères suivants
– Prix.
– Immunité aux Bruits.
– Consommation Electrique.
– Temps de Réponse.
– Facteur de mérite.

6.6 Terminologie des Circuits Intégrés Logiques


6.6.1 PRIX
Selon un cahier des charges bien précis, l’objectif final d’une étude étant de réaliser un système tech-
nique ( ou une série ) avec un prix de revient le plus faible possible.
Les questions sont :
– Combien coûteront les composants utilisés.
– Quelles sont les exigences de la technologie utilisée sur son environnement’ (Précision des alimen-
tations, protection contre les parasites ...) Poids , Dimensions etc.
– Poids de l’étude ’ Si un seul système technique, il sera plus judicieux d’utiliser des composants plus
onéreux mais plus facile à mettre en œuvre.

6.6.2 IMMUNITE AUX BRUITS


On appelle bruits des signaux parasites qui peuvent apparaître aux entrées des circuits intégrés.
Exemples
– Commande de circuits inductifs.
– Rayonnement des lignes haute tension.
– Tensions induites par des variations de champs magnétiques.
– etc. . .
L’immunité aux bruits sera donc le critère permettant d’évaluer l’insensibilité aux signaux parasites. L’im-
munité aux bruits sera donnée par les relations suivantes
– à l’état haut : Vohmin-Vihmin
– à l’état bas : Vilmax-Volmax
Cela nous donne l’amplitude maximale admissible d’un parasite négatif qui, se superposant à Vohmin ou
positif qui, se superposant à Vihmin, n’entraînera pas de perturbations dans le fonctionnement de l’opéra-
teur logique. L’immunité aux bruits sera d’autant plus grande que les niveaux de sortie sont distincts aux
états hauts et bas et que la zone d’incertitude sera étroite.

41
6.6.3 CONSOMMATION ELECTRIQUE
La consommation électrique est mesurée en mettant toutes les entrées réunies portées à un niveau
logique haut ou bas, suivant l’état dans lequel la sortie est désirée, celle-ci ne débitant pas de courant.
La puissance dissipée par un circuit intégré est spécifiée par le courant Icc, qu’il tire de l’alimentation de
tension Vcc. Le courant qu’ils drainent de l’alimentation varie en fonction des états logiques du circuit.

6.6.4 TEMPS DE REPONSE


On distinguera dans le temps de réponse d’un opérateur logique, deux composantes :
– Le temps de propagation : Propagation delay time : c’est le temps de transfert à travers une porte
logique. Le constructeur distingue deux temps :
– TPHL : Temps de propagation à la croissance du signal de sortie.
– TPLH : Temps de propagation à la décroissance du signal de sortie.
– Tpd : moyenne des deux temps précédent : T pd = (T P HL+T 2
P LH)

Remarque : Les temps de propagation déterminent la fréquence maximale d’utilisation de l’opérateur


logique : f = (T P HL+T
1
P LH)

6.6.5 FACTEUR DE MERITE


On appelle facteur de mérite, le produit de la puissance statique par le temps de propagation. Il s’ex-
prime en Joules. F=P*Tpd.
En général lorsque le temps de propagation est faible, la consommation électrique est élevée. Les tech-
nologies les plus performantes sont donc celles qui ont le plus faible facteur de mérite.

42
Chapitre 7

La logique programmée

7.1 Comparaison des logiques câblée et programmée

L ’L’objectif étant d’automatiser un processus.


On rappelle qu’un processus est une suite d’actions et de tests organisés dans le temps et aboutissant à
une tâche.

7.1.1 La logique câblée


On dispose de circuits intégrés tels que
– Les opérateurs logiques. – Les sélecteurs
– Les opérateurs arithmétiques. – Les compteurs
– Les multiplexeurs et démultiplexeurs. – Les registres. . .
Le travail du concepteur se découpe en 2 phases qui sont
– Phase 1 : Etablir l’organigramme imposé par le processus (cahier des charges).
– Phase 2 : Organiser les circuits logiques de manière à réaliser le processus.
Cette méthode de travail est maintenant presque abandonnée dans la conception de système automatique
gérés par des composants électroniques. Elle avait comme inconvénients de ne pas avoir de méthode rigou-
reuse, et de plus, une fois fabriqué, le système est figé.

7.1.2 La logique programmée


Pour utilisée cette logique, on dispose d’un circuit intégré complexe : le microprocesseur.
Le terme microprocesseur provient de petit et processus on l’écrit souvent sous l’abréviation : µP.
Ce microprocesseur est capable d’effectuer, les unes après les autres, toutes (ou presque) les fonctions
étudiées lors des chapitres précédents et citées en logique câblée. Cela a pour conséquence de signaler au
microprocesseur la fonction à réaliser (programmation). Pour cela, on “envoie” au microprocesseur un mot
binaire codé.

43
F IG . 7.1 – Principe d’un système automatique

Le travail du concepteur se découpe en 3 phases qui sont


– Phase 1 : Etablir l’organigramme imposé par le processus (cahier des charges).
– Phase 2 : Traduire l’organigramme en une suite d’instructions appelées programme.
– Phase 3 : Organiser le système à microprocesseur, c’est-à-dire faire le choix du microprocesseur et
des circuits auxiliaires graviatnt autour.
Intérêts du système à microprocesseur
Pour un processus simple on se sert de la logique câblée, Pour un processus plus complexe, on se sert
de la logique programmée.
– Souplesse : tout système quel qu’il soit, doit un jour ou l’autre être “retouché”, en raison des pro-
blèmes oubliés à la conception, de l’évolution du cahier des charges etc. . .
– Facilité de mise au point
Logique câblée, pas de méthode rigoureuse Logique programmée, programmes de mise à niveau.
– Consommation plus faible.
– Durée de l’étude : dépend de la complexité du processus et de la “puissance” du microprocesseur.
Description d’un système à microprocesseur :

F IG . 7.2 – Principe d’un système à microprocesseur

Structure d’un système à microprocesseur, mais il faut savoir qu’elle peut évoluer en fonction du cahier
des charges.
Pour gérer ce processus, le système à microprocesseur doit avoir les éléments suivants :
La liste des instructions à effectuer, elles sont mises en mémoire, un élément capable d’effectuer ces
instructions, le microprocesseur, des circuits spécialisés pour les Entrées/Sorties, les interfaces, il faut
aussi des liaisons électriques entre ces trois éléments, les bus et un élément cadençant le tout, l’horloge
(quartz)1 .
1 Le quartz est à l’origine une pierre appartenant à la famille des cristaux qi a la propriété de vibrer à une certaine fréquence en

fonction de sa taille et de sa géométrie, lorsque l’on soumet à une différence de potentiels. Au début des ordinateurs, on utilisait cette
pierre, mais elle a vite été remplacée par des quartz synthétiques. La fréquence des microprocesseurs ayant beaucoup augmenté, un

44
D’où le synoptique d’un système à microprocesseur

F IG . 7.3 – Le système minimum

Le microprocesseur effectue les instructions par étape.


– 1ère étape : Chercher l’instruction en mémoire.
– 2ème étape : Identifier le type d’instruction.
– 3ème étape : Exécuter l’instruction.
– 4ème étape : Stocker le résultat en mémoire.
D’où la constitution interne du microprocesseur.

F IG . 7.4 – Le système minimum

Les étapes 1 et 4 sont effectuées sous le contrôle d’un organe interne du microprocesseur appelée :
Unité de commande.
Les étapes 2 et 3 sont effectuées sous le contrôle d’un organe interne du microprocesseur appelée :
Unité arithmétique et Logique (U.A.L)2 .
Donc entre les mémoires et le microprocesseur, il y a circulation de deux types d’informations :
– Les instructions.
– Les données.
Conséquence de ces deux types d’informations, il faut deux types de mémoires. 3
– Les mémoires de données dans lesquelles on va chercher les données et stocker les résultats, ce sont
les mémoires à lecture et écriture. Elles sont appelées R.A.M. Random Acces Memory : Mémoire
à accès aléatoire.
quartz seul ne suffisait plus. On lui a ajouté une bouble à verrouillage de phase BVP.
2 Nous avons eu l’occasion de l’étudier dans le cours intitulé : Logique Combinatoire
3 Les termes qui vont être employés ci-dessous sont obsolètes, mais le principe existe toujours. La mémoire ROM contient le BIOS

de l’Ordinateur et est par définition à lecture seule. Alors que la mémoire RAM c’est les barettes que vous installés sur la carte mère
et qui reçoit des données temporaires.

45
– Les mémoires de programmes dans lesquelles on va chercher les instructions à exécuter, ce sont
les mémoires à lecture seule. Elles sont appelées R.O.M. Read Only Memory : Mémoire à lecture
seule.
De plus il faut que le système à µP puisse dialoguer avec le “monde” extérieur. C’est le rôle des interfaces,
il en existe deux types :
– Les interfaces parallèles : P.I.A (interface adaptateur pour périphérique parallèle).
– Les interfaces séries : A.C.I.A (interface adaptateur pour périphérique asynchrone). 4
Chaque élément, est commandé par le microprocesseur, est adressé par le microprocesseur, envoie ou reçoit
des informations, des données ou des résultats du ou au microprocesseur, il existe donc trois types de bus.
– Bus d’adresses : ensemble de lignes unidirectionnelles qui véhiculent le code d’adresse du micro-
processeur vers les mémoires et les interfaces.
– Bus de données : ensemble de lignes bidirectionnelles qui véhiculent les données entre le micro-
processeur et les mémoires ou les interfaces.
– Bus de commandes : ensemble de lignes bidirectionnelles utilisées pour synchroniser les actions
du microprocesseur et “isoler” les différents éléments du système à microprocesseur.
D’où le système minimum

F IG . 7.5 – Le système minimum développé

7.2 Programmation

L E microprocesseur doit recevoir des instructions pour pouvoir “travailler”. La suite ordonnée de ces
instructions à la résolution d’un problème s’appelle le programme. Le répertoire d’instructions d’un
microprocesseur définit les opérations individuelles que celui-ci peut effectuer et se nomme le jeu d’ins-
tructions Ces séquences sont dans un premier temps traduites par un organigramme.
Organigramme : c’est la représentation par un schéma séquentiel d’un processus.
Symboles :

F IG . 7.6 – Organigramme de programme

4 Ces termes PIA et ACIA sont surtout utilisés chez le fabricant de microprocesseur Motorola .
R

46
*Traduction de l’organigramme en un programme* : un organigramme est traduit en un programme
écrit dans un langage appelé langage de programmation. L’objectif est d’éliminer les erreurs de syntaxe,
en ne laissant au programmeur que la responsabilité des erreurs spécifiques à l’application. Le travail du
programmeur est d’autant plus simple que le langage est facile à lire.
– Langage d’assemblage : il est plus proche du langage humain, chaque instruction est remplacée
par un code mnémonique (aide mémoire). Un programme de conversion, l’assembleur traduit le
programme obtenu en un programme directement compréhensible par le microprocesseur (langage
machine). Chaque µP possède ses propres codes instruction.
– Langage évolué : il est indépendant du type de microprocesseur utilisé et est très proche du langage
humain. Des programmes de traduction (compilateurs et interpréteurs) traduisent les programmes
écrits en langages évolués, en programmes utilisant le langage machine.
Exemples : Basic, Pascal, C et Cobol
En règle générale, dans l’écriture d’un programme, on distingue
– Le programme source écrit par le programmeur.
– Le programme objet qui est la version traduite et directement exécutable par le microprocesseur.
– Le programme exécutable ou binaire qui dépend du microprocesseur et du système d’exploitation. 5
Le programme source : chaque ligne est divisée en 4 parties appelées champs.
– Champ Label ou Etiquette : contient un code personnel suggestif permettant un repérage aisé de la
position d’une instruction.
– Champ Code Opération : contient un code mnémonique de l’instruction à effectuer (op code).
– Champ Opérande : contient l’élément alphanumérique sur lequel porte l’instruction.
– Champ Commentaire : contient les informations facilitant la compréhension de l’instruction et/ou
du programme, mais n’ayant aucune incidence sur le programme objet généré par la suite.
Exemple de programme source :

Label Code Opération Opérande Commentaires


.CODE
MOV AX, @DATA Initialise le segment de données
MOV DS, AX
TEST DEC AX AX=AX-1
JNE TEST AX=0’
etc. . .

Exemple de programme objet


Chaque ligne est divisée en deux parties appelées champs.
– Champ Adresse : contient l’adresse mémoire du début de la ligne d’instruction, attribuée par l’as-
sembleur à partir du programme source.
– Champ Code Objet : contient le code machine, exprimé en hexadécimal, de l’instruction après
conversion par l’assembleur (Op Code) et Code opérande.

Adresse Code Objet


$8000 86 0F
$8002 4A
$8003 26 12 83
$8006 7E 02
$8008 3F

5 Nous verrons ce principe lors du second trimestre. Vous le verrez aussi avec l’enseignant de la matière Système D’exploitation.

47
Chapitre 8

Le microprocesseur

L Emicroprocesseur est un circuit intégré à une puce, qui dispose des fonctions d’un processeur com-
plet. C’est la société Intel qui, le 15 novembre 1971, lança le premier microprocesseur. Ted Hoff, le
créateur, avait réussi à simplifier le principe du calculateur. La puce de Hoff était en quelque sorte un “pro-
cesseur universel”. Le premier microprocesseur, le 4004, contenait 2 300 transistors et exécutait 60 000
opérations à la seconde. Il en existe actuellement1 , une très grande variété. On peut les classer en famille,
chaque famille représente une architecture. Leurs caractéristiques sont nombreuses, mais la principale est
la puissance de calculs, dont l’unité est le Mips (Million of Instruction Per Second) pour les microproces-
seurs simples et le Mflops (Million of Floating point Opérations Per Second) pour les microprocesseurs
plus complexes.

8.1 La composition Interne

O N peut voir le microprocesseur de différentes façons.


– Composition physique : Le microprocesseur, n’est en fin de compte qu’un “vulgaire” morceau de
silicium2 , dont la taille va de quelques mm2 à quelques dizaines de mm2 .
– Composition électrique : Le microprocesseur est constitué électriquement de millions d’interrup-
teurs commandés par des tensions. Ces interrupteurs sont appelés transistors, et leur agencement
forme un ensemble de fonctions logiques élémentaires telles que OU, ET, ADD, SUB ’ .
– Que fait-il : Il doit exécuter un programme, ce programme est constitué d’instructions. Ces instruc-
tions, il doit les connaître, les stocker, les décoder et les exécuter. Il doit “savoir” où se trouve (aller
chercher) la prochaine instruction à exécuter, de plus il doit être “à l’heure”, donc cadencé. Toutes
ces obligations conduisent à la conclusion suivante : un microprocesseur est constitué d’un ensemble
d’entités permettant de faire les opérations citées ci-dessus, d’où sa composition logique.
– Composition logique : Le microprocesseur de base n’est constitué en fait que de deux unités fonc-
tionnellement séparées : l’UAL pour Unité Arithmétique et Logique et l’UC pour Unité de Com-
mande ou de contrôle.
– L’UC : elle dirige le fonctionnement du microprocesseur, ses circuits génèrent les signaux né-
cessaires à l’exécution de chaque instruction d’un programme. C’est un ensemble de dispositifs
permettant la coordination du microprocesseur afin de lui faire exécuter la suite d’opérations spé-
cifiées dans les instructions d’un programme. Cette unité de commande est constituée de :
– Un Compteur Ordinal, qui est un registre contenant l’adresse de la case mémoire où est sto-
ckée l’instruction suivante à chercher.
– Un Registre d’instructions : il contient le code opératoire de la prochaine instruction à exécu-
ter.
1 Si vous voulez connaitre tous les types de microprocessseur, je vous invite à aller visiter le site suivant : http://www.

cpureview.html qui contient beaucoup d’informations sur les microprocesseurs et est souvent mis à jour.
2 Le silicum est une matériau qui fait partie de la famille des cristaux. Il est issu du sable que l’on trouve sur les plages, duqel on

extrait la silice.

48
– Un Décodeur de code opératoire, qui détermine quelle opération doit être effectuée parmi le
jeu d’instructions du microprocesseur.
– Un séquenceur, il génère les signaux de commandes pour piloter les autres entités du micro-
processeur, et synchroniser ce dernier avec la mémoire.
– L’UAL : elle a pour fonction d’effectuer les opérations arithmétiques telles que l’addition, la
soustraction et les opérations logiques telles que les fonctions OU, ET, décalage et rotation.

F IG . 8.1 – La composition logique

8.2 Le jeu d’instructions

C ’est l’ensemble des instructions de base câblées3 sur la puce, donc que le microprocesseur peut exécu-
ter. Chaque famille de microprocesseurs possède son propre jeu d’instructions. Ce jeu d’instructions
est tributaire d’exigences telles que
– La simplicité.
– La rapidité.
– L’universalité.
– L’occupation sur la pastille de silicium.
– Le “confort” du programmeur.
Le nombre d’instructions composant ce jeu est compris entre 50 et 500 instructions selon que l’on ai à
faire à des microprocesseurs RISC (Reduced Instruction Set Computer) ou des microprocesseurs CISC
(Complex Instruction Set Computer)4 .
Les instructions peuvent être classées en six catégories5 .
– Transfert de données, entre le µP et la mémoire, MOVE, LOAD, STORE,. . .
– Opérations arithmétiques, ADD, SUB,. . .
– Opérations logiques OR, AND,. . .
– Contrôles des séquences, sauts conditionnels ou inconditionnels, . . .
– Entrées / Sorties, entre le µP et les périphériques,. . .
– Divers, décalages, incrémentation,. . .

8.3 Les registres

C E sont des mémoires internes au microprocesseur, leur temps d’accès est en général inversement pro-
portionnel à la fréquence de l’horloge. Leur nombre et leur type varient énormément d’une architec-
ture à l’autre. En règle générale, plus un microprocesseur a de registres et plus il est performant, la quantité
varie de 10 à plus de 100. La taille d’un registre se mesure en bit (Binary Information), et lorsque l’on
parle d’un microprocesseur 32 bits, cela veut dire qu’il travaille (exécute les instructions de base) avec des
registres de taille 32 bits6 . Les registres peuvent être classés en six catégories.
3 Le terme cablé provient du faite que l’on parle ce cablâge de composants électronique entre eux.
4 Pour de plus amples renseignements sur ces deux termes, je vous invite à consulter le chapitre intitulé : Les nouvelles architec-
tures.
5 Nous verrons dans la seconde partie de ce cours ces instructions, plus en détails.
6 Nous verrons dans la seconde partie, le principe des instructions de type SIMD qui manipulent des registres de 64 et 128 bits.

49
– Registres généraux, *ils contiennent les données et résultats des opérations réalisées par le micro-
processeur, on les appelle aussi des accumulateurs.
– Registres spécifiques : Compteur Ordinal (voir ci-dessus),
– Registre d’instructions (voir ci-dessus),
– Registre d’état, (PSW : Program Status Word), appelé aussi le CCR Registre Code Condition, il
contient différents bits appelés drapeaux (flags) indiquant le résultat d’une condition. Exemple le bit
Z indique si le résultat de l’opération précédente est nul. Ces bits sont testés et permettent de faire
des sauts dans les programmes.
– Registre pointeur de pile, il permet de gérer une pile (FIFO ou LIFO) dans la mémoire centrale.
– Registres de base, ils sont utilisés comme indice pour calculer des adresses effectives. Ils contiennent
l’adresse de base, on leur rajoute l’adresse du registre d’instruction et on trouve l’adresse effective.
– Registres d’index ou d’indice, ils permettent de manipuler des tableaux de données à plusieurs di-
mensions. Pour connaître l’adresse effective, on somme l’adresse de base, avec l’adresse du registre
d’instruction et du registre d’index. Ils sont en général incrémentés ou décrémentés automatiquement
après chaque utilisation.
– Registres de deboggage, ils permettent de faire la mise au point des programmes 7.

8.4 Le Langage

L E langage de programmation d’un microprocesseur est appelé le langage machine. Il n’est composé
que de 1 et de 0, donc du binaire. Au début de l’informatique, les programmeurs programmaient en
langage machine, ce qui était très pénible, car il fallait aligner des séquences de bits, dont la signification
n’avait rien d’évidente pour l’Homme. Pour comprendre cette séquence de bits, il fallait compulser une
table décrivant toutes les opérations possibles et leur représentation binaire. Par exemple pour additionner
deux nombres, on écrivait 10001010 01011000 11010010 8. Les 8 premiers bits représentent le codage de
l’instruction que l’on nomme le code opératoire, les 2 paquets de 8 bits suivants, représentent les deux
nombres à additionner, que l’on nomme opérandes. Par la suite, on a donné des noms aux opérations, que
l’on a appelé des codes mnémoniques, exemple : ADD, DIV, OR etc. . . De même pour les données et les
résultats, on a pu les mettre sous une forme symbolique. Pour convertir ce nouveau langage en langage
machine, on utilise un programme que l’on nomme assembleur, donc ce nouveau langage s’appelle le
langage d’assemblage. Ce langage est toujours utilisé et le sera toujours, car il est le seul qui puisse exploiter
toutes les ressources du microprocesseur. Tous les noyaux (une certaine partie) des systèmes d’exploitation
sont écrits en langage machine.

Langage d’assemblage =⇒ Assembleur=⇒ Langage machine

8.5 Fonctionnement

L ’UC va chercher en mémoire les instructions et les données, en envoyant l’adresse sur le bus d’adessess
ainsi qu’une commande de lecture ou d’écriture sur le bus de commande. Pour le cas de la lecture,
l’instruction codée en binaire est transférée vers l’UC, où son décodage permet de déterminer l’opération
demandée ainsi que la quantité de données (opérandes) nécessaires. A partir de cela, il y a génération des
signaux utiles à l’UAL pour déclencher l’exécution de l’instruction. Ensuite, l’UC va chercher les données
et les transfère directement à l’UAL.
L’UAL exécute l’instruction et transmet le résultat à l’UC, qui va aller le stocker en mémoire. Le cycle
se répète ainsi indéfiniment, un microprocesseur ne s’arrête jamais de "travailler ".
L’exécution d’une instruction9
1. Chargement de la prochaine instruction à exécuter depuis la mémoire jusque dans le registre d’ins-
truction.
7 Nous verrons leur utilisations lors de la seconde partie du cours.
8 Cen’est qu’un exemple, le codage est pris au hasard. . .
9 Nous verrons lors du chapitre intitulé Les nouvelles architectures, que le découpage de l’éxécution d’une instruction en blocs

permet de réaliser l’exécution de ces blocs, non plus en série mais en parallèle.

50
2. Modification du compteur ordinal pour qu’il pointe sur l’instruction suivante.
3. Décodage de l’instruction que l’on vient de charger.
4. Localisation dans la mémoire des éventuelles données utilisées par l’instruction.
5. Chargement des données si nécessaire dans les registres internes de l’UAL.
6. Exécution de l’instruction.
7. Stockage du résultat dans la mémoire.
8. Retour à l’étape N◦ 1.
Les étapes 1, 2, 3, 4 et 7 sont réalisées par l’UC et les autres par l’UAL.
****

8.6 La composition Externe

P O urcommuniquer avec le monde externe, le microprocesseur possède tout un ensemble de broches.


Ces broches peuvent être regroupées en trois groupes que l’on nomme des bus. Il existe logiquement,
mais pas obligatoirement physiquement, trois sortes de bus :
– Le bus de données sur lequel transitent les données et les résultats entre le microprocesseur et les
composants externes.
– Le bus d’adresses sur lequel le microprocesseur envoie les adresses des cases mémoires qu’il désire
lire ou bien dans lesquelles il désire écrire.
– Le bus de commandes sur lequel transite tout un ensemble de signaux permettant de gérer le dialogue
entre le microprocesseur et les autres composants. Exemple la ligne RW (Read Write) 10 , permet
d’indiquer à un boîtier mémoire si le microprocesseur va lire une donnée ou écrire un résultat.
Remarque : sur certains microprocesseurs, le bus de données et le bus d’adresses ont physiquement, les
mêmes broches. On parle alors de bus multiplexé.

8.7 Fonctionnement

I M aginons lescénario suivant, le microprocesseur va devoir effectuer l’opération suivante :


ADD MémoireX, 32, c’est à dire additionner le contenu de la MémoireX avec la valeur 32 et ranger le
tout dans la case MémoireX, et il ne "sait " pas encore.
Quelles sont les étapes de ce travail
1. Le microprocesseur va chercher en mémoire le code opératoire de l’instruction à exécuter, donc il
faut qu’il lise le contenu d’une case mémoire. Pour cela, il met sur son bus d’adresse, le code binaire
de l’adresse de la case mémoire contenant le code opératoire de l’instruction à exécuter. Il positionne
la ligne R/W à 1, pour signaler à la mémoire qu’il désire faire une opération de lecture.
2. Cette instruction est récupérée par l’UC qui la stocke dans le Registre d’Instruction.
3. L’UC décode cette instruction et constate qu’elle a besoin de deux opérandes, MémoireX et 32.
4. Il faut aller chercher le contenu de MémoireX en mémoire, pour cela le microprocesseur refait la
même étape que pour le code opératoire de l’instruction à exécuter.
5. Le contenu de cette mémoire est stocké dans un des registres généraux.
6. La valeur immédiate 32 est directement codée par l’UAL.
7. L’UC envoie le code (décodé) de l’instruction à exécuter ainsi que le contenu de MémoireX à l’UAL.
8. L’UAL exécute l’instruction, et envoie le résultat à l’UC.
9. Le µP va stocker ce résultat, pour cela, il met sur son bus d’adresse, le code binaire de l’adresse de la
case MémoireX, Il positionne la ligne RW (Read Write) à 0, pour signaler à la mémoire qu’il désire
faire une opération d’écriture, le résultat est sauvegarder dans la case mémoire.
10 RW (Read Write) n’est qu’un exemple pour un type de microprocesseur. Sur certains microprocesseurs il existe deux lignes

physiques, une pour R et une pour W.

51
On peut passer à l’instruction suivante.
Remarque : tout cela n’a duré que quelques milliardièmes de secondes donc quelques nanosecondes 11 !

11 Dans une seconde il y a autant de nanosecondes que de secondes en 33 ans.


Faites le calcul : 60*60*24*365,5*33 = 1 042 113 600 ce qui est proche du milliard. . .

52
Chapitre 9

Les Mémoires

9.1 Introduction

L Es mémoires sont des structures qui permettent de stocker une information sous forme numérique ou
analogique, puis de la restituer à la demande. Il existe une grande variété de mémoires, depuis la
bascule R-S jusqu’aux mémoires de masse : disques durs et bandes magnétiques etc.. Dans ce cours, nous
allons nous intéresser aux mémoires intégrées à semi-conducteurs, capable de stocker et de restituer une
information sous forme numérique ! .

9.2 Définition

U Ne mémoire est constituée de cases, dont chacune enregistre un bit (0 ou 1). Si ces cases sont directe-
ment adressables, on dit que l’on a un accès aléatoire (disque), sinon on parle de mémoires sérielles
ou accès série (bande).
Le diagramme ci-dessous donne un aperçu des différents types de mémoires au silicium.

F IG . 9.1 – Les différentes mémoires au silicium

9.3 Les Mémoires à Lecture seule

L Les informations sont permanentes et l’utilisateur ne peut que les lires. On trouve dans cette catégorie :
– R.O.M. : Read Only Memory (mémoire à lecture seule) appelée également mémoire morte (figée),
elle est programmée une fois pour toutes par le fabricant.
– P.R.O.M. : Programmable Read Only Memory, mémoire programmable une fois par l’utilisateur

53
– E.P.R.O.M. : Programmable Read Only Memory (ou REPROM : Reprogrammable Read Only Me-
mory) mémoire à lecture seule reprogrammable plusieurs fois par l’utilisateur après effacement sous
un rayonnement ultra violet.
– E.A.R.O.M. : Electrically Alterable Read Only Memory (ou EEPROM : Electrically Erasable PROM)
mémoire à lecture seule reprogrammable plusieurs fois par l’utilisateur mais effaçable électriquement
Ces mémoires conservent les informations stockées même après coupure de l’alimentation. On trouve
également dans cette catégorie, les réseaux logiques programmables qui permettent de réaliser des combi-
naisons logiques à partir de variables d’entrée : PAL, GAL, FPGA etc...

9.4 Les mémoires à lecture-Ecriture

E Lles ne peuvent conserver l’information que temporairement, si elles sont alimentées en énergie élec-
trique, dés la coupure de l’alimentation, les informations sont perdues* !* *R.A.M * : Random Acces
Memory (mémoire à accès aléatoire), elles sont aussi appelées mémoires vives. Selon la technologie de
fabrication utilisée, on distingue 2 grandes familles :
– RAM Statique : l’information est maintenue tant que l’alimentation est présente.
– RAM Dynamique : elle nécessite une opération supplémentaire de “rafraîchissement” pour main-
tenir l’information présente.
– M.B.M : Magnétique Buble Memory (mémoire à bulle magnétique), c’est une mémoire de masse
non volatile qui utilise les propriétés des champs magnétiques (plus utilisées).
– RAM gérées séquentiellement
– F.I.F.O. : First In First Out (premier entré premier sorti), c’est une mémoire qui fonctionne en
accès séquentiel, la première information entrée est aussi la première sortie. Elle est utilisée pour
les piles.
– L.I.F.O. : Last In First Out (dernier entré premier sorti), la dernière information entrée est aussi la
dernière sortie. Elle est utilisée dans les calculateurs.1

9.4.1 Les types de mémoires DRAM

L L existe beucoup de types de mémoire dynamique. La technologie évoluant sans cesse, il en apparait
de nouvelles pratiquement tous les ans. Ce paragraphe décrit les caractéristiques de certaines qui sont
encore utilisées ou totalemnt disparues pour les autre. Cela montre l’évolution technologique des mémoires
dynamique.
– La mémoire FPM Fast Page Mode : c’est la plus ancienne (des plus récente. . . , donc en barettes). Il
est nécessaire de la rafraîchir très souvent, et son temps d’accès varie de 60 à 70 ns.
– La mémoire EDO (Extensed Data Out) ou EDO RAM : C’est une version plus récente et plus rapide.
Cette mémoire fonctionne comme la FPM, mais les données sortent plus rapidement, car elle intègre
une petite mémoire cache qui stocke l’adresse de la prochaine cellule à lire ou écrire sans attendre
que la dglnée précédente soit lue.
– La mémoire BEDO Ram (Burst Extensed Data Out Ram) : cousine de l’EDO.
– La mémoire SDRAM (Synchronous DRAM) : Avec ce type de mémoire, il y a synchronisation des
signaux entrées/sorties avec l’horloge du système ce qui accélère les échanges. Son temps d’accès
varie de 5 à 15 ns.
– La mémoire ECC (Error Correction Code) : Mémoire à code de correction d’erreur. Cette mémoire
prend en charge la gestion des erreurs de bits en mémoire vive. Elle se présente sous forme de barettes
Dimm et est utile seulement sur un serveur ou les systèmes qui nécessitent une grande fiabilité des
données et des calculs (systèmes bancaires).
– La mémoire RamBus, elle fonctionne à des fréquences de 600 à 800 Mhz (proches de celles des
processeurs), avec un débit de 1.2 Go/s (équivalent à un temps d’accès de 1 ns, qui est déjà la vitesse
du cache interne du processeur).
1 Nous verrons son utilité dans un programme, au second trimestre.

54
9.5 Caractéristiques principales
Elles sont au nombre de quatre.
– 1 : La Capacité : c’est le nombre de bits que la mémoire peut stocker, elle est toujours une puissance
de deux.
Exemples : 1Mbits, 16Mbits, les ram actuelles atteignent 8 Gigabits et les ROM 8 Mégabits
– 2 : L’organisation : une mémoire est prévue pour travailler sur des informations de longueur définie.
On parlera de matrice.
– Octets (Byte) : 8bits,
– Mots (Word) : 16bits,
– Double mots (dubble word) : 32bits
– Quadruple mots : 64bits
– La mémoire pourra être organisée en 8, 16, 32, 64 voir 128 bits
Exemples :
64k*1bit, 8k*8bits et 4k*16bits ont la même capacité.
16M*4bits, 8M*8bits et 64M*1bit ont aussi la même capacité.
Le produit du nombre d’informations par la longueur de cette information donne la capacité de la
mémoire.
– 3 : Les temps
– D’écriture : c’est le temps qui s’écoule entre l’instant où la donnée et l’adresse sont présentées à
la mémoire et le moment ou la donnée est effectivement stockée.
– De lecture : c’est le temps qui s’écoule entre l’instant où l’adresse est présentée à la mémoire et
le moment ou la donnée est disponible en sortie
– D’accès : c’est généralement la moyenne des deux temps précédents.
– De cycle : si une opération de lecture est destructive, il faut réinscrire la donnée. Le temps de cycle
est donc la somme du temps d’accès et du temps de réinscription.
– La consommation : elle est différente au repos (standby) et en fonctionnement, et dépend de la
technologie.
– 4 : Les modèles

F IG . 9.2 – Les différentes modèles de mémoires au silicium

9.6 Le décodage d’adresses

L A fonction décodage d’adresses permet la sélection, dans l’espace mémoire adressable du micropro-
cesseur, d’une adresse matérielle d’une case mémoire.
Exemple : pour un microprocesseur ayant un bus d’adresses de 32 fils, cela va consister à sélectionner
l’adresse matérielle parmi 232 soit 4 294 967 296 adresses.
Dans un système à microprocesseur, la partie réalisant la fonction décodage d’adresses est le décodeur
d’adresses.

55
Les différentes solutions réalisant la fonction décodage d’adresses sont au nombre de 5
Solution mettant en œuvre des opérateurs logiques de base.
Solution mettant en œuvre des décodeurs et des démultiplexeurs.
Solution mettant en œuvre des circuits comparateurs logiques.
Solution mettant en œuvre une mémoire P.R.O.M.
Solution mettant en œuvre un circuit PAL.2

F IG . 9.3 – Le décodage d’adresses

2 Nous étudierons ces principes en TD

56
Chapitre 10

La mémoire cache

10.1 Introduction

V O us avez du remarquer, que dans la vie, plus on élimine de papiers et plus on en entasse (je ne sais pas
pour vous, mais moi je passe mon temps à jeter des articles de presses informatiques). Ceci, vient
du fait que l’être humain a le "défaut" de vouloir tout savoir ou tout connaître (ce qui n’est pas la même
chose). Les premiers concepteurs d’ordinateurs ont vite compris que les programmeurs et utilisateurs de
ces machines auraient besoin d’une quantité toujours croissante de capacité de stockage donc de mémoires.
La philosophie suivante aurait pu être adoptée : ils en veulent, "donnez" en.
Les programmes n’accèdent pas à tout le code et toutes les données en même temps et de la même
manière. Il n’est donc pas nécessaires de disposer d’une grande quantité de mémoire pour exécuter des
programmes de tailles importantes. L’idée simpliste serait de charger des blocs de mémoires les uns derrière
les autres au fur et à mesure des besoins et du temps. Le temps, le voilà le fautif. Revenons en arrière
d’une trentaine d’années. A cette bonne vieille époque, les microprocesseurs travaillaient à des fréquences
inférieures à la dizaine de mégahertz, et les mémoires avaient des temps d’accès compris entre 150 et
120 ns. Quand le microprocesseur allait chercher une donnée en mémoire, cette dernière lui paraissait
disponible instantanément. La technologie aidant, le temps d’accès des mémoires classiques (DRAM) a
diminué, et atteint aujourd’hui la nanoseconde. Les microprocesseurs ont aussi progressé en vitesse, et leur
fréquence de travail a été multipliée par 200 voir 300.
Conclusion, avec des mémoires classiques, quand le microprocesseur désire une donnée (ce qui est très
courant), il passe la majeur partie de son temps à l’attendre et la performance des machines est diminuée.

10.2 Définition

U Une place sûre pour dissimuler ou ranger des choses


Le turbo de la mémoire
La mémoire classique est constituée de DRAM, qui a un temps d’accès de 60 ns. La mémoire cache est
constituée de SRAM, qui a un temps d’accès de 10 à 5ns. On trouve de la mémoire cache à l’intérieur du
microprocesseur, avec un temps d’accès inversement proportionnel à la fréquence de travail de ce dernier.
On constate ainsi que la mémoire cache est une mémoire plus rapide que la mémoire classique.

10.3 La hiérarchie mémoire

S I on parle de hiérarchie mémoire, en les classant selon les critères prix et temps d’accès, en commençant
par le niveau de hiérarchie le plus haut, on aurait :
– La mémoire cache de Niveau 1 (la plus chère, la plus rapide et se trouvant à l’intérieur du micropro-
cesseur).
– La mémoire cache de Niveau 2 (SRAM).

57
– La RAM classique (DRAM).
– Le disque dur.
– La bande magnétique (la moins chère et la plus lente).
L’objectif de ces 5 niveaux, est de fournir à l’utilisateur un système mémoire qui soit presque aussi bon
marché que la bande magnétique, et ayant le temps d’accès de la mémoire cache de niveau 1

F IG . 10.1 – Le décodage d’adresses

La méthode pour obtenir cet objectif


Les niveaux de hiérarchie étant imbriqués, une donnée se trouvant dans le niveau supérieur (la mémoire
cache de Niveau 1), l’est obligatoirement dans tous les autres niveaux inférieurs. Si tout se passe comme
dans “Le meilleur des mondes”, le microprocesseur, ne s’adresse qu’à la mémoire de niveau le plus élevé.
Par contre, comme tout n’est pas parfait (même dans le monde des ordinateurs), lire une donnée en mémoire
peut devenir un vrai “calvaire” pour le microprocesseur. Si le microprocesseur ne trouve pas sa donnée dans
le premier cache, il va essayer de la trouver dans le second cache, s’il ne la trouve toujours pas, il va la
chercher dans la RAM classique, et ainsi de suite. Pour éviter cette situation, fort peu confortable pour le
microprocesseur, le cache se doit de mettre à la disposition du microprocesseur, les bonnes informations
au bon moment selon un dispositif de “flux tendu”.
L’organigramme est le suivant

58
F IG . 10.2 – L’organigramme de la recherche d’une donnée en mémoire

Mais que se passe-t-il au juste ’


On ne va pas stocker des données une par une dans le cache, mais tout un bloc. Par définition, un bloc
est l’unité minimale d’informations qui peut être présente dans le cache.
Pour répondre à cette question, il faut s’en poser quatre autres.

10.3.1 Première question


L’emplacement d’un bloc dans le cache
Il y a trois façons de placer un bloc dans le cache, on parle d’architecture de cache.
– Si chaque bloc n’a qu’une place disponible dans le cache, celui-ci est appelé ”à correspondance
directe” ou ”Direct Mapped”. La correspondance est généralement la suivante

(numéro de bloc) mod (nombre de blocs dans le cache)

– Si un bloc peut être placé n’importe où dans le cache, celui ci est appelé “totalement associatif” ou
“Fully Association”.
– Si un bloc peut être placé dans un ensemble restreint de places dans le cache, le cache est dit “as-
sociatif par ensemble de blocs” ou “Set Associative”. Un ensemble étant un groupe de blocs dans
le cache. Un bloc est affecté à un ensemble, puis placé n’importe où dans ce dernier. L’ensemble est
habituellement choisi par sélection de bits ; c’est-à-dire :

(numéro de bloc) mod (nombre d’ensembles dans le cache)

C’est cette dernière solution qui semble être la plus employée dans la conception des ordinateurs

10.3.2 Deuxième question


L’adressage des blocs dans le cache

59
Chaque bloc du cache possède une étiquette adresse contenant son numéro de bloc présent. Cette éti-
quette est examinée pour voir si elle correspond au numéro de bloc provenant de l’UC du microprocesseur.
Pour un gain de rapidité, toutes les étiquettes sont examinées en parallèle.
Il faut savoir si un bloc à une information non valide. Pour cela, on rajoute un bit valide à l’étiquette
pour indiquer si l’entrée correspondante contient ou non une adresse valide. Si le bit n’est pas positionné,
il ne peut y avoir un accès valide sur cette adresse.

10.3.3 Troisième question


Le remplacement du bloc
Quand un échec intervient, le contrôleur de cache doit choisir un bloc à remplacer par la donnée désirée.
Si l’architecture choisie pour le cache est du type correspondance directe, les décisions matérielles sont
simplifiées, étant donné qu’il n’y a pas de choix à faire. Un seul bloc est testé pour déterminer s’il y a
succès, et seul ce bloc peut être remplacé.
Avec les deux autres architectures, il faut faire un choix parmi plusieurs blocs lors d’un échec. Il existe
2 stratégies employées pour choisir le bloc à remplacer
1. Le hasard : Pour répartir l’allocation uniformément, les blocs candidats sont choisis de façon aléa-
toire.
2. Le plus ancien (LRU Least Recently Used) : pour réduire la probabilité de rejeter des informations
qui seront nécessaires bientôt, les accès aux blocs sont enregistrés. Bien sur, le bloc remplacé est
celui qui n’a pas été utilisé depuis longtemps.
La stratégie du hasard est facile à réaliser par matériel. Par contre, le coût du LRU croît avec le nombre de
blocs à observer. Le tableau ci-dessous, montre la différence des taux d’échec entre les deux stratégies.

Associativité 2 blocs/ensemble 4 blocs/ensemble 8 blocs/ensemble


Taille LRU Hasard LRU Hasard LRU Hasard
16 Ko 5,18% 5,69% 4,67% 5,29% 4,39% 4,96%
64 Ko 1,88% 2,01% 1,54% 1,66% 1,39% 1,53%
256 Ko 1,15% 1,17% 1,13% 1,13% 1,12% 1,12%

Remarque : la stratégie “premier entré premier sorti” (FIFO), n’est plus utilisée et donnait des taux
d’échecs avoisinant les 10%

10.3.4 Quatrième question


L’écriture dans le cache
Les lectures dominent les accès cache. Tous les accès instructions sont en lecture et la plupart des
instructions n’écrivent pas en mémoire, on peut considérer que 75% des accès sont en lecture et bien sur
25% en écriture. Les concepteurs ont donc optimisé le cache pour les lectures, et le microprocesseur attend
que les lectures soient terminées. En revanche, il n’a pas besoin d’attendre la fin des écritures pour passer
à la suite du programme. Le bloc est ainsi lu, pendant que l’étiquette est lue et comparée. La lecture du
bloc commence dés que son numéro est disponible. Si la lecture réussit, tout va pour le mieux et la partie
nécessaire du bloc est passée à l’UC immédiatement. Si c’est un échec, il n’y a aucun bénéfice, aucune
perte, et il suffit simplement d’ignorer la valeur lue.
Pour l’écriture, il en va tout autrement. La modification d’un bloc ne peut pas commencer avant que
l’étiquette soit examinée. De plus la lecture peut accéder à plus d’octets que nécessaires, mais en écriture
le microprocesseur spécifie la taille de la donnée à écrire (de 1 à 8 octets).
Il existe 2 façons d’écrire dans le cache
1. L’écriture simultanée (ou rangement simultané ou Write through) : l’information est écrite à la fois
dans le bloc du cache et dans le bloc de la mémoire classique.
2. La réécriture (ou recopie, rangement ou Write back) : l’information est écrite uniquement dans le
bloc du cache. Le bloc modifié est recopié en mémoire classique uniquement quand il est remplacé.

60
Le Write through a tendance à disparaître, en effet, même si on ne fait que lire une donnée dans un bloc,
il recopie ce bloc en mémoire classique et mobilise ainsi le bus mémoire pour mettre à jour cette mémoire
classique, ce qui restreint les possibilités de Direct Acces Memory DMA.
Le Write back, permet une sélection des mises à jour de la mémoire classique, le contenu du cache
n’est reporté que si une donnée a effectivement été modifiée par le microprocesseur ou si un bloc ayant
seulement été lu par le microprocesseur est remplacé.

10.4 Conclusion

E N fait, on utilise le cache comme une image de la mémoire classique. Quand il accède aux données,
le microprocesseur croît s’adresser à la mémoire classique alors qu’il s’adresse au cache. A charge
ensuite au contrôleur de cache de recopier les données dans la mémoire classique et le tour est joué. Les
diverses architectures existantes consistent à créer différents systèmes de représentation basés directement
sur les adresses mémoires ou sur les données.
Reste que l’objectif du constructeur est toujours d’optimiser le déroulement tant des phases de lecture
que d’écriture dans le but d’obtenir le cache le plus efficace possible.

10.5 Post Scriptum

N OS ordinateurs sont basés sur l’architecture de Von Neumann, cela signifie que les instructions et
les données, donc les opérateurs et les opérandes sont stockés dans la même mémoire. Ainsi le
microprocesseur doit accéder deux fois à la mémoire, une pour l’instruction et une pour la donnée. Un
système alternatif, que l’on appelle modèle Harvard, consiste à séparer les espaces mémoire : un pour les
données et un pour les instructions. De cette façon, le chargement simultané des deux, améliore la vitesse
des traitements.
Actuellement, les concepteurs ont tendance à utiliser les deux architectures, celle de Von Neumann
pour les cartes mères et celle de Harvard pour le microprocesseur, pour fabriquer ces drôles de machines
dans un monde de femmes et d’hommes.

61
Chapitre 11

La gestion des entrées sorties

11.1 Définition

L A gestion des E/S consiste en la gestion du transfert d’information entre le couple unité centrale micro-
processeur ⇔ mémoire et l’extérieur soit les unités périphériques locales ou distante. Dans un système
d’exploitation, cette fonction est réalisée par un ensemble de services appelé gestionnaire d’entrée-sortie.

11.2 Organisation générale

L ’ ÉVOLUTIONL’évolution des ordinateurs a conduit à accroître l’autonomie des organes d’entrées-


sorties et à leur confier des fonctions de plus en plus complexes d’enchaînement et de commande,
le microprocesseur ne gardant que l’initiative du lancement et du contrôle des opérations. Il existe plu-
sieurs organisations ou branchement des périphériques au microprocesseur.
On peut voir sur la figure ci-dessus, trois exemples d’organisations.
Organisation 1 : les périphériques sont reliés au couple microprocesseur-mémoire par l’intermédiaire
de coupleurs.

F IG . 11.1 – Organisation E/S 1

Organisation 2 : les périphériques sont reliés au couple microprocesseur-mémoire par l’intermédiaire


DMA puis les coupleurs.

62
F IG . 11.2 – Organisation E/S 2

Organisation 3 : on a à faire à un système multi-processeurs et les périphériques sont reliés à l’ensemble


microprocesseurs-mémoire par l’intermédiaire de canaux et de coupleurs.

F IG . 11.3 – Organisation E/S 3

On peut aussi remarquer que qu’il existe une multiplicité des voies d’accès ce qui diminue le risque
d’indisponibilité par suite de la saturation ou de la défaillance d’un canal ou d’un coupleur.

11.3 Les périphériques

C sont des dispositifs servant en premier lieu à l’entrée et à la sortie de données. Ils sont sont attachés à
E
des coupleurs ou contrôleurs. Périphériques et coupleurs définissent des interfaces qui comprennent
un ensemble de fonctions (entrée, sortie, siganux de commande et d’incident) et une voie de communication
servant au tranfert de l’information.

11.4 Les catégories de périphériques

I L existe deux grandes catégories de périphériques, les périphériques blocs et les périphériques caractères.

63
– Les périphériques caractères : Ils acceptent les données sans se soucier d’une quelconque structure.
Ils envoient ou reçoivent les données octets par octets, sans qu’on les contactée en paquets. Parmi les
périphériques caractères, on peut citer : le clavier, la souris, les imprimantes, les terminaux etc... Les
données sont transmises les unes derrière les autres, on parle alors d’accès séquentiel.
– Les périphériques blocs : Ils acceptent les données par blocs de taille fixe, chaque bloc ayant une
adresse propre. La taille des blocs va généralement de 128 octets à plusieurs kilo. Le grand avantage
par rapport aux périphériques caractères est qu’il est possible d’aller lire ou écrire un bloc à tout
moment, on parle alors d’accès aléatoire.

11.5 Le coupleur ou contrôleur de périphérique

C E n’est pas le microprocesseur qui pilote directement le périphérique, mais un contrôleur. En essayant
de se rapprocher un peu plus du matériel, on peut dire que le périphérique en lui même est un ensemble
de composants mécaniques (moteur, disque etc...), et qu’il est géré au niveau des signaux par une carte
électronique que l’on nomme contrôleur. Ce contrôleur peut lui même être constitué d’un microprocesseur
ou micro contrôleur, qui dialogue avec le microprocesseur principale. Donc la définition d’un coupleur peut
être : c’est un dispositif de commande adapté à un type donné de périphérique. Son autonomie est limitée
à des opérations élémentaires. Il permet aussi le dialogue entre deux entités physiques (microprocesseur et
périphérique) différentes.

F IG . 11.4 – Coupleur

On peut dire que l’ensemble coupleur-périphérique est une interface entre l’Homme et le couple microprocesseur-
mémoire.

11.6 L’espace mémoire

C HAQUE périphérique ou ensemble de périphériques possède une ou plusieurs adresses mémoire se


situant soit dans l’espace mémoire du microprocesseur soit dans un autre espace appelé l’espace E/S
du microprocesseur, cet espace étant beaucoup plus restreint. Pour donner un ordre d’idée, les derniers
microprocesseurs disposent d’un espace mémoire de 64 giga et d’un espace d’E/S de 64k.

11.7 La synchronisation microprocesseur ⇔ E/S


– Les entrées-sorties synchrones : Dans une entrée-sortie synchrone, il n’y a aucun parallélisme entre
traitement et transfert de l’information. Le microprocesseur est immobilisé pendant toute la durée du
transfert. L’entrée-sortie synchrone est utilisée sur les ordinateurs les plus simpes et dans tous les cas
ou le microprocesseur ne peut être utilement employé pendant la durée du transfert.
– Les entrées-sorties asynchrones avec interruptions : Dans une entrée-sortie asynchrone, tel le
clavier, il y a une interruption qui est prise en compte, elle permet de ne pas interrompre le micro-
processeur, ce dernier peut ontinuer son traitement en cours.
– Les interruptions : Lorsqu’un périphérique veut s’adresser au microprocesseur, il provoque une
interruption matérielle. Ce qui engendre un arrêt de l’exécution séquentielle des instructions d’un
programme. Cette interruption provoque l’exécution d’une routine d’interruption, c’est-à-dire d’un
programme de traitement de l’événement survenu et propre à cet événement. Les signaux d’interrup-
tion permettent aux différents composants du système, d’attirer l’attention du microprocesseur afin

64
de déclencher une opération déterminée. Comme plusieurs demandes d’interruption peuvent survenir
simultanément, elles sont tout d’abord envoyées au contrôleur d’interruption (PIC : Programmable
Interrupt Controler) qui les retransmet ensuite au microprocesseur.

11.8 Les canaux

U canal ou unité d’échange, est un processeur spécialisé dans les opérations d’entrées-sorties. Il ne
N
peut être lancé que par le microprocesseur central de l’ordinateur, il est esclave. il ne possède pas
d’interruptions mais peut lui-même interrompre le microprocesseur central. Son répertoire d’instruction lui
permet d’actionner les coupleurs et les périphériques qui lui sont connectés.

11.9 L’accès directe à la mémoire

S I un périphérique veut envoyer tout un bloc de données au microprocesseur, il commence d’abord par
l’interrompre, récupère les données, sur le support, de façon sérielle, puis il fait tout un ensemble
de vérifications tel que le checksum. Enfin vient le transfert des données par mots, un programme gère
ce transfert en incrémentant un compteur à chaque itération. Ce programme, s’il est exécuté par le mi-
croprocesseur, fait perdre beaucoup de temps à ce dernier, qui ne peut alors s’occuper de la gestion des
programmes de l’utilisateur. Le DMA (Direct Acces Memory) a été créé pour libérer le microprocesseur de
ce travail de bas niveau, il donne au contrôleur 2 informations, qui sont
1. l’adresse mémoire de départ où les données doivent être stockées.
2. le nombre de mots à transférer.
Le DMA est surtout utilisé pour les périphériques de type blocs. C’est en quelque sorte une forme simplifiée
de canal.

F IG . 11.5 – DMA

Les types de transfert DMA.


Nous venons de voir que le DMA était un circuit spécialisé conçu pour transférer les données à la
vitesse dont la mémoire est capable. Il existe deux types de transfert DMA :
1. Par gyclée : le contrôleur DMA effectue un certain nombre de transferts bus chaque fois qu’il a la
main. ce fonctionnement est bien adapté aux taches de transfert des blocs lorqu’elles nécessitent la
totalité de la largeur de bande du bus.
2. Par vol de cycle : la commande du bus passe alternativement du processeur DMA au microproces-
seur central à chaque cycle mémoire. Le canal DMA permet alors au microprocesseur central de
fonctionner au voisinage de 50%.

65
11.10 Le pilote de périphériques

L E programme qui commande le fonctionnement élémentaire d’un périphérique est appelé son pilote
(driver ou handler). Le pilote gère directement l’interface du coupleur du périphérique, traite les in-
terruptions émises par celui-ci, détecte et traite les cas d’erreur. C’est au niveau de ce module que doivent
être traitées les particularités de programmation du coupleur. Il est généralement invisible aux utilisateurs
du sysème, qui accèdent aux fonctions d’E/S au moyen de services de plus ou moins haut niveau réalisés
par des appels au superviseur. Le handler contient donc les primitives permettant de commander le pé-
riphérique. Ce driver est constitué de deux procédures, quasiment indépendantes : une procédure traitant
l’initialisation d’un transfert et une procédure de traitement de l’interruption associée à une fin de transfert.
La gestion des E/S repose sur l’utilisation des interruptions dans la plupart des cas.

11.11 Les tampons

L A différence considérable entre les vitesses de traitement de l’unité centrale et des organes périphé-
riques impose de tamponner les entrées-sorties, c’est-à-dire d’interposer une zone de mémoire, ou
tampon, entre les périphériques et les programmes utilisateurs. Le but est de réduire le temps d’inacti-
vité de l’unité centrale en découplant son fonctionnement de celui des périphériques. Les programmes
utilisateurs transfèrent l’information depuis ou vers le tampon, celui-ci, en parallèle, ser de source ou de
destination aux échanges avec le périphérique. Pour qu’une donnée lue sur un périphérique soit disponible
pour l’unité centrale, il faut que la lecture ait été anticipée, de même pour qu’une donnée soit écrite sur
un périphérique, elle doit être conservée en mémoire le temps de son transfert. Pour cela, on utilise des
tampons (en anglais buffer ou spool). Il existe deux types de tampons :
– Les tampons en mémoire centrale (buffer ou buffering) : l’utilisation de buffer va permettre de char-
ger les données en entrée ou de les récupérer en sortie dans une zone réservée de la mémoire (circuits
intégrés).

F IG . 11.6 – Le buffering

– Il existe aussi le double buffering, il améliore les performances d’utilisation du microprocesseur, en


effet en utilisant deux tampons en entrée et deux tampons en sortie. Un programme en exécution
rempli ou vide ses données dans l’un tandis que l’unité d’échange vide ou rempli l’autre.

F IG . 11.7 – Le double buffering

– Les tampons en mémoire auxilliaire (spool ou spooling) : pour éviter l’encombrement de la mémoire
centrale par les tampons d’entrée-sortie, ceux-ci peuvent être reportés sur une mémoire auxilliaire à
accès rapide (disque). Le terme spool (ne veut pas dire "bobine", mais est l’acronyme de Simulta-
neous Peripherical Operations On Line).

66
F IG . 11.8 – Le spooling

67
Chapitre 12

Les puces RISC

12.1 Objectif de la technologie RISC

L A Rapidité d’exécution des programmes. La vitesse passe par la simplification du microprocesseur , ce


qui entraîne une baisse de la consommation et du coût.

12.2 Introduction

E N 1975, les chercheurs d’IBM firent la constatation suivante : moins de 20% des instructions dispo-
nibles dans le microprocesseur sont utilisées dans 80% des cas. D’où la question : pourquoi ne pas
simplifier les microprocesseur en implantant sur la puce les instructions les plus courantes ’ On gagnerait
ainsi en vitesse, donc en performance, et on réduirait la surface de la puce, donc la consommation et le
coût. C’est cette idée qui fut la base de la technologie RISC (Reduced Instruction Set Computer : mi-
croprocesseur à jeu d’instructions réduit) par opposition aux CISC (Complex Instruction Set Computer).
Mais que fait-on des instructions complexes ’
Il suffit tout simplement de les remplacer par une série d’instructions simples (une multiplication est
une série de sommes). Mais à la différence de l’approche CISC, le décodage des instructions complexes
est assuré par le logiciel au niveau du compilateur, et non pas par des circuits logiques implantés sur le
microprocesseur. Il permet ainsi d’éviter les microcodes à programmer sur la puce. Ceci oblige à avoir
un compilateur plus complexe, devant être optimisé de façon à réduire les temps d’exécution, si l’on veut
préserver les avantages de la puce RISC.
Remarque : une instruction complexe à l’intérieur du microprocesseur n’est en fin de compte qu’un
“programme” implanté sur la puce.

12.3 Le PIPELINE

O N a vu que la réduction du jeu d’instructions apporte un gain de rapidité, mais l’essentiel des perfor-
mances vient de l’exploitation du gain de place pour une nouvelle fonction : le traitement en pipeline.
Une instruction du programme s’exécute généralement en 5 séquences successives. A chaque séquence cor-
respond une impulsion d’horloge
– IF : Instruction Fetch, chargement des instructions du cache mémoire vers la file d’instructions.
– DEC : Décodage, traduction de l’instruction se trouvant sur le haut de la file d’instructions.
– EX : Execution, exécution par l’ALU ou la FPU de l’instruction décodée
– MEM : Memory acces, lors d’une opération de lecture/écriture, la donnée est écrite vers une file de
lecture/écriture. Ceci évite de bloquer le pipeline dans le cas où on ne pourrait accéder à la mémoire.
– WB : Write Back, écriture du résultat de EX ou de MEM
La simplification apportée par la technologie RISC ayant conduit à des instructions standards de même
longueur, le principe du pipeline est donc de profiter de cette standardisation pour exécuter les instructions,

68
non pas de façon séquentielle, mais en cascade à 5 étages à la manière d’une chaîne de fabrication à 5
postes de travail (merci Taylor). Chaque étage est chargé d’une séquence. En permanence, 5 instructions
se trouvent donc simultanément à des séquences différentes de traitement. A chaque coup d’horloge, une
instruction est entièrement exécutée.
t t+1 t+2 t+3 t+4 t+5 t+6 t+7 t+8
ins1 IF DEC EX MEM WB MOV AX,I
ins2 IF DEC EX MEM WB MOV BX,J
ins3 IF DEC EX MEM WB SUB AX,BX
ins4 IF DEC EX MEM WB CMP AX,0
ins5 IF DEC EX MEM JE Suite

Exemple : chaque cycle : 1 étage activé = 5 instructions en //


– Il peut arriver certains conflits
– Conflit de ressource : 2 instructions veulent accéder à la même ressource au même moment.
– Dépendance de données : un registre (résultat d’une opération précédente) est lu alors qu’il n’a
pas encore été écrit.
– Aléas de branchement : le processeur n’a pas encore le résultat d’un test et doit choisir entre
deux sauts (ex : sauts conditionnels).
Résolution des conflits : elle se fait souvent pendant le DECodage.
– Ressource : on diffère l’accès à cette ressource pour l’instruction la plus jeune
– Données : pour les registres, il existe sur les ALU des systèmes de by-pass pour récupérer la valeur
calculée avant la véritable écriture dans la table des registres (WB)
– Branchements : le processeur fait le pari sur le branchement. S’il se révèle bon, alors on continue.
S’il est mauvais, on invalide toutes les instructions exécutées depuis la prise de décision ce qui est
complexe et coûteux en matériel. Pour prédire le branchement, il existe des techniques de statistiques
utilisant des buffers de prédiction pour savoir si le branchement a déjà été pris ou non (valable surtout
pour les boucles). On associe un bit à chaque instruction dans le cache instructions.

12.4 Architecture supersacalaire

E LLE consiste à multiplier le nombre de pipelines, donc à mettre plusieurs unités de traitement travaillant
en parallèle. La cadence de traitement s’en trouve au mieux multipliée par le nombre de pipelines.
Avec 4 pipelines, les microprocesseur RISC les plus récents traitent jusqu’à 4 instructions par cycle.

12.5 Architecture superpipeline

E LLE consiste à augmenter la profondeur du pipeline (plus de séquences et une fréquence plus élevée
donc t plus petit) permettant ainsi d’augmenter encore la cadence du traitement. Par contre, cette
organisation demande une logistique plus complexe pour approvisionner les différents " postes ". Pour
l’instant, le bon compromis est un pipeline à 11 étages, le gain est donc beaucoup moins significatif que
dans le cas d’une multiplication du nombre de pipelines.

69
12.6 Comparaison des 2 architectures
RISC CISC
– Jeu d’instructions : Jeu réduit limité aux ins- – Jeu d’instructions : Typiquement plus de
tructions simples les plus utilisées dans le trai- 200 instructions
tement. Typiquement moins de 100 instructions – Format des instructions : Variable
– Format des instructions : Standard – Implémentation des instructions : La plu-
– Implémentation des instructions : Seules les part des instructions sont gravées sur le
instructions simples sont gravées sur le sili- silicium. Pas de microcodes. Les tâches
cium. Les autres sont programmées sous forme complexes sont décodées par le compila-
de microcodes sur des circuits logiques teur.
– Accès à la mémoire : Seules les instructions de – Accès à la mémoire : La plupart des ins-
chargement et de rangement de registres (Load tructions y ont accès.
et Store) – Vitesse d’exécution : Typiquement une
– Vitesse d’exécution : Typiquement une instruc- instruction pour 3 à 10 cycles d’horloge.
tion par cycle d’horloge – Avantages : Développement plus simple
– Avantages : Puce plus petite. Fréquence d’hor- des systèmes. Base installée importante.
loge plus élevée. Vitesse d’exécution plus – Inconvénients : Technologie gourmande
grande. en silicium. Puce plus compliquée à dé-
– Inconvénients : Nécessite des compilateurs plus velopper. Possibilités d’évolution limi-
complexes et plus performants. Programme tées
d’application plus long occupant plus de mé-
moire.

12.7 Conclusion

L A division entre les concepts CISC et RISC n’est plus aussi dichotomique que par le passé. L’ensemble
des microprocesseur utilise des solutions similaires, même si les uns sont classés CISC et les autres
RISC. Le 486 d’Intel et le 68040 de Motorola sont les deux premiers (connus du grand public) processeurs
CISC à se rapprocher de la technologie RISC. L’unité centrale contient les instructions les plus courantes,
tandis que les instructions complexes sont confiées à une unité spécifique séparée et utilisent le traitement
en pipeline. Le Pentium et le 86060 qui ont suivis, vont plus loin en adoptant l’architecture superscalaire.
Par contre les microprocesseur RISC ont tendance à enrichir leur jeu d’instructions et finissent par de-
venir aussi complexes que des CISC. Si bien qu’aujourd’hui, l’important n’est pas de savoir si tel ou tel
microprocesseur est CISC ou RISC, mais de connaître son architecture interne et ses performances.

70
Index

A F
c
accès alà atoire . . . . . . . . . . . . . . . . . . . . 50, 61 famille . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
c
accès sà quentiel. . . . . . . . . . . . . . . . . . . . . . .61 FIFO,LIFO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
accès sà riec . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 flags, drapeaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Alan Mathieson TURING . . . . . . . . . . . . . . . . . . 10
ANSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 G
ANSI, EBCDIC . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 gaufrette . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 GRAY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
assembleur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 gyclà ec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

B H
BCD, DCB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Hermann HOLLERITH . . . . . . . . . . . . . . . . . . . . . 9
bidirectionnelle, unidirectionnel . . . . . . . . . . . . 43 horloge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Blaise PASCAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 I
buffer, buffering . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . 42, 45
bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41, 48 interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
bus d’adresses . . . . . . . . . . . . . . . . . . . . . . . . . 43, 48 interfaces parallèles . . . . . . . . . . . . . . . . . . . . . . 43
bus de commandes . . . . . . . . . . . . . . . . . . . . . 43, 48 interfaces sà ries c . . . . . . . . . . . . . . . . . . . . . . . . 43
Bus de donnà es c . . . . . . . . . . . . . . . . . . . . . . . . 43
c . . . . . . . . . . . . . . . . . . . . . . . . . 48 J
bus de donnà es
c . . . . . . . . . . . . . . . . . . . . . . . . . 48 jeu d’instructions . . . . . . . . . . . . . . . . . . . . . . 43, 46
bus multiplexÃ
Joseph-Marie JACQUARD . . . . . . . . . . . . . . . . . . 8
C
canal, canaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 L
Charles BABBAGE. . . . . . . . . . . . . . . . . . . . . . . . .8 c
langage à voluà c . . . . . . . . . . . . . . . . . . . . . . 44
CISC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 langage d’assemblage . . . . . . . . . . . . . . . 14, 44, 47
code de Hamming . . . . . . . . . . . . . . . . . . . . . . . . . 25 langage machine . . . . . . . . . . . . . . . . . . . . . . . . . . 47
c
code mnà monique . . . . . . . . . . . . . . . . . . . . . . 47 LEIBNIZ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
c
code opà ratoire. . . . . . . . . . . . . . . . . . . . . . . . .47 LRC, VRC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
codes polynomiaux . . . . . . . . . . . . . . . . . . . . . . . . 26 LSB, MSB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Compteur Ordinal . . . . . . . . . . . . . . . . . . . . . . . . . 45
M
coupleur, contrôleur de pà riphà c c
rique . 61
c
mà moire . . . . . . . . . . . . . . . . . . . . . . . . . . . 13, 41
CRC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
c
mà moire dynamique . . . . . . . . . . . . . . . . . . . . 51
D c
mà moire statique . . . . . . . . . . . . . . . . . . . . . . . 51
c
dà codeur de code opà ratoire c . . . . . . . . . . 46 machine traditionnelle . . . . . . . . . . . . . . . . . . . . . 14
DCB, BCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 masque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
DIP, DIL, Flat Package, SMD, CMS . . . . . . . . 37 Mflops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
DMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 microprocesseur . . . . . . . . . . . . . . . . . . . . 40, 41, 45
donnà esc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 Mips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
dopage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 MOS, PMOS, CMOS, VMOS . . . . . . . . . . . . . . 38
DSP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 MSB, LSB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

E O
Enigma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 c
opà randes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

71
P
c
pà riphà c
rique blocs . . . . . . . . . . . . . . . . . . . 61
c
pà riphà c
rique caractères . . . . . . . . . . . . . 61
Pascaline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
PIC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
pilote, driver, handler . . . . . . . . . . . . . . . . . . . . . . 63
processeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
programme . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43, 45
programme exà cutable, c binaire . . . . . . . . . . 44
programme objet . . . . . . . . . . . . . . . . . . . . . . . . . . 44
programme source. . . . . . . . . . . . . . . . . . . . . . . . .44
puce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36, 45

Q
quartz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

R
RAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
registre d’instructions . . . . . . . . . . . . . . . . . . . . . . 45
registres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
RISC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
ROM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

S
c
sà quence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
c
sà quenceur . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
semi-conducteur . . . . . . . . . . . . . . . . . . . . . . . . . . 50
silicium . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
spool, spooling . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
SSI, MSI, LSI, VLSI . . . . . . . . . . . . . . . . . . . . . . 36
système d’exploitation. . . . . . . . . . . . . . . . . . . .14

T
TPHL, THPL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
transistor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
transistors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
travail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
TTL, ECL, MECL, CML . . . . . . . . . . . . . . . . . . 38

U
UAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
UAL, Unità c Arithmà tique c et Logique . . 45
c
UC, Unità de Commande . . . . . . . . . . . . . . . 45
UNICODE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
unidirectionnelle, bidirectionnelle . . . . . . . . . . . 43

V
vol de cycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
VON NEUMANN . . . . . . . . . . . . . . . . . . . . . . . . 13
VRC, LRC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

W
wafer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

72

Vous aimerez peut-être aussi