8
© Groupe Eyrolles, 2005, ISBN : 2-212-11635-7

 · Diagramme de Karnaugh ... Description succincte du 68000 ... Introduction aux processus parallèles

Embed Size (px)

Citation preview

��������������������

���������������

�����������

© Groupe Eyrolles, 2005, ISBN : 2-212-11635-7

Table des matières

Avant-propos

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XIII

À qui s’adresse cet ouvrage ?

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XIV

Quel est l’objectif de cet ouvrage ?

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . XIV

Comment est structuré cet ouvrage ?

. . . . . . . . . . . . . . . . . . . . . . . . . . . XIV

Introduction

Du boulier à l’ordinateur

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XIX

Les Anciens

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XIX

De la Renaissance aux Lumières

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XX

John Napier ou Neper, 1550-1617 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XXIWilhelm Schickard, 1592-1635 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XXIIIBlaise Pascal, 1623-1662 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XXIIIGottfried Leibniz, 1646-1716. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XXIV

Des Modernes aux Contemporains

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . XXV

Charles Babbage, 1791-1871 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XXVAlan Turing, 1912-1954 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XXVIJohn von Neumann, 1903-1957 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XXVIIIClaude Elwood Shannon, 1916-2001. . . . . . . . . . . . . . . . . . . . . . . . . . . . . XXIXJohn Bardeen, William Shockley et Walter Brattain . . . . . . . . . . . . . . . . . XXXLa loi de Moore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XXXIIIDoug Engelbart, 1925. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XXXIIIAbramson, Metcalfe, Ethernet et Internet . . . . . . . . . . . . . . . . . . . . . . . . . XXXIV

Et aujourd’hui…

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XXXVII

L’ordinateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XXXVIIArchitecture d’un ordinateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XL

3864_ Page V Jeudi, 2. juin 2005 12:15 12 > Apogee FrameMaker Noir

Architecture des ordinateurs

VI

C

HAPITRE

1

Information et codages

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

Information et quantité d’information

. . . . . . . . . . . . . . . . . . . . . . . . . . 2

Unité de mesure de l’information : le bit

. . . . . . . . . . . . . . . . . . . . . . . . 3

Les nombres et leur codage

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

Représentation des entiers naturels, les bases. . . . . . . . . . . . . . . . . . . . . . . 7Représentation des entiers naturels N. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10Représentation des entiers relatifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11Représentation des nombres réels. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

Les caractères et leur codage

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

Le code ASCII . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21Unicode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

Quelques codes particuliers

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

Code Gray ou code binaire réfléchi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23Le code DCB : décimal codé binaire (ou BCD) . . . . . . . . . . . . . . . . . . . . . 25Autres codes particuliers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

Codes pour la détection et la correction des erreurs

. . . . . . . . . . . . . . . 26

Les codes de protection contre les erreurs . . . . . . . . . . . . . . . . . . . . . . . . . 27Quelques définitions : code, poids et distance de Hamming . . . . . . . . . . . 29Le contrôle de parité (bit de parité) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29Les codes linéaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31Les codes polynomiaux et cycliques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38Conclusion et cas particuliers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

Introduction à la compression de données

. . . . . . . . . . . . . . . . . . . . . . . 47

Compression et compactage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48La compression de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

C

HAPITRE

2

Fonctions logiques et circuits

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

Algèbre de Boole et logique

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

Logique combinatoire

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

Les circuits combinatoires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58Synthèse d’un circuit combinatoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63Diagramme de Karnaugh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67Fonctions utiles et unité arithmétique et logique . . . . . . . . . . . . . . . . . . . . 70

3864_ Page VI Jeudi, 2. juin 2005 12:15 12 > Apogee FrameMaker Noir

Table des matières

VII

Logique séquentielle

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

Bistable et automate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76Synthèse d’un automate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

Mémoires et automates

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

RAM, SRAM et DRAM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89ROM, PROM, EEPROM et mémoire flash . . . . . . . . . . . . . . . . . . . . . . . . 90Le contrôleur de mémoire et organisation de la mémoire . . . . . . . . . . . . . 92Les mémoires RAM magnétiques : MRAM . . . . . . . . . . . . . . . . . . . . . . . 95

Le processeur : architecture simplifiée de base

. . . . . . . . . . . . . . . . . . . 96

Notion de séquenceur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97Ébauche de processeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98Carte unité centrale. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

C

HAPITRE

3

Communication et protocoles

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

Communication : principes généraux

. . . . . . . . . . . . . . . . . . . . . . . . . . . 106

Le signal

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

Caractérisation d’un signal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108Caractérisation formelle d’un signal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109Caractérisation du support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

Les techniques de modulation

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114

Notion de rapidité de modulation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114Canal bruité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115

Des principes de communication aux normes

. . . . . . . . . . . . . . . . . . . . 117

Synchronisation des horloges. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118Transmissions synchrones et asynchrones . . . . . . . . . . . . . . . . . . . . . . . . . 119Voies et modes de transmission . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120Structuration d’un message, encapsulation, notion de trame . . . . . . . . . . . 121Sens de transmission . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122Partage de support, multiplexage et démultiplexage . . . . . . . . . . . . . . . . . 122

Le codage binaire à signal

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

Modulation large bande . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124Modulation en bande de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125

Notions de protocole de communication

. . . . . . . . . . . . . . . . . . . . . . . . . 128

Un protocole, ensemble de règles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128Les échanges mémoire par l’exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130

3864_ Page VII Jeudi, 2. juin 2005 12:15 12 > Apogee FrameMaker Noir

Architecture des ordinateurs

VIII

Exemple asynchrone : le 68020 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130Exemple synchrone : cycle de lecture du Z80 . . . . . . . . . . . . . . . . . . . . . . 132

C

HAPITRE

4

Processeurs et jeux d’instructions

. . . . . . . . . . . . . . . . . . . . . . . . . . 135

Le modèle de programmation d’un processeur

. . . . . . . . . . . . . . . . . . . 136

Le fonctionnement du Z80

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137

Les registres du processeur Z80 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138Déroulement de l’exécution d’une instruction . . . . . . . . . . . . . . . . . . . . . . 139Structuration, organisation générale des instructions . . . . . . . . . . . . . . . . . 144

La procédure : un élément de structuration

. . . . . . . . . . . . . . . . . . . . . . 146

Appel de procédure (Z80), instructions

CALL

et

RET

. . . . . . . . . . . . . . . . . . 147

Organisation des données (Endianess - Boutisme)

. . . . . . . . . . . . . . . . 149

Convention Little Endian ou petit boutiste. . . . . . . . . . . . . . . . . . . . . . . . . 149Convention Big Endian ou grand boutiste . . . . . . . . . . . . . . . . . . . . . . . . . 149

Gestion de pile

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150

Les techniques d’adressage

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151

Description succincte du 68000 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152Les modes d’adressage du 68000 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153

Introduction au langage assembleur

. . . . . . . . . . . . . . . . . . . . . . . . . . . . 159

Modèle RISC « Load and Store ». . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162Procédures et passage de paramètres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167

C

HAPITRE

5

Les interruptions

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185

Les interruptions

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186

Cycle de reconnaissance d’interruption . . . . . . . . . . . . . . . . . . . . . . . . . . . 191La routine d’interruption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192L’arbitrage des demandes d’interruptions . . . . . . . . . . . . . . . . . . . . . . . . . 193Le paramétrage de la gestion d’une interruption . . . . . . . . . . . . . . . . . . . . 196Interruptions et exceptions, interruptions logicielles . . . . . . . . . . . . . . . . . 198Masquage/démasquage d’interruption . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199

Interruption, exception et système d’exploitation

. . . . . . . . . . . . . . . . . 200

Les modes User et Supervisor du 680x0 . . . . . . . . . . . . . . . . . . . . . . . . . . 201Interruptions et sections critiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205

3864_ Page VIII Jeudi, 2. juin 2005 12:15 12 > Apogee FrameMaker Noir

Table des matières

IX

Introduction aux processus parallèles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206Exemple de programmation avec l’API win32 de Windows . . . . . . . . . . . 212

Système d’exploitation et ordonnancement

. . . . . . . . . . . . . . . . . . . . . . 212

Le noyau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213Programmes et processus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214Les entrées-sorties et le système de gestion de fichiers . . . . . . . . . . . . . . . 216L’interface homme-machine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217

C

HAPITRE

6

Les entrées-sorties

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221

Architecture d’un coupleur d’entrées-sorties

. . . . . . . . . . . . . . . . . . . . . 222

Architecture générale d’un coupleur d’entrées-sorties. . . . . . . . . . . . . . . . 222Communication, ports et espace d’adressage. . . . . . . . . . . . . . . . . . . . . . . 224Mémoire partagée, Dual Port Memory. . . . . . . . . . . . . . . . . . . . . . . . . . . . 229Le DMA : Direct Memory Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232

Les coupleurs d’entrées-sorties de base

. . . . . . . . . . . . . . . . . . . . . . . . . . 237

Le timer (temporisateur), Intel 8254 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237Quelques modes de fonctionnement du timer 8254 . . . . . . . . . . . . . . . . . . 239Un contrôleur de liaison série, Motorola ACIA 6850 . . . . . . . . . . . . . . . . 240Un contrôleur de liaison parallèle, Zilog PIO . . . . . . . . . . . . . . . . . . . . . . 244Un circuit horloge temps réel (Real-Time Clock) . . . . . . . . . . . . . . . . . . . 246

Les entrées-sorties analogiques

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247

La conversion analogique/numérique . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248La conversion numérique analogique. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252Les cartes d’acquisition de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253Les microcontrôleurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255

Les bus

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257

Objectifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258Bus internes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259Bus externes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261

C

HAPITRE

7

Stockage et mémoire virtuelle

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283

La hiérarchie des mémoires

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283

Les disques

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286

Accès au disque et ordonnancement des tâches . . . . . . . . . . . . . . . . . . . . . 289De l’organisation physique vers une organisation logique . . . . . . . . . . . . 290

3864_ Page IX Jeudi, 2. juin 2005 12:15 12 > Apogee FrameMaker Noir

Architecture des ordinateurs

X

FAT, File Allocation Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295Unix : le système de fichiers UFS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299Les systèmes multiboot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306Les clés USB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308

Mémoire centrale et mémoire virtuelle

. . . . . . . . . . . . . . . . . . . . . . . . . . 309

L’overlay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311La segmentation – Pentium (architecture x86 ou IA32). . . . . . . . . . . . . . . 313La pagination – Pentium (architecture x86 ou IA 32) . . . . . . . . . . . . . . . . 319

Les mémoires cache

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328

Mémoire cache associative . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329Mémoire cache à accès direct . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330Mémoire cache à associativité par ensemble . . . . . . . . . . . . . . . . . . . . . . . 332Gestion d’un cache – Politique de remplacement. . . . . . . . . . . . . . . . . . . . 333Vue d’ensemble d’une architecture mémoire . . . . . . . . . . . . . . . . . . . . . . . 336

C

HAPITRE

8

Les performances

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339

Les critères de performances

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339

Bases de mesure et métriques de performances . . . . . . . . . . . . . . . . . . . . . 340La base « processeur », MIPS et MFLOPS . . . . . . . . . . . . . . . . . . . . . . . . 341La base « machine », benchmark et SPEC . . . . . . . . . . . . . . . . . . . . . . . . . 342Les étalons SPEC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343La base « système » . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344

Les techniques d’amélioration de performances

. . . . . . . . . . . . . . . . . . 344

Le niveau processeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344Le niveau mémoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355Le niveau logiciel : les compilateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356

Machines parallèles et processeurs spécialisés

. . . . . . . . . . . . . . . . . . . . 358

Principes généraux des machines parallèles . . . . . . . . . . . . . . . . . . . . . . . . 359Les processeurs DSP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362Exemple d’une architecture 64 bits : le PowerPC G5, 970 . . . . . . . . . . . . 363

Le processeur Itanium et l’architecture IA 64

. . . . . . . . . . . . . . . . . . . . 366

Le modèle de données et l’organisation mémoire . . . . . . . . . . . . . . . . . . . 367Les registres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367Les instructions, les paquets et l’assembleur . . . . . . . . . . . . . . . . . . . . . . . 369Les instructions à prédicat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371La spéculation sur le code et les données . . . . . . . . . . . . . . . . . . . . . . . . . . 371

3864_ Page X Jeudi, 2. juin 2005 12:15 12 > Apogee FrameMaker Noir

Table des matières

XI

Le renommage de registre (rotation de registres). . . . . . . . . . . . . . . . . . . . 374Les procédures : passage de paramètres et pile de registres. . . . . . . . . . . . 378Les instructions du multimédia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378Les unités fonctionnelles de l’Itanium 2 . . . . . . . . . . . . . . . . . . . . . . . . . . 378

Les supercalculateurs

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379

La course à la puissance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379Machine vectorielle, l’exemple du VPP5000 de Fujitsu . . . . . . . . . . . . . . 381

Conclusion

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387

A

NNEXE

1

Unités de mesure

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391

Les unités de mesure

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391

Les unités de stockage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391Les unités de débit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392

A

NNEXE

2

Glossaire

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395

A

NNEXE

3

Bibliographie

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407

3864_ Page XI Jeudi, 2. juin 2005 12:15 12 > Apogee FrameMaker Noir