nouvelles architectures d`ordinateurs processeurs et

publicité
NOUVELLES ARCHITECTURES
D'ORDINATEURS
PROCESSEURS ET SYSTEMES
D'EXPLOITATION
PIERRE VINCENT
RESUME
Ce livre est particulièrement destiné aux étudiants en informatique se
préparant à des activités de conception de systèmes. Les informaticiens
professionnels (ingénieurs de conception de matériel, architectes de
systèmes, responsables de plan informatique) trouveront dans cet ouvrage
une ouverture vers les nouvelles perspectives de développement des
ordinateurs.
La première partie de l'ouvrage aborde les architectures monoprocesseur
avec leur support matériel (bus, mémoire) et la manière de les gérer.
L'accent est mis sur les avantages de techniques récentes telles que les
processeurs RISC, sur des exemples de gestion mémoire performante et
sur des machines orientées intelligence artificielle comme la Symbolics.
Dans une deuxième partie, l'auteur s'intéresse aux architectures
parallèles. Le Cray fournit l'exemple d'un super-ordinateur à base de
multiprocesseurs. Une présentation approfondie du Transputer et du
langage Occam donnent ensuite un aperçu précis de systèmes
s'appuyant sur des interconnexions entre processeurs.
TABLE DES MATIERES
Introduction
19
Architectures monoprocesseurs
- Modèle de Von Neumann
- Extensions du modèle de Von Neumann
- Evolutions
- Différents types de composants
- Processeur
- Bus
- Mémoires
- Gestion mémoire
- Mécanismes divers
- Décomposition en couches d'un ordinateur
19
19
21
21
22
24
24
24
24
25
25
Architectures parallèles
- Architectures à mémoire partagée
- Support matériel du parallélisme
- Exploitation du parallélisme
- Environnements à mémoire distribuée
27
27
28
29
29
PREMIERE PARTIE
ENVIRONNEMENT MONOPROCESSEUR
Chapitre 1
PROCESSEUR
Architecture des microprocesseurs
- Bases matérielles de conception
- Stratégie d'accélération des performances
- Améliorations de conception
- Amélioration de l'utilisation
33
33
33
34
34
34
- Amélioration de l'utilisation
- Possibilités techniques
- Référence sur composant - Référence hors composant
- Problèmes introduits par la vitesse d'horloge
- Mesures de performances
- Mécanismes d'accélération des performances
- Caches
- Pipe-fine instructions
- Vectorisation
- Registres
- Modes d'adressage
- Mécanismes évolués implémentés
- Gestion mémoire
- Jeu d'instructions
- Machines à pile
- Machines à registres
- Gestion d'objets de type évolué
- Optimisation à la compilation
- Utilisation des constantes
- Optimisation au niveau instructions
- Optimisation au niveau boucle
- Fusion de boucles
- Coprocesseurs
- Sécurité d'un système
- Interférence entre les différents mécanismes
- Environnement multiprocesseur
- Possibilités de recherche d'erreurs
- Tendances architecturales
- Emergence de standards
- Architectures dédiées
- Architecture générale
34
35
35
35
36
36
39
39
39
39
41
42
43
45
45
45
48
51
52
52
53
54
54
55
56
57
57
58
59
59
60
Processeur à jeu d'instructions réduit
- Instructions implantées sur un processeur
- Jeu d'instructions réduit
- Conception du jeu d'instructions
- Avantages d'un jeu d'instructions simple
- Jeu d'instructions et compilateur
- Efficacité d'un pipe-line
- Utilisation d'un cache
- Cache données
- Cache instructions
- Saut différé
- Chargement différé
- Fenêtre de registres
- Jeu d'instructions réduit et mémoire virtuelle
- Jeu d'instructions réduit et temps réel
- Processeur à jeu d'instructions réduit et technologie
60
60
62
62
62
64
65
65
65
65
66
67
68
69
70
70
Architecture et système Unix sur 68020
- Présentation d'Unix et du 68020
- Vue d'ensemble de l'architecture du 68020
- Vue d'ensemble de l'architecture Unix
- Fonctions d'Unix
- Initialisation du système
- Gestion des processus
- Appels systèmes
- Sections critiques
- Changement de contexte
- Niveaux d'interruptions
- Langage C
70
70
71
74
77
77
77
77
78
78
78
79
- Extension automatique de pile
- Appels systèmes et librairies
Chapitre 2
BUS
80
80
81
Principe des bus
- Rôle d'un bus
- Protocole
- Protocole synchrone
- Protocole asynchrone
- Différents niveaux de couplage
- Système fortement couplé
81
81
82
83
83
85
85
Bus partagés
86
Bus partagés
- Méthodes d'arbitrage centralisées
- Méthodes d'arbitrage décentralisées
- Avantages-inconvénients des différentes méthodes
- Conclusion
86
86
89
90
91
Standards de bus
- Caractéristiques matérielles d'un bus
- Norme Multibus 2
- Aspect matériel
- Caractéristiques principales
- Bus global
- Bus local
- Différents cycles de bus
- Echanges de messages dans l'architecture Multibus 2
- Interruptions sur Multibus 2
- Numéro des modules
- Centralisation sur Multibus 2
- Liaison série dans Multibus 2
- Norme VME
- Aspect matériel
- Caractéristiques principales
- Cycles bus
- Centralisation dans VME
- Bus série
- Comparaison VME-Multibus 2
- Points communs .
- Multiplexage ou non
- Espace d'adressage
- Echanges synchrones ou asynchrones
- Accès au bus et arbitrage
- Logique d'arbitrage
- Autres standards
92
92
92
92
92
93
93
93
96
97
97
97
97
98
98
98
98
100
100
101
101
102
102
102
103
103
103
Chapitre 3
105
MEMOIRE PHYSIQUE ET CACHES
Différents types de mémoires
- Mémoires dynamiques
- Temps d'accès et temps de cycle
- Différents cycles d'accès mémoire
- Evolution de la capacité
- Mémoires statiques
- Organisation des bancs mémoire
- Mémoires associatives
- Mémoire associative et système
- Principe de fonctionnement des mémoires associatives
105
105
106
107
110
110
110
112
112
112
Caches
- Caches physiques
- Raison d'être des caches
- Algorithme de placement
- Algorithme de remplacement
- Invalidation du cache
- Gestion des écritures dans le cache
114
114
114
114
118
118
119
- Cohérence du cache en environnement multiprocesseur
- Cohérence en cas d'écriture différée
- Bloc
119
120
122
- Eclatement de caches
- Programmation du cache
- Cache interne ou externe
- Cache interne du 68020
- Mécanisme de gestion matériel du cache du NS32532
- Cache logique
- Cache logique du système Unix
- Conclusion
123
123
125
125
128
128
128
131
Chapitre 4
UTILISATION DE LA MEMOIRE
Gestion mémoire
- Mécanisme de traduction d'adresse
- Traduction par table
- Traduction par registres
- Niveaux de traduction
- Différents mécanismes de traduction d'adresse
- Adressage direct
133
133
133
134
135
135
135
136
- Adressage direct
- Adressage associatif
- Adressage mixte
- Support matériel du mécanisme de mémoire virtuelle
- Reconnaissance du défaut de page ou segment
- "Swapping" et pagination .
- Informations relatives au placement et au remplacement
- Reprise d'instruction en cas de défaut de page
- Techniques de protection et sécurité
- Pagination
- Principe de la pagination
- Choix de la taille d'une page
- Problèmes de cohérence
- Algorithmes de remplacement: stratégies de changement de page
- Problèmes liés à l'utilisation de la pagination
- Segmentation
- Principe de la segmentation
- Mise en oeuvre de la segmentation
- Mécanisme mixte employant la pagination et la segmentation
- Mécanisme de base et algorithme de gestion mémoire
- Partage de zones mémoires entre utilisateurs différents
- Mémoire virtuelle et cache
- Cache adressé physiquement
- Cache adressé logiquement
- Entrées-sorties et gestion mémoire
136
137
137
137
137
138
138
139
140
141
141
143
144
144
145
145
145
147
148
149
150
150
150
152
152
Exemples de gestion mémoire
154
Gestion mémoire au niveau matériel
- Gestion mémoire du Vax 780
- Table des pages inverses du PC/RT
- Gestion mémoire au niveau système
- Gestion mémoire sous le système "Unix"
- Ejection d'un processus
- Allocation de l'espace de "swap"
- Régions
- Zones mémoires partagées
- Structure de données employées pour gérer la demande de page
- Entrées-sorties directes
- Processus de détection des pages inutilisées
- Gérant de validité
- Gestion mémoire de 4.2 BSD
- Demande de page
- Ejection de page
- Création d'un processus fils
- Librairies partagées
- Code en zone de débordement
154
154
156
157
157
158
158
158
159
161
166
166
167
168
168
169
169
170
170
- Environnement MACH : processus et tâches
- Gestion mémoire sous VMS
- Pagination
- Swapping
170
171
171
172
- Le 80386
- Principes généraux de fonctionnement
- Segmentation
- Pagination
- Segmentation et pagination combinés
- Privilèges
- Guichets
- Multitâche
- Entrées-sorties
172
172
174
175
175
175
177
177
178
Hiérarchie mémoire
- Raison d'être d'une hiérarchie mémoire
- Gestion de la hiérarchie mémoire
- Méthode de lecture
- Dimensionnement
- Coût et temps d'accès
- Localité des informations
- Espace d'adressage unifié
- Analogie entre les fichiers et les processus
- Différents espaces d'adressage du PC/RT
- Adressage d'un fichier dans l'environnement 4.2
179
179
180
181
181
182
182
184
185
187
188
Chapitre 5
189
MACHINES DE NOUVELLE GENERATION
- Environnement symbolique
- Mémoire typée
- Principe du typage en mémoire
- Avantage du typage en mémoire
- Désavantages d'une architecture typée
- Méthode intermédiaire
- Récupération mémoire
- Algorithmes classiques
- Marquage et balayage
- Comptage de références
- Problèmes des algorithmes classiques
- Algorithmes modernes
- Algorithme de Baker
- Récupération par génération
Architectures orientées intelligence artificielle: l'exemple de la Symbolics
- Référence des objets et des données
- Stockage en mémoire de la représentation d'un objet
- Motivations de l'architecture de données
- Instructions
- Architecture du processeur de la Symbolics
- Buffer de pile
- Avantages du buffer de pile
- Pipe-line
- Exemple : exécution d'une addition
- Gestion mémoire
- Récupération mémoire sur Symbolics
- Localité des données
- Localité des références
- Interruption adressage de l'ancien espace
- Différentes classes de stockage d'un objet
- Tables des pages
- Collaboration entre le récupérateur et le gérant de mémoire
- Processeur LISP
189
189
189
190
190
190
191
191
191
191
192
193
193
193
194
194
195
195
196
196
196
197
197
197
197
198
199
199
199
199
200
201
201
DEUXIEME PARTIE
ENVIRONNEMENT MULTIPROCESSEUR
Chapitre 6
PARALLELISME ET ARCHITECTURE
Architectures parallèles
- Raison d'être du parallélisme
- Classifications
- Classification de Flynn
- Caractéristiques particulières du modèle SIMD et du modèle MIMD
- Classification selon le pilotage des traitements
- Différentes formes d'algorithmes et types de données échangées
- Axes de développement du parallélisme
- Parallélisation explicite ou implicite
- Granularité du parallélisme
- Interconnexion des processeurs
- Support d'échange
- Echange de données: mémoire partagée ou messages ?
- Mémoire partagée
- Messages
- Echanges synchrones ou asynchrones
- Architecture hybride
- Différents types de machines
- Super-ordinateurs
- Multiprocesseurs
- Multi-ordinateurs
- Mise en oeuvre logicielle du parallélisme
- Fonctions de mise en oeuvre du parallélisme
- Synchronisation .
- Compilateurs assurant une vectorisation automatique
- Algorithmes parallèles ou distribués
- Parallélisme et système
- Répartition des processus
- Unix et répartition
- Analyse des performances
- Degré d'accélération des performances
- Loi de Minsky .
- Loi d'Amdhal
205
205
205
205
205
206
206
207
208
208
209
210
212
213
213
214
214
214
214
214
214
216
218
218
218
219
219
219
221
221
221
221
222
222
Réseaux d'interconnexion mémoire
- Utilisation des réseaux d'interconnexion
- Caractéristiques d'un réseau d'interconnexion mémoire
- Elément de base
- Mélange parfait
- Réseau oméga
- Différents types d'accès
- Placement des données
- Réseaux d'interconnexion et mémoire virtuelle
222
222
223
224
225
226
227
227
227
Traitement vectoriel
- Principe d'une opération vectorielle
- Différents types de processeurs vectoriels
- Instruction vectorielle
- Instructions spéciales
- Chaînage d'unités fonctionnelles
- Différentes améliorations des traitements vectoriels
228
228
228
228
228
229
229
Pipe-line
- Opérations exécutables par un pipe-line
- Opérations exécutables en même temps par un pipe-fine
- Pipe-line scalaire ou vecteur
- Problèmes d'un pipe-line
- Verrouillage de pipe-line et compilateur
230
231
231
231
231
231
Chapitre 7
SUPER-ORDINATEURS VECTORIELS
Architecture du Cray X-MP
- Mémoire centrale du Cray X-MP
- Entrées-sorties
- Périphérique mémoire
- Système d'entrées-sorties
- Processeur
233
233
233
235
235
236
236
- Unité d'instructions
- Registres
- Unités fonctionnelles
- Unité d'instruction
- Communications inter-processeurs
- Hiérarchie mémoire du Cray
236
238
239
241
242
242
- Résolution des conflits mémoires du Cray :
- Résolution de conflits
- Conflits liés
- Multitâche sur Cray X-MP
- Avantage du traitement vectoriel
- Rendement du processeur
- Autres développements
- Unix sur Cray
- Système de gestion de fichiers
- Partitions disque
- Entrées-sorties asynchrones
- Création d'un processus
242
243
243
244
245
246
247
247
247
248
248
248
Parallélisation de programmes
- Dépendance de données :
- Dépendance vraie
- Antidépendance
- Dépendance de sortie
- Dépendance des données dans les boucles
- Relation d'antidépendance dans une boucle
- Génération de code
- Vectorisation de boucle
- Parallélisation de boucle
- Eclatement de haut-niveau
- Vectorisation et parallélisation
- Assignation unique
- Reconnaissance des variables d'induction
- Interblocage de pipe-line
- Détection du parallélisme avec une matrice d'incidence
- Mode d'opération
249
249
249
249
250
250
251
251
252
252
253
254
254
254
254
255
255
Ordonnancement dynamique d'instructions
- Lancement dynamique des instructions
- Processeur utilisé
- Ordonnancement statique ou dynamique des instructions
- Algorithme de Tomasulo
256
256
256
257
260
- Algorithme de Tomasulo
- Accès mémoire
- Envoi d'une instruction à une unité fonctionnelle
- Préparation d'une nouvelle instruction
- Autorisation d'exécution d'une instruction
- Début d'exécution d'une instruction
- Problème d'interblocage
- Terminaison d'une instruction
- Mise en oeuvre
- Algorithme de Thornton
- Accélération introduite par l'ordonnancement dynamique
260
260
261
262
262
262
262
263
263
263
264
Architecture à flot de données
- Principe des machines à flot de données
- Structure d'une architecture à flot de données
- Différents modèles à flot de données
- Machine à flot de données statique
- Machine à flot de données dynamique
- Mécanismes de base nécessaires au support du flot de données
- Eléments dépendants de l'architecture à flot de données
- Implémentation des mécanismes de base
- Traitement d'un nœud
- Structures de données employées dans le modèle à flot de données
265
265
267
267
267
269
269
270
270
271
271
Principe d'un processeur à instructions longue
- Machines à instructions longues et Unix
272
272
- Taille du programme exécutable
273
Chapitre 8
MULTI-ORDINATEURS ET APPLICATIONS
- Interconnexion de processeurs
- Relier des sous-ensembles : du bus aux liaisons dédiées
- Différentes caractéristiques d'une topologie de processeurs
- Hypercube
- Différentes règles concernant les hyper-cubes
- Propriétés géométriques
- Propriétés liées à la numérotation
- Placement de processus
- Processeurs virtuels
275
275
275
276
277
278
278
279
279
280
Architecture du Transputer
- Eléments matériels du Transputer
- Liens .
- Gestion de processus intégrée
- Interruption
- Utilisation des différents registres
- Pile d'évaluation
- Espace de travail
- Mémoire sur le composant
- Gestion de la concurrence
- Communications
- Implémentation des canaux
- Gestion des processus
- Instructions de gestion de la concurrence
- Instructions de base
- Instructions courantes
- Gestion de l'alternative
- Variables locales
- Variables non locales et structure de données
- Procédure
- Transfert de processus
- Conclusion
- Mémoire partagée
- Modèle à flot de données généralisé et Transputer
281
281
281
282
283
283
283
284
284
284
285
285
287
289
289
289
290
291
291
291
291
292
292
293
Langage Occam
- Présentation d'Occam
- Jeu d'instructions
- Constructeurs d'Occam
- Instructions d'échange
- Informations échangées par canal
- Tableaux de taille variable
- Règles d'utilisation des canaux
- Autres instructions
- Procédures
- Placement des processus sur les processeurs
293
293
294
294
294
297
300
300
301
301
301
- Placement des processus sur les processeurs
- Gestion des processus en Occam
- Comparaison Ada et Occam
- Analogies Ada-Occam
- Différences Ada-Occam
Transputer et algorithmes parallèles
- Interconnexion des cartes Transputer
- Parallélisme sur Transputer
- Contraintes matérielles liées au parallélisme dans Occam
- Environnement de programmation Occam
- Algorithmes distribués et programmation
- Multiplication de matrices:
- Principe employé
- Découpage au niveau calcul d'un élément
- Flot de données
- Données échangées
- Différents canaux employés
- Placement sur les différents processeurs
- Algorithme du serveur
- Algorithmes exécutés sur le processeur de traitement
- Evaluation des performances
- Nombre d'opérations
- Durée des échanges
- Débit du serveur de pipe-line
- Problème de la répartition de charge
- Routage
301
301
302
302
303
304
305
306
306
307
307
309
309
310
311
311
311
313
315
315
318
318
318
319
319
320
- Principe du routage
- Configuration
Modèle de routage et de traitement
320
321
322
Conclusion
325
Bibliographie
329
Glossaire
TOP
333
Téléchargement