architecture des ordinateurs - m0narch aka...

77
Architecture des Ordinateurs Pascal FOUGERAY

Upload: others

Post on 12-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

Architecture des Ordinateurs

Pascal FOUGERAY

Page 2: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

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

Page 3: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

Table des matières

I Le Matériel ou Hardware 9

1 Historique 101.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101.2 Définition du terme informatique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101.3 L’historique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101.4 John VON NEUMANN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151.5 Une machine plus moderne le PDP1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171.6 La machine multicouche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181.7 Les premiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

1.7.1 Le premier microprocesseur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181.7.2 Le premier micro-ordinateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191.7.3 Le premier PC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

1.8 L’évolution technique et technologique . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

2 Représentation de l’information 212.1 Les systèmes de numération . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2.1.1 Le système décimal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212.1.2 Le système binaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212.1.3 Le système octal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222.1.4 Le système hexadécimal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

2.2 La conversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222.2.1 Base 10⇔Base 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222.2.2 Base 16⇔Base 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

2.2.2.1 La table de conversion . . . . . . . . . . . . . . . . . . . . . . . . . . . 232.3 Les nombres négatifs (signés) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

2.3.1 Le complément à 1 (restreint) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232.3.2 Le complément à 2 (vrai) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

2.4 Les opérations arithmétiques en système binaire . . . . . . . . . . . . . . . . . . . . . . . 232.4.1 L’addition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242.4.2 La soustraction en complément à 2 . . . . . . . . . . . . . . . . . . . . . . . . . . 242.4.3 La multiplication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242.4.4 La division . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242.4.5 Les nouveaux multiples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3 Le Codage 253.1 Définitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253.2 La représentation des nombres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

3.2.1 Le code Gray ou code binaire réfléchi . . . . . . . . . . . . . . . . . . . . . . . . 253.2.2 Le code BCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

3.3 La représentation des caractères . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263.3.1 Le code EBCDIC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263.3.2 Le code ANSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

2

Page 4: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

3.3.3 Les nouveaux codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273.4 Les codes détecteurs d’erreurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

3.4.1 Le contrôle de la parité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273.4.2 Les codes autovérificateurs ou autocorrecteurs . . . . . . . . . . . . . . . . . . . 27

3.4.2.1 Les codes de blocs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273.4.2.2 Les codes cycliques . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

4 Le codage des nombres flottants 294.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

4.1.1 Rappel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294.2 Conversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294.3 Normalisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294.4 Virgule flottante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304.5 La réalité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

4.5.1 Norme IBM sur 32 bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304.5.2 Norme IEEE sur 32 et 80 bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

5 Algèbre de BOOLE 315.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315.2 Portes logiques de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

5.2.1 Opération suiveuse : OUI (YES) . . . . . . . . . . . . . . . . . . . . . . . . . . . 315.2.2 Opération inversion : NON (NOT) . . . . . . . . . . . . . . . . . . . . . . . . . . 325.2.3 Opération ET (AND) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325.2.4 Opération OU (OR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325.2.5 Opération NON ET (NAND) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325.2.6 Opération NON OU (NOR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325.2.7 Opération “dilemne”, OU EXCLUSIF (XOR) . . . . . . . . . . . . . . . . . . . . 335.2.8 Opération “égalité”, NON OU EXCLUSIF (NEXOR) . . . . . . . . . . . . . . . 33

5.3 Quelques propriétés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335.4 Fonction logique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335.5 Tableau de KARNAUGH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

5.5.1 Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345.6 Equivalence entre circuits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

6 La logique Combinatoire 366.1 Définitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366.2 Le comparateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366.3 L’additionneur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

6.3.1 Le demi-additionneur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376.3.2 L’additionneur complet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

6.4 Le multiplexeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386.4.1 Schéma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386.4.2 Réalisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396.4.3 Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396.4.4 Conversion parallèle/série . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

6.5 Le démultiplexeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406.5.1 Schéma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

6.6 Le décodeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406.6.1 Réalisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416.6.2 Utilisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

6.7 L’Unité Arithmétique et Logique (U.A.L.) . . . . . . . . . . . . . . . . . . . . . . . . . . 426.8 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

7 La logique Séquentielle 44

3

Page 5: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

8 Technologie des circuits intégrés 458.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458.2 Historique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458.3 Conception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458.4 Familles des circuits intégrés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

8.4.1 Présentation des Circuits Intégrés . . . . . . . . . . . . . . . . . . . . . . . . . . 478.4.2 Différentes familles de circuits intégrés . . . . . . . . . . . . . . . . . . . . . . . 47

8.5 Technologies et structures des circuits intégrés logiques . . . . . . . . . . . . . . . . . . . 478.6 Terminologie des Circuits Intégrés Logiques . . . . . . . . . . . . . . . . . . . . . . . . . 48

8.6.1 Prix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488.6.2 Immunité aux bruits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488.6.3 Consommation électrique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488.6.4 Temps de réponse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488.6.5 Facteur de mérite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

9 La logique programmée 509.1 Comparaison des logiques câblée et programmée . . . . . . . . . . . . . . . . . . . . . . 50

9.1.1 La logique câblée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509.1.2 La logique programmée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

9.2 Programmation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

10 Le microprocesseur 5510.1 La composition Interne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5510.2 Le jeu d’instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5610.3 Les registres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5610.4 Le Langage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5710.5 Fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5710.6 La composition Externe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5810.7 Fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

11 Les Mémoires 6011.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6011.2 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6011.3 Les Mémoires à Lecture seule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6011.4 Les mémoires à lecture-Ecriture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

11.4.1 Les types de mémoires DRAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6111.5 Caractéristiques principales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6211.6 Le décodage d’adresses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

12 La mémoire cache 6412.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6412.2 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6412.3 La hiérarchie mémoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

12.3.1 Première question : L’emplacement d’un bloc dans le cache . . . . . . . . . . . . 6612.3.2 Deuxième question : L ’adressage des blocs dans le cache . . . . . . . . . . . . . 6612.3.3 Troisième question : Le remplacement du bloc . . . . . . . . . . . . . . . . . . . 6612.3.4 Quatrième question : L’écriture dans le cache . . . . . . . . . . . . . . . . . . . . 67

12.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6712.5 Post Scriptum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

4

Page 6: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

13 La gestion des entrées sorties 6813.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6813.2 Organisation générale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6813.3 Les périphériques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6913.4 Les catégories de périphériques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6913.5 Le coupleur ou contrôleur de périphérique . . . . . . . . . . . . . . . . . . . . . . . . . . 7013.6 L’espace mémoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7013.7 La synchronisation microprocesseur ⇔ E/S . . . . . . . . . . . . . . . . . . . . . . . . . 7013.8 Les canaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7113.9 L’accès direct à la mémoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7113.10Le pilote de périphériques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7113.11Les tampons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

14 Les puces RISC 7414.1 Objectif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7414.2 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7414.3 Le PIPELINE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7414.4 Architecture superscalaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7514.5 Architecture superpipeline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7514.6 Comparaison des 2 architectures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7614.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

5

Page 7: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

Table des figures

1.1 Blaise PASCAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111.2 La machine à calculer de Blaise PASCAL . . . . . . . . . . . . . . . . . . . . . . . . . . 111.3 LEIBNIZ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121.4 Joseph Marie JACQUARD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121.5 Charles BABBAGE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121.6 Le schéma de la machine de Charles BABBAGE . . . . . . . . . . . . . . . . . . . . . . 131.7 Machine à calculer de Charles BABBAGE . . . . . . . . . . . . . . . . . . . . . . . . . . 131.8 HOLLERITH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131.9 Le système d’Hollerith . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131.10 La perforeuse d’Hollerith . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141.11 La carte perforée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141.12 Alan TURING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141.13 L’Enigma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151.14 John VON NEUMANN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151.15 La machine de John VON NEUMANN . . . . . . . . . . . . . . . . . . . . . . . . . . . 161.16 Grafcet de la machine de John VON NEUMANN . . . . . . . . . . . . . . . . . . . . . . 161.17 L’ENIAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171.18 L’UNIVAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171.19 Le PDP1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171.20 Le clavier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181.21 L’écran et son stylo optique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181.22 Le i4004, le premier µP de chez Intel R© . . . . . . . . . . . . . . . . . . . . . . . . . . . 191.23 Le premier micro-ordinateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191.24 Le premier PC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201.25 Les racines de l’ordinateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

5.1 George BOOLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315.2 Equivalence NAND, NOR, INVERSEUR . . . . . . . . . . . . . . . . . . . . . . . . . . 355.3 Porte OU-Exclusif avec des NAND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355.4 Porte Non-OU-Exclusif avec des NOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

6.1 Comparateur 2 bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366.2 Comparateur n bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366.3 Demi-additionneur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376.4 Additionneur complet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386.5 Additionneur 2 bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386.6 Multiplexeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396.7 Réalisation d’un multiplexeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396.8 Utilisation d’un multiplexeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396.9 Conversion // vers série avec un multiplexeur . . . . . . . . . . . . . . . . . . . . . . . . 406.10 Démultiplexeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406.11 Décodeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416.12 Réalisation d’un décodeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

6

Page 8: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

6.13 Utilisation d’un décodeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426.14 UAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

8.1 Le 1er Circuit Intégré . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468.2 Des Wafers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468.3 Le 1er microprocesseur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478.4 Des microprocesseurs plus recents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

9.1 Principe d’un système automatique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519.2 Principe d’un système à microprocesseur . . . . . . . . . . . . . . . . . . . . . . . . . . . 519.3 Le système minimum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 529.4 Synoptique interne d’un processeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 529.5 Le système minimum développé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539.6 Organigramme de programme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

10.1 La composition logique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

11.1 Les différentes mémoires au silicium . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6011.2 Les différents modèles de mémoires au silicium . . . . . . . . . . . . . . . . . . . . . . . 6211.3 Le décodage d’adresses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

12.1 Hierarchie des mémoires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6512.2 L’organigramme de la recherche d’une donnée en mémoire . . . . . . . . . . . . . . . . . 65

13.1 Organisation E/S 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6813.2 Organisation E/S 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6913.3 Organisation E/S 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6913.4 Coupleur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7013.5 Fonctionnement d’un DMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7113.6 Le buffering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7213.7 Le double buffering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7213.8 Le spooling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

7

Page 9: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

BOnjour, ce cours a été écrit dans le but d’enseigner une matière qui évolue très vite même trop vite,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, sion 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. Laplupart 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 “pressepapier”1. Pour ma part je vous conseille : Architecture et technologie des ordinateurs (3éme édition) dePaolo Zanella et Yves Ligier aux éditions DUNOD (500 pages) que vous pouvez trouver aux bibliothèquesdu Campus 3 et des sciences de l’université se trouvant sur le Campus 2.

Mais bien sûr, cela n’est que mon avis.

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

8

Page 10: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

Première partie

Le Matériel ou Hardware

9

Page 11: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

Chapitre 1

Historique

1.1 Introduction

L’INFORMATIQUE couvre aujourd’hui à peu près toutes les branches de l’activité humaine. Elle a pourobjet 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 anglais hard-ware), par opposition au logiciel, ensemble des programmes, des langages et des systèmes d’exploitation(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, modem, etc. . . ).Les résultats intermédiaires sont stockés dans des mémoires auxiliaires (bandes magnétiques, disques ma-gnétiques, disques optiques, disques). L’organe principal d’un ordinateur est l’unité centrale, dans laquellesont 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, cal-cul scientifique, commande d’installations temps-réel) qui nécessitent d’utiliser des langages de program-mation adaptés à l’application envisagée. Le principal avantage de l’ordinateur est sa rapidité de calculet 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 etle développement de l’ordinateur individuel.

1.2 Définition du terme informatique

SELON un dictionnaire

Technique du traitement automatique de l’information au moyen des calculateurs et desordinateurs.

L’Académie Française, qui avait discuté de machines arithmétiques il y a 3 siècles, publia en 1965 cettedéfinition de l’informatique.

La science du traitement rationnel de l’information, considéré comme lesupport des connaissances dans les domaines scientifiques, économiques etsociaux, notamment à l’aide de machines automatiques.

1.3 L’historique

L’IDÉE de faire exécuter des calculs par une machine date du XVIIesiècle. En 1623, SCHICKARDinvente une machine à calculer capable d’effectuer des additions et des soustractions. Quelques années

10

Page 12: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

plus tard Blaise PASCAL invente une machine quasiment similaire mais un peu plus perfectionnée. Ellepermettait d’additionner et même de soustraire des nombres de 6 chiffres. Il en a conçu en tout plus de50 modèles dont les plus perfectionnés calculaient sur 8 chiffres. Pascal à réalisé sa première machine, laPascaline, alors qu’il n’avait que 19 ans.

FIG. 1.1 – Blaise PASCAL

FIG. 1.2 – La machine à calculer de Blaise PASCAL

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

11

Page 13: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

FIG. 1.3 – LEIBNIZ

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

FIG. 1.4 – Joseph Marie JACQUARD

Il élabore en 1805 la machine qui porte son nom. C’était un métier à tisser qui produisait des tissussuivant différentes techniques et avec des motifs variés. Jacquard créa les premières cartes perforées pourutiliser 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.

FIG. 1.5 – Charles BABBAGE

En 1820, il conçoit une machine à calculer universelle programmable et programmée par un pro-gramme, mécanique et numérique. Malheureusement, les principes mécaniques qu’elle nécessite se ré-vèlent extrêmement difficiles pour l’époque et la réalisation de cette machine ne peut aboutir. Il reprenaitainsi l’idée que Joseph-Marie Jacquard avait utilisée pour son métier à tisser.

12

Page 14: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

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

FIG. 1.7 – Machine à calculer de Charles BABBAGE

En 1890, lors du recensement de la population aux Etats-Unis d’Amérique, Hermann HOLLERITHutilise les ressources de l’électricité dans une machine utilisant les principes de la mécanographie, destinésaux traitements statistiques des résultats. Son invention a permis de réaliser le premier recensement dela population aux états-Unis, sa carte perforée comprenait 12 rangées de 20 positions à perforer danslesquelles figuraient des données tels les nom et prénoms,l’age, la profession, la situation de famille, etc. . .

FIG. 1.8 – HOLLERITH

FIG. 1.9 – Le système d’Hollerith

13

Page 15: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

FIG. 1.10 – La perforeuse d’Hollerith

FIG. 1.11 – La carte perforée

Hermann HOLLERITH est aussi le créateur de la société TBM (Tabulating Machines Company) quidevint 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 à Cambridgedès 23 ans.

FIG. 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 formuleren termes d’algorithmes. Pendant la guerre, il participe à la réalisation de la Bombe, ainsi qu’à la premièremachine électromécanique de décryptage des messages codés avec l’Enigma Allemande.

14

Page 16: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

FIG. 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écesseurset reprenant la structure de la machine de BABBAGE.

1.4 John VON NEUMANN

MATHÉMATICIEN américain d’origine allemande (1903-1957). Dans le cadre du projet Manhattan, puisde 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.

FIG. 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 puisseprendre seule des décisions logiques (principe d’autonomie). Les concepts des mémoires tampon, vive etmorte 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 lagrande 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 desnombres 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.

15

Page 17: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

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 est constituée de deux ensembles.– L’unité de traitement de processus.– L’unité de stockage ou mémoire.

FIG. 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éfinies lors de sa concep-tion. Chaque opération s’appelle une instruction ; l’ensemble des opérations s’appelle le jeu d’ins-tructions.

2. Un travail complexe est décomposé en instructions qui seront exécutées de façon séquentielle (lesunes après les autres). La suite d’instructions réalisant le travail est appelée un programme.

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 fonctiond’un test sur le résultat d’une opération, il est donc possible de quitter une séquence d’instructionspour en exécuter une autre (rupture de séquence). Cette condition est nécessaire, si l’on veut réaliserautomatiquement 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.

FIG. 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 dansl’ordinateur).

16

Page 18: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

FIG. 1.17 – L’ENIAC

FIG. 1.18 – L’UNIVAC

1.5 Une machine plus moderne le PDP1

C’EST un ordinateur de 1959 qui a apporté beaucoup à l’informatique ; ses caractèristiques principalesétaient

– Processeur : 18 bits– Mémoire : 4096 mots de 18 bits– Entrées/sorties de données : Ecran, Clavier, Cartes perforées– Options : Stylo optique1, Ecran haute résolution, Bande magnétique– Logiciels fournis : Editeur, Assembleur et Débbogueur2

– Prix :120 000 $

FIG. 1.19 – Le PDP1

1Qui a un stylo optique ?2Pas de jeux ?

17

Page 19: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

FIG. 1.20 – Le clavier

FIG. 1.21 – L’écran et son stylo optique

1.6 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, bien sû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 électroniquesexécutent les programmes en langage machine du niveau 1.

2. Niveau 1 : Couche microprogrammée. Elle interprète en instructions directement exécutables desinstructions plus complexes du niveau 2.

3. Niveau 2 : Couche machine traditionnelle. Programme en langage machine, assez hermétique pourl’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, lagestion, 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 au second semestre, dans le but dedécouvrir un peu plus en profondeur le fonctionnement interne du microprocesseur et de l’ordinateuren général.

6. Niveau 5 : Couche langage d’application. Ce langage (C, Pascal, COBOL...) est traduit (compilé)en langage d’assemblage puis en langage machine. Nous verrons au second semestre que le langageC est proche du langage d’assemblage, et est trés utilisé dans les systèmes d’exploitation.

1.7 Les premiers

1.7.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éIntel R© au XXesiècle, et plus précisément le 15 novembre 1971, qui lança le premier microprocesseur.

Ted Hoff, son créateur, avait réussi à intégrer le principe du calculateur. La puce de Hoff était en quelque

18

Page 20: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

sorte un “processeur universel”. Le premier microprocesseur, le 4004, contenait 2 300 transistors il étaitcadencé à 740 kHz, il fallait 8 cycles d’horloge pour exécuter une instructions soit 10,8 ms. Il existeactuellement une très grande “variété” de microprocesseurs. Leurs caractéristiques sont nombreuses, maisla principale est la puissance de calcul.3

FIG. 1.22 – Le i4004, le premier µP de chez Intel R©

Le but de ce cours est de décrire le fonctionnement des microprocesseurs du niveau 0 au niveau 4. Lesopérations rudimentaires telles que l’addition, le comptage, la mise en mémoire sont réalisées à l’aide decircuits élémentaires. Le comportement de ces derniers est décrit à l’aide de l’algèbre booléenne.

1.7.2 Le premier micro-ordinateurOn peut chanter le cri du coq, car c’est bien un français qui a inventé le premier micro-ordinateurEn 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.

FIG. 1.23 – Le premier micro-ordinateur

En juin 1973 : Le mot microcomputer (micro-ordinateur) apparait pour la première fois dans la presseAméricaine dans un article au sujet du Micral.

1.7.3 Le premier PCEn 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 $.

3Nous verrons au chapitre sur le microprocesseur, la définition de cette “bête” plus en détails.

19

Page 21: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

FIG. 1.24 – Le premier PC

1.8 L’évolution technique et technologique

L’IMAGE ci-dessous montre un peu la généalogie de “l’ordinateur”.

FIG. 1.25 – Les racines de l’ordinateur

20

Page 22: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

Chapitre 2

Représentation de l’information

2.1 Les systèmes de numération

LA numération est la façon d’énoncer ou d’écrire des nombres, on 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 multitudede systèmes de numération (appelé aussi bases), en fait, autant qu’il y a de nombres. Nous allons nousintéresser à quatre d’entre eux, ceux utilisés par les ordinateurs.1

2.1.1 Le système décimalC’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 symboles au total, sont utilisés pour la représentationdes nombres. Un nombre est subdivisé en puissances de 10, que l’on énonce en allant de la plus élevée à laplus 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 lenombre 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 chiffre1 est appelé le chiffre de poids fort, et le 5 le chiffre de poids faible.

2.1.2 Le système binaireC’est le système que l’on devrait tout le temps utiliser, mais il est peu pratique dans la vie courante. Par

contre en informatique il est le plus utilisé, car un ordinateur n’a que 2 possibilités OUI ou NON que l’onpeut faire correspondre en logique positive à VRAI ou FAUX (l’homme ayant la 3ème possibilité "je nesais 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 nombreest 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

1Certaines 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 pourles 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, labase 24 pour les heures, la base 60 pour les degrés, minutes et secondes venant des savants de Babylone. . .

21

Page 23: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

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

2.1.3 Le système octalC’est un système qui découle du système binaire. Il est constitué de 8 symboles, 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... (voirle cours sur les systèmes d’exploitations).

2.1.4 Le système hexadécimalOn 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 plusfacilement 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 ⇐⇒ 14et F ⇐⇒ 15. Un nombre est subdivisé en puissances de 16, que l’on énonce en allant de la plus élevée à laplus 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

CELA consiste à passer d’une base à une autre. C’est ce que font le compilateur et l’interpréteur deprogrammes 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, mais nous ne verrons que les bases utilisées eninformatique.

2.2.1 Base 10⇔Base 2Il 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, en procédant par divisions successives.

2.2.2 Base 16⇔Base 2Pour 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 le LSB !) et de convertir chaque

quadruplet séparément.

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

– de 16 vers 2, de convertir chaque symbole hexadécimal en 4 bits, et de regrouper les bits en un seulnombre binaire.

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

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

22

Page 24: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

2.2.2.1 La table de conversion

Base 10 Base 2 Base 8 Base 16 Base 10 Base 2 Base 8 Base 160 0 0 0 8 1000 10 81 1 1 1 9 1001 11 92 10 2 2 10 1010 12 A3 11 3 3 11 1011 13 B4 100 4 4 12 1100 14 C5 101 5 5 13 1101 15 D6 110 6 6 14 1110 16 E7 111 7 7 15 1111 17 F

2.3 Les nombres négatifs (signés)

DANS une 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 dunombre. La convention qui prévaut consiste à mettre le MSB à 0 pour représenter un nombre positif et à 1pour un nombre négatif. On parle de données ou de 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– -127 ⇐⇒ 1111 1111 à– +127 ⇐⇒ 0111 1111.

Bien que très simple, cette notation est peu utilisée en informatique, car elle impose une arithmétiqueparticulière pour les nombres négatifs. On utilise alors plutôt la notation dite “en complément à 2”. Nousallons 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émentation des valeurs des

bits constituant ce nombre. Ainsi en considérant le nombre signé 10010 représentant le nombre −2(10) ilaura pour complément restreint 01101 soit 13(10) ce qui ne représente pas grand chose.

Le problème de cette méthode repose sur le nombre 0 : -0 est différent de +0 (Essayez).

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.– 0101 représente 5 , et son complément à 2 :– 1011 représente -5.

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

COMME on le fait depuis notre plus jeune age en base 10, il est possible de réaliser des opérationsarithmétiques en utilisant le système binaire. A l’intérieur de l’ordinateur, le microprocesseur ne

procède pas autrement car, vu sa constitution, il ne peut “comprendre” que les informations binaires.

23

Page 25: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

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

2.4.2 La soustraction en complément à 2Pour 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 multiplicationAucune difficulté, ce ne sont que des additions. Nous étudierons cela en TD.

2.4.4 La divisionComme 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 multiplesDans 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és2

Afin de palier à cette ambiguïté, l’IEEE a proposé une autre appellation :– 1 kilo = 1 000 ; 1 kibi = 1024– 1 méga = 1 000 000 ; 1 mébi = 1 048 576– 1 giga = 1 000 000 000 ; 1gibi = 1 073 741 824– ...

Attention, lorsque vous achetez un disque dur de 60 Go, vous obtenez 60 000 000 000 octets, soit 55,88GiO...

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

24

Page 26: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

Chapitre 3

Le Codage

3.1 Définitions

LA définition du dictionnaire donne pour les mots– code : Système conventionnel de signes ou signaux, de règles et de lois permettant la transformation

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.– transcodage : L’opération permettant de passer d’un code A à un code B.

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 veut dire la ligne suivante ?1

υ$πξι νςτ µθζετυπλη ειπτςιρφυεϑνξττςκ$ειξπυψψψ

3.2 La représentation des nombres

3.2.1 Le code Gray ou code binaire réfléchiPour l’instant nous avons 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’unarbre en rotation).

Par exemple, si on veut repérer la position d’une pièce mobile en utilisant des capteurs de réflexion. Il ya un risque d’erreur dans le code binaire naturel. Les marques sombres correspondent à une faible lumièreréfléchie ou à un 1 logique. Lors des transissions 1 à 2, 3 à 4, 5 à 6..., il y a un risque de voir apparaître à lasortie du dispositif, des combinaisons fausses.

Ainsi, pour passer de la position 1 à la position 2, on peut obtenir les combinaisons parasites 0 ou 3 siles réflecteurs ne sont pas parfaitement alignés... et ils ne le sont jamais !

0 1 2 3 4 5 6 7 8 9 A B C D E F20 ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥21 ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥22 ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥23 ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥

1S’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 monlatin. . .

25

Page 27: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

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 quichange entre deux codes successifs. Il est utilisé dans les roues codeuses.

0 1 2 3 4 5 6 7 8 9 A B C D E F20 ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥21 ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥22 ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥23 ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥

3.2.2 Le code BCDAbré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 binairede quatre bits. Pour coder un nombre décimal en BCD, on va coder séparément chaque chiffre du nombrede 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 impossible2 de faire des opérations mathématiques avec !

3.3 La représentation des caractères

3.3.1 Le code EBCDICExtended 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 ANSICertains 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”. Lecode de page 850 est un jeu de caractères “multilingue” alors que le code de page 864 définit le jeu decaractères arabes, le code de page 437 définit le jeu de caractères français. . .

Le standard ASCII, American Standard Code for Information Interchange, a été publié par l’USASI(United States of America Standards Institute) en 1968. Il s’agit d’un code sur 7 bits. De nombreux codessur 8 bits (tels que l’ISO 8859-1n le jeu de caractères par défaut de Linux) contiennent l’ASCII dans leurpremière moitié. L’équivalent international de l’ASCII est connu sous le nom de ISO 646.

Remarque : Dans la table des codes ASCII, les caractères dont les codes sont inférieurs à 32 (espace)sont des caractères de contrôle. Par exemple, 10, 13 et 27 en décimal, représentent respectivement LineFeed (Aller à la ligne), Carriage Return (Retour Chariot) et Escape (Échappement), le tableau ci-dessousen 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

2En fait on peut, mais il faut recourrir à un opérateur de correction spécifique après chaque opération

26

Page 28: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

3.3.3 Les nouveaux codesAvec 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 travaillentdepuis le début des années 90, à la création d’un code universel , l’UNIversal CODE, ou UNICODE.

Dans ces nouvelles tables de code, on trouve les caractères latin (les nôtres), Tamoul (Inde), Cyrillique(Grèce et Russie) ou les idéogrammes Japonais et Chinois.

Il 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’exploitation.

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 des’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é paire.– impair, code dit à parité impaire.

Bien sûr, cette méthode n’est efficace que si l’erreur porte sur un nombre impair de bits.

3.4.2 Les codes autovérificateurs ou autocorrecteursLa 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ées par l’américain R W HAMMING etl’on parle souvent de code de Hamming.

Il existe en fait 2 techniques d’élaboration de ces codes.

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). Si le mot de n bitsreçu est un mot de code, le bloc de départ peut être reconstitué. Si le mot de n bits reçu n’est pas un mot decode, le récepteur peut alors :

– Retrouver le bloc original (cas des codes autocorrecteurs) ;– Redemander le bloc original (cas des codes vérificateurs).

L’efficacité d’un tel code sera d’autant meilleure que les mots qui le constituent seront distincts les uns desautres. On définit ainsi la distance de Hamming d’un code, correspondant au nombre minimal de bits quivarient entre deux mots quelconques de ce code. Plus elle est grande et plus le code est efficace (pour lecode 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 descaractères transmis seraient donc dans cet exemple 50 41 47 56 et non pas simplement 50 41 47 commele code ASCII le donnerait. La valeur 56(h) correspond à la valeur trouvée dans le tableau ci-dessus :0101 0110(2)→

27

Page 29: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

P A G LRCVRC 0 0 0 0 Parité croisée

1 1 1 10 0 0 01 0 0 10 0 0 00 0 1 10 0 1 10 1 1 0

3.4.2.2 Les codes cycliques

Appelés CRC (Cyclic Redundancy Codes) ou codes polynomiaux, ils sont très utilisés car très facilesà mettre en œuvre. Le principe consiste à considérer que toute information de n bits peut être transcritesous une forme polynomiale : 10111 correspond à1 ∗X4 + 0 ∗X3 + 1 ∗X2 + 1 ∗X1 + 1 ∗X0.

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 M(x) soit divisible par lepolynôme générateur connu G(x). A la réception on divise le polynôme M(x) reçu par le même polynômeG(x) : le reste de cette division doit être nul si la transmission est correcte. Le choix d’un bon polynômegé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 : X16 + X12 + X5 + 1. Il 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.

28

Page 30: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

Chapitre 4

Le codage des nombres flottants

4.1 Introduction

LE but de ce cours est de vous montrer le codage, au sein de l’ordinateur, de n’importe quel nombre signé,qu’il soit entier ou non : 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 RappelPour 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

PAR analogie, pour convertir une fraction décimale en base 2, il suffit de réaliser des multiplicationssuccessives 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(2) + 0, 001(2) = 100000, 001(2)

4.3 Normalisation

LE problème qui se pose maintenant est le stockage en mémoire ou dans un registre d’une quantité déci-male é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 valeurabsolue) et une puissance de 2.

Exemple : 32,125 s’écrit aussi 100000, 001(2) ou encore 0, 100000001(2) ∗ 26

1L’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-processeurmathématique qui à lui seul coutaît aussi cher que l’unité centrale.

29

Page 31: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

Pour mémoriser un nombre, il suffit donc de coder sa puissance de 2 et sa fraction. L’intérêt de cetteméthode est que l’on sait toujours où se trouve le point décimal et qu’il n’y a plus de partie entière, onobtient 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 chiffrede la fraction en base 2 et quelques chiffres pour représenter la puissance (positive ou négative) traduite enbase 2.

Remarque : si la fraction est trop longue, il n’est pas question de prendre en compte tous ses chiffres.

4.4 Virgule flottante

EN clair, tout nombre sera désormais écrit sous la forme d’un produit entre une puissance de 2 et unefraction 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 S M 2eoù– S est le signe– M la mantisse– e l’exposant.

4.5 La réalité

POUR stocker un nombre décimal dans une mémoire binaire, il suffit de le convertir en binaire, puis demettre 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, ainsi que d’assurer l’unicité de la représentation).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 imposerun codage (autre que le complément à 2). Une constante k est ajoutée à l’exposant de telle manière quel’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 32bits avec p = 23 et p’ = 8.

4.5.1 Norme IBM sur 32 bits31 ⇐⇒ 24 23 22 ⇐⇒ 0Exposant : e+128 Signe 23 chiffres de la Mantisse

4.5.2 Norme IEEE sur 32 et 80 bits31 30 ⇐⇒ 23 22 ⇐⇒ 0

Signe Exposant : e+128 23 chiffres de la Mantisse

79 78 ⇐⇒ 64 63 ⇐⇒ 0Signe Exposant : e+16384 Mantisse

Pour le coprocesseur mathématique 80387, cela permet d’obtenir des nombres allant de 3, 4∗10−4932 1, 2∗10+49322.

2Ce qui est supérieur au nombre d’atomes composants la terre !

30

Page 32: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

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étudier la logique.

FIG. 5.1 – George BOOLE

Dans cette algèbre, les variables (dites booléennes) ne peuvent prendre que les 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 uneTable de Vérité. Ces opérateurs peuvent être réalisés par des circuits électroniques : ils sont alors appelésPortes Logiques.

5.2 Portes logiques de base

ELLES 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é

A S0 01 1

OUI L’équation de cette table de vérité est

S = X

31

Page 33: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

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é

A S0 11 0

NON L’équation de cette table de vérité est

S = X = ¬X

Remarque : La bare oblique est utilisée dans tous les schémas pour représenter la fonction négation :NON.

5.2.3 Opération ET (AND)Table de Vérité

A B S0 0 00 1 01 0 01 1 1

ET L’équation de cette table de vérité est

S = A.B = A ∩B = A ∧B

5.2.4 Opération OU (OR)Table de Vérité

A B S0 0 00 1 11 0 11 1 1

OU L’équation de cette table de vérité est

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

5.2.5 Opération NON ET (NAND)Table de Vérité

A B S0 0 00 1 11 0 11 1 1

NON-ET L’équation de cette table de vérité est

S = A.B = A ∩B = A ∧B

5.2.6 Opération NON OU (NOR)Table de Vérité

A B S0 0 10 1 01 0 01 1 0

NON-OU L’équation de cette table de vérité est

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

32

Page 34: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

5.2.7 Opération “dilemne”, OU EXCLUSIF (XOR)Table de Vérité

A B S0 0 00 1 11 0 11 1 0

OU-exclusif L’équation de cette table de vérité est

S = A⊕

B

5.2.8 Opération “égalité”, NON OU EXCLUSIF (NEXOR)Table de Vérité

A B S0 0 10 1 01 0 01 1 1

NON-OU-exclusif L’équation de cette table de vérité est

S = A⊕

B

5.3 Quelques propriétés

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 OUIdentité 1.A=A 0+A=ANullité 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+ADistributivité A.(B+C)=A.B+A.CIdempotence A.A=A A+A=A

Inversion A.A=0 A+A=1Absorption(1) A.(A+B)=A A+A.B=AAbsorption(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 etcela devient :

Pour faire quelquechose il faut faire cela ou ne pas faire cela et faire ceci. Ce qui revient à faire celaou ceci. . .

5.4 Fonction logique

POUR résoudre des problèmes de logique, on aura souvent besoin de plusieurs variables et on notera lerésultat : f(A,B,C...)

Exemple : fonction majorité où f(A,B,C)=1 si on a une majorité de 1, 0 sinon. On peut alors décrire lafonction à l’aide des opérateurs de base.

33

Page 35: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

Table de Vérité

A B C S0 0 0 00 0 1 00 1 0 00 1 1 11 0 0 01 0 1 11 1 0 11 1 1 1

C’est à dire, S=1 si– A=0 ET B=1 ET C=1 OU– A=1 ET B=0 ET C=1 OU– A=1 ET B=1 ET C=0 OU– A=1 ET B=1 ET C=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 deKARNAUGH pour simplifier les expressions des équations logiques.

5.5 Tableau de KARNAUGH

SI une table de vérité contient trop de lignes, il est possible d’utiliser une autre représentation et latransformer en un tableau. On parle de tableau de Karnaugh, mais on devrait plutôt dire un tore1 de

Karnaugh. En effet, comme on peut déplacer les lignes et colonnes extérieures d’un côté vers l’autre, il estfacile d’imaginer que cela devient une tore.

5.5.1 PrésentationConsidérons une fonction f de n variables. La table de vérité de f possède alors 2ncases (soit 2n com-

binaisons). Les valeurs que peut prendre f sont regroupées en un tableau de 2ncases en utilisant, pour lecodage du tableau, le code GRAY (voir le chapitre intitulé : Le Codage). Ce codage du tableau permet dedégager certaines propriétés d’adjacences. Lorsque deux cases sont côte à côte, une seule variable changede valeur, les autres sont invariantes. On peut trouver aussi des groupements plus importants possédantsde moins en moins de variables invariantes (cf. TD). Ces regroupements conduisent à une réduction de latable, donc à une simplification de l’expression de f.

En regroupant par 2, 4 ou 8... cases, on élimine 1, 2 ou 3... variables.

A \ BC 00 01 11 100 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 vue précédement.Il est posible de faire 3 regroupements :

– 1 : C est variant.– 2 : A est variant.– 3 : B est variant.

A \ BC 00 01 11 100 0 0 1 01 0 1 1 1

5.6 Equivalence entre circuits

EN remarquant que X.X = X et que X + X = X , alors les deux opérateurs NAND et NOR peuventservir d’inverseur.

1On rappelle qu’un tore est un anneau...

34

Page 36: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

FIG. 5.2 – Equivalence NAND, NOR, INVERSEUR

On obtient des résultats similaires en utilisant des opérateurs Non OU (cf. TD). On dit que les opérateursNon ET et Non OU sont "complets" puisqu’on peut avec un seul de ces opérateurs, utilisé autant de foisque nécessaire, réaliser n’importe quelle fonction booléenne. Ces deux portes étant faciles à fabriquer, ellessont à la base des circuits électroniques programmables tels les PALs (Programmable Logic Array) et lesGALs que nous ne verrons pas dans ce cours. Mais que vous arborderez sûrement plus tard.

Les deux figures 5.3 et 5.4 montrent la réalisation des portes OU Exclusif et NON OU Exclusif à l’aidede portes NON OU et NON ET.

FIG. 5.3 – Porte OU-Exclusif avec des NAND

FIG. 5.4 – Porte Non-OU-Exclusif avec des NOR

35

Page 37: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

Chapitre 6

La logique Combinatoire

6.1 Définitions

UN circuit combinatoire est un circuit dont les sorties ne dépendent que des entrées. On l’oppose aucircuit séquentiel1 dont les sorties dépendent non seulement des entrées mais aussi de l’état précédent

dans lequel étaient les sorties.Nous allons voir dans ce chapitre comment sont réalisées certaines fonctions de base à l’aide des portes

logiques vues dans le cours intitulé : Algèbre de BOOLE.

6.2 Le comparateur

C’EST un circuit fort utile puisqu’il permet de comparer 2 mots binaires, fonction trés utilisée dans lesordinateurs.

La sortie vaut 1 si les 2 mots sont identiques, 0 sinon.Voici un exemple de comparateur sur des mots de 2 bits (A1, A0) et (B1, B0), , comme le montre la

figure 6.1

FIG. 6.1 – Comparateur 2 bits

À partir de là, il est facile de concevoir un comparateur à n bits, comme le montre la figure 6.2.

FIG. 6.2 – Comparateur n bits

1Voir le chapitre intitulé : La logique séquentielle.

36

Page 38: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

6.3 L’additionneur

AVANT de pouvoir faire des calculs complexes, le microprocesseur doit être capable de faire des addi-tions. Pour cela, il nous faut être capable de construire le demi-additionneur, élément de base, pour

additionner 2 bits.

6.3.1 Le demi-additionneurIntéressons-nous à la table de vérité de l’opération "somme" de 2 bits.

X+ Y= R S

X Y Somme Retenue0 0 0 00 1 1 01 0 1 01 1 0 1

On s’aperçoit que la table de vérité de :– “somme” correspond à l’opérateur OU EXCLUSIF– “retenue” correspond à l’opérateur ET.

On peut en déduire le schéma structurel de ce demi-additionneur comme le montre la figure 6.3.

FIG. 6.3 – Demi-additionneur

Remarque : Cet additionneur est incomplet. En effet il ne tient pas compte d’une éventuelle retenueprovenant de l’addition de 2 bits de poids précédent. Nous allons donc voir le fonctionnement d’un addi-tionneur cette fois-ci complet.

6.3.2 L’additionneur completLors d’une addition sur plusieurs bits, il faut tenir compte d’une retenue éventuelle, résultant d’un calcul

précédent. On décompose l’addition en 2 demi-additions. On additionne d’abord X à Y, puis ce résultat àla retenue initiale. X + Y + Rprécédente = (X + Y) + Rprécédente.

Les sorties du premier additionneur ou du deuxième peuvent générer une retenue intermédiaire (Ri1 etRi2).

Voyons à partir de la table de vérité, comment obtenir la retenue finale (RF).

X+ Y= Ri1 S1

puisRi1

S1puis + Rp

= Ri2 S2

OU Ri2 = Rf Sf

37

Page 39: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

On a en entrée On obtient On veutX Y Rprécédente S1 Ri1 S2 Ri2 Sf Rf0 0 0 0 0 0 0 0 00 0 1 0 0 1 0 1 00 1 0 1 0 1 0 1 00 1 1 1 0 0 1 0 11 0 0 1 0 1 0 1 01 0 1 1 0 0 1 0 11 1 0 0 1 0 0 0 11 1 1 0 1 1 0 1 1

On peut en déduire le schéma structurel de cet additionneur complet comme le montre la figure 6.4.

FIG. 6.4 – Additionneur complet

On peut alors générer l’addition sur n bits.La retenue de l’addition sur le bit n˚ (i-1) venant sur l’addition du bit n˚ i.Soit l’addition sur deux bits de 2 nombres de 2 bits chacun noté (A1,A0) et (B1,B0), le résultat s’écrit– (S2,S1,S0) sur trois bits.– Comme le montre la figure 6.5.

FIG. 6.5 – Additionneur 2 bits

6.4 Le multiplexeur

C’EST un circuit qui permet de sélectionner une ligne d’entrée parmi 2n lignes et de la relier directementà la sortie.

C’est un "aiguillage". Pour ceci, il faut être capable de désigner l’entrée.Ceci se fait grâce à une commande codée sur n bits.

6.4.1 SchémaSi on prend 2 bits de sélection (b1,b0), on peut alors sélectionner 1 ligne d’entrée parmi 22 = 4 comme

le montre la figure 6.6.

38

Page 40: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

FIG. 6.6 – Multiplexeur

Exemple : Si (b1, b0)=10 alors la ligne d’entrée a2 est reliée à la sortie.

6.4.2 RéalisationUn multiplexeur, comme le comparateur vu précédement, est réalisé à l’aide des portes logiques de

base. La figure 6.7 montre le schéma d’un multiplexeur 4 vers 1.

FIG. 6.7 – Réalisation d’un multiplexeur

6.4.3 ApplicationsRéalisation d’une fonctionOn veut implanter la fonction suivante– f = 1 si (b2,b1,b0) = 1, 3 ou 7 .– f = 0 sinon.

Nous aurons alors besoin d’un multiplexeur de 8 vers 1 ayant 3 entrées de sélection 23 = 8, cablé commele montre la figure 6.8

FIG. 6.8 – Utilisation d’un multiplexeur

39

Page 41: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

6.4.4 Conversion parallèle/sérieDu côté parallèle les 8 bits arrivent en même temps. On veut les transmettre sur la ligne série les uns

après les autres d’un point de vue temporel. C’est ce qui arrive quand on veut transmettre des octets surune ligne téléphonique qui ne possède qu’un seul fil de données. Il suffit alors de prendre un multiplexeurqui aurait en entrée les 8 fils de la liaison parallèle et en sortie la liaison série.

Un compteur de comptant de 000 à 111 pourrait alors cadencer les données sur la liaison série.La figure 6.9 illustre ce principe.

FIG. 6.9 – Conversion // vers série avec un multiplexeur

6.5 Le démultiplexeur

C’EST un circuit qui réalise la fonction inverse du précédent.Une entrée peut être reliée de façon unique à 2n sorties par une commande codée sur n bits.

6.5.1 SchémaSi on prend 2 bits de sélection (b1,b0), on peut alors sélectionner 1 sortie parmi 22 = 4 comme le

montre la figure 6.10.

FIG. 6.10 – Démultiplexeur

Exemple : Si (b1, b0)=10 alors la ligne d’entrée E est reliée à la sortie S2.

6.6 Le décodeur

C’EST un circuit permettant de mettre à 1 une sortie parmi 2n, dont le numéro correspond au codebinaire (sur n bits) présent à l’entrée.

la figure 6.11.

40

Page 42: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

FIG. 6.11 – Décodeur

Exemple : Si (e2, e1, e0)=110 alors la sortie S6 est positionnée à 1 les autres sont à 0.

6.6.1 RéalisationUn décodeur, comme le multiplexeur vu précédement, est réalisé à l’aide des portes logiques de base.

La figure 6.12 montre le schéma d’un décodeur permettant de sélectionner une sortie parmi 8.

FIG. 6.12 – Réalisation d’un décodeur

6.6.2 UtilisationL’une des plus typiques, est celle du décodage d’adresses.– Supposons que l’on veuille une mémoire de 8 Ko adressable de 0000 à 1FFF. Supposons aussi que

nous ayons à notre disposition seulement des boîtiers mémoire de 2 Ko.– Comment organiser ces boîtiers de façon à ce que le microprocesseur ait l’impression de dialoguer

avec un boîtier unique de 8 ko ?– Solution : décomposons les adresses des boîtiers

41

Page 43: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

N˚ Boitier @ en héxa. @ en binaire1 0000h 0000 0000 0000 00001 07ffh 0000 0111 1111 11112 0800h 0000 1000 0000 00002 0fffh 0000 1111 1111 11113 1000h 0001 0000 0000 00003 17ffh 0001 0111 1111 11114 1800h 0001 1000 0000 00004 1fffh 0001 1111 1111 1111

Les 2 bits permettent de sélectionner un boîtier selon l’adresse, à l’aide d’un décodeur “2 vers 4”, sontnotés en gras dans le tableau précédent.

Dans la pratique, les boîtiers mémoire possèdent une broche de sélection de boîtier appelée Chip Select(CS).

La figure 6.13 montre le schéma d’un décodeur permettant de sélectionner un boîtier parmis 4.

FIG. 6.13 – Utilisation d’un décodeur

RAM

Boîtier n°1

RAM

Boîtier n°2

RAM

Boîtier n°3

µP

RAM

Boîtier n°4

Décodeur2 vers 4

0

1

2

3

4

5

6

7

8

9

10

11

12

6.7 L’Unité Arithmétique et Logique (U.A.L.)

AU cœur du microprocesseur, elle lui permet de réaliser des opérations sur des mots binaires.Dans sa plus simple expression, elle permet de faire les opérations suivantes :– Inversion– A ET B,– A OU B, et– A plus B.

La figure 6.14 montre le symbole d’une Unité Arithmétique et Logique.

FIG. 6.14 – UAL

42

Page 44: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

6.8 Conclusion

IL existe bien d’autres fonctions logiques combinatoires plus ou moins complexes. Leur étude dépasseamplement le cadre de ce cours.Avec les opérateurs de base étudiés dans le chapitre “Algèbre de BOOLE” on peut réaliser toutes les

fonctions imaginables.Tous les systèmes numériques que vous utilisez, que ce soit l’ordinateur, le téléphone portable ou

n’importe quel autre, ne sont constitués que de ces opérateurs de base.

43

Page 45: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

Chapitre 7

La logique Séquentielle

à écrire...

44

Page 46: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

Chapitre 8

Technologie des circuits intégrés

8.1 Introduction

LA technologie des circuits intégrés évolue à une telle rapidité, que le temps d’écrire ces lignes, mondocument 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 de voir leur évolution depuis 1960.

8.2 Historique

LE transistor est un composant électronique dont le principe à été découvert en 1947, qui remplaçaitavantageusement 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 circuitsintégrés. Le circuit intégré (CI) est un circuit électronique complet, concentré sur une pastille de matériausemi-conducteur, généralement du silicium ou de l’arséniure de gallium, et parfois appelé "puce" ou “chip”en anglais, du fait de sa taille (quelques millimètres carrés), et de sa couleur.

Le nombre de composants placés sur une puce n’a cessé de croître depuis l’apparition des premierscircuits intégrés. En 1965, on pouvait “loger” environ trente composants sur une puce de 3 millimètrescarrés ; quinze ans plus tard, on en décompte plus de 100 000, actuellement plus de 30 000 000. L’échelled’intégration, c’est à dire la largeur des pistes de silicium que l’on est capable de réaliser, est actuellementde l’ordre de 0,02 micron. A titre de comparaison, le diamètre d’un cheveu est d’environ 30 micron.

8.3 Conception

POUR réaliser un circuit intégré, le circuit électronique doit d’abord être conçu au moyen d’ordinateursspé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, estensuite 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 à nouveaucontrô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èspur d’environ 50 cm de long pour un diamètre de 7,5 cm. Cette tranche de 0,1 mm d’épaisseur environporte 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éliorerla résolution en “attaquant” directement le wafer grâce à un faisceau d’électrons, ce qui permet d’obtenirune 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.

45

Page 47: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

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 descircuits qui est l’implantation ionique, où l’introduction des impuretés se fait à température ambiante, lesatomes dopants étant ionisés et implantés aux endroits voulus grâce à un bombardement d’ions. Tous lescircuits ainsi conçus sont testés avant que les wafers ne soient découpés en puces individuelles. Chaquepuce est alors sertie dans un boîtier en plastique et reliée à des broches de connexion par de minuscules filsd’or. Cette technique en voie de régression est remplacée par celle du film, permettant un gain de temps del’ordre de 10. Dans la connexion par film, la puce (ou Chip) est automatiquement connectée en une seulefois 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 dela chaleur dissipée par le composant lors de son fonctionnement ainsi qu’à une meilleure manipulation.

FIG. 8.1 – Le 1er Circuit Intégré

FIG. 8.2 – Des Wafers

8.4 Familles des circuits intégrés

LE circuit intégré est un composant électronique qui réunit sous un même boîtier tous les composantsd’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– 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 millionsde transistors, soit plus de 2 000 000 de portes élémentaires.

46

Page 48: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

8.4.1 Présentation des Circuits IntégrésIl 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écent et

de plus en plus utilisé, 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 unmicroprocesseur plus récent.

FIG. 8.3 – Le 1er microprocesseur

FIG. 8.4 – Des microprocesseurs plus recents

Remarque : le nombre de broches a sensiblement augmenté.

8.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/Sanalogiques).

8.5 Technologies et structures des circuits intégrés logiques

ON appelle famille logique une catégorie de circuits logiques fabriqués au moyen de la même techniquede construction. Il existe deux grandes familles logiques :

BIPOLAIRES, qui utilisent les transistors bipolaires NPN et PNP, 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

47

Page 49: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

– CML : Current Mode Logic dans ces trois sous familles les transistors travaillent en bloqués nonsaturés.

et 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’ellesa 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.

8.6 Terminologie des Circuits Intégrés Logiques

8.6.1 PrixSelon 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 alimenta-

tions, protection contre les parasites ...) Poids , Dimensions etc.– Poids de l’étude : Si un seul système technique doit être réalisé, il sera plus judicieux d’utiliser des

composants plus onéreux mais plus facile à mettre en œuvre.

8.6.2 Immunité aux bruitsOn 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 oupositif 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.

8.6.3 Consommation électriqueLa 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 detension Vcc. Le courant qu’ils drainent de l’alimentation varie en fonction des états logiques du circuit.

8.6.4 Temps de réponseOn 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 :

48

Page 50: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

– 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 : Tpd = (TPHL+TPLH)2

Remarque : Les temps de propagation déterminent la fréquence maximale d’utilisation de l’opérateurlogique : f = 1

(TPHL+TPLH)

8.6.5 Facteur de mériteOn appelle facteur de mérite le produit de la puissance statique par le temps de propagation. Il s’exprime

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.

49

Page 51: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

Chapitre 9

La logique programmée

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

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

9.1.1 La logique câbléeOn dispose de circuits intégrés tels que– Les opérateurs logiques,– Les opérateurs arithmétiques,– Les multiplexeurs et démultiplexeurs.

– Les sélecteurs,– Les compteurs,– 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èmes automatiquesgérés par des composants électroniques. Elle avait comme inconvénients de ne pas avoir de méthode rigou-reuse, et de produire un système est figé, c’est à dire non adaptable, au final.

9.1.2 La logique programméePour utiliser 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. Pour signaler au microprocesseur lafonction à réaliser (programmation), on “envoie” au microprocesseur un mot binaire codé.

50

Page 52: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

FIG. 9.1 – Principe d’un système automatique

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

1. Etablir l’organigramme imposé par le processus (cahier des charges).

2. Traduire l’organigramme en une suite d’instructions appelées programme.

3. Organiser le système à microprocesseur, c’est-à-dire faire le choix du microprocesseur et des circuitsauxiliaires gravitant autour.

Les intérêts du système à microprocesseurPour 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. Ses avantages sont :– 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 : 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

FIG. 9.2 – Principe d’un système à microprocesseur

La structure d’un système à microprocesseur peut évoluer en fonction du cahier des charges. Pour gérerce 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– Un élément cadençant le tout, l’horloge (quartz)1.

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

1Le quartz est à l’origine une pierre appartenant à la famille des cristaux qui a la propriété de vibrer à une certaine fréquence enfonction 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 cettepierre, mais elle a vite été remplacée par des quartz synthétiques. La fréquence des microprocesseurs ayant beaucoup augmenté, unquartz seul ne suffisait plus. On lui a ajouté une boucle à verrouillage de phase BVP (Phase Lock Loop ou PLL en Anglais).

51

Page 53: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

FIG. 9.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 :

FIG. 9.4 – Synoptique interne d’un processeur

Les étapes 1 et 4 sont effectuées sous le contrôle d’un organe interne du microprocesseur appelé : Unitéde commande.

Les étapes 2 et 3 sont effectuées sous le contrôle d’un organe interne du microprocesseur appelé : 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 :

1. Les instructions.

2. Les données.

Conséquence de ces deux types d’informations, il faut deux types de mémoires. 3

1. Les mémoires de données dans lesquelles on va chercher les données et stocker les résultats, ce sontles mémoires à lecture et écriture. Elles sont appelées R.A.M. Random Acces Memory : Mémoireà accès aléatoire.

2. Les mémoires de programmes dans lesquelles on va chercher les instructions à exécuter, ce sontles mémoires à lecture seule. Elles sont appelées R.O.M. Read Only Memory : Mémoire à lectureseule.

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 :

2Nous avons eu l’occasion de l’étudier dans le cours intitulé Logique Combinatoire3Les 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, ce sont les barettes que vous installez sur la cartemère et qui reçoivent des données temporaires.

52

Page 54: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

– 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çoitdes informations, des données ou des résultats au microprocesseur ; il existe donc trois types de bus.

1. Bus d’adresses : ensemble de lignes unidirectionnelles qui véhiculent le code d’adresse du micro-processeur vers les mémoires et les interfaces.

2. 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.

3. Bus de commandes : ensemble de lignes bidirectionnelles utilisées pour synchroniser les différentséléments du système à microprocesseur.

D’où le système minimum :

FIG. 9.5 – Le système minimum développé

9.2 Programmation

LE microprocesseur doit recevoir des instructions pour pouvoir “travailler”. La suite ordonnée de cesinstructions 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’instructions. Ces séquences sontdans un premier temps traduites par un Organigramme. Un organigramme est la représentation par unschéma séquentiel d’un processus.

Symboles :

FIG. 9.6 – Organigramme de 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é deserreurs spécifiques à l’application. Le travail du programmeur est d’autant plus simple que le langage estfacile à lire.

– Langage d’assemblage : il est plus proche du langage humain, chaque instruction est remplacéepar un code mnémonique (aide mémoire). Un programme de conversion, l’assembleur, traduit leprogramme obtenu en un programme directement compréhensible par le microprocesseur (langagemachine). Chaque µP possède ses propres codes instruction.

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

53

Page 55: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

– Langage évolué : il est indépendant du type de microprocesseur utilisé et est très proche du langagehumain. 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

Dans 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.TEXTMOVW $DATA, %AX ; Initialise le segment de donnéesMOVW AX, DS

TEST : DECW AX ; AX=AX-1JNE TEST ; AX=0 ?

etc. . .

Dans le 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écimal6, de l’instruction après

conversion par l’assembleur (Op Code) et Code opérande.

Exemple de programme objet :

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

5Nous verrons ce principe lors du second trimestre. Vous le verrez aussi avec l’enseignant de la matière Système D’exploitation.6Le code et les adresses peuvent aussi être stockés directement au format binaire (numérique)

54

Page 56: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

Chapitre 10

Le microprocesseur

LE microprocesseur 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 000opé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 estla puissance de calcul, dont l’unité est le Mips (Million of Instruction Per Second) pour les microproces-seurs simples et le Mflops (Million of Floating point Operations Per Second) pour les microprocesseursplus complexes.

10.1 La composition Interne

ON 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 agencementforme un ensemble de fonctions logiques élémentaires telles que OU, ET, ADD, SUB, etc. .

– 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 (allerchercher) la prochaine instruction à exécuter. De plus il doit être “à l’heure”, donc cadencé. Toutesces obligations conduisent à la conclusion suivante : un microprocesseur est constitué d’un ensembled’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 dispositifspermettant 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 à aller chercher.– Un Registre d’instructions, qui contient le code opératoire de la prochaine instruction à exé-

cuter.1Si 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.2Le 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, duquel on

extrait la silice.

55

Page 57: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

– Un Décodeur de code opératoire, qui détermine quelle opération doit être effectuée parmi lejeu d’instructions du microprocesseur.

– Un séquenceur, qui 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 ou lasoustraction, et les opérations logiques telles que les fonctions OU, ET, décalages et rotations.

FIG. 10.1 – La composition logique

10.2 Le jeu d’instructions

C’EST l’ensemble des instructions de base, câblées3 sur la puce, que le microprocesseur peut exécuter.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 ait à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ôle des séquences, sauts conditionnels ou inconditionnels, . . .– Entrées / Sorties entre le µP et les périphériques,. . .– Divers, décalages, incrémentation,. . .

10.3 Les registres

CE 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 archi-

tecture à l’autre. En règle générale, plus un microprocesseur a de registres et plus il est performant. Leurquantité varie de 10 à plus de 100. La taille d’un registre se mesure en bits (Binary Information), et lorsquel’on parle d’un microprocesseur 32 bits, cela veut dire qu’il travaille (exécute les instructions de base) avecdes registres de taille 32 bits. Les registres peuvent être classés en six catégories :

– Registres généraux, ils contiennent les données et les résultats des opérations réalisées par le micro-processeur, on les appelle aussi des accumulateurs.

3Le terme cablé provient du faite que l’on parle ce cablâge de composants électronique entre eux.4Pour de plus amples renseignements sur ces deux termes, je vous invite à consulter le chapitre intitulé : Les nouvelles architec-

tures.5Nous verrons, dans la seconde partie de ce cours, ces instructions plus en détails.

56

Page 58: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

– 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 bitZ indique si le résultat de l’opération précédente est nul. Ces bits sont testés et permettent de fairedes sauts dans les programmes.

– Registre pointeur de pile, il permet de gérer une pile (FILO 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 contenue dans le registre d’instruction pour trouverl’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 registred’instruction et du registre d’index. Ils sont en général incrémentés ou décrémentés automatiquementaprès chaque utilisation.

– Registres de deboggage, ils permettent de faire la mise au point des programmes6.

10.4 Le Langage

LE 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 significationn’avait rien d’évidente pour l’Homme. Pour comprendre cette séquence de bits, il fallait compulser unetable décrivant toutes les opérations possibles et leur représentation binaire. Par exemple pour additionnerdeux nombres, on écrivait 10001010 01011000 110100107. Dans cet exemple, 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 nomsaux opérations, que l’on a appelé des codes mnémoniques, exemple : ADD, DIV, OR etc. . . De même, lesdonnées et les résultats ont pu être mises sous une forme symbolique. Pour convertir ce nouveau langageen langage machine, on utilise un programme que l’on nomme assembleur ; ce nouveau langage s’appelledonc le langage d’assemblage. Ce langage est toujours utilisé et le sera toujours, car il est le seul qui puisseexploiter toutes les ressources du microprocesseur. Tous les noyaux (une certaine partie au moins) dessystèmes d’exploitation sont écrits en langage machine.

Langage d’assemblage =⇒ Assembleur=⇒ Langage machine

10.5 Fonctionnement

L’UC va chercher en mémoire les instructions et les données, en envoyant l’adresse sur le bus d’adessessainsi qu’une commande de lecture ou d’écriture sur le bus de commande. Dans 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érationdemandée ainsi que la quantité de données (opérandes) nécessaires. A partir de cela, il y a génération dessignaux utiles à l’UAL pour déclencher l’exécution de l’instruction. Ensuite, l’UC va chercher les donnéeset les transfère directement à l’UAL.

L’UAL exécute l’instruction et transmet le résultat à l’UC, qui va à son tour le stocker en mémoire. Lecycle se répète ainsi indéfiniment ; un microprocesseur ne s’arrête jamais de “travailler”.

L’exécution d’une instruction8 consiste donc à :

1. Charger la prochaine instruction à exécuter depuis la mémoire jusque dans le registre d’instruction.

2. Modifier le compteur ordinal pour qu’il pointe sur l’instruction suivante.

3. Décoder l’instruction que l’on vient de charger.6Nous verrons leur utilisations lors de la seconde partie du cours.7Ce n’est qu’un exemple, le codage est pris au hasard. . .8Nous 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.

57

Page 59: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

4. Localiser dans la mémoire des éventuelles données utilisées par l’instruction.5. Charger des données si nécessaire dans les registres internes de l’UAL.6. Exécuter l’instruction.7. Stocker le résultat dans la mémoire.8. Recommencer à 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.

10.6 La composition Externe

POUR communiquer 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 et des péri-

phériques 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)9, permetd’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, lesmêmes broches. On parle alors de bus multiplexé.

10.7 Fonctionnement

DANS le scénario suivant, le microprocesseur va devoir effectuer l’opération :

ADD MémoireX, 32

Il va donc additionner le contenu de la MémoireX avec la valeur immédiate 32 et ranger le tout dans la caseMémoireX, mais il ne le "sait " pas encore.

Ses étapes de ce travail seront donc :

1. Le microprocesseur va chercher en mémoire le code opératoire de l’instruction à exécuter. Il fautqu’il lise le contenu d’une case mémoire ; pour cela, il met sur son bus d’adresse le code binaire del’adresse de la case mémoire contenant le code opératoire de l’instruction à exécuter. Il positionne laligne RW à 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 dé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 microprocesseur va stocker ce résultat : il met sur son bus d’adresse, le code binaire de l’adresse

de la case MémoireX, puis positionne la ligne RW (Read Write) à 0, pour signaler à la mémoirequ’il désire faire une opération d’écriture, le résultat est sauvegardé dans la case mémoire.

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

9RW (Read Write) n’est qu’un exemple pour un type de microprocesseur. Sur certains microprocesseurs il existe deux lignesphysiques, une pour R et une pour W.

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

58

Page 60: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

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

59

Page 61: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

Chapitre 11

Les Mémoires

11.1 Introduction

LES mémoires sont des structures qui permettent de stocker une information sous forme numérique ouanalogique, puis de la restituer à la demande. Il existe une grande variété de mémoires, depuis la

bascule RS jusqu’aux mémoires de masse : disques durs et bandes magnétiques etc.. Dans ce cours, nousallons nous intéresser aux mémoires intégrées à semi-conducteurs, capable de stocker et de restituer uneinformation sous forme numérique.

11.2 Définition

UNE 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 (sur un disque par exemple), sinon on parle de

mémoires sérielles ou à accès série (sur une bande par exemple).Le diagramme ci-dessous donne un aperçu des différents types de mémoires au silicium.

FIG. 11.1 – Les différentes mémoires au silicium

11.3 Les Mémoires à Lecture seule

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– 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 sousun rayonnement ultra violet.

60

Page 62: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

– 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...

11.4 Les mémoires à lecture-Ecriture

ELLES ne peuvent souvent conserver l’information que temporairement, si elles sont alimentées en éner-gie électrique. 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 conserve ses informations sans alimentation présente) qui utilise les propriétés deschamps magnétiques (plus utilisées).

– Mémoire FLASH : c’est un très proche parent des EEPROM. C’est une mémoire non volatile quipeut être effacée électriquement. La principale différence, c’est qu’une mémoire flash peut être ef-facée par petits morceaux, alors qu’une EEPROM ne peut être effacée que glogablement. Exemple :Les clés USB, les cartes mémoire et les disques Flash.

– 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 pourles files ou les queues.

– L.I.F.O. : Last In First Out (dernier entré premier sorti), la dernière information entrée est aussi ladernière sortie. Elle est utilisée dans les piles et les calculateurs.1

11.4.1 Les types de mémoires DRAM

IL existe beaucoup de types de mémoires dynamiques. La technologie évoluant sans cesse, il en apparaîtde 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émoiresdynamique.

– La mémoire FPM Fast Page Mode : c’est la plus ancienne (des plus récente. . . , donc en barettes). Ilest 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ègreune petite mémoire cache qui stocke l’adresse de la prochaine cellule à lire ou écrire sans attendreque la donnée précédente soit lue.

– La mémoire BEDO Ram (Burst Extensed Data Out Ram) : cousine de l’EDO optimisiée pour lalecture par giclée (blocs).

– La mémoire SDRAM (Synchronous DRAM) : Avec ce type de mémoire, il y a synchronisation dessignaux entrées/sorties avec l’horloge du système ce qui accélère les échanges. Son temps d’accèsvarie de 5 à 15 ns.

– La mémoire ECC (Error Correction Code) : Mémoire à code de correction d’erreur. Cette mémoireprend en charge la gestion des erreurs de bits en mémoire vive. Elle se présente sous forme de barettesDimm et est utile seulement sur un serveur ou sur les systèmes qui nécessitent une grande fiabilitédes données et des calculs (systèmes bancaires).

1Nous verrons son utilité dans un programme, au second trimestre.

61

Page 63: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

– La mémoire RamBus, elle fonctionne à des fréquences de 600 à 800 MHz (proches de celles desprocesseurs), avec un débit de 1.2 Go/s (équivalent à un temps d’accès de 1 ns, qui est déjà la vitessedu cache interne du processeur).

– La mémoire DDR-SDRAM : Double Data Rate SDRAM, capable de travailler au double de la fré-quence d’horloge.

11.5 Caractéristiques principalesElles 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 dedeux.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.

(a) Octets (Byte) : 8bits,(b) Mots (Word) : 16bits,(c) Double mots (double word) : 32bits(d) Quadruple mots : 64bits(e) La mémoire pourra être organisée en 8, 16, 32, 64 voire 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 lamémoire.

3. Les temps

(a) 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.

(b) De lecture : c’est le temps qui s’écoule entre l’instant où l’adresse est présentée à la mémoireet le moment ou la donnée est disponible en sortie.

(c) D’accès : c’est généralement la moyenne des deux temps précédents.(d) 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.(e) La consommation : elle est différente au repos (standby) et en fonctionnement ; elle dépend

de la technologie.

4. Les modèles

FIG. 11.2 – Les différents modèles de mémoires au silicium

62

Page 64: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

11.6 Le décodage d’adresses

LA fonction décodage d’adresses permet la sélection, dans l’espace mémoire adressable du micropro-cesseur, de l’adresse matérielle d’une case mémoire.

Exemple : pour un microprocesseur ayant un bus d’adresses de 32 fils, cela va consister à sélectionnerune 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écodeurd’adresses.

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

FIG. 11.3 – Le décodage d’adresses

2Nous étudierons ces principes en TD

63

Page 65: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

Chapitre 12

La mémoire cache

12.1 Introduction

VOUS avez dû remarquer que, dans la vie, plus on élimine de papiers et plus on en entasse (je ne saispas 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êmechose). Les premiers concepteurs d’ordinateurs ont vite compris que les programmeurs et utilisateurs de cesmachines 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êmemanière. Il n’est donc pas nécessaires de disposer d’une grande quantité de mémoire pour exécuter desprogrammes de tailles importantes. L’idée simpliste serait de charger des blocs de mémoires les uns derrièreles 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émoiresavaient des temps d’accès compris entre 150 et 120 ns. Quand le microprocesseur allait chercher une donnéeen mémoire, cette dernière lui paraissait disponible instantanément. La technologie aidant, le temps d’accèsdes mémoires classiques (DRAM) a diminué, et atteint aujourd’hui la nanoseconde. Les microprocesseursont 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èscourant), il passe la majeur partie de son temps à l’attendre et la performance des machines est diminuée.

12.2 Définition

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 dumicroprocesseur, 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.

12.3 La hiérarchie mémoire

ON parle de hiérarchie mémoire, en les classant selon les critères prix et temps d’accès. En commençantpar 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).– La RAM classique (DRAM).

64

Page 66: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

– 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 bonmarché que la bande magnétique, et ayant le temps d’accès de la mémoire cache de niveau 1

FIG. 12.1 – Hierarchie des mémoires

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 commedans “Le meilleur des mondes”, le microprocesseur, ne s’adresse qu’à la mémoire du 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émoirepeut devenir un vrai “calvaire” pour le microprocesseur. Si le microprocesseur ne trouve pas sa donnée dansle premier cache, il va essayer de la trouver dans le second cache, s’il ne la trouve toujours pas, il va lachercher dans la RAM classique, et ainsi de suite. Pour éviter cette situation, fort peu confortable pour lemicroprocesseur, le cache se doit de mettre à la disposition du microprocesseur les bonnes informations aubon moment selon un dispositif de “flux tendu”.

L’organigramme est le suivant :

FIG. 12.2 – L’organigramme de la recherche d’une donnée en mémoire

65

Page 67: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

Mais que se passe-t-il au juste ?On ne va pas stocker des données une par une dans le cache, mais bloc par 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.

12.3.1 Première question : L’emplacement d’un bloc dans le cacheIl 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 Associative”.

– 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 dansle cache. Un bloc est affecté à un ensemble, puis placé n’importe où dans ce dernier. L’ensemble esthabituellement 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.

12.3.2 Deuxième question : L ’adressage des blocs dans le cacheChaque 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’étiquettepour 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.

12.3.3 Troisième question : Le remplacement du blocQuand 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 asuccè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 existe2 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 informationsqui seront nécessaires bientôt, les accès aux blocs sont enregistrés. Bien sur, le bloc remplacé estcelui 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 deblocs à 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/ensembleTaille LRU Hasard LRU Hasard LRU Hasard16 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 tauxd’échecs avoisinant les 10%.

66

Page 68: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

12.3.4 Quatrième question : L’écriture dans le cacheLes lectures dominent les accès au cache. Tous les accès pour une instruction 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 biensûr 25% en écriture. Les concepteurs ont donc optimisé le cache pour les lectures, et le microprocesseurattend que les lectures soient terminées. En revanche, il n’a pas besoin d’attendre la fin des écritures pourpasser à la suite du programme. Le bloc est ainsi lu, pendant que l’étiquette est lue et comparée. La lecturedu bloc commence dés que son numéro est disponible. Si la lecture réussit, tout va pour le mieux et lapartie 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 quel’étiquette ne soit examinée. De plus, la lecture peut accéder à plus d’octets que nécessaires, mais en écriturele 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 foisdans 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 lebloc du cache. Le bloc modifié est recopié en mémoire classique uniquement quand il est remplacé.

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émoireclassique, 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 cachen’est reporté que si une donnée a effectivement été modifiée par le microprocesseur ou si un bloc ayantseulement été lu par le microprocesseur est remplacé.

12.4 Conclusion

EN fait, on utilise le cache comme une image de la mémoire classique. Quand il accède aux données,le microprocesseur croit 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é. Lesdiverses architectures existantes consistent à créer différents systèmes de représentation basés directementsur 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 lectureque d’écriture dans le but d’obtenir le cache le plus efficace possible.

12.5 Post Scriptum

NOS ordinateurs sont basés sur l’architecture de Von Neumann, cela signifie que les instructions etles 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. Unsystème alternatif, que l’on appelle modèle Harvard, consiste à séparer les espaces mémoire : un pour lesdonnées et un pour les instructions. De cette façon, le chargement simultané des deux, améliore la vitessedes traitements.

Actuellement, les concepteurs ont tendance à utiliser les deux architectures, celle de Von Neumannpour les cartes mères et celle de Harvard pour le microprocesseur, pour fabriquer ces drôles de machinesdans un monde de femmes et d’hommes.

67

Page 69: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

Chapitre 13

La gestion des entrées sorties

13.1 Définition

LA gestion des E/S consiste en la gestion du transfert d’information entre le couple microprocesseur- mémoire et l’extérieur, c’est à dire les unités périphériques locales ou distantes. Dans un système

d’exploitation, cette fonction est réalisée par un ensemble de services appelé gestionnaire d’entrées-sorties.

13.2 Organisation générale

L’ ÉVOLUTION des ordinateurs a conduit à accroître l’autonomie des organes d’entrées-sorties et à leurconfier des fonctions de plus en plus complexes d’enchaînement et de commande, le microprocesseur

ne gardant que l’initiative du lancement et le contrôle des opérations. Il existe plusieurs organisations oubranchement des périphériques au microprocesseur. On peut voir sur les figures ci-dessus, trois exemplesd’organisations.

Organisation 1 : Les périphériques sont reliés au couple microprocesseur-mémoire par l’intermédiairede coupleurs.

FIG. 13.1 – Organisation E/S 1

Organisation 2 : Les périphériques sont reliés au couple microprocesseur-mémoire par l’intermédiaired’un DMA puis par les coupleurs.

68

Page 70: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

FIG. 13.2 – Organisation E/S 2

Organisation 3 : Dans un système multi-processeurs, les périphériques sont reliés à l’ensemble microprocesseurs-mémoire par l’intermédiaire de canaux et de coupleurs.

FIG. 13.3 – Organisation E/S 3

On peut aussi remarquer qu’il existe une multiplicité des voies d’accès ce qui diminue le risque d’in-disponibilité due à la saturation ou à la défaillance d’un canal ou d’un coupleur.

13.3 Les périphériques

CE sont des dispositifs servant en premier lieu à l’entrée et à la sortie de données. Ils sont sont attachés àdes coupleurs ou contrôleurs. Périphériques et coupleurs définissent des interfaces qui comprennent

un ensemble de fonctions (entrée, sortie, signaux de commande et signaux d’incident) et une voie de com-munication servant au tranfert des informations.

13.4 Les catégories de périphériques

IL existe deux grandes catégories de périphériques : les périphériques blocs et les périphériques caractères.– 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. Parmi les périphériques caractères, on peut

69

Page 71: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

citer : le clavier, la souris, les imprimantes, les terminaux etc... Les données sont transmises les unesderriè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 uneadresse propre. La taille des blocs va généralement de 128 octets à plusieurs kilo-octets. Le grandavantage 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.

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

CE n’est pas le microprocesseur qui pilote directement le périphérique, mais un contrôleur. En essayantde se rapprocher un peu plus du matériel, on peut dire que le périphérique en lui-même est un en-

semble de composants mécaniques (moteur, disque etc...), et qu’il est géré au niveau des signaux par unecarte électronique que l’on nomme contrôleur. Ce contrôleur peut lui même être constitué d’un micro-processeur ou micro contrôleur, qui dialogue avec le microprocesseur principal. Donc la définition d’uncoupleur peut être : c’est un dispositif de commande adapté à un type de périphérique donné. Son auto-nomie 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.

FIG. 13.4 – Coupleur

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

13.6 L’espace mémoire

CHAQUE périphérique ou ensemble de périphériques possède une ou plusieurs adresses mémoire sesituant soit dans l’espace mémoire du microprocesseur soit dans un autre espace appelé espace d’E/S

du microprocesseur, cet espace étant beaucoup plus restreint. Pour donner un ordre d’idée, les derniersmicroprocesseurs disposent d’un espace mémoire de 64 giga-octets et d’un espace d’E/S de 64k.

13.7 La synchronisation microprocesseur ⇔ E/S

PUISQUE le processeur et ses périphériques sont des systèmes autonomes indépendant, il est nécessairede les synchroniser afin qu’ils travaillent ensemble. On distingue plusieurs situations :

– Les entrées-sorties synchrones : Dans une entrée-sortie synchrone, il n’y a aucun parallélisme entretraitement et transfert de l’information. Le microprocesseur est immobilisé pendant toute la durée dutransfert. L’entrée-sortie synchrone est utilisée sur les ordinateurs les plus simpes et dans tous les casou 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 leclavier, il y a une interruption qui est prise en compte. Elle permet d’interrompre le microprocesseurquand cela est nécessaire, ce dernier pouvant continuer son traitement en cours en parallèle.

– Les interruptions : Lorsqu’un périphérique veut s’adresser au microprocesseur, il provoque uneinterruption matérielle. Ceci engendre un arrêt de l’exécution séquentielle des instructions d’un pro-gramme. Cette interruption provoque l’exécution d’une routine d’interruption, c’est-à-dire d’un pro-gramme de traitement de l’événement survenu et propre à cet événement. Les signaux d’interruptionpermettent aux différents composants du système d’attirer l’attention du microprocesseur afin dedéclencher une opération déterminée. Comme plusieurs demandes d’interruption peuvent survenir

70

Page 72: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

simultanément, elles sont tout d’abord envoyées au contrôleur d’interruption (PIC : ProgrammableInterrupt Controler) qui les retransmet ensuite au microprocesseur en gérant leurs priorités respec-tives.

13.8 Les canaux

UN canal, ou unité d’échange, est un processeur spécialisé dans les opérations d’entrées-sorties. Il nepeut ê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’instructionslui permet d’actionner les coupleurs et les périphériques qui lui sont connectés.

13.9 L’accès direct à la mémoire

SI un périphérique veut envoyer tout un bloc de données au microprocesseur, il commence d’abord parl’interrompre, récupère les données, puis il fait tout un ensemble de vérifications tel que les sommes

de contrôle, par exemple. Enfin vient le transfert des données par mots ; un programme gère ce transfert enincrémentant un compteur à chaque itération. Ce programme, s’il est exécuté par le microprocesseur, faitperdre beaucoup de temps à ce dernier, qui ne peut alors plus s’occuper de la gestion des programmes del’utilisateur. Le DMA (Direct Acces Memory) a été créé pour libérer le microprocesseur de ce travail debas 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éede canal.

FIG. 13.5 – Fonctionnement d’un DMA

Nous venons de voir que le DMA était un circuit spécialisé conçu pour transférer les données à lavitesse dont la mémoire est capable. Il existe deux types de transfert DMA :

1. Par giclée : le contrôleur DMA effectue un certain nombre de transferts sur les bus chaque fois qu’ila la main. Ce fonctionnement est bien adapté aux taches de transfert des blocs lorqu’elles nécessitentla 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 defonctionner au voisinage de 50% de son efficacité normale.

13.10 Le pilote de périphériques

LE 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

71

Page 73: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

interruptions é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 utilisateursdu sysème, qui accèdent aux fonctions d’E/S au moyen de services de plus ou moins haut niveau, réaliséespar des appels au système d’exploitation. Le handler contient donc les primitives permettant de commanderle périphérique. Ce driver est constitué de deux procédures, quasiment indépendantes : une procéduretraitant l’initialisation d’un transfert et une procédure de traitement de l’interruption associée à une fin detransfert. La gestion des E/S repose sur l’utilisation des interruptions dans la plupart des cas.

13.11 Les tampons

LA 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. Son but est de réduire le temps d’inactivitéde l’unité centrale en découplant son fonctionnement de celui des périphériques. Les programmes utilisa-teurs transfèrent l’information depuis ou vers le tampon, et celui-ci sert de source ou de destination auxéchanges avec le périphérique, en parallèle. Pour qu’une donnée lue sur un périphérique soit disponiblepour l’unité centrale, il faut que la lecture ait été anticipée, de même pour qu’une donnée soit écrite surun périphérique, elle doit être conservée en mémoire le temps de son transfert. Pour cela, on utilise destampons (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 (circuitsintégrés).

FIG. 13.6 – Le buffering

– Il existe aussi le double buffering, qui 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écutionremplit ou vide ses données dans l’un tandis que l’unité d’échange vide ou remplit l’autre, ce quilimite les conflits.

FIG. 13.7 – Le double buffering

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

72

Page 74: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

FIG. 13.8 – Le spooling

73

Page 75: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

Chapitre 14

Les puces RISC

14.1 Objectif

L’OBJECTIF de la technologie RISC est d’augmenter la rapidité d’exécution des programmes. La vi-tesse passe par la simplification du microprocesseur, ce qui entraîne une baisse de la consommation

électrique et du coût de fabrication.

14.2 Introduction

EN 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 uniquement 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 sa

consommation et son coût. Cette idée fut la base de la technologie RISC (Reduced Instruction Set Com-puter : microprocesseur à jeu d’instructions réduit) par opposition aux CISC (Complex Instruction SetComputer).

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 complexesest assuré par le logiciel au niveau du compilateur, et non pas par des circuits logiques implantés sur lemicroprocesseur. Il permet ainsi d’éviter les microcodes à programmer sur la puce. Ceci oblige à avoirun compilateur plus complexe, devant être optimisé de façon à réduire les temps d’exécution, si l’on veutpré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.

14.3 Le PIPELINE

ON 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 étapes successives. A chaque séquence corres-pond 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 access, 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 pas accéder à lamémoire.

74

Page 76: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

– WB : Write Back, écriture du résultat de EX ou de MEMLa simplification apportée par la technologie RISC ayant conduit à des instructions standards de mêmelongueur, le principe du pipeline est donc de profiter de cette standardisation pour exécuter les instructions,non pas de façon séquentielle, mais en cascade à 5 étages à la manière d’une chaîne de fabrication à 5postes de travail (merci Taylor). Chaque étage est chargé d’une séquence particulière. En permanence,5 instructions se trouvent donc simultanément à des séquences différentes de traitement. A chaque coupd’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,Iins2 IF DEC EX MEM WB MOV BX,Jins3 IF DEC EX MEM WB SUB AX,BXins4 IF DEC EX MEM WB CMP AX,0ins5 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) . Dans le cas où c’est impossible,l’exécution de l’instruction est retardée.

– 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 estcomplexe et coûteux en matériel. Pour prédire le branchement, il existe des techniques statistiquesutilisant des buffers de prédiction pour savoir si le branchement a déjà été pris ou non (valable surtoutpour les boucles). On associe un bit à chaque instruction dans le cache d’instructions.

14.4 Architecture superscalaire

ELLE consiste à multiplier le nombre de pipelines, donc à mettre plusieurs unités de traitement travaillanten 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.

14.5 Architecture superpipeline

ELLE consiste à augmenter la profondeur du pipeline (plus de séquences et une fréquence plus élevéedonc de plus petites étapes) permettant ainsi d’augmenter encore la cadence du traitement. Par contre,

cette organisation demande une logistique plus complexe pour approvisionner les différents “postes”. Pourl’instant, le bon compromis est un pipeline à 15 étages, le gain est donc beaucoup moins significatif quedans le cas d’une multiplication du nombre de pipelines.

75

Page 77: Architecture des Ordinateurs - m0narch aKa Mi-blackmiblack.free.fr/cours/redoublement/Architecture/hardware.pdf · 2011-10-18 · plupart des mécanismes à comprendre sont simples

14.6 Comparaison des 2 architecturesRISC– Jeu d’instructions : Jeu réduit limité aux ins-

tructions simples les plus utilisées dans le trai-tement. Typiquement moins de 100 instructions

– Format des instructions : Standard– Implémentation des instructions : Seules les

instructions simples sont gravées sur le sili-cium. Les autres sont programmées sous formede microcodes sur des circuits logiques

– Accès à la mémoire : Seules les instructions dechargement et de rangement de registres (Loadet Store)

– Vitesse d’exécution : Typiquement une instruc-tion par cycle d’horloge

– Avantages : Puce plus petite. Fréquence d’hor-loge plus élevée. Vitesse d’exécution plusgrande.

– Inconvénients : Nécessite des compilateurs pluscomplexes et plus performants. Programmed’application plus long occupant plus de mé-moire.

CISC– Jeu d’instructions : Typiquement plus de

200 instructions– Format des instructions : Variable– Implémentation des instructions : La plu-

part des instructions sont gravées sur lesilicium. Les tâches complexes sont dé-codées par le processeur (Microcode).

– Accès à la mémoire : La plupart des ins-tructions y ont accès.

– Vitesse d’exécution : Typiquement uneinstruction pour 3 à 10 cycles d’horloge.

– Avantages : Développement plus simpledes systèmes. Base installée importante.

– Inconvénients : Technologie gourmandeen silicium. Puce plus compliquée à dé-velopper. Possibilités d’évolution limi-tées.

14.7 Conclusion

LA division entre les concepts CISC et RISC n’est plus aussi dichotomique que par le passé. L’ensembledes microprocesseurs 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) processeursCISC à se rapprocher de la technologie RISC. L’unité centrale contient les instructions les plus courantesqui utilisent le traitement en pipeline, tandis que les instructions complexes sont confiées à une unité spéci-fique séparée. 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 telmicroprocesseur est CISC ou RISC, mais de connaître son architecture interne et ses performances.

76