les microprocesseurs 80286/80386 nouvelles architectures pc

Transcription

les microprocesseurs 80286/80386 nouvelles architectures pc
LES MICROPROCESSEURS 80286/80386
NOUVELLES ARCHITECTURES PC
RESUME
MANUELS INFORMATIQUES MASSON
L'explosion de l'IBM PC et de tous ses clones a donné à l'architecture de la
famille INTEL 8086 une solide pérennité. On est en effet passé en cinq
années du 8086 (0,2 MIPS) au 80386 (4 MIPS) constituant le cœur de microordinateurs dont le prix est resté constant mais dont les performances ont
été multipliées par vingt.
Si le 8088 est simple, la seconde génération 80286 et 80386 présente des
concepts architecturaux beaucoup plus complexes qui n'ont été que peu
exploités jusqu'à ce jour. En effet MS/DOS, système d'exploitation attaché à
cette architecture n'a pas été sensiblement modifié en cinq ans! Cette
situation est préjudiciable aux utilisateurs et le but de cet ouvrage est de
montrer ce qui est réellement novateur dans le 80286 et son cadet le 80386.
Après un chapitre consacré au matériel, les concepts multitâches, identiques
dans les 2 cas, sont longuement exposés. La notion de protection, abordée
ensuite, montre dans quelle mesure on dispose, avec ces processus, de
systèmes d'exploitation fiables et Multi-Utilisateurs, mettant non seulement
en œuvre des mémoires centrales importantes, mais aussi une mémoire
virtuelle.
Une grande partie de l'ouvrage s’intéresse au développement de logiciels en langage d'assemblage et en langage évolué : Il présente
en outre les outils pour concevoir un système statique ou dynamique. Ces notions sont complétées par un exemple de moniteur
temps réel utilisant ces concepts.
Le dernier chapitre présente le 80386 en insistant sur les progrès que cette puissante unité centrale 32 bits amènera aux
architectures futures.
TABLE DES MATIERES
Contents
Chapitre 1
1.1
1.2
1.3
1.4
Chapitre 2
2.1
2.2
2.3
2.4
2.5
2.6
12
INTRODUCTION
15
Architecture standard des familles 8086
Systèmes d'exploitation
Environnement multifenêtre
Réseaux
17
18
20
21
STRUCTURE MATERIELLE DU 80286
Caractéristiques générales du produit
Principaux circuits de la famille
2.2.1
Contrôleur de bus 82288
2.2.2
Accès au MULTIBUS 82289
2.2.3. Générateur d'horloge 82284
2.2.4
Coprocesseur numérique 80287
2.2.5
Boîtiers classiques
Architectures système
Structure interne du processeur 80286
Interfaces bus
2.5.1
Organisation physique de la mémoire
2.5.2
Opérations d'accès bus
2.5.3
Organisation des interruptions
2.5.4
Utilisation du coprocesseur numérique 80287
Architecture de base du 80286
2.6.1
Segmentation
2.6.2
Types de données manipulées par le 80286
25
25
27
28
28
29
30
31
32
39
42
42
45
46
49
53
53
58
2.6.2
2.6.3
2.6.4
2.6.5
Chapitre 3
3.1
3.2
3.3
3.4
3.5
Chapitre 4
4.1
4.2
4.3
4.4
4.5
Chapitre 5
5.1
5.2
5.3
Types de données manipulées par le 80286
Registres de la machine
Modes d'adressage
Introduction à la notion de protection
58
59
64
65
LE 80286 EN MODE PROTEGE
Gestion de la mémoire
3.1.1
Adressage virtuel protégé
3.1.2
Descripteurs et tables de descripteurs
3.1.3
Registres de gestion de la mémoire
Mécanismes de protection
3.2.1
Types de protection
3.2.2
Implémentation des protections
3.2.3
Protection et gestion de la mémoire
3.2.4
Protection et niveaux de privilège
3.2.5
Segments conformant
3.2.6
GATES
Gestion des tâches
3.3.1
Table de descripteur d'une tâche : TSS
3.3.2
Descripteur de TSS
3.3.3
Changement de contexte de tâche
3.3.4
Utilisation des TASK GATE
3.3.5
Accès contrôlé au système
Interruptions
3.4.1
Interruptions en mode réel
3.4.2
Interruptions en mode virtuel protégé
Mémoire virtuelle
3.5.1
Politique de gestion des pages
3.5.2
Gestion des entrées / sorties
67
67
69
71
78
80
81
82
83
83
87
87
92
92
95
96
96
98
98
98
105
114
116
117
PROGRAMMATION DU 80286
Logiciels 80286
4.1.1
Côté applications
4.1.2
Côté système
Langage d'assemblage
4.2.1
Définition de segment
4.2.2
Définition des données
4.2.3
Initialisation des registres de base
4.2.4
Directive END
4.2.5
Structuration en procédures
4.2.6
Structures, Records, Macro-instructions
Programmation modulaire en langage d'assemblage
4.3.1
Partage des segments
4.3.2
Données et procédures PUBLIC
4.3.3
Appel de l'Assembleur
Outils de développement
4.4.1
BUILDER
4.4.2
BINDER
4.4.3
MAPPER
4.4.4
Bibliothécaire LIB286
4.4.5
Gestionnaire d"'overlays" OVL286
Le langage PLM / 286
4.5.1
Un langage système de haut niveau : PLM / 286
4.5.2
Variables et constantes
4.5.3
Structure d'un programme
4.5.4
Opérateurs
4.5.5
Instructions de contrôle
4.5.6
sous-programmes
4.5.7
Variables basées
4.5.8
Programmation modulaire
4.5.9
Programmation système
119
119
119
120
120
123
124
125
126
127
128
128
130
131
132
133
133
139
141
141
142
142
142
143
145
146
148
150
152
154
155
4.5.10 Gestion système
4.5.11 Modes de compilation
4.5.12 Appel du compilateur
156
158
158
SYSTEMES D'EXPLOITATION
Système d'exploitation orienté temps réel : iRMX 286
5.1.1
Gestion de la mémoire
5.1.2
Gestion des objets
5.1.3
Gestion des descripteurs
5.1.4
Exceptions
5.1.5
Adjonction de primitives
Système d'exploitation orienté développement : XENIX 286
Système d'exploitation sur mesure
5.3.1
Tâches
160
160
161
161
161
162
162
163
164
165
5.4
Chapitre 6
6.1
6.2
6.3
Chapitre 7
7.1
7.2
7.3
7.4
7.5
ANNEXE A
ANNEXE B
ANNEXE C
5.3.1
Tâches
5.3.2
Niveaux de privilège
5.3.3
Architectures logicielles
5.3.4
Configuration des systèmes
Application : ETR_286 : Une boîte à outils 80286
5.4.1
Spécification
5.4.2
Ordonnance des tâches
5.4.3
Descripteur de tâches
5.4.4
Temporisations
5.4.5
Files d'attente de messages
5.4.6
Sémaphores
5.4.7
Evènements
5.4.8
Allocation de mémoire
5.4.9
Gestionnaire des entrées / sorties
5.4.10 Extensions
5.4.11 Exceptions
5.4.12 Utilitaires
5.4.13 Création d'un code absolu
5.4.14 Chargeur binaire
165
168
168
169
171
172
173
174
175
178
179
179
180
181
183
184
184
184
185
ENTREES / SORTIES ET RESEAUX
Gestion physique des entrées / sorties
6.1.1
Point de vue matériel
6.1.2
Point de vue logiciel
6.1.3
Réseaux locaux
Protocoles de haut niveau
OpenNET
6.3.1
Fonctionnement sous iRMX286
6.3.2
Fonctionnement sous XENIX286
6.3.3
PC / NETWORK
187
187
187
188
189
193
193
194
196
196
LE MICROPROCESSEUR 80386
Caractéristiques générales du 80386
7.1.1
Caractéristiques logicielles
7.1.2
Caractéristiques matérielles
Structure du 80386 : le point de vue applicatif
7.2.1
Registres généraux, indicateurs
7.2.2
Coprocesseur numérique
7.2.3
Mémoire et adressages
Structure du 80386: le point de vue système
7.3.2
Gestion de la mémoire
7.3.3
Mémoire virtuelle et protections
7.3.4
Ruptures de séquence
Mémoire cache.
7.4.1
Définition du cache
7.4.2
Critères à prendre en compte
7.4.3
Structure du cache
Utilisation d'un 80386
197
197
197
199
200
200
204
204
211
217
220
222
222
223
224
224
228
JEU D'INSTRUCTIONS DU 80286
JEU D'INSTRUCTIONS DU 80386
LISTAGES ETR ETR_286
230
259
263
Glossaire
Bibliographie
Index
311
313
314
TABLE DES FIGURES
2.1.1
2.2.1
2.2.2
2.2.3
2.2.4
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.4.1
2.4.2
2.5.1
2.5.2
Le 80286
Contrôleur de bus 82288
Arbitreur de bus 82289
Générateur d'horloge 82284
Synoptique du 80287
Système multiprocesseur
Bus local et bus système
Câblage du MULTIBUS
80286 et son coprocesseur numérique
Architecture complexe
Structure interne du 80286
Régime pipeline
Organisation de la mémoire
Transfert de mot désaligné
25
28
29
30
31
32
33
36
37
38
39
41
43
44
2.5.2
2.5.3
2.5.4
2.5.5
2.5.6
2.5.7
2.5.8
2.6.1
2.6.2
2.6.3
2.6.4
2.6.5
2.6.6
2.6.7
2.6.8
2.6.9
2.6.10
2.6.11
Transfert de mot désaligné
Cycle de lecture du 80286
Table des descripteurs d'interruptions
Traitement des interruptions simultanées
8259A contrôlant la broche INTR
Architecture du 80287
Registres du 80287
Mémoire segmentée
Déplacement ou "offset"
Calcul d'adresse en mode réel
Mémoire réservée en mode réel
Forme d'un sélecteur
Implantation physique des données
Registres généraux
Adressage en mode virtuel protégé
Indicateurs et mot de contrôle
Modes d'adressage
Forme d'un descripteur
3.1.1
3.1.2
3.1.3
3.1.4
3.1.5
3.1.6
3.1.7
3.1.8
3.1.9
3.1.10
3.1.11
3.2.1
3.2.2
3.2.3
3.3.1
3.3.2
3.3.3
3.3.4
3.3.5
3.4.1
3.4.2
3.4.3
3.4.4
3.4.5
3.4.6
3.4.7
3.4.8
Accès aux données segmentées
Format d'un sélecteur
Aiguillage par le bit TI
Espace adressable et isolation intertâche
Descripteur de segment
Descripteur système
Types de segments
Mécanismes logiques de l'adressage virtuel
Traduction de l'adresse virtuelle en adresse physique
Données communes, non globales
Registres de segmentation
Descripteur de GATE
Gestion de la pile lors d'un CALL GATE
Exemples d'appel par CALL GATE
Structure de TSS
Gestion des TSS pour deux tâches
Descripteur de TSS
TASK GATE
Commutation par TASK GATE
8259A contrôlant la broche INTR
Prise en compte du numéro d'interruption
Différentes causes d'interruption
Pile pendant une séquence d'interruption
Table des descripteurs d'interruption
Mémoire cache et registre IDTR
Accès au descripteur d'interruption
TRAP ou INTERRUPT GATE
44
45
47
47
48
51
52
54
55
56
56
58
59
60
62
63
64
66
67
70
71
72
73
73
74
75
76
78
79
87
90
91
93
94
95
97
97
99
101
102
103
105
106
107
109
3.4.9
Pile au cours d'un déroutement en erreur
3.4.10 Imbrication de tâches
3.5.1
Mémoire virtuelle
110
113
115
4.2.1
4.3.1
4.3.2
4.4.1
4.4.2
4.5.1
4.5.2
4.5.3
4.5.4
Un programme simple
Modèle restreint
Modèle étendu
Synoptique du BUILDER
Synoptique du BINDER
Structure d'un programme PLM/286
Squelette d'un sous programme
Variables basées
Définition et utilisation des PUBLIC / EXTERNAL
123
129
130
134
140
146
151
153
155
5.1.1
5.2.1
5.3.1
5.3.2
5.3.3
5.3.4
5.3.5
5.4.1
5.4.2
5.4.3
5.4.4
Adjonction de primitives à iRMX286
Organisation de XENIX/286
Séparation des données intertâches
Partage des données intertâches
Structure à quatre niveaux de privilège
Construire un système statique
Construire un système dynamique
Schéma de principe ETR_286
Gestion des temporisations
File d'attente des messages
Entrées/sorties ETR_286
162
163
166
167
169
170
171
175
177
178
182
6.1.1
6.1.2
6.2.1
Connexion d'un 82588
Trame 82588
Protocoles OSI/CCITT
189
190
192
6.2.1
6.3.1
6.3.2
Protocoles OSI/CCITT
iNA960 sous iRMX286
Arborescences OPEN NET
192
194
195
7.2.1
7.2.2
7.2.3
7.2.4
7.2.5
7.3.1
7.3.2
7.3.3
7.3.4
7.3.5
7.3.6
7.3.7
7.4.1
7.4.2
7.4.3
Registres généraux du 80386
Registre des indicateurs
Traduction de l'adresse logique
Registres de segments
Résumé des modes d'adressage
Champs d'un descripteur
Descripteur de segment système
Registres de descripteurs de segment
Principaux champs du TSS
Registres de contrôle
Principes de traduction d'adresse
Mécanisme de pagination
Cache de 64 KO à associativité directe
Matériel du cache direct
Logique du cache à double chemin
201
203
206
207
208
213
213
214
215
216
218
219
225
226
226
CONTENTS
Chapter 1
Introduction to new architecture concepts for 80286 and 80386. New markets
and motivation to use the 80286.
Chapter 2
Description of 80286 hardware and introduction to the companion components.
such as bus arbiter, mathematical co-processor, latches
Chapter 3
Protected Virtual Address Mode. Introduction to the basic features of protection:
Tables GDT, IDT, LDT; Tasking; Interruptions; Virtual memory
Chapter 4
Programming the 80286. Main tools for programming: ASM286,
BUILDER for creating the main tables, BINDER for linking programs. A last
paragraph describes the PLM/286the major system programming language
Chapter 5
Operating systems. A brief note about iRMX286 and XENIX/286 is followed by
the concepts of custom operating systems build around the 80286. The last
paragraph is a complete example of how to write a small real time monitor
(ETR_286) for iAPX286.
Chapter 6
Input output and networks. Presentation of the concepts of networking with.
modern microprocessors
Chapter 7
80386. This last chapter presents the new INTEL processor: the 80386. The
major sections are devoted to new concepts like paging, virtual memory, cache
memory
The book ends with the 80286 and 80386 instruction set and with a selection of ETR_286 listings. A glossary,
bibliography and index is provided
TOP